web-dev-qa-db-fra.com

Vérifier si l'URL a une certaine chaîne avec PHP

J'aimerais savoir si un mot est présent dans l'URL.

Par exemple, si Word car est dans l'URL, comme www.domain.com/car/ ou www.domain.com/car/audi/, cela ferait écho "voiture est existante" et s'il n'y avait rien, cela ferait écho "aucune voiture" .

82
pisoe

Essayez quelque chose comme ça. La première ligne construit votre URL et le reste vérifie si elle contient le mot "voiture".

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


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

Je pense que le moyen le plus simple est:

if (strpos($_SERVER['REQUEST_URI'], "car") !== false){
// car found
}
54
Santi Nunez
$url = " www.domain.com/car/audi/";
if (strpos($url, "car")!==false){
    echo "Car here";
}
else {
   echo "No car here :(";
}

Voir strpos manual

19
J0HN
if( strpos( $url, $Word ) !== false ) {
    // Do something
}
8
nobody

travaillé pour moi avec php

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

strstr n'existait pas à l'époque?

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

Ce doit être l'une des méthodes les plus faciles, n'est-ce pas?

3
Mathijs Segers

Regardez la strpos function:

if(false !== strpos($url,'car')) {
    echo 'Car exists!';
}
else {
    echo 'No cars.';
}
2
Jeff
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];


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

Cela semble fonctionner.

1
Richard Andrew Lee

C'est sûrement la bonne façon de faire ....

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


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

Sinon, il faut signaler le contraire, il devrait ...

1
Mikeys4u

Les paramètres d'URL et reçus d'une variable globale appelée $_GET qui est en fait un tableau. Ainsi, pour savoir si une URL contient un paramètre, vous pouvez utiliser la fonction isset().

if (isset($_GET['yourparametername'])) {
//The parameter you need is present
}

Ensuite, vous pouvez créer un tableau séparé de ce paramètre que vous devez attacher à une URL. 

Par exemple:

if(isset($_GET['param1'])) {
\\The parameter you need is present
$attachList['param1'] = $_GET['param1'];
}

if(isset($_GET['param2'])) {
$attachList['param2'] = $_GET['param2];
}

Maintenant, pour savoir si vous avez besoin d’un symbole ?, il suffit de compter ce tableau

if(count($attachList)) {
    $link .= "?";
    // and so on
}

Mettre à jour:

Pour savoir si un paramètre est défini, il suffit de compter le $ _GET

if(count($_GET)) {
     //some parameters are set
}
0
user3131771

Vous pouvez essayer une méthode .htaccess similaire au concept de fonctionnement de wordpress.

Référence: http://monkeytooth.net/2010/12/htaccess-php-how-to-wordpress-slugs/

Mais je ne suis pas sûr que ce soit ce que vous cherchez exactement à dire.

0
chris

vous pouvez utiliser cette fonction comme ce monsieur code

 if((strpos($_SERVER['REQUEST_URI'],'car') !== false))
        echo'<h3 class=" edit-top">Car Exist</h3>';
    else
        echo'<h3 class=" edit-top">Not</h3>';
0
Adel Abou Elezz
if ( stristr( SITE_Host, 'your site' ) ) {
    $protocol = ( !empty( $_SERVER['HTTPS'] ) && $_SERVER['HTTPS'] == 'on' ) ? 'https://' : 'http://';
    $request = ( !empty( $_SERVER['HTTP_X_ORIGINAL_REQUEST'] ) ) ? $_SERVER['HTTP_X_ORIGINAL_REQUEST'] : $_SERVER['REQUEST_URI'];
    echo $protocol .'your site'. $request;
}
0
derald collado