2011-10-28 4 views
2

내가하려는 것은 youtube/vimeo에서 비디오의 URL을 iframe에 포함 할 수있는 새 URL을 반환하고 비디오 소스 코드를 자동화하는 것입니다.PHP str_replace, substr 및 strpos를 모두 함께 사용합니다.

이것은 매력처럼 작동합니다.

$url = "http://vimeo.com/29431603"; 
$orj_value = array("watch?v=", "http://vimeo.com/"); 
$new_value = array("embed/", "http://player.vimeo.com/video/"); 
$url = str_replace($orj_value, $new_value, $url); 
echo $url; 

당신은 내가 그것을 유튜브의 불필요한 부분을 제거합니다

$url = substr($url, 0, strpos($url, "&")); 

echo $url; 

전에 포함 할 때 유튜브 광고 & 시작 너무 URL에 못생긴 캐릭터, 알고, 그래서 url. 그러나 그 안에 아무런 코드도없는 &의 vimeo 코드는 아무 것도 반환하지 않습니다. 새 줄을 추가 한 후 코드가 URL 내부에 &을보고 싶어합니다. 그렇지 않으면 $ url을 반향합니다. 빈 화면이 표시됩니다.

2 dailymotion의 경우 처음부터 모든 것을 제거해야합니다. _ dailymotion의 지원을 포함하려면 아래 행을 어떻게 편집해야합니까? 대답하려고 사람에게 사전에

$url = substr($url, 0, strpos($url, "&")); 

감사합니다 :)

답변

1

하면 strpos() SUBSTR을 혼동 할 수는 false를 돌려줍니다 대해 검색 문자를 찾을 수 없습니다(). 이 같은

시도 뭔가 : 귀하의 코멘트에 관해서는

$url = strpos($url, "&") ? substr($url, 0, strpos($url, "&")) : $url; 

:

if(strpos($url, "&")) { 
    $url = substr($url, 0, strpos($url, "&")); 
} else if(strpos($url, "_")) { 
    $url = substr($url, 0, strpos($url, "_")); 
} 

거기 (예 : 정규식.) 할 수있는 더 우아한 방법이 있지만이 할 것입니다. 조건에이 추가! == false를 허용하려면 & 또는 _이 string의 첫 번째 문자가 될 수 없습니다.

+0

괜찮습니다. 매우 감사합니다. 히카루 :) 편집하기가 쉽지 않은가? $ url = strpos ($ url, "&")? substr ($ url, 0, strpos ($ url, "&")) : $ url; 첫 번째 이후 & 또는 첫 번째 이후에 무엇이든 삭제하도록합니다. _? –

+0

나는 약간 비틀기를 추가했다. 이 바로 가기 표기법은 if-else에 사용할 수 없습니다. –

+0

대단히 고맙습니다. 히카루 ... 체크 박스를 클릭했는데, 웬일인지 당신의 메시지에 0 ~ 1을 돌리게했습니다. –