How to check if URL contain certain string using PHP?

08 Feb, 2019
Given a URL and the task is to check the URL contains certain string or not. The URL are basically the strings. So in order to check the existence of certain strings, two approaches can be followed. The first approach is used to find the sub string matching in a string and second approach is to find a regular expression match. PHP contains functions for these two approach.
Method 1:strpos() Function: The strpos() function is used to find the first occurrence of a sub string in a string. If sub string exists then the function returns the starting index of the sub string else returns False if the sub string is not found in the string (URL).
Syntax:
int strpos( $String, $Substring )
Parameters: The strpos() function accepts two parameters as mentioned above and described below.
$String: This parameter holds the text where searching perform.
$Substring: This parameter holds the pattern or sub string which is to be searched.
Program: PHP program to find the certain string in an URL using strpos() function.
<?php// PHP program to find certain substring in an URL  // Given URL$url = 'https://www.geeksforgeeks.org/gfg/index';  // Search substring $key = 'gfg';  if (strpos($url, $key) == false) {    echo $key . ' not exists in the URL <br>';}else {    echo $key . ' exists in the URL <br>';}  // 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

Note: The strpos() function finds the sub string in a text using string matching method. Sometime it gives undesired result. For example: if string URL is https://www.geeksforgeeks.org/myfunction and sub string is function then sub string exist in the string URL. Suppose a website wants to display the result of function but it display the result of myfunction which is different. The strpos() function does not check if a sub string present as a whole or it is present with suffix or prefix.
Note: To solve this problem that is to find whether the exact pattern is present in a string(URL) or not preg_match() function is used.
Method 2:preg_match() Function: The preg_match() function is used to find the exact match of a pattern in a text using regular expression search. Here given a regular expression pattern the function do a search on the text and find the exact match if present. This function returns true if pattern is present and false if the pattern is not present.
Syntax:
preg_match( $pattern, $subject )
Parameters: The preg_match() function accepts two parameters as mentioned above and described below.
$pattern: It is the regular expression pattern for searching as a string
$subject: It is the text string upon which the regular expression pattern is searched.
Program 2: PHP program to find exact match of a string in an URL
<?php// PHP program to find exach match substring  // Given a URL$url = 'https://www.geeksforgeeks.org/gfg/myfunction';  // Here '\b' represents the block  // This pattern search gfg as whole words$pattern = '/\bgfg\b/';  if (preg_match($pattern, $url) == false) {    echo 'gfg does not exist in the URL <br>';}else {    echo 'gfg exist in the URL <br>';}  // 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

Picked
PHP
PHP Programs
Web Technologies
PHP
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.