解析错误:语法错误,意外'<'-----使用echo <<< END ** END; -------

问题描述:

我已经投入了2天的工作,试图解决这个问题,当我在我的本地机器上加载下面的代码相当一部分它的工作原理,当我把它做真正的网站上,云它会提示这个错误。解析错误:语法错误,意外'<'-----使用echo <<< END ** END; -------

Parse error: syntax error, unexpected '<' 

这种情况发生,当它到达行74

73 <?php 
74 echo <<<END 
75 <p>$fullAddress<br />Phone: 

目前我的网站被打破任何帮助将apreciated。

代码:

<?php 
    $addressArray = array(
     $row->fldAddress1, 
     $row->fldAddress2, 
     $row->fldCity, 
     $row->fldCounty, 
     $row->fldPostcode 
    ); 

    $fullAddress = implode(", ", array_filter($addressArray)); 

    $locationAsString = str_replace(array('-',"."), ' ', $row->location); 
    $locationAsString = str_replace("ireland", "northern ireland", $locationAsString); 

    $addressTeaser = $row->fldCity . ", " . $row->fldCounty . ", " . $row->fldPostcode . ", " . $locationAsString; 

    $shopName = $row->fldShopNameTidy; 
    $head = substr($shopName,0,1); 
    $head = strtoupper($head); 

    $storeHasWebsite = ($row->fldShopWebsite != "" && $row->fldShopWebsite != " " && $row->fldShopWebsite != null); 
    $storeHasStudio = $row->fldSSStudio; 
    $storeHasSnappyStudio = $row->fldStudio; 
    $storeHasBusinessPrinting = $row->fldBusiness; 
    $storeHasAnyStudio = $storeHasStudio || $storeHasSnappyStudio; 
    $storeHasAnyExtras = $storeHasStudio || $storeHasSnappyStudio || $storeHasBusinessPrinting; 

    $distance = $row->distance; 

    if ($distance < 100) { 

?> 

<tr> 
    <td> 

<?php boxLightHeader(); ?> 

    <div class="store-details-main-wraper"> 
     <a id="<?php echo($head); ?>" name="<?php echo($head); ?>" style="display:block;height:0px;width:0px;overflow:hidden;">$head</a> 

     <span class="shopnametidy" style="display:none;"><?php echo($row->fldShopNameTidy); ?></span> 

     <span class="shoplisttitle"><a href="/stores/<?php echo($row->fldShopNameTidy); ?>"><?php echo($row->fldShopName); ?></a></span> 
     <span> 
      <?php 
       if ($row->distance) { 
        echo("($row->distance miles)<br />"); 
       } 
      ?> 
     </span> 

     <?php if ($storeHasWebsite) { ?> 
      <a href="http://<?php echo($row->fldShopWebsite); ?>" class="web-clickthru-tracking" target="_blank" rel="nofollow"> 
      <img src="/assets/images/icons/start-shopping-off.png" title="Start Shopping" class="img-swap" />Click &amp; Collect</a><br > 
     <?php } ?> 

     <div> 
      <a href="/stores/<?php echo($row->fldShopNameTidy); ?>/map" class="map-tracking "> 
       <img src="/assets/images/icons/map-32-off.png" title="map" class="img-swap" />Map 
      </a> 

      <a href="/store-finder/direction/<?php echo($row->fldShopNameTidy); ?>" class="directions-tracking"> 
       <img src="/assets/images/icons/directions-32-off.png" title="directions" class="img-swap" />Directions 
      </a> 

      <span class="contactStore details-tracking"> 
      <img src="/assets/images/icons/store-contact-off.png" title="Contact" class="img-swap" /> 
      Contact details</span> 

      <div class="contact-details-slider" style="height:140px;"> 
      <div class="contact-details" style="float:left;"> 
<?php 
echo <<<END 
<p>$fullAddress<br />Phone: 
$row->fldShopTel<br /> 
$row->fldShopEmail</p> 
<hr class="hor-bar-color" /> 
<p>Get these contact details by: 

<span class="sendEmailNew sendLink details-email-tracking" style="font-weight:bold; font-size:1.2em; text-decoration:underline">email</span> or 
<span class="sendTextNew sendLink details-text-tracking" style="font-weight:bold; font-size:1.2em; text-decoration:underline">text</span> 
<input name="shopId" type="hidden" value="$row->fldID" /> 
<span class="shopId" style="display:none;">$row->fldID</span></p><hr class="hor-bar-color" /> 
END; 
?> 
      </div> 
      <div class="contact-form-placeholder" style="display:none;">foo</div> 
      </div> 
     </div> 

     <div class="extra-services"> 
<?php 
if ($storeHasAnyExtras) { 
echo <<<END 
<span class="contactStore details-tracking">Specialist services:</span> 
END; 
} 

if ($storeHasStudio){ 
echo <<<END 
<img src="/assets/images/icons/portrait-studio.jpg" title="Snappy Snaps Studio" /> 
END; 
} 

if ($storeHasSnappyStudio){ 
echo <<<END 
<a href="http://www.snappystudio.com/" target="_blank" rel="nofollow"> <img src="/assets/images/icons/snappy-studio-off.png" class="img-swap" title="Snappy Studio" /></a> 
END; 
} 

if ($storeHasBusinessPrinting){ 
echo <<<END 
<a href="http://www.snappysnapsprinting.co.uk/" target="_blank" rel="nofollow"><img src="/assets/images/icons/business-printing-off.png" class="img-swap" title="Business printing" alt="Snappy Snaps business printing" /></a> 
END; 
} 
?> 

    <span class="shoplistservice" style="visibility:hidden; font-size:2px;"> 
     <?php 
      if ($storeHasAnyStudio){ 
       echo "Studio "; 
      } 
      if ($storeHasBusinessPrinting){ 
       echo "Business Printing"; 
      } 
     ?> 
    </span> 

    <span class="shoplistaddress" style="visibility: hidden"> 
     <?php echo($addressTeaser); ?> 
    </span> 
    </div> 
    </div> 
<?php boxLightFooter(); ?> 

    </td> 
</tr> 

<?php } ?> 
+0

这段代码[似乎是工作](http://codepad.org/ZaboSRsT)。你确定错误在那条线上吗? – jprofitt 2012-07-10 14:26:16

+0

嗯......我现在没有时间检查,但您确定END不是保留字吗?此外,当涉及到空白时,Heredocs可能会很痛苦 - 我会检查以确保在终止令牌之前/之后没有任何额外的空白。 – 2012-07-10 14:26:40

<<<END之后可能有空格。这不起作用。检查该行末尾是否有空格。

无论它被以某种方式加入,或者CRLF在代码中使用的换行符(的Windows?)到只使用CR(Linux呢?)

+0

对,任何添加的字符都会影响解析。 – 2012-07-10 14:33:12

+0

谢谢你会检查.... – user1514899 2012-07-10 16:37:10

+0

我检查了白色的空间,他们是正确的, – user1514899 2012-07-10 16:39:15

echo <<<_END
//Woah, it works!
_END;

我认为你试图用定界符建设。 PHP.net。 这里是正确的语法,试试吧

+3

@ametren - (张贴反对军阀的答案,因为你现在已经删除)我downvaoted您的文章,但我还没来得及写我的评论解释为何要删除......但建议你在定界符读了 - HTTP:/ /uk.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc – 2012-07-10 14:27:51

+0

@MarkBaker谢谢你的提示,它不是我遇到过的。它达到-4没有评论,所以我删除了它,但我感谢你纠正我的知识的努力! – ametren 2012-07-10 14:38:19

+0

谢谢我会研究一下,很高兴看到解决方案。 – user1514899 2012-07-10 16:16:03

你的语法看起来机器很可能是因为您的环境之间移动精细。你可能想尝试使用一个变量:

$html = <<<END 
bla 
bla 
END; 
echo $html; 
+0

OH还有另一种选择,非常感谢,我今天刚加入,我收到了很好的答复,感谢来自伦敦的各位... – user1514899 2012-07-10 16:16:56