Avatar billede venchil Nybegynder
30. november 2005 - 16:40 Der er 8 kommentarer og
1 løsning

Flere str_replace

Jeg har følgende kode:

<?php

$tekst = $_POST["tekst"];
$a = str_replace(a, e, $tekst);
$b = str_replace(b, c, $tekst);

echo "<form method=\"post\" action=\"nc.php\">";
echo "<textarea name=\"tekst\" rows=\"6\" cols=\"20\">$a</textarea>";
echo "<input type=\"submit\" value=\"OK\">";
echo "</form>";

?>

Men jeg har kun $a i min textarea... Hvad skal jeg gøre hvis jeg vil have str_replace til både at bytte om på a og e og b og c???
Avatar billede hmortensen Nybegynder
30. november 2005 - 16:45 #1
str_replace kan ta arrays som input:
$a = str_replace(array('a', 'e'), array('b', 'c'), $tekst);
eller
$foer = array('a', 'e');
$efter = array('b', 'c');
$a = str_replace($foer, $efter, $tekst);
Avatar billede venchil Nybegynder
01. december 2005 - 15:24 #2
Hvad er der så galt med denne kode?

<?php

$replace1 = array("A", "E");
$replace2 = array("B", "C");
$replace3 = array("C", "D");
$replace4 = array("D", "F");
$replace5 = array("E", "I");
$replace6 = array("F", "G");
$replace7 = array("G", "H");
$replace8 = array("H", "J");
$replace9 = array("I", "O");
$replace10 = array("J", "K");
$replace11 = array("K", "L");
$replace12 = array("L", "M");
$replace13 = array("M", "N");
$replace14 = array("N", "P");
$replace15 = array("O", "U");
$replace16 = array("P", "Q");
$replace17 = array("Q", "R");
$replace18 = array("R", "S");
$replace19 = array("S", "T");
$replace20 = array("T", "V");
$replace21 = array("U", "Y");
$replace22 = array("V", "W");
$replace23 = array("W", "X");
$replace24 = array("X", "Z");
$replace25 = array("Y", "æ");
$replace26 = array("Z", "b");
$replace27 = array("Æ", "ø");
$replace28 = array("Ø", "Å");
$replace29 = array("Å", "A");

$_POST["tekst"] = str_replace($replace1, $replace2, $replace3, $replace4, $replace5, $replace6, $replace7, $replace8, $replace9, $replace10, $replace11, $replace12, $replace13, $replace14, $replace15, $replace16, $replace17, $replace18, $replace19, $replace20, $replace21, $replace22, $replace23, $replace24, $replace25, $replace26, $replace27, $replace28, $replace29 $_POST["tekst"]);

echo "<form method=\"post\" action=\"nc.php\">";
echo "<textarea name=\"tekst\" rows=\"6\" cols=\"20\">". $_POST["tekst"] ."</textarea>";
echo "<input type=\"submit\" value=\"OK\">";
echo "</form>";

?>
Avatar billede hmortensen Nybegynder
01. december 2005 - 15:28 #3
str_replace tager imod to paramtre til at udskifte:

$a = array('a', 'b', 'c', 'd', 'e');
$b = array('f', 'g', 'h', 'i', 'j');

$nyStr = str_replace($a, $b, $str);
Avatar billede venchil Nybegynder
01. december 2005 - 15:30 #4
Så hvordan skal min kode se ud? Tror ikke helt jeg forstår... :(
Avatar billede hmortensen Nybegynder
01. december 2005 - 15:35 #5
I det eksempel jeg lige ha vist, blir a til f, b til g, c til h, osv..
Avatar billede coderdk Praktikant
01. december 2005 - 19:40 #6
Jeg plejer at gøre det mere overskueligt sådan:

$rep = array(
      "A" => "F"
      ,"B" => "G"
      ,"C" => "H"
      ,"D" => "I"
      ,"E" => "J"
  );

$nytext = str_replace( array_keys( $rep ), array_values( $rep ), $gammeltext );

Man kan lissom se hvad der bliver til hvad i array'et :)
Avatar billede venchil Nybegynder
03. februar 2006 - 11:51 #7
coderdk, du må gerne lægge et svar
Avatar billede coderdk Praktikant
03. februar 2006 - 21:45 #8
Ok :)
Avatar billede coderdk Praktikant
03. februar 2006 - 21:45 #9
Aj altså, et svar skulle det jo være!
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