gpt4 book ai didi

youtube - youtube preg_replace链接不同

转载 作者:行者123 更新时间:2023-12-03 05:31:13 25 4
gpt4 key购买 nike

我将此代码用于preg_replace youtube代码,但是我遇到了问题,这是我的代码

// replace video Youtube to thumbnail       
$string = array('http://youtube.com/watch?v=slBEtqC_JsI', 'https://youtu.be/bOxza0rLv1o');
//fix the '/' in the end of url
$string = trim($string, '/');
$search = array();
$search[0] = '~(?:https://(?:www\.)?youtube\.com\/watch\?v=)?([a-zA-Z0-9_\-+?:]+)~';
$search[1] = '~(?:https://(?:www\.)?youtu\.be\/)?([a-zA-Z0-9_\-+?:]+)~';
$replace = array();
$replace[1] = 'https://i.ytimg.com/vi/$1/hqdefault.jpg';
$replace[0] = 'https://i.ytimg.com/vi/$1/hqdefault.jpg';
$soc_youtube = preg_replace($search,$replace,$string);

该代码不会更改字符串,输出将是
https://i.ytimg.com/vi/https:/hqdefault.jpg//https://i.ytimg.com/vi/i/hqdefault.jpg.https://i.ytimg.com/vi/ytimg/hqdefault.jpg.https://i.ytimg.com/vi/com/hqdefault.jpg/https://i.ytimg.com/vi/vi/hqdefault.jpg/https://i.ytimg.com/vi/https:/hqdefault.jpg/https://i.ytimg.com/vi/hqdefault/hqdefault.jpg.https://i.ytimg.com/vi/jpg/hqdefault.jpg//https://i.ytimg.com/vi/https:/hqdefault.jpg//https://i.ytimg.com/vi/i/hqdefault.jpg.https://i.ytimg.com/vi/ytimg/hqdefault.jpg.https://i.ytimg.com/vi/com/hqdefault.jpg/https://i.ytimg.com/vi/vi/hqdefault.jpg/https://i.ytimg.com/vi/youtu/hqdefault.jpg/https://i.ytimg.com/vi/hqdefault/hqdefault.jpg.https://i.ytimg.com/vi/jpg/hqdefault.jpg.https://i.ytimg.com/vi/https:/hqdefault.jpg//https://i.ytimg.com/vi/i/hqdefault.jpg.https://i.ytimg.com/vi/ytimg/hqdefault.jpg.https://i.ytimg.com/vi/com/hqdefault.jpg/https://i.ytimg.com/vi/vi/hqdefault.jpg/https://i.ytimg.com/vi/be/hqdefault.jpg/https://i.ytimg.com/vi/hqdefault/hqdefault.jpg.https://i.ytimg.com/vi/jpg/hqdefault.jpg/https://i.ytimg.com/vi/https:/hqdefault.jpg//https://i.ytimg.com/vi/i/hqdefault.jpg.https://i.ytimg.com/vi/ytimg/hqdefault.jpg.https://i.ytimg.com/vi/com/hqdefault.jpg/https://i.ytimg.com/vi/vi/hqdefault.jpg/https://i.ytimg.com/vi/bOxza0rLv1o/hqdefault.jpg/https://i.ytimg.com/vi/hqdefault/hqdefault.jpg.https://i.ytimg.com/vi/jpg/hqdefault.jpg);

有人可以帮助我吗?
谢谢你的帮助

最佳答案

您可以使用

'~(?:https?://(?:www\.)?youtu(?:be\.com/watch\?v=|\.be/))?([a-zA-Z0-9_\-+?:]+)/?~'

参见 regex demo。图案细节:
  • (?:-第一个交替组的开始:
  • https?://(?:www\.)?youtu-https://https://,然后是可选的www.子字符串,然后是youtu子字符串
  • (?:-第二个交替组的开始:
  • be\.com/watch\?v=-be.com/watch?v=子字符串
  • |-或
  • \.be/-.be/子字符串
  • )-第二个替代组
  • 的结尾
  • )?-1或0次
  • ([a-zA-Z0-9_\-+?:]+)-组1:一个或多个单词,-+?:字符
  • /?-可选的/

  • 参见 PHP demo online:
    $string = array('http://youtube.com/watch?v=slBEtqC_JsI', 'https://youtu.be/bOxza0rLv1o', 'http://youtube.com/watch?v=slBEtqC_JSJ/');
    $search = '~(?:https?://(?:www\.)?youtu(?:be\.com/watch\?v=|\.be/))?([a-zA-Z0-9_+?:-]+)/?~';
    $replace = 'https://i.ytimg.com/vi/$1/hqdefault.jpg';
    $soc_youtube = preg_replace($search,$replace,$string);
    print_r($soc_youtube);

    输出:
    Array
    (
    [0] => https://i.ytimg.com/vi/slBEtqC_JsI/hqdefault.jpg
    [1] => https://i.ytimg.com/vi/bOxza0rLv1o/hqdefault.jpg
    [2] => https://i.ytimg.com/vi/slBEtqC_JSJ/hqdefault.jpg
    )

    关于youtube - youtube preg_replace链接不同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47134245/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com