- ベストアンサー
デザインとテキストを分離しました。画像でつまづいてます。
WEBサイトを作るときに最近はデザインをHTMLで書いておいてコンテンツ(テキスト文章)はテキストファイルをPHPで読み込むようにして作成しています。 PHPのファイルオープンをつかって例えばテキストファイルのsample.txtを開いている要領です。 最近、画像を要所要所で見せたいと思い始めたのですが、テキストとHTMLを分けてしまっているので上手く読み出すことが出来ません。 テキストファイルの中に(写真1)と書いたところにはHTML上では<img>タグに上手く変換するような手立てはないでしょうか??
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
文字列置換をすればよいと思います。 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
その他の回答 (2)
- neosys
- ベストアンサー率50% (3/6)
日本語の文字列置換は色々とめんどいので、手っ取り早い方法として、txtファイル自体にタグを記述するのはどうでしょうか?
お礼
確かに手っ取り早い!! 良い案ですねありがとうございました。
- taketan_mydns_jp
- ベストアンサー率58% (450/773)
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); で変換出来ると思います。
お礼
今の自分にはこれが一番身の丈に合っています。 ほかの方法が身につくまではこれでやらせてもらおうと思っています。 即実行できるもので助かりました。 ありがとうございました。
お礼
ちょっと難しいですが、 おかげで解決できそうです。