因为我是PHP.Here新手,所以我的js代码
var sites = [
//Texte anime
{url:" http://carouselinfo.com/canal/", duration:9},
//Texte anime
{url:" http://carouselinfo.com/canal-2/", duration:9},
//Intro detallee
{url:"http://carouselinfo.com/index-t1.html", duration:35},
//CTA
{url:"http://carouselinfo.com/index-t2.html", duration:35},
//Football
{url:"http://carouselinfo.com/twitter-ligue/", duration:100},
//Texte anime
{url:" http://carouselinfo.com/canal-2/", duration:9},
//TrailersClub.com
{url:"http://trailersclub.com/?lang=fr", duration:480},
//Heure
{url:"http://carouselinfo.com/heure", duration:8},
//Meteo
{url:"http://carouselinfo.com/meteo", duration:12},
//Texte anime
{url:" http://carouselinfo.com/canal-cine/", duration:9},
//Cine
{url:"http://carouselinfo.com/cine/index-t1.html", duration:150},
//Texte anime
{url:" http://carouselinfo.com/canal-2/", duration:9},
//Heure
{url:"http://carouselinfo.com/heure", duration:8},
//Meteo
{url:"http://carouselinfo.com/meteo", duration:12},
//Texte anime
{url:" http://carouselinfo.com/canal-cine/", duration:9},
//Cine
];我想执行一些搜索任务,如url和持续时间,以便以单独的列显示,但是当我对http执行Regx时,在html上什么都没有打印出来。
下面是我的粗略PHP代码:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,'http://carouselinfo.com/contents.js');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec ($ch);
$contents = json_encode($contents,true);
curl_close($ch);
echo $contents;
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
if (preg_match_all($reg_exUrl,$contents,$url))
{
echo '<br/>';
echo $url;
}发布于 2012-05-12 14:47:36
首先删除json_encode调用。然后应用下面的正则表达式,
/url\s*:\s*"([^"]+)"/代码应该如下所示。
$reg_exUrl = '/url\s*:\s*"([^"]+)"\s*,\s*duration\s*:\s*(\d+)/';
if (preg_match_all($reg_exUrl,$contents,$matches))
{
print_r($matches[1]); // not using echo here
print_r($matches[2]);
}示例Php snippet
发布于 2012-05-12 14:48:43
问题是json_encode正在添加额外的字符( '\‘转义字符)或转换其他字符(转换为ascii编码的等效字符),这意味着您的正则表达式无法匹配。您应该在$contents的原始值上运行正则表达式。顺便说一句,不要回显整个$url值,因为这是一个数组。
发布于 2012-05-12 14:52:09
您有一些错误,但是将javascript var保存为php var并执行foreach循环如何?
像这样..。
$sites = array('http://www.php.net/','http://stackoverflow.com/','http://www.godaddy.com/');
$duration = array('5','100','5000');
foreach($sites as $site){
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$site);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$contents = curl_exec ($ch);
curl_close($ch);
$reg_exUrl = "/(http|https|ftp|ftps)\:\/\/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
preg_match_all($reg_exUrl,$contents,$urls);
if(isset($urls)){
var_dump($urls);
}
}https://stackoverflow.com/questions/10561623
复制相似问题