php for循环冻结循环时

时间:2014-07-27 17:32:28

标签: php for-loop

当我在循环时尝试获取变量时,它只是冻结了我的屏幕并且出现了以下错误:

  

致命错误:第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;
}

4 个答案:

答案 0 :(得分:0)

你的循环是一个无限循环

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

答案 1 :(得分:0)

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

$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(...);

答案 2 :(得分:0)

更新您的php.ini文件,您可以在其中增加执行时间。 更新max_execution_time 默认为30

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

答案 3 :(得分:0)

我认为您的代码必须是这样的:

$_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()中的第4个参数包含替换次数。

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

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

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

你使用加号(+)而不是点(。)来连接字符串。