📌  相关文章
📜  如何使用PHP检查 URL 是否包含特定字符串?

📅  最后修改于: 2022-05-13 01:54:11.371000             🧑  作者: Mango

如何使用PHP检查 URL 是否包含特定字符串?

给定一个 URL,任务是检查 URL 是否包含某个字符串。 URL 基本上是字符串。所以为了检查某些字符串的存在,可以遵循两种方法。第一种方法用于查找字符串匹配的子字符串,第二种方法是查找正则表达式匹配项。 PHP包含这两种方法的函数。

方法一:
strpos()函数:对strpos()函数被用于找到在一个字符串的子字符串的第一个匹配。如果再分字符串存在,如果子字符串没有字符串(URL)中找到的函数返回False子字符串否则返回的起始索引。

句法:

int strpos( $String, $Substring )

参数: strpos()函数接受上面提到和下面描述的两个参数。

  • $String:此参数保存搜索执行的文本。
  • $Substring:此参数保存要搜索的模式或子字符串。

程序: PHP程序使用 strpos()函数在 URL 中查找特定字符串。



';
}
else {
    echo $key . ' exists in the URL 
'; }    // Another search substring $key = 'function';    if (strpos($url, $key) == false) {     echo $key . ' not exists in the URL'; } else {     echo $key . ' exists in the URL'; }    ?>
输出:
gfg exists in the URL function not exists in the URL

注意: strpos()函数使用字符串匹配方法在文本中查找子字符串。有时它会产生不想要的结果。例如:如果字符串URL 是https://www.geeksforgeeks.org/myfunction并且子字符串是函数,则字符串URL 中存在子字符串。假设一个网站想要显示函数的结果,但它显示的是不同的myfunction的结果。 strpos()函数不检查子字符串是作为一个整体存在还是带有后缀或前缀。

注意:要解决这个问题,即查找字符串(URL)中是否存在确切的模式,或者不使用 preg_match()函数。

方法二:
preg_match()函数: preg_match()函数用于使用正则表达式搜索在文本中查找模式的精确匹配。这里给出了一个正则表达式模式,该函数对文本进行搜索并找到完全匹配(如果存在)。如果模式存在,则此函数返回 true,如果模式不存在,则返回 false。

句法:

preg_match( $pattern, $subject )

参数: preg_match()函数接受上面提到和下面描述的两个参数。

  • $pattern:作为字符串搜索的正则表达式模式
  • $subject:它是搜索正则表达式模式的文本字符串。

程序 2: PHP程序在 URL 中查找字符串的精确匹配

';
}
else {
    echo 'gfg exist in the URL 
'; }    // Given another URL $url2 = 'https://www.geeksforgeeks.org/myfunction';    // This pattern search function as whole words $pattern = '/\bfunction\b/';    if (preg_match($pattern, $url2) == false) {     echo 'function does not exist in the URL'; } else {     'function exist in the URL'; }    ?>
输出:
gfg exist in the URL function does not exist in the URL