gpt4 book ai didi

php - 如何从字符串输出中删除回车符?

转载 作者:IT王子 更新时间:2023-10-29 01:19:37 25 4
gpt4 key购买 nike

我将 wordpress 用作 CMS,并尝试允许输入用户字段以填充 Google map 脚本中的信息窗口。我正在使用它来选择 ID 并从自定义字段中提取内容。

它工作正常,除非自定义字段中有任何破坏脚本的 html。
我查看了 htmlspcialchar 和 htmlentities,但我不想删除所有内容,而是希望将其转义,以便它仍然有效并且 html 完好无损。有什么建议么?我是 PHP 的新手,非常感谢任何指点。

一段时间后,我仍然找不到很好的解决方案。 TheDeadMedic 建议我使用 esc_js

但是它打印了所有实际的 html 代码而不是渲染它。

感谢 nickfs,因为该解决方案稍微好一些,但如果输出中有任何回车符,脚本仍然会中断,这对于 CMS 来说不是很好。

我尝试的其他方法是使用 trim 函数。这就是我现在所处的位置,只要输出中没有\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);

还有关于如何实现这一目标的其他想法吗?

最佳答案

我不完全理解你的确切问题,但你的问题标题的答案很简单:

$snip = str_replace('.', '', $snip); // remove dots
$snip = str_replace(' ', '', $snip); // remove spaces
$snip = str_replace("\t", '', $snip); // remove tabs
$snip = str_replace("\n", '', $snip); // remove new lines
$snip = str_replace("\r", '', $snip); // remove carriage returns

或多合一解决方案:

$snip = str_replace(array('.', ' ', "\n", "\t", "\r"), '', $snip);

你也可以使用正则表达式:

$snip = preg_replace('~[[:cntrl:]]~', '', $snip); // remove all control chars
$snip = preg_replace('~[.[:cntrl:]]~', '', $snip); // above + dots
$snip = preg_replace('~[.[:cntrl:][:space:]]~', '', $snip); // above + spaces

您仍然需要使用 addslashes() 在 Javascript 中输出 $snip

关于php - 如何从字符串输出中删除回车符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3059091/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com