login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Alle image url's in array

Offline pepijnfens - 20/02/2005 18:50 (laatste wijziging 20/02/2005 18:52)
Avatar van pepijnfensLid Hee,
Ik ben bezig met een image-resize script (zie eerdere topics , maar ik heb nu al meer zelf gedaan ), alleen het enige wat ik nog voor elkaar moet krijgen, is dat ik alle URL's van de plaatjes in een array kan krijgen.
Ik heb daar denk ik een loop voor nodig, array_push() en een reguliere expressie, maar ik heb geen idee hoe ik die expressie dan iedere url van het plaatje maar 1 keer in de array laat voorkomen. Ik denk dat het met een loop moet, maar dat is niet mn sterkste kant...
dit is de expressie voor plaatjes:
  1. <img.*src[[:space:]]?=[[:space:]]?["\']?(.*)["\']?.*>


Ik dacht dus aan een while lus en zolang er nog plaatjes gevonden worden (dus als iregi() TRUE is) hij die urls in een array doet.

4 antwoorden

Gesponsorde links
Offline numlockrond - 30/11/1999 00:00
Avatar van numlockrond Onbekend httpnl3.php.netmanualnlfunction.preg-match-all
Offline pepijnfens - 30/11/1999 00:00
Avatar van pepijnfens Lid ok dat is handig maar ik snap het nog niet helemaal.... Ze doen dus alle zoekresulaten in een apart deel van de array, en dan de substrings van dat deel in een subarray rnHoe moet je die dan aanroepen
Offline numlockrond - 30/11/1999 00:00
Avatar van numlockrond Onbekend zoals je dat altijd met een array doet. staat ook wel in die voorbeelden.
Offline pepijnfens - 30/11/1999 00:00 (laatste wijziging 30/11/1999 00:00)
Avatar van pepijnfens Lid Ik heb nu mijn script af met als voorbeeld even 2 plaatjes (een kleine en 1 té grote, die hij dan moet resizen) die het script moet vindenrnrn[code]rnrn$output = centerimg src=httpscreens.only-ds.nlNew_AvatarsBedrijf-Nintendo.jpgbrbrimg src=httpwww.jeux-france.comWebmastersImages36861020050221_141056_0_big.jpgcenter;rnrn$imagenourl = 'img.src[[space]]=[[space]]['](.)['].';rnarray 1 Url van plaatjernrn$propsreg = '((widthheight)[[space]]=[[space]]['](.)[']).((widthheight)[[space]]=[[space]]['](.)['])';rnarray 1 breedtehoogte tag helemaal array 4 breedtehoogte tag helemaalrnarray 2 woord width of height array 5 woord width of heightrnarray 3 Waarde array 6 waardernrnif(eregi($imagenourl,$output,$regex_2)) {rnEr is in ieder geval 1 plaatje aanwezig, maar voor het geval het er meer zijn zoeken we toch alle url'srnen zeten we ze allemaal in een array.rnpreg_match_all ($imagenourl,$output,$regex,PREG_SET_ORDER);rnnu Bevat $regex een aantal elementen en sub-elementen, gelijk aan het aantal images in de pagina.rnhet aantal afbeeldingen kunnen we makkelijk met count() berekenen.rn$aantal = count($regex);rnHij telt natuurlijk altijd 1 meer dan dat er zijn, want arrays beginnen bij 0.rn$aantal = $aantal - 1;rnrnfor ($i = 0; $i = $aantal; $i++) {rnrnIn deze loop gaat hij doet hij dit totdat hij alle plaatjes gehad heeft die in de array zijn gezet. rnrn$imagehtml_oud = $regex[$i][0];rn$imagehtml = $regex[$i][0];rn$imageurl = $regex[$i][1];rn if (eregi($propsreg,$imagehtml,$props)) {rn er zijn tags gevonden, kijken welke en met welke waarde.rn if ($props[2] == 'width') {rn $props[2] is de width, dus dan zal nr. 3 de breedte in px zijn.rn $breedte = $props[3];rn $hoogte = $props[6];rn }rn else {rn $breedte = $props[6];rn $hoogte = $props[3];rn }rn checken of het plaatje meer dan 400 px breed isrn if ($breedte 400 ) {rn Hij is groter, dus moeten we de tags replacen en op een goeie manier.rn $getsize = getimagesize($imageurl);rn $getbreedte = $getsize[0];rn $factor = $getbreedte 400;rn $hoogte_nieuw = $hoogte $factor;rn $breedte_nieuw = 400;rn rn $imagehtml = str_replace ($breedte, $breedte_nieuw.' ', $imagehtml);rn $imagehtml = str_replace ($hoogte, $hoogte_nieuw.' ', $imagehtml);rn rn $output = str_replace ($imagehtml_oud, $imagehtml, $output);rn }rn als het plaatje niet groter dan 400 is gebeurd er nietsrn else {rn }rn unset($props);rn }rn Er staan geen width of height tags in de tag, dus moeten we zelf kijken hoe groot ze zijn. rn else{rn $props = getimagesize($imageurl);rn $breedte = $props[0];rn $hoogte = $props[1];rn rn if ($breedte 400) {rn $factor = $breedte 400;rn $breedte_nieuw = 400;rn $hoogte_nieuw = $hoogte $factor;rn rn $imagehtml = str_replace ('', ' ', $imagehtml);rn $imagehtml = $imagehtml . ' height=' . $hoogte_nieuw . ' width=' . $breedte_nieuw .' ';rn rn $output = str_replace ($imagehtml_oud, $imagehtml, $output);rn } rn else { }rn unset($props);rn }rn}rn}rn rnelse {rnEr zijn geen plaatjes.rn} rnrnecho $output; rnrn[code] rnrnhttpmembers.lycos.nlpepijnfensphpplaatjescheck.php is de URL van 'de uitslag ' van het script. Je ziet dat het nog niet helemaal werkt dus... Iemand een idee wat ik fout heb gedaan
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.384s