【发布时间】:2017-08-25 07:54:18
【问题描述】:
有人介意检查下面的 php 代码吗? https://www.linuxliteos.com/test_info/download.php 返回:
警告:为 foreach() 提供的参数无效 /home/myhosthere/public_html/test_info/download.php 在第 27 行
<?
ini_set('max_execution_time', '18000');
require_once('config.php');
$ftp_server = 'ftpipaddresshere';
$ftp_user_name = 'user';
$ftp_user_pass = 'password';
$conn_id = @ftp_connect($ftp_server, 21);
if(!$conn_id)
{
echo 'Error: Some problem in Connecting to Server!';
}
else
{
ftp_pasv($conn_id, true);
$login_result = @ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
if(!$login_result)
{
$error_msg = 'Error: Some problem in Connecting to Vendor Server! Cron Job failed on '.date('m/d/Y H:i:s');
}
else
{
$arr_files = ftp_rawlist($conn_id, './upload');
$arr_list = array();
if(count($arr_files))
{
foreach($arr_files as $str_file)
{
preg_match('|-rw-r--r-- 1 hwdb hwdb.+ (\d+) ([a-zA-Z]{3} .+\d+ \d+\:\d+) (.*)|', trim($str_file), $arr_details);
$arr_list[] = $arr_details[3];
}
}
$arr_final_list = array();
foreach($arr_list as $file_name)
{
if (@ftp_get($conn_id, '/home/myhost/public_html/test_info/upload/'.$file_name, 'upload/'.$file_name, FTP_BINARY)) {
$arr_final_list[] = $file_name;
//chmod('upload/'.$file_name, 0666);
echo "processed";
//Now do ftp delete
ftp_rename($conn_id, 'upload/'.$file_name, 'processed/'.$file_name);
}
else
{
echo "error";
}
}
}
}
?>
config.php
<?
$host="localhost";
$user="dbuser";
$password="password";
$database="db";
$conn = mysqli_connect($host,$user,$password,$database);
?>
提前谢谢你。
【问题讨论】:
-
使用
var_dump检查您的变量实际上是什么类型以及它们当时包含的内容。 -
将
$arr_files = ftp_rawlist($conn_id, './upload');替换为$arr_files = array(); $arr_files = ftp_rawlist($conn_id, './upload');