
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で質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
文字列の括弧について(初心者)
-
VBSで"をエスケープする文字は?
-
VBAのコマンドボタンの文字列の...
-
メッセージボックスで1025文字...
-
Accessの文字数を調べたい
-
文字化け変換方法
-
Nvuで作成したhtmlをコピペして...
-
phpの正規表現でstyle="●●"を削...
-
ToolTipTextの改行はできないの...
-
ダイアログにおける改行
-
VBAでCSVをExcelに取り込む時に...
-
エクセルのCOUNTIFが正しくカウ...
-
ソースコードの1行が長いとき...
-
preg_matchの正規表現で
-
mb_ereg_replaceに関して
-
PHPで<a>タグ内からURLと文字を...
-
ラベル(スタティックテキスト)...
-
【VBA】エクセルで最後の不要な...
-
eclipseより、タスク・タグの使...
-
マクロでセル内の改行を削除す...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルコーテーション(
-
文字列の置換をCStringで(C++)
-
VBSで"をエスケープする文字は?
-
○分から○時間○分に変換
-
文字列のアスタリスク置換
-
入力文字に\\マークが入ってい...
-
文字列の括弧について(初心者)
-
c# string型の変数に、ダブルク...
-
近似した文字列を置換するエク...
-
PHPでjavascriptを書き出すとき...
-
文字列から、特定の文字を削除...
-
PHPの¥
-
空白文字のカンマへの変換について
-
REGEXREPLACE関数について、
-
$text = "
-
PHP 文字列から必要な部分を抜...
-
PHPの正規表現について
-
dirnameでパスが正しく取れない...
-
str_replaceで文字化け
-
PHPで「,」を「, 」へ置換した...
おすすめ情報