Php 断开行至车厢返回预更换

Php 断开行至车厢返回预更换,php,Php,我正在尝试使用preg_replace转换或转换为回车&13;。我的问题似乎是,它要么找不到,要么无法识别我要传递的十六进制代码。以下是我的相关PHP: preg_replace('`<br(?: /)?>(\x{13}/u)`', '$1', $content); 其他信息:我传递的字符串有,但我认为这不会影响preg_replace。 以下是一些帮助我走到这一步的链接: 在工具提示中使用回车代替\n回车 使用\x{13}而不是&13Hmmm,您的preg\u replace格式

我正在尝试使用preg_replace转换或转换为回车&13;。我的问题似乎是,它要么找不到,要么无法识别我要传递的十六进制代码。以下是我的相关PHP:

preg_replace('`<br(?: /)?>(\x{13}/u)`', '$1', $content);
其他信息:我传递的字符串有,但我认为这不会影响preg_replace。 以下是一些帮助我走到这一步的链接: 在工具提示中使用回车代替\n回车
使用\x{13}而不是&13

Hmmm,您的preg\u replace格式似乎有点奇怪。不知道你为什么要这样做?对于这样简单的事情,第一个变量应该是regex。第二个应为替换,第三个应为:

preg_replace('%<br.*?>%', '&#13;', $content);

我想那会管用,但我不擅长正则表达式?应该匹配任何字符,直到下一个>

您是否将其用于web显示?如果是这样的话,我不确定您为什么要更换回车标签。您发布的第一个链接的回复正确地指出:

插入回车符/换行符的图元时 或 将在Internet Explorer for Windows中生成所需的结果,它不是任何标准的一部分,并且不受Windows上Gecko浏览器的支持。我没有测试过其他平台

@乔斯特

然而,我们需要纠正您的问题。第一个参数是要匹配的模式,第二个参数是要替换该匹配的内容,第三个参数是内容

正确的实现应该是这样的

echo preg_replace('/<br\s?\/?>/', '\x{13}/u', "<br> <br />");

我不确定\x{13}/u位是否能正常工作,因为我没有测试过。

分号在字符串中,因此无论如何都不会被解释为行尾。所以您的第一个实现应该运行良好。谢谢Ben!它现在正在查找并替换我的!在我的工具提示中,&13似乎没有创建回车符,但这不是一个PHP问题。@paul.s您能解释一下您的评论吗?我尝试使用[\x{13}/u],但它只是将其作为明文输入。很好,但正如您所知,Paul的模式示例没有我的那么贪婪。如果你说你有这样或那样的怪事,我的也行。如果您缺少结束标记>,它将替换所有内容,直到找到下一个结束标记。编辑:我在关闭php脚本时遇到意外的结束错误。原因是我想将返回的内容放入只输出纯文本的工具提示中。我原本的问题应该更具体一些——尽管我在工具提示中添加了一个关于换行符的链接。你是否阅读了我的答案以及你列出的页面上的引用?它不是任何标准的一部分,因此它很可能无论如何都不起作用。我继续回答只是为了说明你的正则表达式是如何变形的。不幸的是,我不知道如何在PHPPaul中打印十六进制代码,是的,谢谢你的帮助。在某些浏览器中,我必须不间断地生存。Ben的解决方案在IE中非常有效。随着标准的发展,我将不得不更新我的功能。以下是我的结论:preg_replace“%”、“&13;*”$钥匙在*所在的位置换行。它也适用于铬合金。