2016-05-16 16 views
0

Ich möchte etwas Code ausführen, wenn es eine genaue URL-Übereinstimmung gibt.Etwas tun, wenn die URL exakt übereinstimmt in PHP

Im Moment habe ich dies:

//Returns 'https://www.someurl.com' 
$browserUrl = curPageURL(); 

Jetzt habe ich eine Zeile, die eine neue URL zu erstellen, basierend auf $browserUrl gemeint ist. Dafür habe ich diese erstellt:

<?php 
    //Gets the url of a specific page 
    $page = icl_object_id(2880, 'page', true); 
    $url = get_permalink($page); 
    //Cplits the url into useful parts for rebuilding 
    $parts = explode("/", $url); 
?> 

//Here I am rebuilding the url based on the url I retrieved with the code above 
<a href="<?php echo curPageURL() . $parts[4] . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a> 

Aber durch einen ternären Operator, was ich versuche tatsächlich zu tun, ist dies:

<a href="<?php echo curPageURL() . $browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4] . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a> 

Aber dies ist nicht wie erwartet funktioniert, weil es nicht ist direkte URL-Übereinstimmung abrufen Ist das der richtige Weg?

Antwort

0

Wenn das, was wollen Sie ist $parts[3] oder $parts[4] zu verwenden, je nach $browserUrl Prüfung und der ternäre Operator ist das Problem, dann schlage ich eine neue Variable zu machen, lassen Sie uns $part sagen, das Ergebnis des ternären Betreiber, dann verwenden Sie es in der Verkettung, wie folgt aus:

<?php 
    //Gets the url of a specific page 
    $page = icl_object_id(2880, 'page', true); 
    $url = get_permalink($page); 
    //Cplits the url into useful parts for rebuilding 
    $parts = explode("/", $url); 
    $part = $browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4]; 
?> 

//Here I am rebuilding the url based on the url I retrieved with the code above 
<a href="<?php echo curPageURL() . "{$part}#sendMessage"; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a> 

Oder Sie den ternären Operator in der Verkettung verwenden können, aber Sie müssen es in Klammern setzen ordnungsgemäß funktionieren kann, wie folgt aus:

<a href="<?php echo curPageURL() . ($browserUrl == 'https://www.someurl.com' ? $parts[3] : $parts[4]) . '#sendMessage'; ?>"><?php _e('Send us an Email','optionsBlock'); ?></a> 

Persönlich mag ich das nicht, da es etwas verwirrend zu lesen ist.