• ベストアンサー

phpスクリプトの書かれているファイル内の文字列置換

いつもお世話になります。 phpスクリプトの書かれているそのファイル内の文字列を置換することはできないでしょうか。 更に説明をさせていただきますと。 a.php から <a href="b.php"・・・> で、b.phpが呼び出されて表示されます。 このとき、このb.php内のある文字列が自動的に置換されるスクリプトをb.php内に書くことはできないかという質問です。 つまり、b.phpがb.php内のスクリプトによって処理されてからブラウザに渡されるようにしたいと思っての質問です。 目的は、 b.php内に表示する画像をphpスクリプトでフォルダ内の画像ファイルを取得し、b.php内の指定箇所に表示することです。 ただ、画像を表示するだけならその箇所に<img src="" で指定すれば良いではないかということになります。このイメージタグに OnMouse="" とか、class style 指定など画像の種類によって設定していきたいと思っています。だから、その異なる属性を直接に記載するのでなく、phpで画像フォルダ内をスキャンして、その画像の内容によって自動的に記載できたらと思っての質問です。 例えば、#imgXXXX# などとしておき<img src="" ・・・と置換したい。 更に、この処理のスクリプトを、b.php内に記載できないものかということです。 長くなってしまいました。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

状況がよくわからないけど、こういうことですか? <? $html=<<<eof test<br> test<br> #imgXXXX# #imgYYYY#<br> #test#<br> test<br> eof; $pattern="/#img([0-9a-z]+?)#/i"; $replacement="<img src=\"$1\">"; $html=preg_replace($pattern,$replacement,$html); print $html; ?>

rqg2010
質問者

お礼

yambejpさん、丁寧な解答をありがとうございます。 なるほどの解答です。 つまり、b.php全てを文字列リテラルとして扱うというように解釈しますが、私の理解も怪しいものです。 このアドバイスを参考に色々と試してみます。 どうもありがとうございました。

rqg2010
質問者

補足

yambejpさん、お早うございます。 試してみました。 質問した内容はこの通りです。 できました。 ありがとうございました。

その他の回答 (2)

  • osaka-aq
  • ベストアンサー率52% (10/19)
回答No.2

こんにちは。 内容がいまいち理解できなかったので、全く求めている回答と違うかもしれませんが たとえばb.phpで変換したい文字列が、変数$gazoに入っているとした場合 $gazo = str_replace("#imgXXXX#","<img src=…",$gazo); これで、$gazo内の#imgXXXX#は、全て<img src=…に置き換わります。 全く見当違いな答えだったら、スミマセン(>_<)

rqg2010
質問者

お礼

osaka-aqさん、早速の回答ありがとうございます。 >たとえばb.phpで変換したい文字列が、変数$gazoに入っているとした場合 変数$gazoが、b.php自体ということです。 その、b.php自体をb.phpの自己スクリプトの中で変換できるものかな と、いうことで試行錯誤しています。 なかなか状況をつかめていただけないというのは、 私が行おうとしていることが、とんでもない勘違いの基に考えていることで、そもそも、基本が良くわかっていないのかと、反省してもいます。 アドバイスありがとうございました。 アドバイスされたことの意味をもう一度よく考えてみます。

  • memphis
  • ベストアンサー率40% (975/2395)
回答No.1

b.phpと文字列を固定にせず、変数にするだけでは?

rqg2010
質問者

お礼

memphisさん、早速の回答ありがとうございます。 >b.phpと文字列を固定にせず、変数にするだけでは? と、いうことですが、今一具体的にわかりません。 発想の転換は常々必要だと思っていますので、 別のアプローチの仕方が有れば切り替えようとも思っています。 このアドバイスを基に私も考えてみます。 どうもありがとうございました。

関連するQ&A