如何运行php脚本

时间:2018-10-01 09:58:54

标签: php mysql multithreading bulkinsert bulkupdate

我写了7-8个php脚本,这些脚本从远程服务器中提取数据并将其存储到我们的服务器中。每个脚本一次插入/更新大约3000-4000条记录。当我从浏览器中命中任何脚本时,它都可以正常工作(单个脚本),但是如果我尝试通过编写标头('Location:http://www.example.com/')一起调用所有文件,则会中断。谁能建议我一个更好的方法来解决这个问题。有人建议我使用多线程,而我尚未使用线程,所以任何人都可以帮助我提供更好的方法/解决方案。 TIA。

1 个答案:

答案 0 :(得分:0)

注意:您当前的代码不起作用,因为header('Location: example.com')将浏览器重定向到example.com,这意味着您的php脚本已完成运行,并且浏览器现在处于{{1 }}

解决方案1:  如果php.ini中example.com为“开”,则可以使用以下命令执行它们:

allow_url_fopen

,依此类推...

解决方案2:

<?php 
   $url1 = file_get_contents('http://www.example.com/1.php');
   $url2 = file_get_contents('http://www.example.com/2.php');
?>

按如下方式使用它:

   function initCURL($url) {
          $curl = curl_init();
          curl_setopt($curl, CURLOPT_URL, $url);
          curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
          curl_setopt($curl, CURLOPT_HEADER, false);
          $data = curl_exec($curl);
          curl_close($curl);
          return $data;
   }

在这些示例中,<?php $url1 = initCURL('http://www.example.com/1.php'); $url2 = initCURL('http://www.example.com/2.php'); ?> $url1将携带脚本返回的所有数据。