Я вытягиваю свои волосы, пытаясь сделать 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, """");"
Так что это почти правильно, но оно должно быть «и не»,
Может ли кто-нибудь помочь мне написать правильную переменную замены $, чтобы она выдавала \ "" в csv?
Я пробовал:
$replacement = '\\\""'; which produces \""" $replacement = '\\\"'; which produces \"
Так что «ускользает от меня»
Большое спасибо, если вы можете помочь!