【发布时间】:2013-03-19 23:59:51
【问题描述】:
当我解析一个站点并打印出纯文本时,我在打印输出中得到很多无法通过 str_replace 删除的换行符。
例如,如果我解析 eBay 并查找结束时间,
$ebayEndTime = $this->html_simple_dom->find( 'span[class=vi-tm-left]', 0 )->plaintext;
打印出来是这样的:
\t\t\t\t\t(2013 年 3 月 19 日\n\t\t\t\t\t15:10:11 PDT)\n\t\t\t
尝试删除它没有效果:
$search = array('\n', '\t', '\r');
error_log("end time:" . str_replace( $search, " ", $ebayEndTime));
仍然导致:
\t\t\t\t\t(2013 年 3 月 19 日\n\t\t\t\t\t15:10:11 PDT)\n\t\t\t
我需要怎么做才能删除换行符/制表符?我什至尝试过彻底:
$search = array('\n', '\t', '\r', '\\n', '\\t', '\\r', '\\\\n', '\\\t', '\\\r', '\\\\n', '\\\\t', '\\\\r');
据我所知,Java 要求对转义字符进行转义,但是当它打印在日志文件中时,是否将其打印为使用 '\' 的 html 代码?
【问题讨论】:
-
我确实尝试过 nl2br() 因为它是我尚未尝试过的东西,但它也没有工作,似乎它正在使用特殊字符打印出来 - 否则,我相信我的 str_replace电话会解决它。如果我使用换行符/制表符复制并粘贴字符串并通过确实有效的 str_replace 调用运行它,那么它似乎是使用特殊字符打印出来的
-
这回答了这个问题......那么为什么我的 str_replace 不这样做 - 它真的需要正则表达式吗? stackoverflow.com/questions/1703320/…
-
问题是单引号字符串被逐字处理。插值需要双引号。
标签: php newline simple-html-dom