PHP注意:未定义的偏移量错误

时间:2015-03-10 18:59:23

标签: php

这是我在compresser.php中的代码:

<?php

$filename = "isnotconverted_*";
$files = glob($filename);
$filefound = $files[0];

$new_filefound = str_replace( "isnotconverted_", '', $filefound );

$command = 'ffmpeg -i '.$filefound.' -b 64k -vf "movie=watermark.png [watermark]; [in][watermark] overlay=main_w-overlay_w-10:0 [out]" '.$new_filefound;
exec( $command );

unlink( $filefound );

当我直接打开compresser.php时,没有错误,一切正常,但当我使用putty并输入/usr/local/bin/php /home/dltvbourse/public_html/compresser.php时,我收到此错误:

PHP Notice:  Undefined offset: 0 in /home/dltvbourse/domains/dl.tvbourse.ir/public_html/compresser.php on line 5
ffmpeg version 0.7.11, Copyright (c) 2000-2011 the FFmpeg developers
  built on Mar  1 2015 14:55:21 with gcc 4.1.2 20080704 (Red Hat 4.1.2-55)
  configuration: --enable-gpl --enable-version3 --enable-nonfree --enable-shared --enable-libmp3lame --enable-libx264 --enable-libfaac --enable-libvorbis --enable-libopencore-amrnb --enable-libopencore-amrwb --enable-libvpx
  libavutil    50. 43. 0 / 50. 43. 0
  libavcodec   52.123. 0 / 52.123. 0
  libavformat  52.111. 0 / 52.111. 0
  libavdevice  52.  5. 0 / 52.  5. 0
  libavfilter   1. 80. 0 /  1. 80. 0
  libswscale    0. 14. 1 /  0. 14. 1
  libpostproc  51.  2. 0 / 51.  2. 0
-b: No such file or directory
PHP Warning:  unlink(): No such file or directory in /home/dltvbourse/domains/dl.tvbourse.ir/public_html/compresser.php on line 12

我该怎么办?

2 个答案:

答案 0 :(得分:0)

您应该在正确的文件夹中运行php文件。所以做一个:

cd /home/dltvbourse/public_html/
/usr/local/bin/php compresser.php

(在putty或您使用的任何ssh客户端中)。

失败的原因是因为glob()使用当前目录作为偏移目录。由于该模式的文件可能没有放在初始目录中,因此无法工作。

此外,重写程序可能是安全的。毕竟,总有可能出现问题并且目录中没有放置此类文件。在这种情况下,您可能最好检查数组的大小并抛出错误消息。

答案 1 :(得分:0)

这将删除您的PHP注意:未定义的偏移量:0错误

  

$ filefound =(!empty($ files [0]))? $ files [0]:false;