такая проблема, есть php-скрипт, который парсит данные из RSS на мой сайт.
function getFeed($feed_url)
{
error_reporting(E_ALL & ~E_WARNING);
try {
$content = file_get_contents($feed_url);
$x = new SimpleXmlElement($content);
echo "<center style='color:red; margin:-5px 0;'><h3>" . $x->channel->title . "</h3></center>";
echo "<ul>";
foreach($x->channel->item as $entry) {
echo "<li>
<a href='$entry->link' title='$entry->title'>" . $entry->title . "</a><br>
<b style='color:#ce0a8a;'>Дата публикации: <span style='color:#199104;'>" . $entry->pubDate . "</span></b><br>
<span>" . $entry->description . "</span>
</li><hr size='3' noshade>";
}
echo "</ul>";
}
catch (Exception $e) {
echo "<div style='margin:5px 0 16px;'>
<b style='font-size:18px; margin:0 10px; color:red;'>Не удалось обработать RSS ленту. Возможно, вы ввели неверный адрес. Попробуйте ввести другой адрес.</b><hr size='2' noshade>
</div>";
}
}
Этот скрипт рабочий, но при скармливании ему ссылки на RSS, где присутствуют опечатки (например, вместо "e;
пишется "e,
) выскакивает ошибка парсинга.
Вопрос - как заменить все спец символы вида &(...),
на &(...);
? Доступа к редактированию XML файла, в котором опечатки, у меня нет. Но прочитать его нужно.
В массивы $need и $repl добавляете ваши значения для поиска и замены соответственно:
$str = '"e, текст "e,';
$need = ['"e,'];
$repl = ['"e;'];
$str = str_replace($need, $repl, $str);
echo $str;
С помощью регулярных выражений:
$str = '"e, текст "e,';
$patt = '~(&\pL+),~';
$str = preg_replace($patt, '$1;', $str);
echo $str;
Шаблон соответствует подстроке, если:
&
\pL+
,
Виртуальный выделенный сервер (VDS) становится отличным выбором
Есть стандартный метод взятый с официального сайта php который извлекает файлы с архива:
У меня ноутбук с установленной лицензионной windows 10 x64На локальный OpenServer x64 установил чистый сайт на wordpress, хочу импортировать на него данные...