Я написал небольшой бит php, который получает элементы (продукты в этом случае) из корня xml. Я использую simplexml_load_file для назначения различным частям фида переменным.Замена n r строк в php
Он отлично работает, и я выводил результаты в файл csv. Проблема в том, что некоторые элементы в xml являются описаниями html и имеют в них символы строки. Это разрушает csv, поскольку видит эти новые строки.
Чтобы решить эту проблему, я добавил конец строки строки в каждую строку csv, и я пытаюсь вычеркнуть все \ n \ r из описаний, а затем заменить строку eol на \ n, которая должна сделайте работу csv.
Я могу сделать это вручную с помощью блокнота ++, но при попытке его использовать php он, похоже, не работает.
Ниже приведен код, который я пробовал, но, возможно, я что-то испортил, поскольку я никогда раньше этого не делал, и он, похоже, не работает. В результате csv все еще имеет исходные строки, и строка eol все еще присутствует.
//Get The Short and Long Descriptions from the $_item in the XML
$short_Description = $_item->short_description;
$description = $_item->description;
//OK now we need to firstly remove all the \n\r \n \r from the descriptions and once that's done replace "FEOL," with \n. Easy!
// Lets strip the LF and CR from the descriptions
$new_Line = array('\n\r', '\n', '\r');
$replace = '';
$short_Description = str_replace($new_Line, $replace, $short_Description);
$description = str_replace($new_Line, $replace, $description);
// OK now we have one big long line lets add the CR or maybe LF back at the end of each line where we've put the FEOL place holder
$eol = 'FEOL,';
$replace = '\r';
$short_Description = str_replace($eol, $replace, $short_Description);
$description = str_replace($eol, $replace, $description);
Просто интересно, нет ли у них ничего очевидного, что я пропал без вести, или, может быть, я все исправлю. Любая помощь будет принята с благодарностью. Найджел
Я попробую. – Go2Pub
Вот и все, спасибо, это доказывает, что я думал все время, я идиот lol – Go2Pub
@ Go2Pub Вам не нужно «\ n \ r» в массиве $ new_Line вообще - эти символы заменяются отдельно в любом случае – user4035