обрезка php не будет работать - PullRequest
0 голосов
/ 16 июня 2011

Итак, у меня есть серверный 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 ]

10 голосов
/ 16 июня 2011

\ n должно быть в двойных кавычках, а не в одинарных

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

Когда значение в одинарных кавычках, оно анализируется как литерал.В этом случае \n вместо символа новой строки вы пытаетесь обрезать.

4 голосов
/ 16 июня 2011

Вам необходимо поместить символ \n в строку в двойных кавычках (").

PHP не вставляет эти специальные символы в строки, разделенные одинарными кавычками (').

3 голосов
/ 16 июня 2011

Просто используйте

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

Ссылка: http://php.net/manual/en/function.trim.php

Эта функция возвращает строку с пробелами, удаленными из начала и конца строки.Без второго параметра 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);
...