Avatar billede gil-galad Nybegynder
21. juni 2004 - 13:49 Der er 6 kommentarer og
1 løsning

Hjælp med str_replace

Jeg bruger nyheder fra en XML feed på min hjemmeside med billeder i. Men folkene der laver den, kan ikke rigtigt finde ud af at bruge  komplette stier til billederne, så derfor bliver ikke alle billeder vist på min side, og det er ret grim.

Har selv prøvet lidt med noget str_replace men de virker ikke altid:
    $description = str_replace('../','http://www.astronomibladet.dk/',$item['description']);
    $description = str_replace('"/','http://www.astronomibladet.dk/',$item['description']);
    $description = str_replace('"/','http://www.astronomibladet.dk/',$item['description']);
    $description = str_replace('" /','" />',$item['description']);   
    $description = str_replace('<img','<img alt="Nyheder"',$description);
    $description = str_replace('<IMG','<img alt="Nyheder"',$description);
    $description = strip_tags($description,'<b><i><u><img>');



Dette er et udklip af xml arket (forkert sti):
<IMG SRC="../images/uploads/Rumfartsnyt/captiveCarry_inflight_lr.jpg" WIDTH="360" BORDER="0">

Dette er et udklip af xml arket (rigtig sti):
<img src="http://www.astronomibladet.dk/images/uploads/Rumfartsnyt/040611phoebe.jpg" width="350" height="162">


Hvis der ovenikøbet kunne laves sådan at den absolutte sti kom ind i et nyt array(el. hvad det hedder), og resten af <img> tagget fjernes, , ville det være perfekt.


Resten af min kode:

<?php
    echo "<div class=\"nyheder\">";
    echo "<table width=\"95%\" border=\"0\" align=\"center\" cellspacing=\"0\" cellpadding=\"0\">";
    require_once('filer/rss/rss_fetch.inc');
    $oldLevel = ini_get('error_reporting');
    error_reporting($oldLevel ^ E_USER_WARNING);
    $rss = fetch_rss('http://www.astronomibladet.dk/_index.xml');
    error_reporting($oldLevel);
  if( $rss != false ){
    foreach ($rss->items as $item) {
    $href = $item['link'];
    $title = $item['title'];
    $description = str_replace('../','http://www.astronomibladet.dk/',$item['description']);
    $description = str_replace('"/','http://www.astronomibladet.dk/',$item['description']);
    $description = str_replace('"/','http://www.astronomibladet.dk/',$item['description']);
    $description = str_replace('" /','" />',$item['description']);   
    $description = str_replace('<img','<img alt="Nyheder"',$description);
    $description = str_replace('<IMG','<img alt="Nyheder"',$description);
    $description = strip_tags($description,'<b><i><u><img>');

    echo "
    <tr>
      <td class=\"overskrifttabel\"><b>$title</b></td>
    </tr>
    <tr>
      <td><div align=\"justify\">$description</div></td>
    </tr>
    <tr>
      <td><div align=\"right\"><a href='$href' target=\"blank\">Klik her for at læse mere</a></div></td>
    </tr>";
      }}else{echo"En midlertidig fejl opstod.";}
      echo "</table></div>";
    ?><br>
Avatar billede gil-galad Nybegynder
21. juni 2004 - 13:50 #1
hvis i vil se hele xml arket, ligger det her: http://www.astronomibladet.dk/_index.xml
Avatar billede gil-galad Nybegynder
25. juni 2004 - 00:58 #2
snøft, hulk :'-(
Avatar billede Slettet bruger
26. juni 2004 - 14:27 #3
Prøv med

$description=preg_replace('/<img src="\s*(\.\.|http:\/\/www\.astronomibladet\.dk)?\//i','<img alt="" src="http://www.astronomibladet.dk/',$item['description'];

Den burde kunne erstatte alle dine str_replace
Avatar billede Slettet bruger
26. juni 2004 - 14:29 #4
Rettelse:

$description=preg_replace('/<img src="\s*(\.\.|http:\/\/www\.astronomibladet\.dk)?\//i','<img alt="" src="http://www.astronomibladet.dk/',$item['description']);
Avatar billede gil-galad Nybegynder
26. juni 2004 - 17:03 #5
Tak sandbox, undskyld jeg først svarer nu, men jeg fik ingen mails, da spørgsmålet var lukket :-)

Du kan hente dine points her: http://www.eksperten.dk/spm/514114
Avatar billede Slettet bruger
26. juni 2004 - 19:55 #6
Jeg går ud fra, at det virkede så?
Avatar billede gil-galad Nybegynder
26. juni 2004 - 19:56 #7
Ja det gjorde det sandelig :-)
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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