Beste,

Ik heb al even lopen zoeken (ook via google) maar ik heb nog geen antwoord op mijn vraag gevonden, daarom stel ik deze hier.

Ik heb het volgende 'probleem':
Stel ik heb een CMS waarin ik alle urls met een bepaalde extenctie wil vervangen door een plaatje waar dan de link in zit verwerkt, hoe kan ik dit dan het beste uitwerken.

Ik kan goed begrijpen dat bovenstaande uitleg niet heel duidelijk is vandaar een voorbeeld:

Dus ik heb de url: http://www.website.nl/map/bestand.zip

Dit moet vervangen worden door:
<a href="http://www.website.nl/map/bestand.zip"><img scr="zip.png" /></a>

Bedoeling is wel dus dat alleen urls eindigend op .zip vervangen worden.

Alvast bedankt!
<?php
$file = 'http://www.website.nl/map/mijn_file.zip';;
if ( goedeExtensie($file) )
echo '<a href="'. $file .'"><img scr="zip.png" /></a>';

function goedeExtensie($file)
{
$goedeExtensies = array ('zip');
$pi = pathinfo($file);
if ( in_array(strtolower($pi['extension']), $goedeExtensies ) )
return true;
return false;
}
?>

(Even vlug aangepast van iets wat ik gisteren nog postte, hier: http://phphulp.nl/forum/showtopic.php?cat=1&id=64936&replies= )
Dank!
Edit: dit is inderdaad handig als de url in een string is, echter moet de url in een tekst vervangen worden en zijn plaats behouden
Weet iemand hoe ik de preg_replace moet samenstellen?

Gelieve Niet Bumpen:

Twee of meer keer achter elkaar in een topic posten heet bumpen. Bumpen is pas na 24 uur toegestaan en kan een reden zijn voor de admins en moderators om een topic te sluiten. Gebruik indien nodig de knop om je tekst aan te passen.

SanThe.


Edit: Excuses, niet de bedoeling geweest om te bumpen.
In plaats van return true zet je
return $pi['filename']. Die waarde vang je dan op.

EDIT:

Bekijk eens wat de functie pathinfo doet.
Dat splitst een string (die een url van een file zou moeten bevatten) om in pad, naam zonder extensie, naam met extensie, extensie.

Zie zelf in welk formaat je de return precies wil, bv.

return $pi['dirname'].'/'.$pi['filename'];

Aangezien de functie iets anders teruggeeft dan true, zou je ze beter ook hernoemen.

Reageren