人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

$text = $HTTP_POST_VARS['url'];

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が抽出できるのですが、何がうまくないのか解りませんご教授ください。

●質問者: NAO8
●カテゴリ:ウェブ制作
✍キーワード:echo SRC URL 抽出 教授
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● heppokoA
●35ポイント

$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"]; として確認してみてください。

http://jp.php.net/manual/ja/security.magicquotes.php

◎質問者からの返答

$_POSTは試したのですがやはり駄目でした。

お?

マジッククウォートOFFで上手く取得できました。

magic_quotes_gpc = Off

でもあまりよくないんでしょうか?

なんか上手い方法ありますかね?


2 ● heppokoA
●35ポイント

再びheppokoAです。

http://jp2.php.net/manual/ja/function.stripslashes.php

stripslashes();が使えます。

◎質問者からの返答

キター!解決です^^

ホント有難う御座います。

マジッククォートONでstripslashes();が上手く機能しました。

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ