假设我有100个网站的列表,我想抓住<标题>< / title>元标记。 我发现这个脚本工作正常,但我不知道如何重复新网站的整个过程:
<?php
$ch = curl_init ("http://www.mywebsite.com");
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($ch);
echo $page;
$file = 'title.txt';
$regex = '/<title>(.*?)<\/title>/s';
if ( preg_match($regex, $page, $list) )
echo $list[1];
else
echo "Unable to find preg_match";
file_put_contents($file, html_entity_decode($list[0]));
?>
为新网站重复整个curl_init的最佳方法是什么?
例如:
此外,从PHP的角度来看,处理文件以供进一步使用的最佳方法是什么?我应该使用FILE_APPEND还是尝试在新文件中保存每个标题,例如mywebsite.com_title.txt,mywebsite2.com_title.txt等? 谢谢:))
答案 0 :(得分:1)
因此,如果我正确理解您的问题,您希望在多个网站上运行您的代码。您可以将地址放在一个数组中,然后循环遍历该数组。我接受了你的代码并将其包装在下面的循环中。
<?php
$sites = array("http://www.mywebsite.com",
"http://www.mywebsite2.com",
"http://www.mywebsite3.com"
);
foreach ($sites as $site) {
#$ch = curl_init ("http://www.mywebsite.com");
$ch = curl_init ($site);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, true);
$page = curl_exec ($ch);
echo $page;
$file = 'title.txt';
$regex = '/<title>(.*?)<\/title>/s';
if ( preg_match($regex, $page, $list) )
echo $list[1];
else
echo "Unable to find preg_match";
file_put_contents($file, html_entity_decode($list[0]));
}
?>