ホームページ >バックエンド開発 >PHPチュートリアル >PHPのループ出力の問題について、助けてください。
wordpress でプログラムを書きました。一般的なプロセスは次のとおりです:
1. $get_posts_array は特定のカテゴリの記事を呼び出します
$get_posts_array = query_posts(array('posts_per_page'=>$numberposts,'orderby'=>'$orderby','category__and'=>array($sub_cat_id_str)));
foreach ($posts_array as $index => $post_value_array) { if ($post_value_array->post_status == 'publish') { ob_start(); ob_end_clean(); preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post_value_array->post_content, $pic_rexz); $post_item_array= $post_value_array->ID.'#'.$post_value_array->post_title.'#'.$post_value_array->post_name.'.html#'.$post_value_array->guid.'#'; if (!empty($pic_rexz[1])) { $posts_pic_array[$index] = array_merge($pic_rexz[1],(array)$post_item_array) ; } } }
オンラインで返信を待って、解決策を見つけてください!
if ($post_value_array->post_status == 'publish')
この判断はフィルタリングされていますか?
if ($post_value_array->post_status == 'publish')
この判断はフィルタリングされていますか?カテゴリ ID=1 の場合、カウント ($posts_pic_array) には 150 個の項目があります。print コマンドを使用して配列を出力することもできますが、ループできるのは foreach または for を使用する場合のみです。ループは 3 つありますが、さらに奇妙なのは、foreach ステートメント以降のステートメントが実行されないことです。メモリオーバーフローなどの問題はありませんか?
問題が見つかりました!これは実際にはメモリ オーバーフローの問題です。unset ステートメントは実際に 128M php.ini 設定をオーバーフローさせる可能性があります。テストしたところ、unset ステートメントを削除した後は正常に動作しました。