Portál AbcLinuxu, 13. července 2025 17:08
Ahoj všem
potřeboval bych jednoduchým způsobem získat vždy část řetězce který se nachází za posledním dělítkem (::), délka tohoto textu se liší. Jelikož nejsem zdatný programátor v php prosím o radu zde, děkuji všem za případnou pomoc;
$string = 'Homepage::Help::Faq;
Řešení dotazu:
if (preg_match('/::([^:]+)$/', 'Homepage::Help::Faq;' , $matches)){ var_dump($matches[1]); }
substr($string, strrpos($string, '::') + 2);
echo end( explode( "::", $string ) );Vybral jsem si tento způsob ale teď jsem zjistitl, že mi php vrací chybu kterou neumím vysvětlit.. Nevíte prosím?
Strict Standards: Only variables should be passed by reference...
end()
může být pouze proměnná, aby se dala předat referencí. Jinak by do ní totiž funkce nemohla zapsat novou hodnotu pozice. Pole v PHP se v daném případě chová jako seznam. Řešením by mohlo být rozdělení na 2 řádky:
$arr=explode("::", $string); echo end($arr);
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.