0

私はこの問題を解決するために2日間の作業の大部分を費やしました。ローカルマシンに次のコードをロードすると、それが機能します。クラウド上の実際のサイトにロードすると、このエラーが発生します。

Parse error: syntax error, unexpected '<'

これは、74行目に到達したときに発生します

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

私のサイトが壊れた瞬間、どんな助けでも感謝されるでしょう。

コード:

<?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 } ?>

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

ヒアドキュメント構造を使おうとしたと思います。PHP.net。これが正しい構文です、試してみてください

4

3 に答える 3

1

の後に空白がある可能性があります<<<END。これは機能しません。その行の終わりに空白がまったくないことを確認してください。

何らかの形で追加されているか、CRLFがコードの改行として使用されている環境(Windows?)からCRのみを使用するマシン(Linux?)に移動している可能性があります。

于 2012-07-10T14:28:34.267 に答える
0

構文は問題ないようです。変数を使用してみてください。

$html = <<<END
bla
bla
END;
echo $html;
于 2012-07-10T14:32:51.807 に答える
0

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

ヒアドキュメント構築を使用しようとしたと思います。PHP.net . これが正しい構文です。試してみてください

于 2012-07-10T14:24:15.203 に答える