Как экранировать специальные символы в файле, проанализированном PHP-функцией parse_ini_file?

Я хотел бы сохранить определенную строку в файле конфигурации, которая должна быть проанализирована PHPparse_ini_file() функция. Тем не менее, эта строка содержит некоторые специальные символы (с кодами, такими как0x2C или же0x3D) которые нужно каким-то образом кодировать. Есть ли способ написать специальный символ с шестнадцатеричным кодом в таком файле?

 John Dvorak09 нояб. 2012 г., 12:03
Пока вы избегаете их правильно ... все возможно. Вариантов немало.
 John Dvorak09 нояб. 2012 г., 12:25
Note: If a value in the ini file contains any non-alphanumeric characters it needs to be enclosed in double-quotes (").так что это правильный способ сбежать, но я могунайти правильный способ избежать строк с двойными кавычками
 Septagram09 нояб. 2012 г., 12:12
@JanDvorak, да, это 'что яспрашиваю: какие варианты? / / / /
 John Dvorak09 нояб. 2012 г., 12:18
 Septagram09 нояб. 2012 г., 15:45
@arkascha, извините, если я вас запутал. Проблема в том, что мне нужно, чтобы этот файл содержал эти символы, но хочу, чтобы они были в экранированном виде, чтобы они были читаемыми и распознаваемыми.
 arkascha09 нояб. 2012 г., 16:56
Конечно, я понял это. Сейчас все разобрано. Но для будущего вопроса, пожалуйста, неНе указывайте попытку решения в вопросе (не только), но и реальную проблему. Здесь проблема была бы: что на самом деле происходит, когда вы запускаете свой код как есть? И почему это не тот результат, которого вы ожидали / хотите получить?Тот было бы хорошей отправной точкой.
 John Dvorak09 нояб. 2012 г., 12:20
 arkascha09 нояб. 2012 г., 12:02
Может быть, вы должны сказать, в чем проблема, когда вы используете эти символы внутри файла для анализа?
 Septagram09 нояб. 2012 г., 12:12
@arkascha, мне нужно сохранить определенный двоичный ключ от стороннего приложения (Карта квест если ты'очень любопытно) Я знаю, как избежать этих символов в PHP-коде, но я думаю, что такого рода данные не должны быть встроены в код. В то же время ямне нравится.ini файл должен быть разборчивым.
 John Dvorak09 нояб. 2012 г., 12:16
 arkascha09 нояб. 2012 г., 12:30
С "актуальная проблема " Я спросил, что случится, когда ты не уйдешь. Вы повторили, как вы хотите решить проблему, а не какова проблема.
 arkascha09 нояб. 2012 г., 12:29
@JanDvorak Это упоминается в одном из примеров ниже.
 Septagram09 нояб. 2012 г., 12:21
@JanDvorak, я надеялся тамКакой-то волшебный способ избежать персонажа, который позволил быparse_ini_file() автоматически читать его как двоичные данные ... Ну, может бытьтак лучше. Спасибо за ваш ответ, может быть, вы должны перечислить его как фактический ответ?
 John Dvorak09 нояб. 2012 г., 12:17

Ответы на вопрос(1)

Решение Вопроса

Правильный способ избежать значений INI - заключить их в"double quotes", Если ваша строка неt содержит двойные кавычки, вы можете использовать его как значение, заключенное в двойные кавычки.

Экранирование одинарных кавычек с обратной косой чертой, кажется, работает, пока в значении нет двух последовательных двойных кавычек согласноhttp://php.net/manual/en/function.parse-ini-file.php#100046

Если вы хотите сделать свой собственный побег, вы, безусловно, можете: /

htmlspecialcharshtmlspecialchars_decode убегает ,,& а также . /"

htmlentitieshtml_entitity_decode будет очень агрессивно (но также и очень безопасно) переходить к объектам HTML /

urlencodeurldecode будет экранировать все специальные символы, кроме. /_-~.

base64_encodebase64_decode будет гарантировать, что закодированная строка содержит только буквенно-цифровые символы и+=/, Это может быть оптимальным для кодирования двоичных данных, но несохранить читабельность

Ваш ответ на вопрос