2

このPHPコードの構文エラーが発生します

syntax error, unexpected T_STRING

インクルードラインである2行目です。

<?php  
  include 'config.inc.php';  
  
  // initialization  
  $photo_upload_fields = '';  
  $counter = 1;  
  
  // If we want more fields, then use, preupload.php?number_of_fields=20  
  $number_of_fields = (isset($_GET['number_of_fields'])) ?  
    (int)($_GET['number_of_fields']) : 5;  
  
  // Firstly Lets build the Category List  
  $result = mysql_query('SELECT category_id,category_name FROM gallery_category');  
  while($row = mysql_fetch_array($result)) {  
    $photo_category_list .= <<<__HTML_END

<option value="$row[0]">$row[1]</option>\n  
__HTML_END;  
  }  
  mysql_free_result( $result );    
  
  // Lets build the Image Uploading fields  
  while($counter <= $number_of_fields) {  
    $photo_upload_fields .= <<<__HTML_END  
<tr><td>  
  Photo {$counter}:  
  <input name="photo_filename[]"  
type="file" />  
</td></tr>  
<tr><td>  
  Caption:  
  <textarea name="photo_caption[]" cols="30"  
    rows="1"></textarea>  
</td></tr>  
__HTML_END;  
    $counter++;  
  }  
  
  // Final Output  
  echo <<<__HTML_END  
<html>  
<head>  
<title>Lets upload Photos</title>  
</head>  
<body>  
<form enctype="multipart/form-data"  
  action="upload.php" method="post"  
  name="upload_form">  
  <table width="90%" border="0"  
    align="center" style="width: 90%;">  
    <tr><td>  
      Select Category  
      <select name="category">  
      $photo_category_list  
      </select>  
    </td></tr>  
    <! - Insert the image fields here -->  
    $photo_upload_fields  
    <tr><td>  
      <input type="submit" name="submit"  
        value="Add Photos" />  
    </td></tr>  
  </table>  
</form>  
</body>  
</html>  
__HTML_END;  
?>

私のインクルードファイルは次のようになります。

<?php  
  $mysql_link = mysql_connect("localhost","user","password");  
  mysql_select_db("db_name") or die("Could not select database");  
  $images_dir = "photos";  
?> 

解決:

コードに非表示のUnicode文字が隠されていたため、PHPパーサーが上記の構文エラーについて文句を言いました。

4

4 に答える 4

5

HEREDOC 構文変数の先頭と末尾に複数のスペースがあります。これは問題につながります。後のスペースを削除します

<<<__HTML_END

以降

__HTML_END;

あなたのコードは動作するはずです。

私が答えを見つけたこのスレッドも参照してください: http://board.phpbuilder.com/board/showthread.php?t=10333424

于 2012-05-28T11:48:58.053 に答える
4

最初の数行を削除して書き直します。コードをコピーして貼り付けると、PHP によって正しく解析されない Unicode の非表示文字が挿入されることがあります。したがって、このエラーがスローされます。それは私に何度か起こりました。

于 2012-05-28T11:35:29.277 に答える
-2

include("config.inc.php");正しい構文には inclue as: を使用します。

于 2012-05-29T11:50:31.087 に答える