Почему мой файл журнала PHP не может быть полностью текстовым? - PullRequest
3 голосов
/ 13 мая 2010

Я пытаюсь отладить плагин-раздутую установку Wordpress; поэтому я добавил очень простой доморощенный регистратор, который записывает все обратные вызовы, которые в основном перечислены в одном, в конечном счете, 250+ строках многомерного массива в Wordpress (я не могу использовать print_r(), потому что мне нужно ловить их прямо перед тем, как они называются).

Моя строка журнала $logger->log("\t" . $callback . "\n");

Регистратор создает текстовый файл «денди» в обычных ситуациях, но в двух точках во время этой конкретной задачи он добавляет что-то, из-за чего мой файл журнала больше не кодируется должным образом. Gedit (я на Ubuntu) не откроет файл, утверждая, что не понимает кодировку. В vim поврежденный обратный вызов виновника (который я не смог найти в отладчике, глядя на массив) находится примерно посередине и напечатан как ^@lambda_546, а в конце файла есть этот симпатичный парень ^M. * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *} *} *} * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Темные *. Я не знаю, что это значит.

Я попытался добавить условие is_string($callback), но получаю те же результаты.

Есть идеи?

Ответы [ 3 ]

1 голос
/ 13 мая 2010

^@ - это символ NUL (\0), а ^M - это CR (\r). Не знаю, почему они генерируются, хотя. Вы должны были бы просмотреть источник и базу данных, чтобы узнать. хотя geany должен достаточно легко открыть файл.

0 голосов
/ 13 мая 2010

Тайна окончена. Один из обратных вызовов был анонимной функцией. Исследуя документацию по PHP create_function, я обнаружил, что комментатор заметил, что созданная функция имеет имя, подобное этому: chr(0) . lambda_n. Спасибо PHP.

Что касается \r. Ну, это более неловко. Мой регистратор повторно использовал какой-то старый код, который я ранее написал, который заканчивал строки в \r\n.

0 голосов
/ 13 мая 2010

Кажется, что эти милые парни являются результатом вашего обратного вызова для Windows.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...