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
Annonse

[1] Random productId 9894511 from forum_276

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

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

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

Laster...
  • Hvem er aktive   0 medlemmer

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