ホームページ >バックエンド開発 >PHPチュートリアル >PHPのループ出力の問題について、助けてください。

PHPのループ出力の問題について、助けてください。

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBオリジナル
2016-06-23 14:02:32918ブラウズ

wordpress でプログラムを書きました。一般的なプロセスは次のとおりです:

1. $get_posts_array は特定のカテゴリの記事を呼び出します

$get_posts_array = query_posts(array('posts_per_page'=>$numberposts,'orderby'=>'$orderby','category__and'=>array($sub_cat_id_str)));


2. 記事内のすべての写真を検索するループ

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) ;				}							}		}


3. foreach または if ステートメントが配列 $posts_pic_array を出力する場合の問題は次のとおりです。

1. ローカルの xampp 環境では、配列 $posts_pic_array を出力するには foreach または if ステートメントを使用するのが通常です

2. アップロードサーバーへ Windows 2008 IIS + PHP5.4環境では、記事カテゴリID=1の場合、$posts_pic_array配列がループ出力され、3つのデータしか印刷できません。 (追記: count($posts_pic_array) 配列には 150 レコードがあります)。他のカテゴリは正常なのに、他のカテゴリの $posts_pic_array レコードにも 50 ~ 100 件のレコードがあるのはなぜですか? foreach または if ステートメントを試しましたが、3 つのレコードしか出力できません。

2 日間デバッグしてきました。助けていただければ幸いです。


ディスカッションに返信(解決策)

オンラインで返信を待って、解決策を見つけてください!

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 ステートメントを削除した後は正常に動作しました。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。