जांचें कि क्या URL में PHP के साथ कुछ स्ट्रिंग है


111

मैं जानना चाहूंगा कि क्या कोई शब्द URL में मौजूद है।

उदाहरण के लिए, अगर शब्द कार www.domain.com/car/ या www.domain.com/car/audi/ की तरह है, तो यह 'कार मौजूद है' और यदि कुछ भी नहीं है तो यह 'नो कार' प्रतिध्वनित होगा। ।



यह इस बात पर भी निर्भर करता है कि क्या आप कार शब्द की तलाश कर रहे हैं या यदि आप कार या कारों का प्रकार भी चाहते हैं। आपको वास्तव में सिर्फ निर्भर करता है, preg_match, strpos, विस्फोट और in_array / array_search की आवश्यकता हो सकती है। अगर आप कुछ सरल चाहते हैं, तो सुझाव के अनुसार स्ट्रैप्स का उपयोग करें
मैट

आपको s($_SERVER['REQUEST_URI'])->contains('car')मदद मिल सकती है , जैसा कि इस स्टैंडअलोन लाइब्रेरी में पाया गया है ।
caw

क्या होगा अगर यूआरएल में "डर" शब्द शामिल है? क्या वह प्रिंट "कार मौजूद है"? यदि नहीं, तो यहां अधिकांश उत्तर गलत हैं।
dgg65536

जवाबों:


227

कुछ इस तरह की कोशिश करो। पहली पंक्ति आपके URL का निर्माण करती है और शेष जाँच करें कि उसमें "कार" शब्द है या नहीं।

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


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

मेरे प्रोजेक्ट के लिए बिल्कुल सही! धन्यवाद!
वेबडेव

यही मैं ढूंढ रहा था। बहुत बहुत धन्यवाद।
जुनैदफारूकी

1
यह एक अच्छा समाधान है लेकिन बस सावधान रहें कि यह एक ऐसे URL से मेल खाएगा जिसके पास कहीं भी कार हो। उदाहरण के लिए www.domain.com/car-pricingया www.domain.com/carparksआउटपुट और मान्य होगा Car exists। हो सकता है कि यह आपके मामले में मायने न रखता हो लेकिन दूसरों के लिए यह प्रासंगिक हो सकता है!
13

वास्तव में मैं देख रहा हूँ महान!
विग्नेश कृष्णमूर्ति

$url = 'http://' . $_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']; echo count(strpos($url,'category'));मुझे इस बात की 1परवाह किए बिना कि categoryउरल में मौजूद है या नहीं। कोई विचार क्यों?
Si8

66

मुझे लगता है कि सबसे आसान तरीका है:

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

बिल्कुल सही ... मुझे उनमें से "घटनाओं" के साथ किसी भी यूआरएल को खोजने के लिए example.com/events/pagename से मेल खाना चाहिए और यह काम करता है!
टिंगो

मैंने पिछले सप्ताह में 4 अलग-अलग परियोजनाओं पर कई बार इसका उपयोग किया है। सरल। धन्यवाद।
पेव्स

यह पूर्ण url का परीक्षण नहीं करता है; केवल रास्ता। यह स्कीम, डोमेन, पोर्ट, क्वेरी पैरामीटर या टुकड़े के खिलाफ परीक्षण नहीं करेगा।
kloddant




4

स्ट्रैस वापस तो मौजूद नहीं था?

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

यह सबसे आसान तरीकों में से एक होना चाहिए?



1

आप कैसे वर्डप्रेस काम करता है की अवधारणा के समान एक .htaccess विधि की कोशिश कर सकते हैं।

संदर्भ: http://monkeytooth.net/2010/12/htaccess-php-how-to-wordpress-slugs/

लेकिन मुझे यकीन नहीं है कि अगर आपका कहना है कि वास्तव में क्या है ..



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 में "ओमनिक" शब्द शामिल है 
लेकिन उन पन्नों पर अलर्ट छिपा दें जिनमें URL में "ओमनिक" शब्द नहीं है।

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
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.