Avatar billede C:\> Juniormester
07. marts 2005 - 22:29 Der er 4 kommentarer og
1 løsning

Automatisk billede link, hvis et stort billede findes.

Jeg har våget mig ud på noget jeg ikke kan overskue.

Jeg ønsker at parse en hel html-tekst, som f.eks. denne:

bla. bla. <img alt="" src="http://www.hjemmeside.dk/images/thump2.jpg" border="0"/> bla. bla. Der er et vilkårligt antal billeder.

Jeg vil teste om billedet "thump2_stor.jpg" så eksister. I så fald skal der omsluttes med et <a href="show.php?thump2_stor.jpg"><img alt="" src...[fra før]</a>

Jeg vil være utrolig glad for lidt hjælp på vejen. I hvert fald det regulære udtryk til at trække billedet ud, og sætte linken ind.
Avatar billede roenving Novice
08. marts 2005 - 02:58 #1
RegExp ?-)

-- du må teste om ikke-thumbnailen eksisterer i dit script-sprog på serveren, men så kan du måske bruge denne: http://roenving.users.whitehat.dk/WD1ResizeTilBillede.html
Avatar billede C:\> Juniormester
08. marts 2005 - 21:14 #2
Det er ikke helt hvad jeg ønskede.

Det som jeg gerne vil er at
1. indlæse en ekstern html-kode,
2. finde alle de steder hvor der står <img src=billede.jpg
3. kontroller om billedet findes som stort (billede_stor.jpg)
4. hvis ja, indsættes der en <a href="">  ... </a> rund om <img src>-koden

Jeg er ikke kommet så langt endnu, jeg er faktisk kun kommet til at jeg kan vise filnavnene på billederne.

<?
  $filename = "a.html";
  $fd = fopen ($filename, "r");
  $string = fread ($fd, filesize ($filename));
  fclose ($fd);

  preg_match_all('|<img.*?src=[\'"](.*?)[\'"].*?>|i', $string, $matches);
  foreach ( $matches[1] as $url ) {
            $fname = basename ( $url );
            print "$url<br>";
  }
?>
Avatar billede C:\> Juniormester
08. marts 2005 - 22:33 #3
Jeg er kommet tættere på resultatet.
Er der noget i denne fedtmule-reg.exp som er forkert?


<?
  $filename = "a.html";
  $fd = fopen ($filename, "r");
  $string = fread ($fd, filesize ($filename));
  fclose ($fd);

  preg_match_all('|<img(.*?)>|i', $string, $matches);
  foreach ( $matches[1] as $url ) {
    preg_match('|src=[\'"](.*?)[\'"]|i', $url, $match);
    $fname=$match[1];
    $stor = str_replace(".jpg","_stor.jpg",$fname);

    if (file_exists(basename($stor))) {
      print "<img $url> - $stor<br><br>"; //billedet mangler blot at sættes tilbage igen!!! og jeg ved ikke lige hvordan!
    }
  }
?>
Avatar billede C:\> Juniormester
10. april 2005 - 16:03 #4
Lukker
Avatar billede C:\> Juniormester
10. april 2005 - 16:05 #5
.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester