2017-07-27 38 views
0

代码:的preg_match:检查,如果它不包括一个文字

if (!preg_match("https://www.youtube.com/channel/~i", $l1)) { 
    $l1 = $l1 . "?sub_confirmation=1"; 
    } 

我的查询是,如果一个链接不包含sub_confirmation = 1,它会被添加。但是,如果一个链接已经包含它,它不应该被添加!怎么做 ?

+1

你的正则表达式不完整,你需要在前面加一个'〜'。 –

回答

1

您可以使用strpos()

示例 -

$link = "https://www.youtube.com/channel/~i"; 
    $search = '?sub_confirmation=1'; 
    if (strpos($link, $search) === false) { 
    $link = $link.$search; 
    } 
    echo $link; 

编辑

如果只想为特定的URL(你的情况

只为youtube频道网址),然后再添加一个,如果条件如e下面的示例。

试试这个

$link = "youtube.com/watch?v=example"; 
    $search = '?sub_confirmation=1'; 
    $searchUrl = "youtube.com/channel"; 
    if (strpos($link, $searchUrl) !== false && strpos($link, $search) === false) { 
    $link = $link."".$search; 
} 
echo $link; 
+0

它的工作原理,这里的问题是,不仅有这样的链接,但他们仍然都被添加?sub_confirmation = 1 – Leeroy

+0

你能告诉我一个这种类型的链接的例子@Leeroy – shubham715

+0

https://www.youtube。 com/watch?v =示例 – Leeroy

0
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; 


if (strpos($url,'YourWord') !== false) { 
    echo 'Word exists.'; 
    //your code for not adding the link 
} else { 
    echo 'Word doesn't exist.'; 
    //your code for adding the link 
} 
0

试试这个:

if(! preg_match('#sub_confirmation=1#is', $l1)) 
{ 
    $l1 = $l1 . "?sub_confirmation=1"; 
} 

即使如此,我推荐你玩parse_url

相关问题