DevProTalk

DevProTalk (http://www.devprotalk.com/index.php)
-   Sva početnička pitanja (http://www.devprotalk.com/forumdisplay.php?f=40)
-   -   preg_replace problem :) krajnje cudno (http://www.devprotalk.com/showthread.php?t=7966)

flash_back 16. 10. 2009. 01:14

preg_replace problem :) krajnje cudno
 
pozdrav drugari, long time no see :)

imam jedan problemcic, mislio sam da sam ga resio naime pojavio se bug.. evo o cemu se zapravo radi..

kod za hvatanje [img] taga na mom www.tuningtube.rs forumu (inace forum lici na phpBB3, ugledao sam se na njihov HTML i layout ali je engine R u potpunosti) je do malo pre izgledao ovako:

Kôd:

$pretraga[7] = '/\[img\](.*)\[\/img\]/iU';
$zamena[7] = '<img src="$1" />';

obicno hvatanje i preg_replace koji kreira <img> tag.. resio sam da malo to unapredim, ljudi ubacuju ponekad povece slike i to ume lose da izgleda kada ispada van okvira foruma.. evo prva stvar koja me je zbunila da ne kazem zgranula:

Kôd:

$pretraga[7] = '/\[img\](.*)\[\/img\]/iU';
$slika = '$1'; // radi, vraca url slike

list($width, $height, $type, $attr) = @getimagesize($slika); // ne radi, ne mogu nikako da prenesem sliku, vraca uvek blank string..

dalje, onda sam pokusao odmah da je izvadim :) posto ovo nije uspelo, rekoh da probam ponovo da udarim preg_replace, pre glavnog.. uspelo je ali delimicno :D

Kôd:

// slika
$pretraga[7] = '/\[img\](.*)\[\/img\]/iU';
$slika = preg_replace($pretraga[7], '$1', $neki_tekst);
               
list($width, $height, $type, $attr) = @getimagesize($slika);
if ($width > 600):
        $zamena[7] = '<a href="$1" target="_blank"><img src="$1" width="600" /></a>';
else:
        $zamena[7] = '<img src="$1" />';
endif;

^ sta je ovde zanimljivo? zanimljivo je to da script uhvati ceo tekst za sliku, kako nemam pojma :D

znaci da pojasnim, ceo $neki_tekst se prenese u @getimagesize($slika) funkciju umesto cistog url-a slike, kao da prag_replace ne postoji..

inace pre nekih nedelju dana sam bio na jednom razgovoru za stalan posao, jedna stvar koju su mi rekli je da kad imam neki problem ne cutim 3 dana i 4-ti kazem zaglavio sam se ;) tako da imam problem, guglao sam 30min bez uspeha i pokusavao razne varijante ali nista nije urodilo plodom.. i gde cu nego na DPT :)

mileusna 16. 10. 2009. 01:29

Zbunjuješ sa ovim getimagesize i sl. Znači napiši lepo primer kako izgleda string na ulazu, kako izgleda pattern i šta dobiješ na izlazu, odnosno šta očekuješ da dobiješ na izlazu pa da vidimo... Vako ništa ne mogu da ti kažem kad ne znam kako izgleda $neki_tekst.

flash_back 16. 10. 2009. 01:38

krajnji preg_replace je:

Kôd:

return preg_replace($pretraga, $zamena, str_replace("\n", "<br />", str_replace("\r\n", "<br />", $this->Generisanje_Smajlija(auto_link($this->validacija->vrati_tekst_za_formu($tekst), 'url', TRUE)))));
ali to sumljam da je pomoglo :D

ocekujem da iz posta foruma elte u postu $neki_tekst tipa:

Kôd:

dugo nisam bio na DPT-u [ img ]http://images.businessweek.com/ss/06/07/top_brands/image/bmw.jpg[/img] drago mi je da brzo reaugujete ;))
izvucem samo url slike koji mogu dalje da procesuiram i uhvatim njegove osnovne parametre kao sto su visina i sirina i ako su veci od nekog limita (recimo 600px za sirinu) da ogranicim sliku u samom postu na 600px sirine i linkujem je u novom prozoru na istu pune velicine ;)

flash_back 16. 10. 2009. 01:40

problem je u tome sto se kroz preg_replace provuce (u zadnjem primeru) ceo text, ne ociscen i tako upada u getimagesize funkciju..

edit: mislim na zadnji primer prvog posta :)

flash_back 16. 10. 2009. 01:53

i nemoj da vas buni u krajnjem preg-u $this->validacija->vrati_tekst_za_formu($txt); :)

to sluzi da ocisti post od HTML elemenata i da se na rollover teme ili ikonice zadnjeg posta prikaze sadrzaj ;) evo kako izgleda, pogledajte // http://www.tuningtube.rs/forum.html

mileusna 16. 10. 2009. 02:00

Citat:

Kôd:

DPT-u [ img ]http://images.businessweek.com/ss/06/07/top_brands/image/bmw.jpg[/img]

Ček, jel postoje ovi spejsovi kod [ img ]?!

flash_back 16. 10. 2009. 02:04

ma jok, to sam ovde ubacio jer je ispisao sliku u kodu kada je ok img tag ;) a nixa prebacio ovde temu i boli ga k.. da pomogne drugaru :( pa bre druze nebi ni kacio temu da je nesto simple - pocetnicko :) znas me valjda ;)

flash_back 16. 10. 2009. 02:05

@mileusna: hvala na pomoci, valjda cemo do veceras da resimo stvar :)

mileusna 16. 10. 2009. 02:12

Ja te batice ne kontam:

Kôd:

$in = 'test [img ]http://images.businessweek.com/ss/06/07/top_brands/image/bmw.jpg[/img] test';
$out = preg_replace('/\[img\](.*)\[\/img\]/iU', '<img src="$1"/>', $in);
echo $out;

// ovo daje
// test <img src="http://images.businessweek.com/ss/06/07/top_brands/image/bmw.jpg"/> test

Koji je tu problem?!

flash_back 16. 10. 2009. 02:24

^ tako je, sve je to ok, takav je i bio kod, to je i prvi primer prvog posta i to radi ok, tu nema spornih detalja :) a sada probaj da samo sliku ubacis u getimagesize() funkciju? da izvucem parametre za sirinu i ako su veci od npr: 600px da zamena za preg bude <a href="$1" target="_blank"><img src="$1" width="600" /></a>?

ne znam dali si me razumeo sta ja pokusavam da uradim ovde? cista glupost ali neverovatno, u drugom primeru prvog posta mogu da izvadim URL u string ali ne mogu da ga prosledim u getimagesize() funkciju? zvuci smesno ali je tako :)

dalje, u trecem primeru prvog posta, prag_replace ne cisti uneti post/string, vec ga celog prosledjuje dalje u getimagesize() funkciju.. o tome ja pricam, nadam se da sam sada malo pojasnio :)

@nixa, sto obrisao onaj post, stvarno sam u pravu, prebacio si temu u pocetnicka pitanja, stvar je naizgled simple ali u opste nije ;) da se ponovim, kad mozes da prebacis temu mozes onda sigurno i da resis zagonetku genije :D da te vidimo :)


Vreme je GMT +2. Trenutno vreme je 20:52.

Powered by vBulletin® Verzija 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Copyright © DevProTalk. All Rights Reserved.

Mišljenja, saveti, izjave, ponude ili druge informacije ili sadržaji nastali na Sajtu su vlasništvo onoga ko ih je kreirao, a ne DevProTalk.com, tako da ne morate da se oslanjate na njih.
Autori poruka su jedini odgovorni za ovakve sadržaje. DevProTalk.com ne garantuje tačnost, kompletnost ili upotrebnu vrednost informacija, stavova, saveta ili datih izjava. Ne postoje uslovi pod kojima bi mi bili odgovorni za štetu ili gubitak koji je posledica bilo čijeg oslanjanja na nepouzdane informacije, ili bilo kakve informacije nastale kroz komunikaciju između registrovanih članova.
Web sajt može sadržavati linkove na druge web sajtove na Internetu ili neke druge sadržaje. Ne kontrolišemo niti podržavamo te druge web sajtove, niti smo pregledali bilo kakve sadržaje na takvim sajtovima. Mi nećemo biti odgovorni za legalnost, tačnost ili prikladnost bilo kog sadržaja, oglasa, proizvoda, usluga ili informacije lociranim na ili distribuiranih kroz druge web sajtove, niti za bilo kakvu štetu nastalu kao posledica takvih informacija. DevProTalk.com drži i čuva druga prava vlasništva na web sajtu. Web sajt sadrže materijale zaštićene copyright-om, zaštitne znakove i druge informacije o pravu vlasništva ili softver. Članovi mogu poslatu informacije zaštićene pravima vlasništva njihovih nosilaca i ona ostaju zaštićena bez obzira da li su oni koji prenose te informacije to naveli ili ne. Osim informacija koje su u javnom vlasništvu ili za koje dobijete dozvolu, nemate pravo da kopirate, modifikujete ili na bilo koji način menjate, objavljujete, prenosite, distribuirate, izvršavate, prikazujete ili prodajte bilo koju informaciju zaštićenu pravima vlasništva. Slanjem informacija ili sadržaja na bilo koji deo DevProTalk.com, Vi automatski dozvoljavate i predstavljate garanciju da imate pravo da dozvolite DevProTalk.com ili članovima DevProTalk.com bespovratnu, kontinualnu, neograničenu, globalnu dozvolu da koriste, kopiraju, izvršavaju, prikazuju i distribuiraju takve informacije i sadržaje i da iz takvih sadžaja koriste bilo koji deo u bilo koje svrhe, kao i pravo i dozvolu da koriste gore navedene sadržaje. Svi zaštitni znakovi (trademarks), logotipi, oznake usluga, firme ili imena proizvoda koji se pominju na ovom web sajtu su vlasništvo kojim raspolažu njihovi vlasnici.