访问另一个域名的Cron Job网站

时间:2014-10-31 22:40:31

标签: php cron

因此,我们拥有一个不断增长的域名列表,这些域名需要每日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并不是真的可行,因为它们会一直添加。我希望这是绝对的最后手段。

2 个答案:

答案 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();
}