Php 分析错误,应为'T#u STRING';或'T#u变量';或'T#NUM#u STRING';

Php 分析错误,应为'T#u STRING';或'T#u变量';或'T#NUM#u STRING';,php,parsing,Php,Parsing,我需要重新审视这件事。我从一个说它有效的人那里得到了这个密码 以下是错误: PHP Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Inetpub\wwwroot\2am\employment\send-email-form.php on line 19 第19行是GetUploadedFileInfo()的第一行。我还得到了第20行和第21行的错误。显然是$file

我需要重新审视这件事。我从一个说它有效的人那里得到了这个密码

以下是错误:

PHP Parse error: parse error, expecting `T_STRING' or `T_VARIABLE' or `T_NUM_STRING' in C:\Inetpub\wwwroot\2am\employment\send-email-form.php on line 19 
第19行是GetUploadedFileInfo()的第一行。我还得到了第20行和第21行的错误。显然是
$file\u info
数组,但这里有什么问题

<?php 
$max_allowed_file_size = "100"; // this is size in KB 
list($name_of_uploaded_file, $type_of_uploaded_file, $size_of_uploaded_file) = GetUploadedFileInfo();
if(!Validate($name_of_uploaded_file, $type_of_uploaded_file, $size_of_uploaded_file, $max_allowed_file_size)) {
   exit();
}
LoadUploadedFile($name_of_uploaded_file);
$path_of_uploaded_file = "uploads/" . $name_of_uploaded_file;

   include_once('Mail.php');
   include_once('mime.php');

ComposeMail($path_of_uploaded_file);


//////////////////// Functions ////////////////////////

function GetUploadedFileInfo() {
   $file_info[] = basename($_FILES['uploaded_file']['name']);
   $file_info[] = substr($file_info[0], strrpos($file_info[0], '.') + 1);
   $file_info[] = $_FILES["uploaded_file"]["size"]/1024;
   return $file_info;
}


function Validate($name_of_uploaded_file, $type_of_uploaded_file, $size_of_uploaded_file, $max_allowed_file_size) {
   if($size_of_uploaded_file>$max_allowed_file_size ) {
       echo "Size of file is greater than" . $max_allowed_file_size . " KB. <a href='attachment_email_form.html'>Click Here to upload a smaller sized file.</a>";
      return false;
   }
$allowed_extension = array("jpg", "jpeg", "gif", "bmp");
for($i=0; $i<sizeof($allowed_extension); $i++) { 
   $allowed_extension[$i] = strtoupper($allowed_extension[$i]); 
}
$type_of_uploaded_file = strtoupper($type_of_uploaded_file);
if(!(in_array(strtoupper($type_of_uploaded_file),$allowed_extension))) {
   echo "You have uploaded a file with an extension of " . $type_of_uploaded_file . " . This type is not allowed. Please upload a file with allowed image extensions like jpg, jpeg, bmp, gif. <a href='attachment_email_form.html'>Click Here to upload a file with allowed extension.</a>";
   return false;
}
   return true;
}


function LoadUploadedFile($name_of_uploaded_file) {
   move_uploaded_file($_FILES["uploaded_file"]["tmp_name"], "uploads/" . $name_of_uploaded_file);
   return true;
}


function ComposeMail($name_of_uploaded_file) {
   $name = $_POST['name'];
   $user_message = $_POST['message'];
   $to = "RecipietnEmail@hotmail.com";
   $subject="An email with attachement is sent";
   $from = "SenderEmail@hotmail.com";
   $text = "A user " . $name . "has sent you this message and an attachment: " . $user_message;
   $message = new Mail_mime(); 
   $message->setTXTBody($text); 
   $message->addAttachment($name_of_uploaded_file);
   $body = $message->get();
   $extraheaders = array("From"=>$from, "Subject"=>$subject);
   $headers = $message->headers($extraheaders);
   $mail = Mail::factory("mail");
   $mail->send($to, $headers, $body);
   echo "Your Email with attachment was sent.";
}
?>

叫我疯了,但我尝试了这个,没有得到一个解析错误-你确定你正在查看正确的文件(或它的正确版本)


编辑:那么我能想到的唯一一件事就是单引号正在关闭一个在其他地方打开的字符串。

叫我疯了,但我尝试了这个,没有得到解析错误-你确定你正在查看正确的文件(或它的正确版本)


编辑:那么我唯一能想到的就是单引号正在关闭一个在其他地方打开的字符串。

$file\u info不是一个函数,而是一个变量(数组)


您发布的代码没有任何错误。我将它复制/粘贴到一个php文件并运行lint:php-l,它报告:在测试中未检测到语法错误。php

$file\u info不是一个函数,而是一个变量(数组)


您发布的代码没有任何错误。我将它复制/粘贴到一个php文件并运行lint:php-l,它报告:在测试中未检测到语法错误。php

错误消息看起来像是在
$file\u info[]
中需要索引。您使用的是一个古老版本的PHP,它不识别用于附加到数组末尾的“
[]
”语法吗?

错误消息看起来需要在
$file\u info[]
中使用索引。您使用的是一个古老版本的PHP,它不识别用于附加到数组末尾的“
[]
”语法吗?

您收到的错误表明括号或引号不匹配,但是语法看起来很好。我能够毫无错误地运行该函数:


$ php -a
Interactive shell

php > function GetUploadedFileInfo() {
php {    $file_info[] = basename($_FILES['uploaded_file']['name']);
php {    $file_info[] = substr($file_info[0], strrpos($file_info[0], '.') + 1);
php {    $file_info[] = $_FILES["uploaded_file"]["size"]/1024;
php {    return $file_info;
php { }
php > print_r(GetUploadedFileInfo());
Array
(
    [0] => 
    [1] => 
    [2] => 0
)
@PhilhoPHP允许您动态创建数组变量。但是,由于未正确初始化该变量,因此在其他地方初始化该变量时,可能会出现意外行为。但是,由于变量是在函数内部隔离的,而不是全局访问的,所以在这种情况下就可以了


$ php -a
Interactive shell

php > $a = array();
php > $a[] = 'Hello, world!';
php > print_r($a);
Array
(
    [0] => Hello, world!
)
php > $b[] = 'Hello, SO!';
php > print_r($b);
Array
(
    [0] => Hello, SO!
)

另外,您正在运行什么版本的PHP?我的示例使用PHP5.2.8-pl2-gentoo。

您收到的错误表明括号或引号不匹配,但是语法看起来很好。我能够毫无错误地运行该函数:


$ php -a
Interactive shell

php > function GetUploadedFileInfo() {
php {    $file_info[] = basename($_FILES['uploaded_file']['name']);
php {    $file_info[] = substr($file_info[0], strrpos($file_info[0], '.') + 1);
php {    $file_info[] = $_FILES["uploaded_file"]["size"]/1024;
php {    return $file_info;
php { }
php > print_r(GetUploadedFileInfo());
Array
(
    [0] => 
    [1] => 
    [2] => 0
)
@PhilhoPHP允许您动态创建数组变量。但是,由于未正确初始化该变量,因此在其他地方初始化该变量时,可能会出现意外行为。但是,由于变量是在函数内部隔离的,而不是全局访问的,所以在这种情况下就可以了


$ php -a
Interactive shell

php > $a = array();
php > $a[] = 'Hello, world!';
php > print_r($a);
Array
(
    [0] => Hello, world!
)
php > $b[] = 'Hello, SO!';
php > print_r($b);
Array
(
    [0] => Hello, SO!
)

另外,您正在运行什么版本的PHP?我的示例使用PHP5.2.8-pl2-gentoo。

浏览器是否直接请求send-email-form.PHP,或者它是否正在访问包含或需要send-email-form.PHP的其他PHP文件


如果另一个脚本包含它,请检查此文件之前包含的任何PHP代码或主文件中的任何内联PHP代码中是否没有不匹配的字符(括号、引号、大括号等)。

浏览器是否直接请求send-email-form.PHP,或者它正在访问其他包含或需要send-email-form.PHP的PHP文件


如果是另一个脚本包含它,请检查此文件之前包含的任何PHP代码中,或主文件中的任何内联PHP代码中是否没有不匹配的字符(括号、引号、大括号等)。

我解决了这个问题


不确定这实现了什么,但我将第19行下推到第20行,在函数GetUploadedFileInfo()的18行之后留下一个空行{

我解决了问题



不确定这完成了什么,但我将第19行下推到第20行,在函数GetUploadedFileInfo()的18行之后留下一个空行{

换行符有什么问题?!我使用的是5.2.8。如果需要,我可以为此发布html。如果你删除文件中的所有内容,并让它只显示以下内容:这没有导致错误。因此,这告诉我错误存在于php文件中。换行符有什么问题?!我使用的是5.2.8。如果需要,我可以为此发布html。如果你只需删除文件中的所有内容,并使其仅显示以下内容:这不会导致任何错误。因此,这告诉我错误存在于php文件中。我也尝试过,但没有出现解析错误。是的,我尝试过一百次。仍然没有用。我也尝试过,但没有出现解析错误。是的,我尝试过一百次imes。仍然没有用。php的最新版本。我在几周前安装了它,到目前为止,它是完美的。我是否可能有上传文件夹路径错误?如果文件夹中没有var,这有什么关系吗?我使用的一个愚蠢的伎俩就是简单的回音“hello world”在脚本或函数调用的顶部,验证我调试的是正确的spot.php的最新版本。我几周前安装了它,到目前为止,它是完美的。我是否可能上传文件夹路径错误?如果文件夹中不存在该变量,这有什么关系?我使用的一个愚蠢的技巧只是一个简单的回音“hello world”在脚本或函数调用的顶部,验证我调试的位置是否正确。我使用的是最新版本的PHP。您是否可以注释掉第19-21行,并将以下代码放在它们的位置,然后查看是否仍有语法错误?$file\u info[]=“hello”;$file\u info[]=“world”$file\u info[]=“world”!”;刚刚尝试过,但仍然会出现相同的错误。我使用的是最新版本的PHP。请您将第19-21行注释掉,并将以下代码放在相应位置,然后查看是否仍有语法错误?$file_info[]