Autor Zpráva
Marek Vašut
Profil *
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
A kde hledáte?
http://php.net/manual/en/function.strpos.php
ShiraNai7
Profil
Marek Vašut:
if(substr($string, -4) === '.txt') { ...ano... }
else {...ne... }
Marek Vašut
Profil *
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
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 *
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
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 !==.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0