Avatar billede sako Nybegynder
11. marts 2005 - 12:19 Der er 3 kommentarer og
1 løsning

Mulighed for at bruge include via {nyhedsmail}

Jeg har følgende script til at skifte et bestemt ord ud med ...

f.eks hvis der står {nyhedsmail} og {sogemodul} så bliver det skiftet ud med henholdsvis 2 og 3.

$s = $str;
$arrRepl = array(
"{nyhedsmail}" => "2",             
"{sogemodul}" => "3",               
);
print strtr($s, $arrRepl);

Det virker også fint - men jeg ville gerne have udskriftet 2 og 3 til en include sætning - så det blev noget i retningen af:

$s = $str;
$arrRepl = array(
"{nyhedsmail}" => include('modules/nyhedsbrev/index.php'),
"{sogemodul}" =>  include('modules/sog/sog.php'),
);
print strtr($s, $arrRepl);

Men det virker ikke rigtigt...
Avatar billede sone Nybegynder
11. marts 2005 - 12:54 #1
nej, der er 2 problemer:
1. include er en kommando som skal udføres i PHP
2. include er en kommando, som ikke outputter en text (og det skal du bruge for at kunne have replace.

Du bliver nød til at lave det med if (eller lign.):
if ( strpos('{nyhedsmail}') ) {
  include('modules/nyhedsbrev/index.php');
  str_replace(''{nyhedsmail}'', nyhedsbrev_function(), $s);
}
Avatar billede sako Nybegynder
11. marts 2005 - 14:41 #2
måske jeg skulle have forklaret det lidt bedre - $str = indholdet af min hjemmeside fra en database - synes ikke lige jeg kan få dit eksempel til at virke....
Avatar billede olebole Juniormester
11. marts 2005 - 15:07 #3
<ole>

Du kan kun bruge strtr() til at udskifte strengstumper i en streng. Det, du vil sætte ind, er dog ikke en streng (selvom du fejlagtigt opfatter den som sådan), men et funktionskald. Du kan god skrive:

$s = $str;
$arrRepl = array(
"{nyhedsmail}" => "include('modules/nyhedsbrev/index.php')",
"{sogemodul}" =>  "include('modules/sog/sog.php')",
);
print strtr($s, $arrRepl);

- men det giver dig blot streng-værdien ... din include bliver ikke kaldt. Du kan ikke på den måde 'veksle' en streng til et funktionskald  :)

/mvh
</bole>
Avatar billede sako Nybegynder
11. marts 2005 - 15:39 #4
Nej det er også blevet konklusionen må finde en anden løsning - men tak for forklaringen.
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