使用PHP的Google地图API中的未终止字符串常量


Unterminated string constant in Google Map API using PHP

我有一个未终止字符串常量的问题。

下面是我的PHP代码:

'html' => '<div><table><td><tr><img src="' . "http://www.simbawave.com/_lib/file/img/hotel/$FolderHotel/$NamaFile" . '"width="200" height="200" /></tr><tr><p><b>'.$Hotel."</b></p></tr></td><td>$Alamat</td></table></div>", 

,这里是HTML源代码(结果,不是全部,它会太长)

markers[8] = new google.maps.Marker({
    icon: "http://www.simbawave.com/MapBlueIcon/villa.png",
    title: "Bali Dynasty Resort",
    position: new google.maps.LatLng(-8.747509, 115.16764),
    map: map
});
infos[8] = new google.maps.InfoWindow({
    content: "<div><table><td><tr><img src='"http://www.simbawave.com/_lib/file/img/hotel/HO-00009/depan2web.jpg'"width='"200'" height='"200'" /></tr><tr><p><b>Bali Dynasty Resort</b></p></tr></td><td> Jln. Kartika Po Box 2047
Tuban 80361
South Kuta
Bali - Indonesia</td></table></div>"
});

如果我删除变量$Alamat,它会很好,没有问题。但是我有$Alamat,我不知道我的PHP代码有什么问题。

$Alamat的值如下(string/varchar):

Jln. Kartika Po Box 2047
Tuban 80361
South Kuta

但是在HTML视图中,它只显示:

Jln。卡蒂卡邮筒2047

我认为在传递到HTML时应该有一些字符丢失。

Tuban 80361
South Kuta
Bali - Indonesia</td></table></div>

我认为这些是字符没有传递,使这个错误,因为$Alamat包含多行而不是单行,而$Hotel包含单行字符串。

有人知道如何使这个varchar多行可以在PHP中使用吗?

如果您可以尝试不依赖PHP换行符。输入一些<br />,因为你无论如何都要将HTML传递给内容。

我也有一个类似的问题,然而,我的HTML格式正确…一旦我能弄清楚我的问题,我会更新这个答案:),但是现在,做一个str_replace并替换所有的PHP换行符'r &'n<br />

我已经解决了我自己的问题,并想与你分享我所做的。

function FormatMapContent($str){
    return str_replace(array('.', "'n", "'t", "'r"), '', $str); 
}

用它来包装你的InfoWindow内容,你应该很好。

HTH~凯文