Gå til innhold

Inkludere fil og bytte ut tekst


Anbefalte innlegg

Hei!

Knoter litt med litt PHP .. Jeg kan det egentlig ikke, så ser meg fort litt blind på dette her, og klarer ikke å se hvor feilene ligger.

 

Skal hente inn en fil og bytte ut en liten tekst.

Dette er forenkla, men gir et bilde av hva jeg sliter med ...

Har følgende tekst i filen jeg vil inkludere:

 

<img src="1.jpg" />

 

og jeg ønsker å bytte det ut til:

 

<img src="2.jpg" />

 

Skjønner? :)

 

Surfa meg frem til følgende mulighet, men den funker ikke, og siden jeg ikke kan PHP finner jeg ikke løsningen ... Har virkelig prøvd, men klarer ikke løse det.

 

<?php function replaceImagePath($text)

{

return preg_replace('#1.jpg#', '2.jpg', $text);

}

 

ob_start('replaceImagePath');

include('bilde.php');

exit();

 

?>

 

Noen som er snille og hjelper meg? :)

Lenke til kommentar
Videoannonse
Annonse

Takk igjen!

 

Men allikevel, siden jeg driver med PHP på et latterlig lavt nivå, kan du skrive hele PHP-skriptet? Fra "<?php" til "?>"? :)

 

Det som er greia er at jeg må dytte inn "/contents/" i stien til alle bildene i en side jeg ønsker å inkludere.

Altså skal da <img src="etellerannet.jpg" /> bli til <img src="/contents/etellerannet.jpg" /> ..

Hadde vært utrolig snilt om du kunne hjelpe meg med det ..

 

Jeg vet ikke helt hvordan jeg skal bruke det du gir meg .. :)

Lenke til kommentar

Sådan:

<?php 
function replaceImagePath($text, $link){
return preg_replace('/(<img src=")(.*)(.jpg" \/>)/i', '$1'.'/contents/'.$link.'$3', $text);
}

$bilde ='<img src="etellerannet.jpg" />';
$bilde = replaceImagePath($bilde, 'etellerannet');
// $bilde er nå <img src="/contents/etellerannet.jpg" />
?>

?

Lenke til kommentar

Hei!

Nå har jeg sittet i halve kveld og fundert på denne oppgaven, så håper jeg forstod deg rett nå :D

$tekst = 'Laang tekst med bilder: <img src="haha.jpg" />, og <img src="hoho.jpg" />';

function add_folder($image){
$folder = '/content/';
	return preg_replace('/(<img src=")(.*)(\.jpg" \/>)/i', '$1'.$folder.'$2$3', $image[0]);
}

function replaceImagePath($text){
return preg_replace_callback('/(<img src=".*\.jpg" \/>)/iU', "add_folder", $text);
}

echo replaceImagePath($tekst);
?>

 

Edit: Forøvrig et passende innlegg nummer 1500!

Endret av Garanti
Lenke til kommentar

Takk skal du ha, Garanti! Skriptet fungerer, men tror vi igjen misforstod hverandre littegrann. Følgende tekst: "Laang tekst med bilder: <img src="haha.jpg" />, og <img src="hoho.jpg" />" står i et annet dokument enn hvor dette skriptet ligger. Altså må den andre filen hentes inn, jeg vil anta ved hjelp av en include-funksjon, eks include 'sti/til/filen.php' ...

 

Nesten flaut å spørre deg om å hjelpe meg enda en gang, men er det mulig? :)

Lenke til kommentar

Dessverre funka det dårlig når jeg måtte inkludere filen ...

Hele koden, som nå ikke funker, ser sånn ut:

 

<?php
$fil = '/contents/nyheter.php';
$fh = fopen($fil , 'r');
$tekst = fread($fh, filesize($fil));

function add_folder($image){
$folder = '/contents/';
	return preg_replace('/(<img src=")(.*)(\.jpg" \/>)/i', '$1'.$folder.'$2$3', $image[0]);
}

function replaceImagePath($text){
return preg_replace_callback('/(<img src=".*\.jpg" \/>)/iU', "add_folder", $text);
}

echo replaceImagePath($tekst);
?>

 

Jeg klarer ikke finne feilen ..

Lenke til kommentar

No problem!

Den ser slik ut:

 

<ul id="news">
<li>
<img class="cushycms" src="1.jpg" height="39" width="175" />
<div class="cushycms-text">
<h3><a href="/drammen/">Drammen</a></h3>
<p>Intro er i gang i elvenes by!</p>
</div></li>
<li>
<img class="cushycms" src="2.jpg" height="39" width="175" />
<div class="cushycms-text">
<h3><a href="/sandnes/uke/">Nye tema på Uke!</a></h3>
<p>Kroppen, Den Store Forskjellen og Lifedesign for Par.</p>
</div></li>
<li>
<img class="cushycms" src="3.jpg" height="39" width="175" />
<div class="cushycms-text">
<h3><a href="/sandnes/team/">Engasjer deg!</a></h3>
<p>Bli med på team?</p>
</div></li>
</ul>

 

Og altså skal da stien til hvert av bildene slik ut: src="/contents/1.jpg" osv etter at de har blitt inkludert i et annet dokument ..

Endret av Dunestar
Lenke til kommentar

Her da:

 

Den forrige "versjonen" støttet ikke at du brukte andre attributter enn "src". Det gjør derimot denne:

 

:)

$fil = 'sti/til/fil';
$fh = fopen($fil , 'r');
$tekst = fread($fh, filesize($fil));

function add_folder($image){
$folder = '/content/';
	return preg_replace('/(<img.*src=")(.*)(\.jpg".*\/>)/i', '$1'.$folder.'$2$3', $image[0]);
}

function addImagePath($text){
return preg_replace_callback('/(<img.*src=".*\.jpg".*\/>)/iU', "add_folder", $text);
}

echo addImagePath($tekst);

Lenke til kommentar

Er det ikke enklere å gjøre dette med str_replace, da?

 

<ul id="news">
<li>
<img class="cushycms" src="<#IMG_DIR#>/1.jpg" height="39" width="175" />
<div class="cushycms-text">
<h3><a href="/drammen/">Drammen</a></h3>
<p>Intro er i gang i elvenes by!</p>
</div></li>
<li>
<img class="cushycms" src="<#IMG_DIR#>/2.jpg" height="39" width="175" />
<div class="cushycms-text">
<h3><a href="/sandnes/uke/">Nye tema på Uke!</a></h3>
<p>Kroppen, Den Store Forskjellen og Lifedesign for Par.</p>
</div></li>
<li>
<img class="cushycms" src="<#IMG_DIR#>/3.jpg" height="39" width="175" />
<div class="cushycms-text">
<h3><a href="/sandnes/team/">Engasjer deg!</a></h3>
<p>Bli med på team?</p>
</div></li>
</ul>

 

$fil = 'sti/til/fil';
$fh = fopen($fil , 'r');
$tekst = fread($fh, filesize($fil));
$imgDir = '/content';

$tekst = str_replace( '<#IMG_DIR#>', $imgDir, $tekst );

echo $tekst;

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...