2012-01-16 4 views
1

У меня есть скрипт php, который читает файл в файле (file_get_contents). Я хочу заменить все новые строки на br и вычеркнуть все остальные символы. Тем не менее, я получаю сообщение об ошибке при интерпретации содержимого в переменной javascript.«Неожиданный EOF»: как удалить все новые строки из php-кода?

Я думаю, что виновная сторона является символом «^ Z», но я не знаю, как избавиться от нее. «^ M» является git-символом, и я считаю, что «^ Z» на самом деле является частью самой строки.

Как бы удалить этот символ в php?

enter image description here


Хорошо, мой вопрос был неправильно раньше, поэтому я обновил его с новым содержанием.

Как обеспечить, чтобы все новые строки были удалены из строки php? Эта строка считывается с помощью file_get_contents, затем javascript динамически создается с содержимым файла. «\ N» заменяется на «NEW», а «\ r» заменяется на «».

Однако, я получаю сообщение об ошибке «Неожиданный EOF», и когда я копирую строку и вставляю ее в консоль, что-то дает мне новые строки. Как я могу убедиться, что все символы новой строки (пробелы в этом вопросе) обрезаны?

trim() str_replace preg_replace

все были использованы, любая помощь очень ценится!

SyntaxError: Unexpected EOF

+0

^Z обычно ctrl + z. он может означать Конец файла. – NoviceProgrammer

+0

Я думаю, что вы неверно истолковываете сообщение об ошибке; это ошибка в коде, а не в ваших данных, и речь идет о неожиданном завершении программы, а не о буквальном символе^Z. Поскольку, по-видимому, у вас несколько уровней интерпретации, и вы не публикуете ни кода, ни источник сообщения, мы должны угадать. Я предполагаю, что у вас есть синтаксическая ошибка PHP. Преждевременное предупреждение EOF исходит из кода, например 'if (1) then', где, как минимум, вам нужно закрыть блок, чтобы исправить ошибку. – tripleee

+0

Или, если вы оцениваете строку с одним кавычком, которая сама содержит неэксклюзивные одинарные кавычки (например), это может вызвать «неожиданный EOF», где первые неэкранированные кавычки преждевременно завершают выражение. Скриншот выглядит как-то странное в первом аргументе 'JSON.parse()', может ли это быть? – tripleee

ответ

3

CTRL-Z является конечным из файла символов DOS/Windows для текстовых файлов. Если вы проверите свой входной файл, вы, вероятно, найдете там этого персонажа.

Это связано с самыми ранними днями (CP/M не менее), когда файлы были точными кратными размеру дискового сектора, поэтому у вас не могло быть файлов, которые не были бы краткими.

Итак, если вы хотите закончить файл раньше, вы разместите там специальный символ конца файла, который будет понимать процедуры чтения файлов. Это не было проблемой для двоичных файлов, так как это не имело значения, если бы они имели постороннюю информацию в конце - это, скорее всего, было бы проигнорировано. Тем не менее, вы не хотите, чтобы какой-нибудь мусор в конце вашего небольшого документа WordStar 3.3.

^Z символ Кодовый номер 26, так что вы должны быть в состоянии использовать str_replace с \x1a характером, что-то вроде:

$str = str_replace ("\x1a", "", $str); 
0

Первые вещи сначала, нет такого понятия, как мерзавца характер.

^M - код для возврата каретки, вероятно, он появился на компьютере с Windows, который работал с файлом.

^Z выглядит, как это могло бы быть «заменить словами» символ, который вы можете прочитать здесь: http://en.wikipedia.org/wiki/Substitute_character, в основном это означает, что «я не знаю, как изобразить персонажа в этом месте»

Это говорит, Я вижу, что paxdiablo опубликовал только передо мной, и этот код должен сделать трюк. Удачи с проектом!

+0

Я не имел в виду git-символ, как в «персонаж git добавляет мои файлы». Это просто diff, и, похоже, он появляется везде, где происходят изменения, когда я говорю «git diff». Я не хочу верить, что это может быть проблемой, хотя :) – andrewpthorp

+0

А, ну, на какой ОС ты? И вы сотрудничаете с кем-то другим по-другому? – ctcherry

+0

Да, это скомпилировано в окнах. В конечном счете, php-скрипт создает HTML-страницу и запускает ее через wkhtmltopdf. Я динамически генерирую JavaScript и нуждаюсь в wkhtmltopdf, чтобы выполнить это JS правильно (сортировка уродливая, я знаю, но дизайнерское решение, за которое я застрял) – andrewpthorp

Смежные вопросы