ホテルを選ぶとき、これだけは譲れない条件TOP3は?

いつもお世話になっております。
日本語文字列を含む正規表現で悩んでおります。



【比較対象の文字列】
$str1 = "<select name='se'><option value='あいう'>あいう</option><option value='abc'></option></select>";


【正規表現で置換させたいところ】
$text = "あいう";//ここの箇所だけoption valueが変わるので変数にいれています。

<option value='$text'>$text</option>という文字列が一致したら
<option value='$text' selected>$text</option>にselectedを追加して置換したいのです。

下記内容で作ってみたのですが
どの辺りがダメなのか検討がつきません。。
恐らくダメなところだらけかと思うのですが。
分かりづらい説明で申し訳ないのですが
どなたかご教授お願いします。


$rep ="<option value='".$text."' selected>".$text."</option>";

preg_replace("/<option\s+[^>]*value\s*=\s*([\'\"]?)".$text."([\'\"]?)\s*w+>".$text."<\s+\/\s+option\s+>/i",$rep,$str1,$str2);

A 回答 (2件)

$result=preg_replace("/<option\s+[^>]*value\s*=\s*([\'\"]?)$text(

quot;]?)\s*\w*>$text<\s*\/\s*option\s*>/i",$rep,$str1);
    • good
    • 0

ソースも判読しづらくなるので


ifで条件付けてselectedを書くようにお勧めします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報