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


cURL - How to loop a task for multiple websites?

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

现在我的脚本使用cURL:

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

登录

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

所有cURLS都使用相同的名称:$ch=curl_init();例如

登录:

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

然后备份

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

然后更新

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

等等。

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

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

  1. 登录->备份页面->更新页面使用http://domain1.com
  2. 登录->备份页面->更新页面使用http://domain2.com
  3. 登录->备份页面->更新页面使用http://domain3.com
  4. 在处理完最后一个url后停止循环

我是PHP新手,所以请耐心等待:)干杯

您可以制作一个多维数组并在其中循环。

<?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
}
?>