Autor | Zpráva | ||
---|---|---|---|
Marek Vašut Profil * |
#1 · Zasláno: 14. 6. 2011, 15:14:54
Dobrý den, snažím se dohledat následující řešení ale nedaří se mi, proto se obracím s prosbou zde na tomto fóru... snad se mi dostane žádané odpovědi :-(
Kód pro představu co potřebuji $string = "vcera/bylo/hezky.txt"; if($string == ".txt"){ echo "Proměnná string obsahuje na konci řetězce znaky \".txt\""; }else{ echo "Proměnná string neobsahuje na konci řetězce znaky \".txt\""; } Děkuji pěkně za případnou pomoc s vyřešením této podmínky |
||
petr 6 Profil |
#2 · Zasláno: 14. 6. 2011, 15:19:10
A kde hledáte?
http://php.net/manual/en/function.strpos.php |
||
ShiraNai7 Profil |
#3 · Zasláno: 14. 6. 2011, 15:20:59
Marek Vašut:
if(substr($string, -4) === '.txt') { ...ano... } else {...ne... } |
||
Marek Vašut Profil * |
#4 · Zasláno: 14. 6. 2011, 15:30:31
ShiraNai7:
> if(substr($string, -4) === '.txt') { ...ano... } > else {...ne... } Děkuji za rychlou odpověď, můžete mi prosím jen říct, co znamená ===? Když jsem četl nějakou literaturu tak jsem narazil na = pro nastavení proměnné, == když je rovno, ale tři jsem neviděl. Děkuji PS: ještě jen tak pro klid v duši, jak by šlo na 100% vypsat zadané url? Mám to přes $_SERVER[SERVER_NAME] a $_SERVER[REDIRECT_URL] ale prej to není spolehlivé :( Ještě jednou děkuji |
||
ShiraNai7 Profil |
#5 · Zasláno: 14. 6. 2011, 15:36:32 · Upravil/a: ShiraNai7
Marek Vašut:
=== je striktní porovnání, tj nedochází tam k převodu typu hodnoty proměnné. Když se ví, že obě části výrazu budou stejného typu, tak není důvod používat ==, protože v takovém případě je === malinko rychlejší. Viz příklad: '123' === 123 // FALSE '123' == 123 // TRUE '123' === '123' // TRUE 123 === 123 // TRUE Také viz loose vs strict srovnání v php dokumentaci „jak by šlo na 100% vypsat zadané url?“ $_SERVER['REQUEST_URI'] Pokud to chceš na 100%, je třeba použít tento skript, který zabezpečí kompatibilitu napříč webservery: // check and define $_SERVER['REQUEST_URI'] if(!isset($_SERVER['REQUEST_URI'])) { if(isset($_SERVER['HTTP_X_REWRITE_URL'])) $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL']; // ISAPI_Rewrite 3.x elseif(isset($_SERVER['HTTP_REQUEST_URI'])) $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_REQUEST_URI']; // ISAPI_Rewrite 2.x else { if(isset($_SERVER['SCRIPT_NAME'])) $_SERVER['HTTP_REQUEST_URI'] = $_SERVER['SCRIPT_NAME']; else $_SERVER['HTTP_REQUEST_URI'] = $_SERVER['PHP_SELF']; if(!empty($_SERVER['QUERY_STRING'])) $_SERVER['HTTP_REQUEST_URI'] .= '?'.$_SERVER['QUERY_STRING']; $_SERVER['REQUEST_URI'] = $_SERVER['HTTP_REQUEST_URI']; } } |
||
Marek Vašut Profil * |
#6 · Zasláno: 14. 6. 2011, 16:29:24
ShiraNai7:
moc děkuji za cenné informace ;) ta vaš podmínka bude naprosto shodná s touto podmínkou? if(substr($string, -4) != '.txt'){ echo "string neobsahuje .txt"; } Děkuji |
||
ShiraNai7 Profil |
#7 · Zasláno: 14. 6. 2011, 16:45:11
Marek Vašut:
„ta vaš podmínka bude naprosto shodná s touto podmínkou?“ Funkčně ano, ale jak jsem psal - je zbytečné používat !=, když vím, že budou oba operandy řetězce, tj mohu použít !==. |
||
Časová prodleva: 13 let
|
0