range(); には本当に奇妙な問題があります。ドキュメントによると:
Create an array containing a range of elements
しかし、私がするとき:
foreach (range(900,950,1) as $art_id){
//ob_start();
//do stuff
//do a lot more stuff
echo $art_id;
//ob_get_clean(); }
あるいは
$arts_id = range (900, 920);
foreach ($arts_id as $art_id){
//ob_start();
//do stuff
//do a lot more stuff
echo $art_id;
//ob_get_clean(); }
出力は奇妙なことに、次のようなシリーズで繰り返されます
"900,900,901,900,901,902,900,901,9002,903,900..."
つまり、各ループの後、最初の ID に戻ります。
(1st iteration -> 900
2nd iteration -> 900,901
3rd iteration -> 900,901,902
...)
手動配列を配置すると、完全に順序どおりに機能し、重複はありません:
$arts_id = array(900,901,902,903,904,905,906,907,908,909,910...);
私は何を間違っていますか(再び??)
編集私
ここにスクリプト全体があります:
実際には、simplehtmldomスクリプトに含まれているスラッシュドット スクレイピングの例を少し変更したバージョンです。特にない。
WP内で実行されますが、ループの外で実行されます..