URL에 PHP로 특정 문자열이 있는지 확인


111

URL에 어떤 단어가 있는지 알고 싶습니다.

예를 들어, www.domain.com/car/ 또는 www.domain.com/car/audi/와 같이 URL에 car라는 단어가 있으면 'car is exist'가 표시되고 아무것도 없으면 'no cars'가 표시됩니다. .



이것은 또한 car라는 단어를 찾고 있거나 자동차 또는 자동차의 유형도 원하는 경우에도 다릅니다. preg_match, strpos, explode 및 in_array / array_search가 필요할 수 있습니다. 당신이 뭔가 간단하려면 제안, 단지 strpos를 사용
매트

이 독립 실행 형 라이브러리s($_SERVER['REQUEST_URI'])->contains('car') 에서 볼 수 있듯이 도움 이 될 수 있습니다 .
caw

URL에 "scared"라는 단어가 포함되어 있으면 어떻게됩니까? "car is exist"라는 글씨가 있어야합니까? 그렇지 않다면 여기에있는 대부분의 답변이 잘못되었습니다.
doug65536

답변:


227

이런 식으로 시도하십시오. 첫 번째 행은 URL을 작성하고 나머지는 "car"라는 단어가 포함되어 있는지 확인합니다.

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


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

내 프로젝트에 딱! 감사!
WebDevKev 2014-06-25

그게 제가 찾던 것입니다. 완벽 해, 고마워.
JunaidFarooqui 2016

1
이것은 좋은 해결책이지만 자동차가 어디에나있는 URL과 일치한다는 점에주의하십시오. 예를 들어 www.domain.com/car-pricing또는 www.domain.com/carparks유효성을 검사하고 출력 Car exists합니다. 아마도 귀하의 경우에는 중요하지 않지만 다른 사람들에게는 관련이있을 수 있습니다!
Javacadabra

정확히 나는 Great를 찾고 있습니다!
Vignesh Krishnamoorthy

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; echo count(strpos($url,'category'));URL에 존재 1하는지 여부에 관계없이 나에게 제공 category됩니다. 왜 그런지 아세요?
Si8

66

가장 쉬운 방법은 다음과 같습니다.

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

완벽합니다 ... example.com/events/pagename 을 일치 시켜 "events"가있는 URL을 찾아야했는데 제대로 작동합니다!
Tingo

나는 지난주에 4 개의 다른 프로젝트에서 이것을 여러 번 사용했습니다. 단순한. 감사.
Pegues

이것은 전체 URL을 테스트하지 않습니다. 경로 만. 스키마, 도메인, 포트, 쿼리 매개 변수 또는 조각에 대해 테스트하지 않습니다.
kloddant

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

매뉴얼 참조strpos




4

strstr은 그 당시 존재하지 않았습니까?

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

이것은 가장 쉬운 방법 중 하나 일 것입니다.


3

strpos 함수를 살펴보십시오 .

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


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


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

이것은 작동하는 것 같습니다.


여기는 잘못된 길입니다.
Kobus Myburgh

1

확실히 이것이 올바른 방법입니다 ....

$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

이것은 나를 위해 일했습니다.

// Check if URL contains the word "car" or "CAR"
   if (stripos($_SERVER['REQUEST_URI'], 'car' )!==false){
   echo "Car here";
   } else {
   echo "No car here";
   }
에코에서 HTML을 사용하려면 ""대신 ''를 사용해야합니다.
이 코드를 사용하여 내 웹 페이지 https://geaskb.nl/에 경고를 표시합니다. 
URL에 "Omnik"이라는 단어가 포함 된 경우 
그러나 URL에 "Omnik"이라는 단어가 포함되지 않은 페이지에서는 경고를 숨 깁니다.

0

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
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

이 기능을이 코드로 사용할 수 있습니다.

 if((strpos($_SERVER['REQUEST_URI'],'car') !== false))
        echo'<h3 class=" edit-top">Car Exist</h3>';
    else
        echo'<h3 class=" edit-top">Not</h3>';

-1
$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI'];
if ( strpbrk($url, 'test') ) {
    // Do something...
}
else {
    // Do another thing
}

(> PHP 5)


이것은 질문에 대답하지만 그렇게하는 더 좋은 방법이 있습니다 ...이 함수는 발견 된 문자에서 시작하는 문자열을 반환합니다 ... strpbrk()문서는 여기
jagb
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.