preg_match_all('/<embed(?>\s+)(?>.*?src=\"(.*?)\").*?>/ixs',$text,$matches);
for ($i=0; $i< count($matches[0]); $i++) {
$url = $matches[1][$i];
}
echo"$url";
を受け取りとして、fromより
<object width="425" height="350"><param name="movie" value="http://www.hoge.hoge"></param><embed src="http://www.hoge.hoge" type="application/x-shockwave-flash" width="425" height="350"></embed></object>
を送るとうまく抽出出来ず、
直接
$text = '<object width="425" height="350"><param name="movie" value="http://www.hoge.hoge"></param><embed src="http://www.hoge.hoge" type="application/x-shockwave-flash" width="425" height="350"></embed></object>';
とした場合はうまくhttp://www.hoge.hogeが抽出できるのですが、何がうまくないのか解りませんご教授ください。
$HTTP_POST_VARSをなにかの関数内で使っている場合は,まず global $HTTP_POST_VARS; としてローカルスコープに読み込んでおく必要があります。ちなみに,PHPのバージョンが古かったらいけないですが,$HTTP_POST_VARSよりも$_POSTを使う方がおすすめです。
http://jp2.php.net/manual/ja/language.variables.scope.php
あとは,マジック・クウォートがPOSTの値にかかっていて正規表現がうまくマッチしていないのではないでしょうか?
たとえば,入力した文字で「="」があるところは,「=\"」と変換されるので,ここは正規表現にマッチしないことになります。
print $_POST["url"]; として確認してみてください。
キター!解決です^^
ホント有難う御座います。
マジッククォートONでstripslashes();が上手く機能しました。
$_POSTは試したのですがやはり駄目でした。
お~
マジッククウォートOFFで上手く取得できました。
magic_quotes_gpc = Off
でもあまりよくないんでしょうか?
なんか上手い方法ありますかね?