我在嵌套报价方面遇到问题。。。实际上更像是一个悖论。
因此,这是一段代码,我在其中使用了4个级别的nestes引号,不知何故(我可以在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循环中,所以它必须被回显出来)
您可以通过使用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;
Backsplash不会转义HTML属性中的引号。相反,应该分别使用"
或'
作为"
和'
。
此外,您可以使用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;