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 |