我正在使用wordpress作爲CMS,並試圖允許輸入用戶字段來填充Google Map腳本中的信息窗口。我正在使用它來選擇ID並從自定義字段中提取內容。如何從字符串輸出中刪除回車符?
它工作正常,除非有自定義字段中的任何html中斷腳本。
我看着htmlspcialchar和htmlentities,而不是去掉所有東西,我想讓它逃脫,所以它仍然有效,並且html完好無損。有什麼建議麼?我對PHP很新,並且非常感謝任何指針。
過了一段時間,我仍然無法找到一個很好的解決方案。 TheDeadMedic建議我使用esc_js
但打印所有實際的html代碼而不是渲染它。
非常感謝nickfs,因爲該解決方案稍微好一些,但如果輸出中有回車符,腳本仍然會中斷,這對於CMS來說並不那麼好。
我試過的其他東西是使用修剪功能..這是我現在在哪裏工作,只要輸出中沒有\ r。 $ snip字符串,mapExcerpt字段是來自哪裏的回報:
<?php $post_id = 207; // Wordpress Post ID
$my_post = get_post($post_id);
$mapTitle = $my_post->post_title;
$mapIMG = get_post_meta($post_id, 'mapImage', true);
$snip = get_post_meta($post_id, 'mapExcerpt', true);
$lat = get_post_meta($post_id, 'lat', true);
$long = get_post_meta($post_id, 'long', true);
$pass_to = '<div class="span-8"><div class="mapTitle">'.$mapTitle.'</div><div class="mapContent">'.$snip.'</div></div>';
$trimmed = trim($pass_to, " \r.");
?>
var point = new GLatLng('<?php echo $lat; $lat; ?>','<?php echo $long; $long; ?>');
var marker = createMarker(point,"<?php echo $mapTitle; $mapTitle; ?>", '<?php echo addslashes($trimmed); ?>');
map.addOverlay(marker);
有沒有其他的想法可以解決這個問題?
爲什麼在自定義字段中會有HTML? – Tom 2010-08-25 13:47:00
@Tom控制佈局,鏈接等... – Zac 2010-08-27 03:43:01
爲什麼不設置一個名爲「位置」的自定義字段,他們只能輸入該緯度/長度併爲鏈接,佈局等定義一系列其他自定義字段? – Tom 2010-08-27 06:32:52