WEBサイトを作るときに最近はデザインをHTMLで書いておいてコンテンツ(テキスト文章)はテキストファイルをPHPで読み込むようにして作成しています。
PHPのファイルオープンをつかって例えばテキストファイルのsample.txtを開いている要領です。
最近、画像を要所要所で見せたいと思い始めたのですが、テキストとHTMLを分けてしまっているので上手く読み出すことが出来ません。
テキストファイルの中に(写真1)と書いたところにはHTML上では<img>タグに上手く変換するような手立てはないでしょうか??
No.1ベストアンサー
- 回答日時:
文字列置換をすればよいと思います。
preg_replace -- 正規表現検索および置換を行う
説明
mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit] )
subjectに関して patternを用いて検索を行い、 replacementに置換します。
limitを指定した場合、 limit 回のマッチまで置換が行なわれます。
limitが 省略されるか -1 の場合、マッチするものは全て置換されます。
<?php
$string = "April 15, 2003";
$pattern = "/(\w+) (\d+), (\d+)/i";
$replacement = "\${1}1,\$3";
echo preg_replace($pattern, $replacement, $string);
?>
この例の出力は以下のようになります :
April1,2003
No.3
- 回答日時:
日本語の文字列置換は色々とめんどいので、手っ取り早い方法として、txtファイル自体にタグを記述するのはどうでしょうか?
No.2
- 回答日時:
No 1さんのように正規表現を用いるのが良いと思います。
正規表現が苦手、という事でしたら(最初はとても手こずりますよね)、質問者さんの要求だけでしたら、str_replace関数でも大丈夫と思います。
str_replace ( mixed search, mixed replace, mixed subject [, int &count] )
この場合は書き方に決まりを作っておかないうまく動作させることは難しいと思いますが。
例えば、表示させたいものをimg(1)imgとかして、<img src='1.jpg' />に変換する場合であれば、
$search = array("img(",")img");
$replace = array("<img src='",".jpg' />");
$text = str_replace($search, $replace, $text);
で変換出来ると思います。
あんまりスマートじゃないですね(笑。
別にマルチバイト対応のmb_ereg_replaceを使う場合には
$text = mb_ereg_replace("\(写真(.+?)\)","<img src=\"\\1\" />",$text);
で変換出来ると思います。
今の自分にはこれが一番身の丈に合っています。
ほかの方法が身につくまではこれでやらせてもらおうと思っています。
即実行できるもので助かりました。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/21 09:42
- Visual Basic(VBA) エクセルのマクロについて教えてください。 2 2023/07/15 15:48
- その他(悩み相談・人生相談) 流暢に話すテキスト読み上げアプリ 1 2023/07/23 20:41
- Excel(エクセル) エクセルのVBAについて とあるサイトのコードを参考に、CSVの文字化けを直すVBAを作成しているの 7 2022/11/04 14:15
- その他(プログラミング・Web制作) Windowsのマクロプログラムで、こんなことできますか? 3 2022/06/28 14:30
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- HTML・CSS WEBサイトの構築。表示データとWEBデザインを分離する考え方を専門用語・業界用語では何と言うか? 8 2022/09/27 09:16
- Ameba(アメーバブログ) アメブロは、HTMLのタグの入力を許さないブログ・サイトですか? 1 2023/06/18 18:48
- ホームページ作成・プログラミング アメーバ・ブログは"HTMLタグ"を許可してないのですか? 2 2023/06/17 21:08
- 画像編集・動画編集・音楽編集 PhotoScapeXで黒テキストの上に画像を重ね背景を表示する方法 1 2022/12/18 19:57
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルコーテーション(
-
PHPの¥
-
文字列の置換をCStringで(C++)
-
PHPで文字列をエンコード↔デコ...
-
○分から○時間○分に変換
-
nl2brが効かないのですが・・・
-
PHP・Wordpress preg_replaceを...
-
文字列から、特定の文字を削除...
-
DB情報をもとにRSS作成したい
-
PHPでCSVを出力する際のセルに...
-
sedでの最短一致の書き方
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エスケープ文字の復帰(¥r)と...
-
メッセージボックスで1025文字...
-
ファイルから読み取った改行文...
-
改行について
-
文字の入力で横バー上段、中断...
-
C++でのCRLFについて
-
半角英数字のみを受け付ける入...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
VBSで"をエスケープする文字は?
-
PHP・Wordpress preg_replaceを...
-
文字列の置換をCStringで(C++)
-
○分から○時間○分に変換
-
文字列の括弧について(初心者)
-
近似した文字列を置換するエク...
-
PHPの¥
-
ダブルクォーテーションが置換...
-
php 正規表現で、\\マークを取...
-
(から)までの文字列を削除したい
-
文字列のアスタリスク置換
-
htmlspecialchars関数でエスケ...
-
nl2brが効かないのですが・・・
-
PHPでCSVを出力する際のセルに...
-
c# string型の変数に、ダブルク...
-
正規表現で<BR>の行を除外した...
-
ダブル、シングルクォーテーシ...
-
空白文字のカンマへの変換について
-
【PHP】preg_replace() で正...
おすすめ情報