Как поймать URL из твита или строки в PHP, использовал parse_url, но это не работает

Хорошо, я хотел бы динамически автоматически анализировать URL-адреса из твитов, которые автоматически обновляются в моем приложении, я пытался проанализировать их, используя функцию parse_url в PHP, но она не возвращает то, что я ожидаю. В основном, я хотел бы только перехватить URL-адрес из твита..

Пример: самый обновленный твит Джона Маккейна гласит:

Must-read Jackson Diehl: "What the #Iraq war taught me about #Syria" http://t.co/7YHYQY6bW0

После использования parse_url для перехвата URL из этого твита, он вернул

array(2) { ["path"]=> string(35) "Must-read Jackson Diehl: "What the " ["fragment"]=> string(55) "Iraq war taught me about #Syria" http://t.co/7YHYQY6bW0" }

Я бы хотел только поймать http://t.co/7YHYQY6bW0 или любые другие несколько URL-адресов внутри одного и того же твита... Как я могу сделать это в PHP?

1 ответ

Решение

Parse_url для разделения частей URL-адреса. Вы захотите сделать что-то вроде preg_match_all, так как в твите может быть более одного URL.

<?php
    $string = 'Must-read Jackson Diehl: "What the #Iraq war taught me about #Syria" http://t.co/7YHYQY6bW0';

    preg_match_all('!http[s]?://[^ ]+!',$string,$urls);

    print_r($urls);

?>
Другие вопросы по тегам