PHP: syntax error, unexpected T_STRING

php, syntax-error

Solution

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

Problem

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.

Original source