Pagina 1 din 1
Selectare text din nume fisier
Scris: Sâm Iun 23, 2012
de Viruzzz
As dori un exemplu de cod php pentru a selecta numele poza-asta-large.jpg
Textu doar: poza-asta sau orice altceva scris, dar ca baza sa am large.jpg.
Selectare text din nume fisier
Scris: Sâm Iun 23, 2012
de MarPlo
Salut
Uite un exemplu de cod care selecteaza partea de text ce e pana la "large" din sirul care se termina cu "...large.jpg".
Cod: Selectaţi tot
<?php
$nmf = 'poza-asta-large.jpg';
$getrgx = '/(.*?)large.jpg/i';
if(preg_match($getrgx, $nmf, $mc)) {
echo trim($mc[1], '-');
}
else 'Nume fisier nepotrivit';
Selectare text din nume fisier
Scris: Sâm Iun 23, 2012
de Viruzzz
Dar la partea de la $nmf nu se poate face sa se ia orice nume dintr\-un folder cu poze si-n care sa caute doar ce au in componenta "...large.jpg" ?
Dupa care cu un echo $arata; sau ceva sa'mi arate numele complet al pozei poza-asta-large.jpg, poza-2-large.jpg ....
Selectare text din nume fisier
Scris: Sâm Iun 23, 2012
de MarPlo
Acea parte de cod poti incerca si tu sa o faci.
Uite aici un tutorial despre lucru cu directoare si fisiere:
DirectoryIterator - obtine informatii despre fisiere si directoare , din explicatiile si exemplu de acolo, plus propriile tale idei si teste, poti adauga numele fisierelor intr-un Array, apoi parcurgi acel array si pastrezi doar elementele care vrei.
- Explicatii si exemplu sunt si in lectia
Lucru cu directoare.
Spor.
Selectare text din nume fisier
Scris: Sâm Iun 23, 2012
de Viruzzz
scuze, dar o parte e cam asa... cum o inteleg eu:
Cod: Selectaţi tot
$dir = "catalog/".$ID_Number."/PARTEA ASTA";
$getrgx = '/(.*?)large.jpg/i';
if(preg_match($getrgx, $dir, $mc)) {
echo trim($mc[1], '-');
}
else 'Nume fisier nepotrivit';
la "PARTEA ASTA" nu inteleg cum sa fac... m'am uitat acolo, dar nu m'am prins.
sau no mai trec fiindca o ia de la $getrgx ?
Selectare text din nume fisier
Scris: Sâm Iun 23, 2012
de MarPlo
Daca e vorba de un singur fisier, scrie direct numele.
Daca vrei sa folosesti mai multe nume de fisiere din director, nu merge aplicat direct codul dat mai sus, acela e doar un exemplu
pe care-l poti adapta la un cod facut de tine.
Deci:
1. Se preia numele fisierelor dintr-un director, poti folosi " DirectoryIterator ", sau
opendir() cu
readdir(). Sunt exemple clare in link-urile date mai sus, sau vezi in manualul PHP ( php.net ) cum se folosesc aceste functii.
2. In functia care parcurge fisierele din director poti adauga functia preg_match() data mai sus, ca sa fie aplicata la fiecare fisier parcurs.
Poate iti e de folos si codul din subiectul de aici:
Preia nume fisiere dintr-un director.
Selectare text din nume fisier
Scris: Sâm Iun 23, 2012
de Viruzzz
Nu dau de cap cu problema asta... o inceput sa ma doara capul sa ma tot uit pe php.net, am incercat de mai jos, dar imi apare cu Array.
Cod: Selectaţi tot
<?php
$imgdir = 'catalog/images/'.$ID_Number.'/';
$files = array();
$objDI = new DirectoryIterator($imgdir);
foreach($objDI as $fileinfo)
{
if($fileinfo->isFile())
{
$files[] = preg_match('/(.*?)large.jpg/i', '', $fileinfo->getFilename());
}
}
?>
<img src="<?php echo implode('', $files);?>" />
Cum anume trebuie.... sa-l realizez?.. pls, un code complet.
Selectare text din nume fisier
Scris: Dum Iun 24, 2012
de MarPlo
E greseala la parametrii functiei preg_match().
Incearca exemplu acesta, mai departe il poti modifica dupa cum stii.
Cod: Selectaţi tot
<?php
$imgdir = 'catalog/images/'.$ID_Number.'/';
$objDI = new DirectoryIterator($imgdir);
foreach($objDI as $fileinfo){
if($fileinfo->isFile()){
if(preg_match('/(.*?)large.jpg/i', $fileinfo->getFilename(), $mc)) {
$fname = $mc[0]; // numele fisierului cu "large"
$fara_large = trim($mc[1], '-'); // partea fara "large.jpg"
echo '<img src="'. $fname. '" /> '. $fara_large. '<br/>';
}
}
}
?>