好的,我有一个ENDLESS LOOP
我需要这个循环无穷无尽!当我通过php script.php
启动该脚本时,它没有问题,但是在第二个thrid上等等...运行它不再适用。我在第二次运行时将数据添加到数据库中以查看错误,并且我将此错误a:1:{i:0;s:24:"sh: 0: command not found";}
序列化。
请记住,脚本在第一次运行时有效,但从未在第二次运行时运行,$ output和$ video在第二次运行时运行错误,
编码在每次运行中都有效,文件也可以正确重命名,并且正确移动
我尝试在脚本末尾取消设置$output
$video
$duration
和$error
,但是我收到错误,第二次+运行时未定义变量。任何想法都错了吗?
关于代码:我把一个代码片段不是完整的代码,如果拼写错误在其中只有copypaste错误。
我的想法是exec
错误,当他们在第二次+运行时将输出提供给变量时
这是我的剧本
<?php
while(10) {
// Getting Data From DB
$sql = "SELECT * FROM videos_to_edit WHERE status = 'pending' ORDER BY post_time ASC LIMIT 1";
// Encoding Video;
exec("$mencoder $temp_upload_dir$post_filename -o $temp_upload_dir$r_post_id.mp4 2>&1", $output);
// Checking if Mencoder could encode it
foreach($output as $error) {
if(preg_match('/============ Sorry, this file format is not recognized\/supported =============/', $error)) {
$error1 = "error";
}
}
if(!isset($error1)) {
// Getting duration of Video with mplayer
exec("$mplayer $temp_upload_dir$r_post_id.mp4 2>&1", $video);
// Getting the duration with preg_match
foreach($video as $vidlenght) {
if(preg_match('/ID_LENGTH=/', $vidlenght)) {
$duration = $vidlenght;
$duration = explode("=",$duration);
$duration = $duration['1'];
}
}
// MOVING FILE TO PUBLIC DIR
CODE HERE...
//UPDATING DB
$sql = "UPDATE videos_to_edit SET status = 'finished' WHERE post_id = ?";
}
}
?>
答案 0 :(得分:2)
可能是因为你从未重置$error1
吗?如果它曾经在这里设置:
$error1 = "error";
它仍然存在。