Q:

PHP: syntax error, unexpected T_STRING

I am getting a syntax error for this PHP code
syntax error, unexpected T_STRING

It says line 2, which is the include line:
<?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;  
?>

My include file looks like this:
<?php  
  $mysql_link = mysql_connect("localhost","user","password");  
  mysql_select_db("db_name") or die("Could not select database");  
  $images_dir = "photos";  
?> 

Solution:
I had invisible unicode characters hidden in the code which caused the PHP parser to complain of the above syntax error.

A:

You have multiple spaces at the start and the end of your HEREDOC syntax variables; this leads to problems. Remove the spaces after
<<<__HTML_END

and after
__HTML_END;

and your code should be working.
See also this thread where I found the answer: http://board.phpbuilder.com/board/showthread.php?t=10333424

A:

Delete the first few lines and rewrite them.  Sometimes if you copy and paste code, it can insert unicode invisible characters, which aren't parsed correctly by PHP. So it throws this error. It's happened to me several times.

