我想檢查PHP,如果一個字符串包含指向特定域的URL並將其保存爲新字符串。檢查字符串是否包含YouTube網址
例如:「看看我最新的視頻在這裏http://www.youtube.com/?123」
所以現在新的字符串應該有值「http://www.youtube.com/?123」。
如果示例中有另一個鏈接,但不是來自YouTube的,則該字符串應該只包含youtube值。
我想檢查PHP,如果一個字符串包含指向特定域的URL並將其保存爲新字符串。檢查字符串是否包含YouTube網址
例如:「看看我最新的視頻在這裏http://www.youtube.com/?123」
所以現在新的字符串應該有值「http://www.youtube.com/?123」。
如果示例中有另一個鏈接,但不是來自YouTube的,則該字符串應該只包含youtube值。
你在下面的示例中的特定領域是「youtube.com」
$sText = "Check out my latest video here http://www.youtube.com/?123";
preg_match_all('@https?://(www\.)?youtube.com/.[^\s.,"\'][email protected]', $sText, $aMatches);
var_dump($aMatches);
當鏈接如下所示時,似乎不起作用: here – user1264272 2012-03-12 14:45:37
沒問題,因爲這不是youtube.com的有效鏈接。它需要前面的「http://」,否則就像當前域的內部鏈接一樣被解釋。在瀏覽器中試用它。 – Leif 2012-03-12 14:51:05
嗨,我得到它的工作,但只有當有一個「www」的鏈接。我剛剛意識到另一個問題。有時,字符串中有多個youtube鏈接,但preg_match只查找第一個。我如何編碼? – user1264272 2012-03-12 17:43:34
PHP有一個內置的功能: fnmatch
fnmatch('* http://www.youtube.com/* *', string) should probably work.
下面是示例功能。
function IsYoutubeUrl($url)
{
return preg_match("#^https?://(?:www\.)?youtube.com#", $url);
}
此功能應與HTTP和HTTPS工作,以及帶或不帶WWW(沒關係),它會怎麼寫。
如果您不希望字符串$ url開頭的網址可以刪除^。
我收到此錯誤信息: 警告:的preg_match()函數.preg-match]:第5行的分隔符不能是/home/.sites/123/site602/web/feeds/index.php中的字母數字或反斜槓。 如果鏈接看起來像這樣,這也可以工作 here – user1264272 2012-03-12 14:42:49
My錯誤@ user1264272,現在它應該工作,我使用分隔符**#**。 – Rolice 2012-03-12 14:44:53
這是我自己的功能,以取代與內嵌視頻中的字符串YouTube鏈接:
(YouTube視頻上WordPress的格式:[YouTube的= HTTP://www.youtube.com/watch v = zuqoGJ4Y5NM])
function youtube($volcado) {
if(ereg('\[youtube=',$volcado)) {
//YOUTUBE CODE
$posicion=stripos($volcado,"[youtube=");
$volcado1=substr($volcado,0,$posicion);
$posicion=$posicion+9;
$volcadotemp=substr($volcado,$posicion,strlen($volcado)-$posicion);
$posicion2=strpos($volcadotemp,"]");
$enlace_video=substr($volcadotemp,0,$posicion2);
$volcado2=substr($volcadotemp,$posicion2+1,strlen($volcadotemp)-$posicion2-1);
$posvideo=stripos($enlace_video,"watch?v=");
$codigo_video=substr($enlace_video,$posvideo+8,strlen($enlace_video)-1);
$enlace_video="http://www.youtube.com/v/".$codigo_video;
$codigo_video="<br><object width=\"425\" height=\"350\"><param name=\"movie\" value=\"".$enlace_video."\"></param><embed src=\"".$enlace_video."\" type=\"application/x-shockwave-flash\" width=\"425\" height=\"350\"></embed></object><br>";
return $volcado1.$codigo_video.youtube($volcado2);
//FIN DE YOUTUBE CODE
} else {
return $volcado;
}
}
究竟怎麼確定哪些YouTube網址你在新的字符串想如果沒有YouTube網址在發現原本的? – 2012-03-12 14:15:07
可能重複的[從PHP中的文本中提取URL](http://stackoverflow.com/questions/910912/extract-urls-from-text-in-php) – 2012-03-12 14:15:27
你已經有這個人了。 看看這裏: http://stackoverflow.com/questions/3392993/php-regex-to-get-youtube-video-id – 2012-03-12 14:17:44