php trim无法正常工作

时间:2011-06-16 05:00:05

标签: php javascript ajax xmlhttprequest trim

所以我有一个服务器端ajax php文件:

$thing = "\n\ncode\n";
echo(trim($thing, '\n'));

enter image description here

但是当我使用这个php文件进行ajax调用时,responseText没有删除新行!

enter image description here

var xhr7 = new XMLHttpRequest();
xhr7.onreadystatechange = function() {
  if (xhr7.readyState == 4) {
    if (xhr7.status == 200) {
      alert('trying');
      alert(xhr7.responseText);
      chrome.tabs.executeScript(null, {code: xhr7.responseText });
    } else {
      alert("404 server side ajax file DOES NOT EXIST");
    }
  }
};
xhr7.open('POST', 'http://texthmu.com/Devin/HMU%20ext/Post-jsfile-forItsCode.php', true);
xhr7.setRequestHeader("Content-type","application/x-www-form-urlencoded"); //following w3 
xhr7.send(); `

3 个答案:

答案 0 :(得分:10)

\ n需要使用双引号而不是单引号

echo(trim($thing, "\n"));

当值是单引号时,它被解析为文字。在这种情况下,\n代替您正在尝试修剪的换行符。

答案 1 :(得分:4)

您需要将\n字符放在双引号(")字符串中。

PHP不会在单引号(')分隔的字符串中插入这些特殊字符。

答案 2 :(得分:3)

只需使用

$thing = "\n\ncode\n"; 
echo(trim($thing));

参考:http://php.net/manual/en/function.trim.php

  

此函数返回一个字符串,其中从str的开头和结尾剥去了空格。如果没有第二个参数,trim()将删除这些字符:

     
      
  • “”(ASCII 32(0x20)),一个普通的空间。
  •   
  • “\ t”(ASCII 9(0x09)),一个标签。
  •   
  • “\ n”(ASCII 10(0x0A)),新行(换行符)。
  •   
  • “\ r”(ASCII 13(0x0D)),回车。
  •   
  • “\ 0”(ASCII 0(0x00)),NUL字节。
  •   
  • “\ x0B”(ASCII 11(0x0B)),垂直制表符。
  •   

以下评论的补充

请注意;

$thing = "\n\nco\nde\n"; // See the \n between co and de ? 
echo(trim($thing, "\n"));

如果你希望它也被删除,那么修剪不适合你。

如果您希望从字符串中删除ALL \ n,则应使用

str_replace("\n", "", $thing);