web-dev-qa-db-ja.com

PHPを使用してURLに特定の文字列があるかどうかを確認します

URLにWordが含まれているかどうかを知りたい。

たとえば、www.domain.com/car /やwww.domain.com/car/audi/のようにWord carがURLにある場合、「car is exist」がエコーされ、何もなければ「no cars」がエコーされます。 。

90
pisoe

このようなものを試してください。最初の行でURLが作成され、残りの行には「car」という単語が含まれているかどうかがチェックされます。

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


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

最も簡単な方法は次のとおりです。

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

strpos manual を参照してください

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

私のためにPHPで働いた

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

strpos 関数を見てください:

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

strstrは当時存在していなかったのですか?

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

これは最も簡単な方法の1つである必要がありますか?

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


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

これはうまくいくようです。

2

wordpressの仕組みの概念に似た.htaccessメソッドを試すことができます。

リファレンス: http://monkeytooth.net/2010/12/htaccess-php-how-to-wordpress-slugs/

しかし、それがあなたの言うとおりにあなたが探しているものかどうかはわかりません。

1
chris

確かにこれは正しい方法です。..

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


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

それ以外の場合は、反対の方法で報告する必要があります...

1
Mikeys4u

URLパラメーターは、実際には配列である$_GETというグローバル変数から受信します。したがって、URLにパラメーターが含まれているかどうかを確認するには、isset()関数を使用できます。

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

その後、URLに添付する必要があるこのようなパラメーターの個別の配列を作成できます。

例えば:

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

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

さて、この配列を数えるだけで、?シンボルが必要かどうかを知ることができます

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

更新:

パラメータが設定されているかどうかを知るには、$ _ GETを数えるだけです

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

この関数をこのコードとして使用できます

 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