PHP преобразует восьмеричные символы в строку

Название в значительной степени говорит само за себя …
Как мне повторить восьмеричную строку?
Я старался :

<?php
echo '\047\131\145\141\162\040\072\040\047'.'<br>';
echo decoct('\047\131\145\141\162\040\072\040\047').'<br>';
echo decoct('047').decoct('131').decoct('145').decoct('141').decoct('162').decoct('040').decoct('072'),decoct('040').decoct('047').'<br>';
?>

но ничего не работает для меня ….
Я совершенно уверен, что здесь нужен небольшой твик, но … какой?
Спасибо!

4

Решение

Escape-последовательности обрабатываются только внутри строк в двойных кавычках, а не строк в одинарных кавычках.

echo "\047\131\145\141\162\040\072\040\047".'<br>';
6

Другие решения

Это может помочь

function convertOctalToCharacter($octal) {
return chr(octdec($octal[1]));
}

Для массового токенизации струн с восьмериками,
эта обработка регулярных выражений тоже может пригодиться:

$string = preg_replace_callback('/\\\\([0-7]{1,3})/', 'convertOctalToCharacter', $string);

Кредиты идут в http://www.matthewratzloff.com/ Сообщение блога

3

Это обратная косая черта, поэтому используйте stripcslashes() чтобы сбежать, вот так:

$escaped = '\047\131\145\141\162\040\072\040\047'.'<br>';
$unescaped = stripcslashes($escaped);
echo $unescaped;

Результат:

'Year : '<br>
3
По вопросам рекламы [email protected]