我有一个PHP代码,可以根据我像这样设置的变量运行多次:
$pages = '2';
其余代码是这样的(实际上最多 10 个,但我只是在这里写了每个代码的前 3 个):
// STEP 1
unlink('merge1.json');
unlink('merge2.json');
unlink('merge3.json');
// STEP 2
$url_one = 'https://xxx.yyy.zzz/?offset=0';
$url_two = 'https://xxx.yyy.zzz/?offset=100';
$url_three = 'https://xxx.yyy.zzz/?offset=200';
// STEP 3
if ($pages >= '1'){
$grab_one = grab_file($url_one,'/home/dir/merge1.json');
}
if ($pages >= '2'){
$grab_two = grab_file($url_two,'/home/dir/merge2.json');
}
if ($pages >= '3'){
$grab_three = grab_file($url_three,'/home/dir/merge3.json');
}
// STEP 4
$one = json_decode(file_get_contents('merge1.json'));
$two = json_decode(file_get_contents('merge2.json'));
$three = json_decode(file_get_contents('merge3.json'));
// STEP 5
if ($pages == '1'){
$merge = (array)$one->results;
}
if ($pages == '2'){
$merge = array_interlace((array)$one->results,(array)$two->results);
}
if ($pages == '3'){
$merge = array_interlace((array)$one->results,(array)$two->results,(array)$three->results);
}
在这种情况下,它将运行 2 次。
只要我必须做 5 页甚至 10 页,这对我来说效果很好,但现在我可能不得不运行它 50 或 100 页,并且必须为每页再次编写代码似乎有点过分,可能必须为每页编写代码 100 次。
有什么简单的方法可以实现这一点吗?
for 循环将允许您针对每个数字运行每行代码一次,
在下面的示例中,"$i"将包含数字"1",然后是"2",然后是"3",一直到最大值(50、100 等)
现在这超出了我的头顶,我还没有测试过它,但这是一个起点。
$pervious_merge;
for ($i = 1; $i<=maximum_value; $i++){
unlink('merge'.$i.'.json');
$url = 'https://xxx.yyy.zzz/?offset='.$i*100;
if ($pages >= $i){
$grab = grab_file($url,'/home/dir/merge'.$i.'.json');
}
$decode = json_decode(file_get_contents('merge'.$i.'.json'));
if ($pages == $i){
$merge = array_interlace($previous_merge, (array)$decode->results);
$previous_merge = $merge;
}
}
使用 for 循环很容易:
for ($i = 1; $i <= $pages;$i++){
// your code
echo $i;
};
测试它并更改它,直到它适合。
如果 $pages = 5,则它将回显:
1 2 3 4 5
它将从 1 开始,直到达到 $i = 5。