Avatar billede thulstrup Nybegynder
08. september 2003 - 18:35 Der er 7 kommentarer og
1 løsning

søg og erstat ud fra liste

Jeg leder efter en funktion, der kan checke om der findes ord i en tekststreng matcher ord i en liste over forkortelser. Hvis de matcher skal ordets betydning tilføjes til tekststrengen. I tilfælde af at det lyder lidt kryptisk, er her et lille pseudo eksempel :-)


Tekststrengen:
$str = "IE<br />og OS";

Listen:
IE = InternetExplorer;
OS = OperativSystem;

Resultatet:
$str = "<div class=\"InternetExplorer\">IE</div><br />og <div class=\"OperativSystem\">OS</div>";
Avatar billede detox Nybegynder
08. september 2003 - 18:42 #1
Ligger denne liste i en seperat fil?
Avatar billede detox Nybegynder
08. september 2003 - 19:17 #2
I så fald kan du bruge noget i den her stil:

<?
$str = "IE<br />og OS";
$lines = file('text.txt');//Fil med liste
foreach ($lines as $line) {
    $arr = explode("=", $line);
    $searchw = trim($arr[0]);
    $search[] = $searchw;
    $repw = trim($arr[1]);
    $repw = substr($repw,0,strlen($repw)-1);
    $rep[] = "<div class=\"".$repw."\">".$searchw."</div>";
}
$str = str_replace($search, $rep, $str);
echo $str;
?>

Hvilket giver output:
"<div class=\"InternetExplorer\">IE</div><br />og <div class=\"OperativSystem\">OS</div>"
Avatar billede thulstrup Nybegynder
08. september 2003 - 21:58 #3
Hvad hvis de ligger i en db tabel med opbygningen?:

id
forkortelse
betydning
Avatar billede detox Nybegynder
08. september 2003 - 22:08 #4
Så må det blive noget i den her stil:

<?
$str = "IE<br />og OS";
//connect til database
$res = mysql_query("SELECT * FROM tabel") or die(mysql_error());
while ($row = mysql_fetch_assoc($res) {
    $searchw = trim($row['forkortelse']);
    $search[] = $searchw;
    $repw = trim($row['betydning']);
    $rep[] = "<div class=\"".$repw."\">".$searchw."</div>";
}
$new_str = str_replace($search, $rep, $str);
echo $new_str;
?>
Avatar billede detox Nybegynder
08. september 2003 - 22:12 #5
Hov der mangler en parentes:

<?
$str = "IE<br />og OS";
//connect til database
$res = mysql_query("SELECT * FROM tabel") or die(mysql_error());
while ($row = mysql_fetch_assoc($res)) {
    $searchw = trim($row['forkortelse']);
    $search[] = $searchw;
    $repw = trim($row['betydning']);
    $rep[] = "<div class=\"".$repw."\">".$searchw."</div>";
}
$new_str = str_replace($search, $rep, $str);
echo $new_str;
?>
Avatar billede thulstrup Nybegynder
08. september 2003 - 22:53 #6
Det spiller bare! Du må gerne ligge et svar detox.
Avatar billede detox Nybegynder
08. september 2003 - 23:16 #7
Ok. c",)
Avatar billede thulstrup Nybegynder
08. september 2003 - 23:20 #8
Tak for hjælpen!
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