我有脚本PHP下载2路径, 我尝试在localhost这个代码工作,但我尝试在我的服务器错误无法正常工作
此错误
解析错误:语法错误,意外' ['在第10行的C:\ xampp \ htdocs \ pm_mobile_indosat \ link.php
完整代码
<?php
include "conection.php";
$id = $_GET['id'];
$data = mysql_fetch_array(mysql_query("SELECT * FROM task WHERE id = '$id'"));
$paths = [
"Attachment/".$data['task_id']."/",
"D:/ALL BACKUP GOES HERE/Attachment_kt_fri_jpg_dll/".$data['task_id']."/"
];
foreach ($paths as $path) {
if (file_exists($path . $data['attachment_file'])) {
header("Content-Disposition: attachment; filename=" . $data['attachment_file']);
print file_get_contents($path . $data['attachment_file']);
exit;
}
}
echo "File not found";
exit;
?>
中的此错误
$paths = [
"Attachment/".$data['task_id']."/",
"D:/ALL BACKUP GOES HERE/Attachment_kt_fri_jpg_dll/".$data['task_id']."/" ];
因为如果磁盘C已满,我有脚本,那么磁盘C中的文件会切换到磁盘D. 所以我希望这个脚本在我的服务器上运行。
答案 0 :(得分:1)
该脚本使用PHP 5.4中引入的数组声明的简短形式。
使用PHP 5.4,您可以声明一个这样的数组:
$arr = []; // for 5.3 you'd use $arr = array();
如果您的代码在一台服务器上运行但在另一台服务器上抛出此错误,则在发生故障的服务器上有一个小于5.4的PHP版本。
要么:将服务器升级到PHP 5.4或更高版本;或编辑代码以使用旧形式的数组声明。
注意 - 代码和早期版本的PHP之间可能存在其他不兼容性。升级服务器是可行的方法。