2016-04-01 5 views
0

Ich habe den folgenden PHP-Code, um einen bedingten Codeblock auszuführen. Ich brauche ein Popup, um NICHT zu laden, wenn die Seiten-URL "/ checkout/order-received /" enthält.Bedingte Verwendung von strpos und URLs in PHP

Hier ist mein aktueller nicht-funktionierenden Code ...

(Code in Funktionen Datei aktuelle Seite URL zu erhalten)

// Get the page URL to disable the checkout popup. 
$GLOBALS['checkout_page_url'] = $_SERVER["REQUEST_URI"]; 

(Code in entsprechender Include-Datei)

<?php 
if (strpos($GLOBALS['checkout_page_url'], '/checkout/order-received/') !== true) { 
// show popup 
} else { 
// do not show popup 
} 
?> 

Ich brauche das Popup, um unabhängig von der URL NICHT zu laden, wenn der erste Teil "/ checkout/order-received /" ist

Ich weiß, dass die Variable in der Funktionsdatei festgelegt wird, weil ich dies zu Testzwecken in der Fußzeile austausche, daher stimmt etwas mit meinem bedingten Code nicht.

+0

'strpos' kehrt gefunden wurde die Position oder "falsch", wenn die Nadel nicht gefunden wurde. –

+0

Manchmal wäre es nicht so schlimm, in das PHP-Handbuch zu schauen, nur zu sagen. http://php.net/strpos –

+0

Ich denke, das bedeutet keine Boob Squeeze of Gratitude für mich Charlotte. Ich werde versuchen, das nächste Mal klüger zu sein. – Brett

Antwort

1

strpos() gibt nicht immer boolean true so wird es immer nicht mit dem Operator !== gleich. Es gibt einen ganzzahligen Zeichenposition oder boolean false:

if (strpos($GLOBALS['checkout_page_url'], '/checkout/order-received/') === false) { 

Sie === verwenden müssen, weil es auch 0 zurückgeben könnte, die ==-false ist, sondern bedeutet, dass es sich an Position 0.

+0

Danke für die Hilfe. Versus tun, was Sie korrigiert haben, gibt es einen besseren Weg, dies zu tun? – Brett

+0

Wahrscheinlich darüber, wie ich es machen würde. – AbraCadaver