Задать вопрос
@Relapse

Как исправить ошибку в simplexml_load_string?

Есть скрипт, который получает дату регистрации страницы в ВК:

function getRegisterInfo($id) {
    $page = CURL::execute('http://vk.com/foaf.php?id=' . $id);
    $xml = simplexml_load_string($page);
    $nodes = $xml->xpath('//ya:created/@dc:date');
    foreach ($nodes as $node)
        $dateCreated = $node;
    $unixDate = strtotime($dateCreated);

    return [
        'created'       => date('Y-m-d H:i:s', $unixDate),
        'days_count'    => round( (time() - $unixDate) / (60 * 60 * 24) )
    ];
}


Но если на странице содержатся нестандартные символы, то функция отдает ошибки parse error.
Пример страницы с нестандартными символами: vk.com/foaf.php?id=14045969

Подскажите, как игнорировать нестандартные символы в этой функции?
  • Вопрос задан
  • 300 просмотров
Подписаться 1 Оценить Комментировать
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ответы на вопрос 1
makasb
@makasb
web-dev
function utf8_for_xml($string)
{
    return preg_replace ('/[^\x{0009}\x{000a}\x{000d}\x{0020}-\x{D7FF}\x{E000}-\x{FFFD}]+/u', ' ', $string);
}

simplexml_load_string(utf8_for_xml( $page ));
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы