-1

我在嵌套引用方面遇到问题……实际上更像是一个悖论。

所以这是我使用 4 级嵌套引用的代码段,并且不知何故(对于我在 Chrome 的开发人员工具中看到的)浏览器错误地解释了第三和第四级:

    echo
    "<script type='text/javascript'>
    var latlng = new L.LatLng(".$row ['lat'].", ".$row ['long']."); 
    var flyer = ";

    echo 
    "\"<img class='flyerwide' 
    src='http://plandenuit.com/boliches/flyers/".$clubday."/".$name.".jpg'/>
    <br /><br />";

    echo "<a href='#' onClick='return false' onmousedown=

1.3 在这一行是问题,我使用 ' 作为第三级引用和 \' 作为第四

    'javascript:swapContent(\'profilepage\',\'\',\'".$influenceGroupRow['id']."\');'>

1.3 问题行尾

    <img class='pic' src='http://graph.facebook.com/".$influenceGroupRow['id']."/picture'/></a>";

    echo
    "\"; 
    var MyIcon = L.Icon.extend({
    iconUrl: 'boliches/icons/".$name.".png',
    shadowUrl: null,
    iconSize: new L.Point(50, 50),
    shadowSize: null,
    iconAnchor: new L.Point(25, 25),
    popupAnchor: new L.Point(1, 1)
    }); 
    var icon = new MyIcon();    
    var marker = new L.Marker(latlng, {icon: icon});
    map.addLayer(marker);   
    marker.bindPopup(flyer);
    map.panTo(new L.LatLng(".$setlat.", ".$setlong."));
    </script>
    ";

现在,我已经尝试了几乎所有我能想象或谷歌的东西。Chrome 的开发者工具显示浏览器对这一行的解释如下:

    <a href="#" onclick="return false" onmousedown="javascript:swapContent(" profilepage','','1005497360');'="">

有人能破解这个吗?我在这里有点业余。(哦!顺便说一句,这一切都在一个while循环中,所以它必须被回显出来)

4

2 回答 2

0

反斜杠不会转义 HTML 属性中的引号。相反,您应该分别使用&quot;or&apos;和。"'

此外,您可以使用 HEREDOC 代替 PHP 中的引号:

echo <<<END
All of your stuff goes here. "quotes are fine" as are 'single quotes',
and you can still include variables like $myvar or {$myarray['key']}.
END;
于 2012-07-27T18:48:48.930 回答
0

您可以使用HEREDOC消除至少一个级别的引用:

echo <<<EOL
<script type="text/javascript">
    var latlng = new L.LatLng({$row ['lat']}, {$row['long']}); 
    var flyer = '<img class="flyerwide" src="http://plandenuit.com/boliches/flyers/{$clubday}/{$name}.jpg"/ ><br /><br />';
etc...
EOL;
于 2012-07-27T18:50:28.877 回答