2017-07-22 2 views
1

Ich habe folgende PHP-Code:Vergleich konstant mit variabler php

<?php 

    define('TEMPLATE_DIR','basic'); 

    $info = file_get_contents('info.txt'); 

    preg_match('/template_dir=(.*)/',$info,$dir); // $dir[1] gives 'basic' 

    if(TEMPLATE_DIR == $dir[1]){ 

     echo 'true'; 

    }else{ 

     echo 'false'; 

    }; 

?> 

info.txt diese enthält:

template_name=basic 
template_dir=basic 

Dies gibt ein 'false'. Was ist das Problem?

+1

Führen Sie eine 'var_dump()' von bothh und teilen Sie es mit uns. –

+0

Das funktioniert ganz gut und gibt o/p als 'wahr'. – Priya

Antwort

1

Getting 'false' bedeutet, dass die Zeichenfolgen unterschiedlich sind. Sie können das selbst mit einem Debugger oder mit var_dump() überprüfen.

Ihr regulärer Ausdruck erfasst alles nach dem Zeichen =, einschließlich führender und nachstehender Leerzeichen und Zeilenvorschübe. Ich glaube nicht, dass du das willst.

Versuchen flexibler zu sein:

if (TEMPLATE_DIR == trim($dir[1])){ 
}