2011-12-05 3 views
1

URL의 일부를 얻으려는 RSS 파일이 있습니다. 그래서 여기에 제가 시도한 것이 있습니다 (이것은 작동하지 않습니다).어떻게하면 원하는 텍스트를 얻을 수 있을까요? - PHP

내가 충분히 쉽게 얻을 수있는 URL을 가지고 :

http://www.youtube.com/watch?v=tUPjxGmh9i8&feature=youtube_gdata 

내가 PHP의 $link = ltrim($link, 'http://www.youtube.com/watch?v=');$link = rtrim($trim, '&feature=youtube_gdata');

을하고 노력을 그리고 그것은 "UPjxGmh9i8"를 반환. 그것은 앞에서 "t"를 자른다. PHP.net 문서 페이지는 내가 읽고 해석하기가 가장 쉽지는 않지만, ltrim()과 rtrim()의 두 번째 매개 변수 안에있는 임의의 개별 문자가 꺼내지고 이것이 내가 원하는 것이 아님을 전제로합니다. 원하는 텍스트 만 잡을 수있는 다른 솔루션이 있습니까?

도움을 주시면 대단히 감사하겠습니다. 이것은 내가 어떻게 할 것입니다

+0

@AurelioDeRosa : 사실상 속임수는 아님; OP는'preg_match()'를 사용하기를 원하지 않습니다. – alex

+2

@alex 사실 나는 그가 regex가 아닌 해결책을 요구하는 곳을 보지 못했다. –

+0

@AurelioDeRosa \t 그는 그렇지 않습니다. 그러나 다른 질문은이 문제를 하나의 도구 인'preg_match()'로 명시 적으로 해결하는 방법을 묻습니다. – alex

답변

5

...

$query = parse_url(
      'http://www.youtube.com/watch?v=tUPjxGmh9i8&feature=youtube_gdata', 
      PHP_URL_QUERY); 

parse_str($query, $params); 

$slug = get_magic_quotes_gpc() ? stripslashes($params['v']) : $params['v']; 

CodePad. 이 http://www.youtube.com/watch?v=t가 들어있는 문자 목록 (중요하지 서수)를 수용하기 때문에

이유 trim() (또는 그 변종) 작동하지 않습니다이다. 아니요은 제거 할 문자열을 허용합니다.

+0

완벽한! 감사합니다. 감사합니다. –

+0

나는 마술 따옴표 체크와 함께 웃었다. 그들이 평화롭게 휴식하게하십시오, 아멘. :) – Jon

+0

@ 존 :'parse_str()'은 확실히 해킹처럼 느껴집니다. 그들은 그 텍스트를 내부적으로 파싱하는 코드를 노출 한 것 같습니다. – alex

0

PHP를 사용하면 v의 값을 잡을 수 있습니까?

$result = $_GET['v']; 
var_dump($result); 
+1

OP가 YouTube 사이트에서 작동하는 경우 작동합니다. P – alex

+0

어쩌면 어떻게 작동하는지 알 수 없습니다. XML 파일에서 만든 배열에서이 URL을 가져오고 실제로 URL에 가지 않고 그냥 세그먼트를 가져옵니다. –

관련 문제