cURL - 如何为多个网站循环任务?

时间:2013-08-29 00:27:49

标签: php curl

我有一个cURL脚本,我用它来更新我的web目录。我知道我可以使用RSS提要(更友好吗?)等,但因为这是我的第一个脚本,我想添加一个新功能,以便我可以提高我的PHP技能:)

Currenly我的脚本正在使用cURL:

  1. 登录管理面板[POST]
  2. 创建现有页面[POST]
  3. 的备份
  4. 使用新内容[POST]
  5. 更新现有页面

    登录

    $username="username";
    $password="admin";
    $url="http://domain.com";
    $cookie="cookie.txt";
    $postdata (...)
    

    所有cURLS都使用相同的名称:$ ch = curl_init(); e.g。

    登录:

    $ch = curl_init();
    curl_setopt (...)
    

    然后备份

    $ch = curl_init();
    curl_setopt (...)
    

    然后更新

    $ch = curl_init();
    curl_setopt (...)
    

    我刚刚安装了两个新的web目录,并希望使用我的cURL脚本以相同的方式更新它们。我知道我可以复制所有 curl_inits 并只更改网址,但如果我有10个新目录,我无法想象这样做:)

    我的问题是:我如何创建一个循环,所以我的cuRL将:

    1. 登录 - >备份页面 - >使用http://domain1.com
    2. 更新页面
    3. 登录 - >备份页面 - >使用http://domain2.com
    4. 更新页面
    5. 登录 - >备份页面 - >使用http://domain3.com
    6. 更新页面
    7. 处理完最后一个网址后停止循环。
    8. 我是PHP的新手,所以请耐心等待:) 干杯!

1 个答案:

答案 0 :(得分:2)

你可以创建一个多维数组并循环遍历它。

<?php
$postdata = array('Your update info ect');


$sites = array(

         array('url'=>'http://siteA.com',
               'username'=>'username',
               'password'=>'admin',
               'cookie'=>"cookie.txt",
               'postdata'=>$postdata),

         array('url'=>'http://siteB.com',
               'username'=>'username',
               'password'=>'admin',
               'cookie'=>"cookie.txt",
               'postdata'=>$postdata),

         array('url'=>'http://siteC.com',
               'username'=>'username',
               'password'=>'admin',
               'cookie'=>"cookie.txt",
               'postdata'=>$postdata),
); 

foreach($sites as $site){
    /*
    $site contains
    Array
        (
            $site['url'] => http://site*.com
            $site['username'] => username
            $site['password'] => admin
            $site['cookie'] => cookie.txt
            $site['postdata'] => Array
                                (
                                    Your update info ect
                                )
        )
    */

    //Do code for:
    //Login
    //Backup page
    //Update page
}
?>