@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

Подскажите, как игнорировать нестандартные символы в этой функции?
  • Вопрос задан
  • 278 просмотров
Пригласить эксперта
Ответы на вопрос 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 ));
Ответ написан
Ваш ответ на вопрос

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

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