Hej udviklere.
Jeg prøvede her i dag, at starte på en smart funktion, som skal hente alle adresse på billeder, og senere hen vil jeg gerne udbygge funktionen. Indtil videre har det gået fint, men jeg er stødt på et LILLE problem. Jeg kan ikke gennemskue hvordan jeg, med 100 procents nøjagtighed finder url'en på billedet.
Jeg har lagt et eksempel op, så i kan få et indblik i hvad jeg har lavet.
http://www.stigaard.info/get_images.php?a=http://dr.dk (FUCK!!! Har ikke rettigheder til at bruge file-get-contents funktionen, har kun prøvet lokalt indtil nu, men her er min source kode så..
http://stigaard.info/get_images.phps )
Bemærk, at jeg har valgt at man skal kunne bruge $_GET til at åbne siden. Du kan også lade den være, så har jeg valgt en default.
Problemet er umiddelbart at min regular expressions ikke er korrekt, eller der mangler en ekstra del.
Problemet er dybest set, at hvis jeg bruger en side, for eksempel
http://stigaard.info, så har jeg valgt at den skal fjerne indhold efter den sidste "/", så derfor skulle url'en være
http://stigaard.info/ ELLER at jeg skulle ændre noget kode i min opsætning. Desuden så har jeg forsøgt at finde hoved og røv på, om billedet ligger intern på den side, eller om det er ekstern. Eksempel internt: /images/mypic.jpg, eksternt billede:
http://www.udvikleren.dk/images/logo_top.pngHvordan hitter jeg ud af det?
Her er min kode!!!!
- <?php
- $your_url = "http://www.stigaard.info/"; // http://www.stigaard.info/jens/tools/sunsign/
- if(isset($_GET['a']))
- $your_url = trim($_GET['a']);
-
- $urls = explode("/",$your_url);
- for($i=0;$i<count($urls);$i++)
- {
- $url.=$urls[$i];
- if($i!=(count($urls)-1))
- {
- $url.="/";
- $imageurl.=$urls[$i]."/";
- }
- }
- ?>
- <!-- har fjernet en stump html -->
- <?php
- print"<div>Fra adresse: <a href=\"".$url."\" target=\"_blank\">".$url."</a></div>";
- $cont = file_get_contents($url);
- //$output = trim($cont);
- //$output = str_replace("<","<",$cont);
- //$output = str_replace(" ","<br />",$cont);
- //print ($output);
- preg_match_all("/(<img )(.+?)( \/)?(>)/",$cont,$images);
- foreach ($images[2] as $val)
- {
- if (preg_match("/(src=)('|\")(.+?)('|\")/",$val,$matches) == true)
- {
- if(preg_match("/^http\:\/\/(.+?)$/",$matches[3],$theurl) == true)
- {
- $img[] = $theurl[0];
- }
- else
- {
- if(preg_match("/^\//",$matches[3]) == true)
- {
- $img[] = $url.$matches[3];
- }
- else
- {
- $img[] = $imageurl."".$matches[3];
- }
- }
- }
- }
- if(count($img)<1){
- print"<div>Ingen billeder</div>";
- }
- else
- {
- print"<table>";
- $i=1;
- foreach($img as $src)
- {
- $src = str_replace("&","&",$src);
- print"<tr>";
- print"<td style=\"background:";
- print ($i%2==1)?"#BBB":"#DDD";
- print";\"><a href=\"".$src."\" target=\"_blank\">".$src."</a></td>";
- print"<td align=center style=\"background:";
- print ($i%2==1)?"#BBB":"#DDD";
- print";\"><img src=\"".$src."\" /></td>";
- print"</tr>";
- $i++;
- }
- print"</table>";
- }
- ?>
EDIT: Små ændringer
Indlæg senest redigeret d. 23.03.2009 23:19 af Bruger #8782