Check if URL has certain string with PHP

PhpStringUrl

Php Problem Overview


I would like to know if some word is present in the URL.

For example, if word car is in the URL, like www.domain.com/car/ or www.domain.com/car/audi/ it would echo 'car is exist' and if there's nothing it would echo 'no cars'.

Php Solutions


Solution 1 - Php

Try something like this. The first row builds your URL and the rest check if it contains the word "car".

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


if (strpos($url,'car') !== false) {
    echo 'Car exists.';
} else {
    echo 'No cars.';
}

Solution 2 - Php

I think the easiest way is:

if (strpos($_SERVER['REQUEST_URI'], "car") !== false){
// car found
}

Solution 3 - Php

$url = " www.domain.com/car/audi/";
if (strpos($url, "car")!==false){
    echo "Car here";
}
else {
   echo "No car here :(";
}

See strpos manual

Solution 4 - Php

if( strpos( $url, $word ) !== false ) {
    // Do something
}

Solution 5 - Php

worked for me with php

if(strpos($_SERVER['REQUEST_URI'], 'shop.php') !== false){
echo 'url contains shop';
}

Solution 6 - Php

This worked for me:

// Check if URL contains the word "car" or "CAR"
   if (stripos($_SERVER['REQUEST_URI'], 'car' )!==false){
   echo "Car here";
   } else {
   echo "No car here";
   }

If you want to use HTML in the echo, be sure to use ' ' instead of " ".
I use this code to show an alert on my webpage https://geaskb.nl/
where the URL contains the word "Omnik"
but hide the alert on pages that do not contain the word "Omnik" in the URL.

Explanation stripos : https://www.php.net/manual/en/function.stripos

Solution 7 - Php

strstr didn't exist back then?

if(strstr($_SERVER['REQUEST_URI'], "car")) {
   echo "car found";
}

This must be one of the easiest methods right?

Solution 8 - Php

Have a look at the strpos function:

if(false !== strpos($url,'car')) {
    echo 'Car exists!';
}
else {
    echo 'No cars.';
}

Solution 9 - Php

Surely this is the correct way round....

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


if (!strpos($url,'mysql')) {
echo 'No mysql.'; //swapped with other echo statement
} else {
echo 'Mysql exists.';
}

Otherwise its reporting the opposite way it should...

Solution 10 - Php

Starting with PHP 8 (2020-11-24), you can use str_contains:

if (str_contains('www.domain.com/car/', 'car')) {
   echo 'car is exist';
} else {
   echo 'no cars';
}

Solution 11 - Php

You can try an .htaccess method similar to the concept of how wordpress works.

Reference: http://monkeytooth.net/2010/12/htaccess-php-how-to-wordpress-slugs/

But I'm not sure if thats what your looking for exactly per say..

Solution 12 - Php

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


if (!strpos($url,'car')) {
    echo 'Car exists.';
} else {
    echo 'No cars.';
}

This seems to work.

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionpisoeView Question on Stackoverflow
Solution 1 - PhpdigiView Answer on Stackoverflow
Solution 2 - PhpsantillanixView Answer on Stackoverflow
Solution 3 - PhpJ0HNView Answer on Stackoverflow
Solution 4 - PhpnobodyView Answer on Stackoverflow
Solution 5 - PhpShuhad zamanView Answer on Stackoverflow
Solution 6 - PhpMarsView Answer on Stackoverflow
Solution 7 - PhpMathijs SegersView Answer on Stackoverflow
Solution 8 - PhpJeffView Answer on Stackoverflow
Solution 9 - PhpMikeys4uView Answer on Stackoverflow
Solution 10 - PhpZomboView Answer on Stackoverflow
Solution 11 - PhpchrisView Answer on Stackoverflow
Solution 12 - PhpRichard Andrew LeeView Answer on Stackoverflow