удалить escape-последовательности из строки в php

Я работаю с файлом mysqldump, который имеет escape-последовательности символов. Мне нужно знать длину строки как ее значение базы данных, но в дампе есть escape-символы, которые добавляют длину к строке.

Я использовал stripslashes() который должным образом избегает одно- и двух кавычек, но не касается \r\n .

Я обеспокоен тем, что есть другие escape-последовательности символов, которые я не знаю. Есть ли функция, которую я могу использовать, которая даст мне истинную длину строки, как это было бы в базе данных? Если мне нужно создать свою собственную функцию, какие другие последовательности нужно обработать?

Функция strip c slashes () выполняет именно это:

 stripcslashes('foo\r\n'); 

Вы можете использовать substr_count() для подсчета символов в строке. Просто подсчитайте количество обратных косых черт в строке:

 $string = "... mysqldump string here ..."; $backslashes = substr_count($string, '\\'); 

Это даст вам приблизительный подсчет. Чтобы быть на 100% точным, вам нужно было бы подсчитать, сколько двойных обратных косых черт есть, чтобы учесть литеральные обратные косые черты, и при необходимости скорректировать счет.