如何在使用 exit() / die() 后继续 php 脚本
How to continue a php script after using exit() / die()
例如我有以下脚本。
在这种情况下,我想获得 X1 和 Y1 的值
但是 exit() 不允许我这样做
请帮忙
提前致谢
特别感谢 Mark Setchell :P(如果他看到了)
$im = imagecreatefromjpeg("omr.jpg");
for($x=0;$x<100;$x++) {
for($y=0;$y<100;$y++)
{
$rgb = imagecolorat($im,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if($r<128 && $g<128 && $b<128){
printf("%d,%d: %d,%d,%d\n",$x,$y,$r,$g,$b);
exit;
}
}
}
for($x1=1170;$x1<1270;$x1++){
for($y1=0;$y1<100;$y1++){
$rgb = imagecolorat($im,$x1,$y1);
$r1 = ($rgb >> 16) & 0xFF;
$g1 = ($rgb >> 8) & 0xFF;
$b1 = $rgb & 0xFF;
if($r1<128 && $g1<128 && $b1<128){
printf("%d,%d: %d,%d,%d\n",$x1,$y1,$r1,$g1,$b1);
exit;
}
}
}
current output :
30,53: 123,119,118
Desired output :
30,53: 123,119,118
1217,55: 115,114,112
exit — Output a message and terminate the current script
die — Equivalent to exit
因此,你不能那样做,句号。但是,您可以重新考虑您不必在那里使用 exit 的解决方案,因为您想继续执行然后 exit
在错误的地方。
现在解决方案:当条件满足时,您可以跳出循环。
break ends execution of the current for, foreach, while, do-while or switch structure.
这样你的循环就会结束,你将能够在不退出的情况下继续下一个循环。
您不应使用 die()
或 exit()
,而应使用 break
函数。 Click Here,了解更多信息。
exit()
或 and die()
仅当您想结束脚本时才应使用。
exit — Output a message and terminate the current script docs here.
die — Equivalent to exit, docs here.
嗯,这不可能。
exit; // equal to: die;
exit(); // equal to: die();
exit('I died'); // equal to: die('I died');
是旨在终止 PHP 进程的语言结构。正如 Manual 所说:
Output a message and terminate the current script
如果您希望脚本继续执行,请不要使用它。
在循环中,您可以使用两个您可能感兴趣的构造:
您可以使用 break 2;
中断两个嵌套的 for 循环,您的下一个 for 循环 x1
和 y1
也将执行。
勾选http://php.net/manual/en/control-structures.break.php
根据您的范围,您可以使用中断 1 或中断 2,
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1; /* Exit only the switch. */
case 10:
echo "At 10; quitting<br />\n";
break 2; /* Exit the switch and the while. */
default:
break;
}
}
您不能 运行 在 die()
或 exit()
之后的脚本,除非您使用条件或 switch 语句。
如果您希望在呈现页面后继续 运行ning 脚本,您可能需要 运行 一个后台 php 进程,除非您只是要求 运行 当 for 循环终止时对页面进行更多更改,在这种情况下 break;
最好。
stack overflow php background process
例如我有以下脚本。
在这种情况下,我想获得 X1 和 Y1 的值 但是 exit() 不允许我这样做
请帮忙 提前致谢 特别感谢 Mark Setchell :P(如果他看到了)
$im = imagecreatefromjpeg("omr.jpg");
for($x=0;$x<100;$x++) {
for($y=0;$y<100;$y++)
{
$rgb = imagecolorat($im,$x,$y);
$r = ($rgb >> 16) & 0xFF;
$g = ($rgb >> 8) & 0xFF;
$b = $rgb & 0xFF;
if($r<128 && $g<128 && $b<128){
printf("%d,%d: %d,%d,%d\n",$x,$y,$r,$g,$b);
exit;
}
}
}
for($x1=1170;$x1<1270;$x1++){
for($y1=0;$y1<100;$y1++){
$rgb = imagecolorat($im,$x1,$y1);
$r1 = ($rgb >> 16) & 0xFF;
$g1 = ($rgb >> 8) & 0xFF;
$b1 = $rgb & 0xFF;
if($r1<128 && $g1<128 && $b1<128){
printf("%d,%d: %d,%d,%d\n",$x1,$y1,$r1,$g1,$b1);
exit;
}
}
}
current output : 30,53: 123,119,118
Desired output : 30,53: 123,119,118
1217,55: 115,114,112
exit — Output a message and terminate the current script
die — Equivalent to exit
因此,你不能那样做,句号。但是,您可以重新考虑您不必在那里使用 exit 的解决方案,因为您想继续执行然后 exit
在错误的地方。
现在解决方案:当条件满足时,您可以跳出循环。
break ends execution of the current for, foreach, while, do-while or switch structure.
这样你的循环就会结束,你将能够在不退出的情况下继续下一个循环。
您不应使用 die()
或 exit()
,而应使用 break
函数。 Click Here,了解更多信息。
exit()
或 and die()
仅当您想结束脚本时才应使用。
exit — Output a message and terminate the current script docs here.
die — Equivalent to exit, docs here.
嗯,这不可能。
exit; // equal to: die;
exit(); // equal to: die();
exit('I died'); // equal to: die('I died');
是旨在终止 PHP 进程的语言结构。正如 Manual 所说:
Output a message and terminate the current script
如果您希望脚本继续执行,请不要使用它。
在循环中,您可以使用两个您可能感兴趣的构造:
您可以使用 break 2;
中断两个嵌套的 for 循环,您的下一个 for 循环 x1
和 y1
也将执行。
勾选http://php.net/manual/en/control-structures.break.php
根据您的范围,您可以使用中断 1 或中断 2,
$i = 0;
while (++$i) {
switch ($i) {
case 5:
echo "At 5<br />\n";
break 1; /* Exit only the switch. */
case 10:
echo "At 10; quitting<br />\n";
break 2; /* Exit the switch and the while. */
default:
break;
}
}
您不能 运行 在 die()
或 exit()
之后的脚本,除非您使用条件或 switch 语句。
如果您希望在呈现页面后继续 运行ning 脚本,您可能需要 运行 一个后台 php 进程,除非您只是要求 运行 当 for 循环终止时对页面进行更多更改,在这种情况下 break;
最好。
stack overflow php background process