Я пытаюсь сделать preg_replace в php и сохранить результаты в CSV-файле.
Я хочу заменить \ «в строке на \» «, и в данный момент я могу найти ближайший \» «.
Проблема в том, что fputcsv автоматически добавляет двойную кавычку к существующей двойной кавычке, что хорошо, APART FROM, если двойная кавычка уже экранирована
Вот пример кода:
$code = 'document.body.innerHTML.toLowerCase().replace(/\s|\"/g, "");';
$pattern = '(\\\")';
$replacement = '\\\ "';
$content[] = preg_replace($pattern, $replacement, $code);
$filename = "test.csv";
$temp_filename = "tempfile";
$fp = fopen($tempfilename, 'w');
fputcsv($fp, $content);
fclose($fp);
В полученном CSV-файле ячейка показывает \ «», как показано ниже:
"document.body.innerHTML.toLowerCase().replace(/\s|\ ""|/g, """");"
Так что это почти правильно, но это должно быть \ «» а не \ «»
Может кто-нибудь помочь мне написать правильную переменную $ replace, чтобы она выводила \ «» в csv?
Я пробовал:
$replacement = '\\\""'; which produces \"""$replacement = '\\\"'; which produces \"
Так что \ «» ускользает от меня
Большое спасибо, если вы можете помочь!
Задача ещё не решена.
Других решений пока нет …