Überprüfen Sie, ob die URL eine bestimmte Zeichenfolge mit PHP hat

111

Ich würde gerne wissen, ob ein Wort in der URL vorhanden ist.

Wenn sich beispielsweise das Wort "Auto" in der URL befindet, z. B. "www.domain.com/car/" oder "www.domain.com/car/audi/", wird "Auto ist vorhanden" und wenn nichts vorhanden ist, wird "Kein Auto" angezeigt. .

pisoe
quelle
Dies hängt auch davon ab, ob Sie nur nach dem Wort Auto suchen oder ob Sie auch die Art des Autos oder der Autos möchten. Möglicherweise benötigen Sie preg_match, strpos, explode und in_array / array_search, das hängt wirklich nur davon ab. Wenn Sie etwas Einfaches wollen, verwenden Sie einfach Strpos wie vorgeschlagen
Matt
Möglicherweise finden Sie s($_SERVER['REQUEST_URI'])->contains('car')hilfreiche Informationen in dieser eigenständigen Bibliothek .
Caw
Was ist, wenn die URL das Wort "Angst" enthält? Sollte dieser Druck "Auto ist vorhanden"? Wenn nicht, sind die meisten Antworten hier falsch.
Doug65536

Antworten:

227

Versuchen Sie so etwas. Die erste Zeile erstellt Ihre URL und der Rest prüft, ob sie das Wort "Auto" enthält.

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


if (strpos($url,'car') !== false) {
    echo 'Car exists.';
} else {
    echo 'No cars.';
}
digi
quelle
Perfekt für mein Projekt! Vielen Dank!
WebDevKev
Das habe ich gesucht. Perfekt danke.
JunaidFarooqui
1
Dies ist eine gute Lösung, aber seien Sie vorsichtig, dass dies mit einer URL übereinstimmt, die überall ein Auto hat. Zum Beispiel www.domain.com/car-pricingoder www.domain.com/carparkswird validiert und ausgegeben Car exists. Vielleicht spielt es in Ihrem Fall keine Rolle, aber für andere könnte es relevant sein!
Javacadabra
Genau ich suche Great!
Vignesh Krishnamoorthy
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; echo count(strpos($url,'category'));gibt mir 1egal ob categoryin der url existiert oder nicht. Irgendeine Idee warum?
Si8
66

Ich denke, der einfachste Weg ist:

if (strpos($_SERVER['REQUEST_URI'], "car") !== false){
// car found
}
Santi Nunez
quelle
Perfekt ... Ich musste example.com/events/pagename abgleichen, um URLs mit "Ereignissen" zu finden, und es funktioniert!
Tingo
Ich habe dies in der letzten Woche mehrmals für 4 verschiedene Projekte verwendet. Einfach. Vielen Dank.
Pegues
Dies testet nicht die vollständige URL. nur der Weg. Es wird nicht anhand des Schemas, der Domäne, des Ports, der Abfrageparameter oder des Fragments getestet.
Kloddant
22
$url = " www.domain.com/car/audi/";
if (strpos($url, "car")!==false){
    echo "Car here";
}
else {
   echo "No car here :(";
}

Siehe strposHandbuch

J0HN
quelle
13
if( strpos( $url, $word ) !== false ) {
    // Do something
}
niemand
quelle
12

arbeitete für mich mit PHP

if(strpos($_SERVER['REQUEST_URI'], 'shop.php') !== false){
echo 'url contains shop';
}
Shuhad Zaman
quelle
1
Dies ist im Wesentlichen identisch mit diesen drei Ihrer alten Antwort . Warum sollte man sich die Mühe machen, eine solche Antwort zu veröffentlichen?
Mark Rotteveel
4

strstr gab es damals noch nicht?

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

Dies muss eine der einfachsten Methoden sein, oder?

Mathijs Segers
quelle
3

Schauen Sie sich die Strpos- Funktion an:

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


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

Das scheint zu funktionieren.

Richard Andrew Lee
quelle
Falscher Weg hierher.
Kobus Myburgh
1

Sicher ist das der richtige Weg ....

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


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

Andernfalls wird es umgekehrt gemeldet ...

Mikeys4u
quelle
1

Das hat bei mir funktioniert:

// Check if URL contains the word "car" or "CAR"
   if (stripos($_SERVER['REQUEST_URI'], 'car' )!==false){
   echo "Car here";
   } else {
   echo "No car here";
   }
Wenn Sie HTML im Echo verwenden möchten, müssen Sie '' anstelle von "" verwenden.
Ich verwende diesen Code, um eine Warnung auf meiner Webseite https://geaskb.nl/ anzuzeigen. 
wo die URL das Wort "Omnik" enthält 
Verstecken Sie die Warnung jedoch auf Seiten, die nicht das Wort "Omnik" in der URL enthalten.
Mars
quelle
0

Die URL-Parameter und empfangen von einer globalen Variablen namens, $_GETdie tatsächlich ein Array ist. Um zu wissen, ob eine URL einen Parameter enthält, können Sie die isset()Funktion verwenden.

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

Anschließend können Sie ein separates Array solcher Parameter erstellen, die Sie an eine URL anhängen müssen.

Beispielsweise:

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

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

Um zu wissen, ob Sie ein ?Symbol benötigen oder nicht, zählen Sie einfach dieses Array

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

Aktualisieren:

Um zu wissen, ob ein Parameter festgelegt ist, zählen Sie einfach $ _GET

if(count($_GET)) {
     //some parameters are set
}
user3131771
quelle
0
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;
}
derald collado
quelle
0

Sie können diese Funktion als diesen Code verwenden, Sir

 if((strpos($_SERVER['REQUEST_URI'],'car') !== false))
        echo'<h3 class=" edit-top">Car Exist</h3>';
    else
        echo'<h3 class=" edit-top">Not</h3>';
Adel Abou Elezz
quelle
-1
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if ( strpbrk($url, 'test') ) {
    // Do something...
}
else {
    // Do another thing
}

(> PHP 5)

Dmitry G.
quelle
Dies beantwortet die Frage, aber es gibt bessere Methoden, um dies zu tun ... Diese Funktion gibt eine Zeichenfolge zurück, die mit dem gefundenen Zeichen beginnt ... strpbrk()Dokumentation finden Sie hier
jagb