проверьте, содержит ли строка URL-адрес YouTube - PullRequest
2 голосов
/ 12 марта 2012

Я бы хотел проверить в PHP, содержит ли строка URL-адрес определенного домена, и сохранить его в новой строке.

пример: "Посмотрите мое последнее видео здесь http://www.youtube.com/?123"

Так что теперь новая строка должна иметь значение "http://www.youtube.com/?123".

Если в примере есть другая ссылка, но не с YouTube, строка все равно должна содержать только значение YouTube.

Ответы [ 4 ]

2 голосов
/ 12 марта 2012

Вот пример функции.

function IsYoutubeUrl($url)
{
    return preg_match("#^https?://(?:www\.)?youtube.com#", $url);
}

Эта функция должна работать как с HTTP и HTTPS, так и без www (не имеет значения), как она будет написана.

Если вы не ожидаете URL в начале строки $ url, вы можете удалить ^ .

0 голосов
/ 17 октября 2013

Это моя собственная функция, чтобы заменить ссылку на 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;                     
                    }                       
                }
0 голосов
/ 12 марта 2012

Ваш конкретный домен в следующем примере - "youtube.com"

$sText =  "Check out my latest video here http://www.youtube.com/?123";
preg_match_all('@https?://(www\.)?youtube.com/.[^\s.,"\']+@i', $sText, $aMatches);
var_dump($aMatches);
0 голосов
/ 12 марта 2012

PHP имеет встроенную функцию: fnmatch

fnmatch('* http://www.youtube.com/* *', string) should probably work.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...