텍스트 문자열에서 URL 배열을 가져 오는 방법을 찾으려고합니다. 여기PHP로 문자열에있는 모든 URL 가져 오기
어떤 임의의 텍스트까지 분명히
http://techcrunch.com/2012/07/20/last-day-to-purchase-extra-early-bird-tickets-for-disrupt-sf/
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~, 그 링크가 무엇이든 될 수있다 (많은 사람들이있을 수 있습니다 : 텍스트가 어느 정도 같은 포맷됩니다 링크, 그 사람들이 내가 지금 테스트 중이 야. 내 정규식과 같은 간단한 URL을 사용하면 괜찮습니다.
내가 사용하고 : 나는 print_r($matches);
을 수행 할 때
preg_match_all('((https?|ftp|gopher|telnet|file|notes|ms-help):'.
'((//)|(\\\\))+[\w\d:#@%/;$()~_?\+-=\\\.&]*)',
$bodyMessage, $matches, PREG_PATTERN_ORDER);
내가 얻는 결과는 다음과 같습니다 그 배열의 해당 항목의
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 중간에 공백이 추가 된 것처럼 보입니다. 다음은 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을 손상시키지 않는 방법에 대한 제안 사항이 있으십니까?
$bodyMessage = str_replace("= ", "",$bodyMessage);
그러나
난 그 밖으로 에코 때, 그것을 바꾸려하지 않는 것 "="
--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
: EDIT 2
는 Laurnet의 제안에 따라, 나는이 코드를 실행
잘 보입니다 : http://ideone.com/ulJ4a. – mellamokb
흠 ... 흥미 롭습니다 ... 방금 내 질문을 편집했습니다 ... 링크가 전자 메일에서 나옵니다. 그러면 본문 메시지를 가져와 파싱합니다 ... 이메일 중간에 링크가있는 것처럼 보입니다! 제안? – Bill
'= '의 그러한 인스턴스들은 당신의 코드가 적절히 다루어지지 않는 어떤 종류의 청크 인코딩과 같이 의심스럽게 보입니다. – mellamokb