-2

別のページから画像のURLを取得するために使用しようとしpreg_matchていますが、問題は、PHPコードが常に空の結果を返すことです。私はphpを初めて使用します。

これがそのページの画像の構造です...

<a class="prs_link" href="xxxx"><img src="THE IMAGE URL I WANT TO GET" width="310" height="196"></a>

私の現在のコードは次のとおりです。

preg_match_all('/a class="prs_link" href="([^"]+)"><img src=.+?><\/a>/',$screen,$results);
4

1 に答える 1

1

ここでは、文字通り何百ものQ&Aが、正規表現を使用してHTMLを解析するようにコーダーに警告していることがわかります。これらのコメント/回答には正当な理由があるので、それを遵守し、HTMLを解析するための正規表現ソリューションを見つけないようにしてください。

HTMLを解析する(DOMを使用する)推奨される方法の1つは次のとおりです。

$html = '<a class="prs_link" href="xxxx"><img src="THE IMAGE URL I WANT TO GET" width="310" height="196"></a>';
$doc = new DOMDocument();
libxml_use_internal_errors(true);
$doc->loadHTML($html); // loads your html
$xpath = new DOMXPath($doc);
$src = $xpath->evaluate("string(//a[@class='prs_link']/img/@src)");
echo "src=[$src]\n";

出力:

src=[THE IMAGE URL I WANT TO GET]
于 2012-05-05T14:48:51.310 に答える