• ベストアンサー

PHPのeregとereg_replaceの細かい使い方がわかりません。

PHPのソースの解読をしているのですが、聞く人が今いないために質問させてください。 マニュアルを見たところ、eregは検索、ereg_replaceは置換ということはわかったのですが、以下の文はどのような意味になるのでしょうか。お願いします。 if ( strlen ( $dat ) > 0 ) { $dat = ereg_replace ( "\/\/.*", "", $dat ); if ( ereg ( '^\[.*\]', $dat ) ) { $idx = trim ( $dat, "[] " ); } }

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

  • ベストアンサー
回答No.2

こんにちは。 ereg → 正規表現検索 ereg_replace → 正規表現置換 ということですので 【$dat = ereg_replace ( "\/\/.*", "", $dat );】 1.$dat変数から"\/\/.*"にマッチした部分は空文字に置換 【if ( ereg ( '^\[.*\]', $dat ) ) {】 2.置換された$datに'^\[.*\]'にマッチする部分がある場合は$idx = trim ( $dat, "[] " );を実行 というような流れです。ご参考までに

bolder
質問者

お礼

回答ありがとうございました。ようやく理解することができました。ありがとうございました^^

bolder
質問者

補足

回答ありがとうございます。質問の仕方が悪くてすいません。第一引数の中身がどういう指定になっているのかがわからなくて困っています。 例えばereg_replaceの「"\/\/.*"」の部分は\/\/.*という文字を空文字にするのか、それとも\と/と\と/と.と*のすべてを空文字にするのでしょうか?

その他の回答 (2)

noname#57710
noname#57710
回答No.3

> 例えばereg_replaceの「"\/\/.*"」の部分は\/\/.*という文字を空文字にするのか、それとも\と/と\と/と.と*のすべてを空文字にするのでしょうか? 「//」の後ろに何かついているものを削除します。\はただのエスケープ文字です。 ex) 「//hogehoge」 → 「」 「foo //hogehoge」 → 「foo 」 「//」 → 「」 「foo //」 → 「foo 」 どういう意味なのかということについては、正規表現をお勉強してください。 参考: http://www.kt.rim.or.jp/~kbk/perl5.005/perlre.html

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.1

[ index ] //コメントみたいな? 感じのものから後ろのコメントを取り除き '[', 'スペース', ']'を取り除いて index を取り出すというような意味ですかね。 間違ってたらすみません

bolder
質問者

お礼

回答ありがとうございました。答えを待ちながらwebサイト色々調べたら理解できました。ありがとうございました^^

関連するQ&A

専門家に質問してみよう