解析错误:语法错误,第5行的文件意外$ end

时间:2013-02-23 21:07:42

标签: php

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "C:\Program Files\wamp\www\workspace\DiaryApp\upload\".$new_image_name);
?>

请帮我解决错误我是php的新手

4 个答案:

答案 0 :(得分:5)

转发路径参数\中的最后一个move_uploaded_file()

"C:\Program Files\wamp\www\workspace\DiaryApp\upload\\"

否则,您实际上是在转义结束字符串分隔符"并将其作为literal double-quote添加到字符串中。这意味着字符串在与以下变量$new_image_name连接之前不会终止,从而导致您指定的错误。

答案 1 :(得分:2)

您需要将最后一行更改为:

move_uploaded_file($_FILES["file"]["tmp_name"], "C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\".$new_image_name);

以便转义路径名中的所有反斜杠

答案 2 :(得分:2)

在文件路径中使用正斜杠/。这将适用于Windows。另外,将这些路径写入变量。你真的不想要这些硬编码。

答案 3 :(得分:1)

我可以看到你是新人(并不是说这是一个问题,每个人都必须流失;)

一个\是php的通知,它将会提供一个特殊字符 例如\ n \ r \“\'

这就是为什么你必须“逃避”你的\

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], "C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\".$new_image_name);
?>

只有当您在(双引号)之间播放字符串时才会这样。 您也可以将它们放在'(单引号)之间,然后您不能将它们转义。 的 ==&GT;不是,你必须总是逃避\

<?php
print_r($_FILES);
$new_image_name = "namethisimage.jpg";
move_uploaded_file($_FILES["file"]["tmp_name"], 'C:\\Program Files\\wamp\\www\\workspace\\DiaryApp\\upload\\'.$new_image_name);
?>

这对教育非常有用:

所以我在这里思考:“&amp; '?“。

好吧“”你可以在引号之间放置变量,例如

<?php
$str="string";
echo "this is a $str.";
?>

输出结果为:这是一个字符串。

'',所有字符都按字面意思

<?php
$str="string";
echo 'this is a $str.';
?>

输出将是:这是$ str。