如何从PHP字符串中删除所有换行符和转义字符?
How do I remove all newlines and also escape characters from a string in PHP?
对于我在PHP中构建的YouTube web应用程序,我有一个简单的视频播放器,嵌入一个<iframe>
,然后一个<div>
与当前加载的视频(描述,id,标题等)的信息。
A <ul>
包含一个视频列表,使用PHP gData API从YouTube获取,每个<li>
包含一个链接,激活JavaScript将视频播放器更改为正确的视频,并更新页面上的视频信息。
这里是问题:gData
返回多行,非转义序列的视频描述,这在JavaScript中不起作用。我应该如何删除换行符并用<br>
替换它们(注意它们不是像'n
那样的换行符,它们是实际的换行符和换行符)。
我还必须转义在JavaScript字符串中不起作用的其他东西,例如撇号字符'
。最好的方法是什么?
不要试图自己逃避东西。只需使用json_encode,它将为您处理所有这些细节:
<script type="text/javascript">
var description = <?php echo json_encode($description) ?>;
</script>
Marc B给出了最好的答案。使用json_encode: http://php.net/manual/en/function.json-encode.php去吧,给他的答案投票。
以下是我的原始回复:
<?php
$data = "Hello, 'world'.'nHow are you doing?'n'"Good?'"'n";
$data = str_replace("'n", '<br>', $data);
$data = str_replace('"', ''"', $data);
$data = str_replace("'", "''", $data);
echo $data;
?>
相同的东西使用regex:
<?php
$data = "Hello, 'world'.'nHow are you doing?'n'"Good?'"'n";
$data = preg_replace("/'n/", '<br>', $data);
$data = preg_replace("/'"|'/", ''"', $data);
echo $data;
?>
给出了这些例子,你真的不需要转义单引号和双引号。在JavaScript中,可以使用双引号字符串,也可以使用单引号字符串。因此,使用一个并转义另一个。
您可能还需要转义反斜杠(将'
替换为''
)以确保一些有趣的YouTube上传者不会试图通过在视频描述中放置foo''bar
来破坏您的PHP脚本。现在,如果你不转义反斜杠,这会破坏你的脚本,因为JavaScript字符串替换后现在看起来像:'foo'''bar'
,这是一个语法错误,因为字符串在'foo'''
结束。
- javascript替换换行符和特殊字符
- 尊重“; 〃;从HTML显示中的API响应返回的换行符(和特殊字符)
- javascript是否有一个选项可以使句点与任何字符匹配,包括换行符
- 如何在指定字符后添加换行符
- 正确转义 javascript json 字符串中的换行符
- Javascript HTML 转义但保留换行符
- 用换行符替换字符
- 删除或重复的非单词字符,如HTML文本区域中的换行符,这些字符会导致modsecurity中的错误
- 显示文本中的x个字符,当单击href时,用换行符显示其余字符
- Json.分析转义换行符
- 如何在每80个字符后插入换行符
- 特殊字符前的换行符
- json_encode获胜't转义换行符
- 计算文本区域中的字符和换行符
- JSON:处理textArea中的换行符(和其他无效的JSON字符)
- JavaScript用换行符替换换行转义序列
- 如何从PHP字符串中删除所有换行符和转义字符?
- Angular.js textarea字符计数,排除空格和换行符计数
- CSV文件中的 字符不被视为换行符
- 如何在javascript中每三个字符添加一个换行符