Autor Zpráva
Budry
Profil
Zdravím, mám problém

potřeboval bych z jakékoliv adresy odstranit část řetězce.

Ukázka:
D:\Kappa\www\media\upload\images\bez-nazvu-2.png
neco\moje\blbost\upload\images\bez-nazvu-2.png

Tučné by mělo být smazáno.
Nějaký řetěžec umazat až po upload\images\ včetně - tímto bude vždy končit.

Ale vůbec si nevim rady jak to zapsat.

Předem dík za pomoc
ShiraNai7
Profil
Funkce basename(). Ale pozor na lomítka.. na Windows bere "\" i "/", jinde jen "/".
Budry
Profil
ShiraNai7:
To by asi nepomohlo protože v případě že bude

neco\moje\blbost\upload\images\moje-slozka\jina-slozka\bez-nazvu-2.png

tak pořád jen to tučné musí pryč
mimochodec
Profil
$posledni = end (explode("\\", $cesta));

[#6] ShiraNai7
Díky za upozornění, netestoval jsem a tohle jsem si neuvědomil. Tu druhou chybu ani nevidím, ani jí nerozumím.
Jan Tvrdík
Profil
Budry:
Zkoušel jsi vůbec tu funkci basename?
ShiraNai7
Profil
mimochodec:

Tvoje řešení není ideální:
1) Vyvolá chybu Strict Standards: Only variables should be passed by reference in ..
2) "\" selže na chybě syntaxe, chybí ti tam druhá uvozovka

Budry:
Další možnost:

$cesta = str_replace(array('\\'), '/', $cesta);
$pozice = strrpos($cesta, '/');
if(false !== $pozice) {
    $cesta = substr($cesta, $pozice + 1);
}
Budry
Profil
Pardón omlouvám se, blbě jsem označil tu část.

takhle to mělo bejt neco\moje\blbost\upload\images\moje-slozka\jina-slozka\bez-nazvu-2.png

Prostě to co je dál za images\ nechat
ShiraNai7
Profil
Budry:

$cesta = 'neco\moje\blbost\upload\images\moje-slozka\jina-slozka\bez-nazvu-2.png';

$prefix = 'neco\moje\blbost\upload\images\\';
$prefixLen = strlen($prefix);
if(substr($cesta, 0, $prefixLen) === $prefix) {
    $cesta = substr($cesta, $prefixLen);
}

echo $cesta; // vypise moje-slozka\jina-slozka\bez-nazvu-2.png
Budry
Profil
ShiraNai7:
To co je před \upload\images\ se bude měnit a to co je za chci vytáhnout...
To tvoje by nefungovalo.
mimochodec
Profil
Nebo prostě http://cz2.php.net/manual/en/function.str-replace.php
ShiraNai7
Profil
Já končím. Nejsi schopný se vyjádřit, co vlastně chceš.
Budry
Profil
mimochodec:


Potřebuju abych ze stringu XXXXX\upload\images\YYYYY ..... vytáhl to Y. X neznám Mělo by to jít přes regulár ale nevim jak ho dát dohormady :(
mimochodec
Profil
Budry:
Zamyslel ses, jak funguje to co píšu v #4?
Budry
Profil
mimochodec:
a co když bude zápis xXXX\upload\images\moje-složka\jina-složka\muj.jpg a já z toho chci dostat moje-složka\jina-složka\muj.jpg to cos psal ve #4 by mi vzalo jen konec
mimochodec
Profil
Budry:
explode rozdělí text do pole podle toho, co mu zadáš. Zadej tomu upload\images\.
Budry
Profil
Přišlo mi to divné řešit tahle, regulár mi přišel lepší ale nepovedlo se mi ho dát dohroamdy

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