我试图简单地计算可以在此链接的源中找到此字符串"SizeName":"6 (XXS)"的次数:http://www.sportsdirect.com/karrimor-short-running-tights-ladies-457513?colcode=45751359

该字符串包含在Javascript中,可以在URL的源中看到。

这是我正在使用的代码,但它表示正在查找0出现次数:

<?PHP
$url = "http://www.sportsdirect.com/karrimor-short-running-tights-ladies-457513?colcode=45751359";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSLVERSION, 3);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 10);
curl_setopt($curl, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.13) Gecko/20080311 Firefox/2.0.0.13');
 $str = curl_exec($curl);
 curl_close($curl);

$SIZEID = "6 (XXS)";
$occurencies = preg_match_all('/(?<=\"SizeName\":\"'.$SIZEID.'\")\S+/i', $str, $match);

echo $occurencies;


输出结果是:Occurencies: 0

但是在此链接中,当我获得输出源时,可以找到字符串"SizeName":"6 (XXS)"的5个匹配项

我的问题在哪里,我在做什么错?

有什么建议吗?

提前致谢!

最佳答案

我可能缺少一些东西,但是为什么要使用正则表达式呢?为什么不这样分割字符串呢?

$sizeId = "6 (XXS)";
$delimiter = '"SizeName":"' . $sizeId .'"';
$exploded = explode($delimiter, $str);
$matches = count($exploded) - 1;


免责声明:我已经十多年没有写PHP了。上面可能有语法错误。 :)

09-13 14:17