[英]How do I simplify PHP code that can run 1 or 5 or 100 times?
我有一個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循環很容易:
for ($i = 1; $i <= $pages;$i++){
// your code
echo $i;
};
測試一下並進行更改,直到適合為止。
如果$ pages = 5,則它將回顯:
1 2 3 4 5
它將從1開始,直到$ i = 5為止。
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.