Autor Zpráva
panterek
Profil
Zdravím,

asi to bude primitivní blbost, ale cosi mi nejde přijít na syntaxi, případně správnou funkci, která by zajistila tohle:

název souboru:
$string = 15.fotka.jpg
Já potřebuju, abych dostal z php jen "fotka.jpg"..tedy bez toho úvodního čísla.

Podařilo se mi to takhle: echo substr($string, 3);

Jenže když bude číslo pětimístné, tak to jaksi nebude sedět a počet cifer nebudu znát, číslo bude narůstat..

Potřeboval bych php říct: "udělej výpis řetězce ZA první tečkou"

Šlo by to asi vytvořením pole (explode), ale pokud by byla nějaká funkce přímo na tohle, byl bych radši...

díky za nápady
panterek
Profil
Tak řešení pomocí explode je taky celkem jednoduché

$prom = "143.nejaka fotka.jpg";
$pole = explode (".", $prom);
echo "$pole[1].$pole[2]";


nicméně kdyby někdo poradil pomocí regulárních výrazů, bylo by to supr
imploder
Profil
Jde použít regulární výrazy.
echo preg_replace('/^.*?\.(.*)$/', '$1',$string);

viz http://www.regularnivyrazy.info/serial-php-pcre-perl-compatible.html

Bez regulárních výrazů to jde taky - prostě najít pozici první tečky cyklem a pomocí substr vybrat všechno za ní (možná je to rychlejší než RV):
$i=0;
while($string[$i]!='.') $i++;
echo substr($string, $i+1);
panterek
Profil
Ha, to je přesně ono...díky moc
Joker
Profil
A co třeba taková funkce strstr?

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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