因此,我们拥有一个不断增长的域名列表,这些域名需要每日cron作业才能到达其中的页面。
目前,我在DomainA上有一个脚本,并且在DomainA上设置了cron作业。
脚本如下所示:
<?php
$site_array = array(
'http://demo.DomainA.com/',
'http://demo.DomainB.com/',
...
);
foreach( $site_array as $site ){
ob_start();
file_get_contents( $site.'page-to-visit' );
$temp = ob_get_clean();
ob_end_clean();
}
?>
此脚本创建一个包含所有域的数组,然后使用file_get_contents()
访问该页面。唯一的问题是,每个域/page-to-visit
页面上都有一些PHP来处理站点内的事情。
似乎运行DomainA&#(Cron / Script所在的网站)page-to-visit
脚本就好了,但DomainB似乎没有受到影响。 file_get_contents
使用了错误的功能吗?我考虑过使用include
,但这不适用于跨网站/域名。
在每个域上创建一个Cron并不是真的可行,因为它们会一直添加。我希望这是绝对的最后手段。
答案 0 :(得分:3)
您确定file_get_contents
是否已启用发出http请求?你应该检查返回值。
如果它没有返回false
,那么所有的php都会被执行,除非有ajax请求,因为javascript将无法运行。
如果它确实返回false
,您可以使用cURL代替。请注意,这同样适用于javascript / ajax。
答案 1 :(得分:2)
虽然file_get_contents()
应该可行,但尝试使用curl
<?php
$site_array = array(
'http://demo.DomainA.com/',
'http://demo.DomainB.com/',
...
);
foreach( $site_array as $site ){
ob_start();
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $site.'page-to-visit');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15);
$data = curl_exec($ch);
echo $site . ' : ' . curl_error($ch) . '<br/>';
curl_close($ch);
ob_end_clean();
}