Получить все URL в строке с php

Я пытаюсь найти способ получить массив URL-адресов из текстовой строки. Текст будет несколько отформатирован так:

Some random text up here

http://techcrunch.com/2012/07/20/kickstarter-flashr-wants-to-make-the-iphones-bezel-a-massive-notification-light/?grcc=88888Z0ZwdgtZ0Z0Z0Z0Z0&grcc2=835637c33f965e6cdd34c87219233711~1342828462249~fca4fa8af1286d8a77f26033fdeed202~510f37324b14c50a5e9121f955fac3fa~1342747216490~0~0~0~0~0~0~0~0~7~3~

http://techcrunch.com/2012/07/20/last-day-to-purchase-extra-early-bird-tickets-for-disrupt-sf/

Очевидно, что эти ссылки могут быть любыми (и их может быть много, это те, с которыми я сейчас тестирую). Если я использую простой URL-адрес, например, мое регулярное выражение работает нормально.

Я использую:

preg_match_all('((https?|ftp|gopher|telnet|file|notes|ms-help):'.
    '((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)',
    $bodyMessage, $matches, PREG_PATTERN_ORDER);

Когда я делаюprint_r( $matches); результат, который я получаю:

Array ( [0] => Array (
    [0] => http://techcrunch.com/2012/07/20/kickstarter-flashr-wants-to-make-the-iphon=
    [1] => http://techcrunch.com/2012/07/20/last-day-to-purchase-extra-early-bird-tick= 
    [2] => http://techcrunch.co=
    [3] => http://techcrunch.com/2012/07/20/kickstarter-flashr-wants-to-make-the-ip= 
    [4] => http://techcrunch.com/2012/07/20/last-day-to-purc=
    [5] => http://tec=
)
...

Ни один из этих элементов в этом массиве не является полными ссылками из ссылок выше.

Кто-нибудь знает хороший способ получить то, что мне нужно? Я нашел кучу регулярных выражений для получения ссылок на PHP, но ни один из них не работает.

Спасибо!

Редактировать:

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

 --00248c711bb99ca36d04c54ba5c6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable http://techcrunch.com/2012/07/20/kickstarter-flashr-wants-to-make-the-iphon= es-bezel-a-massive-notification-light/?grcc=3D88888Z0ZwdgtZ0Z0Z0Z0Z0&grcc2= =3D835637c33f965e6cdd34c87219233711~1342828462249~fca4fa8af1286d8a77f26033f= deed202~510f37324b14c50a5e9121f955fac3fa~1342747216490~0~0~0~0~0~0~0~0~7~3~ http://techcrunch.com/2012/07/20/last-day-to-purchase-extra-early-bird-tick= ets-for-disrupt-sf/ --00248c711bb99ca36d04c54ba5c6 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 

Любые предложения о том, как сделать так, чтобы он не ломал URL-адреса?

РЕДАКТИРОВАТЬ 2

В соответствии с предложением Laurnet, я запустил этот код:

 $bodyMessage = str_replace("= ", "",$bodyMessage);

Однако, когда я повторяю это, он, похоже, не хочет заменять & quot; = & quot;

 --00248c711bb99ca36d04c54ba5c6 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable http://techcrunch.com/2012/07/20/kickstarter-flashr-wants-to-make-the-iphon= es-bezel-a-massive-notification-light/?grcc=3D88888Z0ZwdgtZ0Z0Z0Z0Z0&grcc2= =3D835637c33f965e6cdd34c87219233711~1342828462249~fca4fa8af1286d8a77f26033f= deed202~510f37324b14c50a5e9121f955fac3fa~1342747216490~0~0~0~0~0~0~0~0~7~3~ http://techcrunch.com/2012/07/20/last-day-to-purchase-extra-early-bird-tick= ets-for-disrupt-sf/ --00248c711bb99ca36d04c54ba5c6 Content-Type: text/html; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable 

Ответы на вопрос(2)

Ваш ответ на вопрос