php for循环在循环时冻结


php for loop freezes while looping

当我试图在循环时获取变量时,它冻结了我的屏幕,我得到了以下错误:

致命错误:第16行/home/diligenceh/domains/diligencehelps.com/public_html/upload_lesson.php中超过了30秒的最长执行时间

循环:

$lesson_count       = preg_replace('#[^0-9]#', '', $_POST['description_count']);
for($i = 1; $i <= $lesson_count; $i++)
{
    $image_url_ + $i = $_POST['image_url_'+ $i];
    echo $image_url_ + $i;
}

我认为您的代码一定是这样的:

$_POST['description_count'] = preg_replace('#[^0-9]#', '', $_POST['description_count'], -1, $lesson_count);
for($i = 1; $i <= $lesson_count; $i++) {
    echo  $_POST['image_url_'.$i];
}

支付以下费用:

1.-preg_replace((中的第四个参数包含所进行的替换次数。

2.-函数preg_replace返回经过更改的原始字符串。请在此处阅读手册:http://cl1.php.net/manual/en/function.preg-replace.php

3.-我不明白你在这里想做什么:

$image_url_ + $i = $_POST['image_url_'+ $i];

您使用加号(+(而不是句点(.(来连接字符串。

你的循环是一个无尽的循环

尝试添加类似ini_set('max_execution_time', 300);//300是秒

创建一个数组(这是你的意图吗?(

$lesson_count = preg_replace('#[^0-9]#', '', $_POST['description_count']);
$image_url = array();
for($i = 1; $i <= $lesson_count; $i++) {
    $image_url[$i] = $_POST['image_url_'+ $i];
    echo $image_url[$i]; 
}

另外,你确定$lesson_count是一个大于零的整数吗?我怀疑不是,因为这是用户输入。你可以试着用把它变成一个整数

$lesson_count = (int) preg_replace(...);

更新php.ini文件,这样可以增加执行时间。更新max_execution_time默认情况下为30

增加你在那里的执行时间。例如max_execution_time = 100