Menu schließen

Php str_replace funzt net

Frage: Php str_replace funzt net
(14 Antworten)

 
Zitat:

while($ausgabe = mysql_fetch_object($sql_do))
{$content = $ausgabe->content;
$content1 = htmlspecialchars($content);
$content2 = str_replace("$bb", "$bb_1", "$content1");
$email = htmlspecialchars($ausgabe->email);
$name = htmlspecialchars($ausgabe->name);
echo`<tr><td>Name:</td><td>`;echo $name;echo`</td></tr><tr><td><a href="mailto:`;echo $email;echo`">E-mail</a></td><td></td></tr><tr><td>Eintrag:</td><td>`;echo $content2;echo`</td></tr>`;

}


Hallo,
Ich habe ein Problem. Und zwar funktioniert str_replace irgendwie nicht.
$bb und $bb_1 (beides arrays) sind in der Config.php die in der 1. Zeile (nicht zitiert) included wird.

Nun ist mein Problem, dass in der Variable $content $bb nicht durch $bb_1 ersetzt wird.

Htmlspecialchars lässt die eckigen Klammern nicht inn nem Ersatzcode, wie ichs vermutet habe.
Mh Danke für die Hilfe
Marcel
GAST stellte diese Frage am 12.08.2007 - 20:54

 
Antwort von GAST | 12.08.2007 - 22:07
Neeeee, das musst du anders machen!


1.) Du musst die Array mit Keys und Values schreiben:

Zitat:

$bb= array(
`[b ]` => `<span style="font-weight: bold;">`,
`[/b ]` => `</span>`,
`[u ]` => `<span style="text-decoration: underline;">`,
`[/u ]` => `</span>`,
`[i ]` => `<span style="font-style: italic;">`,
`[/i ]` => `</span>`,
);

Wegen den BB-Codes habe ich da noch jeweils ein Leerzeichen gemacht, das muss nachher natürlich weg! ;)


2.) Du musst du die Syntax von str_replace anders schreiben!

Zitat:
$content2 = str_replace(array_keys($bb), array_values($bb), $content1);


Zu 2.) Hier sind die Array-Keys die Sachen, die bei 1.) LINKS standen und die Array-Values die Sachen, die bei 1.) RECHTS hinter dem "=>" standen!

3.) Du kannst sehr viele "echo"-Befehle sparen!

Zitat:

echo "<tr><td>Name:</td><td>$name</td></tr><tr><td><a href="mailto: $email">E-mail</a></td><td></td></tr><tr><td>Eintrag:</td><td>$content2
</td></tr>";


Zu 3.)

- Vor alle "-Zeichen, die sich INNERHALB des echo-Befehls befinden, musst du ein Backslash-Zeichen setzen!

Beispiel: echo "<a href=X"home.htmlX">Home</a>";

Das Forum zeigt den Backslash nicht an, also: Überall wo ein X ist, muss ein Backslash hin!

- Du kannst innerhalb des "echo"-Befehls alle Variablen einfach reinschreiben, du hast z. B. für jede Variable ein eigenes echo gemacht - Brauchst du nicht! ;)

- Wenn es im Forum nicht mit Strg + # klappt, dann nimm das "-Zeichen. Das ist in PHP auch konform und das Forum stellt das richtig dar!


Und nochwas:

Wenn du nicht unbedingt jede Stufe deiner Formatierung von $content speichern willst, dann kannst du auch $content immer wieder überschreiben, anstatt immer wieder neue Variablen zu definieren:

Zitat:

$content = $ausgabe->content;
$content = htmlspecialchars($content);
$content = str_replace("$bb", "$bb_1", "$content");


Zuerst sagst du, was $content ist, dann entfernst du die < und > und danach ersetzt du die BB-Codes! Und die Anfangsvariable bleibt immer die gleiche. Aber wenn du, wie oben gesagt, alle Zwischenschritte gesichert haben willst, kannst du das auch so machen, wie du es oben getan hast!

Ich hoffe, ich konnte dir helfen! ;)

Gruß
Roman

 
Antwort von GAST | 12.08.2007 - 20:58
Achso nicht denken ich nehme `. Das ist SHIFT + #, aber bei eHausi wirds falsch interpretiert.

 
Antwort von GAST | 12.08.2007 - 21:10
Hallo?
Keiner da, der ne Idee hat, woran`s liegen könnte?


Autor
Beiträge 0
13
Antwort von Elrond (ehem. Mitglied) | 12.08.2007 - 21:16
wart doch bis roman wieder da ist der wird dir wieder weiterhelfen

 
Antwort von GAST | 12.08.2007 - 21:17
mh aber es gibt laut ehausi mehrere Informatik-Experten...

 
Antwort von GAST | 12.08.2007 - 21:18
Muha jetzt denkt Marcel, dass vielleicht jemand ne Idee hat, dabei wollte ich nur was schreiben, damit er sich umsonst Hoffnungen macht..

 
Antwort von GAST | 12.08.2007 - 21:21
sdf leider gibts kein rankingabzugsbutton für mich..


Autor
Beiträge 0
13
Antwort von Elrond (ehem. Mitglied) | 12.08.2007 - 21:21
stimme ist das was du dann gerade da gemacht hast nicht Spammen?-.-;;

shit das was ich hier jetzt mache auch-.-

 
Antwort von GAST | 12.08.2007 - 21:44
Zeig mit mal deine $bb und $bb_1 vollständig!

 
Antwort von GAST | 12.08.2007 - 21:45
1. ist es nicht so intelligent so etwas in dieses forum zu posten, allein schon deswegen weil man in 10 sekunden bei google ein besseres forum dafür findet und
2. behalt ich lieber für mich oh man o<

 
Antwort von GAST | 12.08.2007 - 21:48
$bb = array(``, ``, ``, ``);
$bb_1 = array(`<b>`, `</b>`, `<font style="text-decoration:underline;">`);

genau so sind die variablen

 
Antwort von GAST | 12.08.2007 - 21:50
AHHHHHHH das sind bb codes oben einmal b, dann /b dann u und /u hab ich wohl vergessen..

 
Antwort von GAST | 12.08.2007 - 22:07
Neeeee, das musst du anders machen!


1.) Du musst die Array mit Keys und Values schreiben:

Zitat:

$bb= array(
`[b ]` => `<span style="font-weight: bold;">`,
`[/b ]` => `</span>`,
`[u ]` => `<span style="text-decoration: underline;">`,
`[/u ]` => `</span>`,
`[i ]` => `<span style="font-style: italic;">`,
`[/i ]` => `</span>`,
);

Wegen den BB-Codes habe ich da noch jeweils ein Leerzeichen gemacht, das muss nachher natürlich weg! ;)


2.) Du musst du die Syntax von str_replace anders schreiben!

Zitat:
$content2 = str_replace(array_keys($bb), array_values($bb), $content1);


Zu 2.) Hier sind die Array-Keys die Sachen, die bei 1.) LINKS standen und die Array-Values die Sachen, die bei 1.) RECHTS hinter dem "=>" standen!

3.) Du kannst sehr viele "echo"-Befehle sparen!

Zitat:

echo "<tr><td>Name:</td><td>$name</td></tr><tr><td><a href="mailto: $email">E-mail</a></td><td></td></tr><tr><td>Eintrag:</td><td>$content2
</td></tr>";


Zu 3.)

- Vor alle "-Zeichen, die sich INNERHALB des echo-Befehls befinden, musst du ein Backslash-Zeichen setzen!

Beispiel: echo "<a href=X"home.htmlX">Home</a>";

Das Forum zeigt den Backslash nicht an, also: Überall wo ein X ist, muss ein Backslash hin!

- Du kannst innerhalb des "echo"-Befehls alle Variablen einfach reinschreiben, du hast z. B. für jede Variable ein eigenes echo gemacht - Brauchst du nicht! ;)

- Wenn es im Forum nicht mit Strg + # klappt, dann nimm das "-Zeichen. Das ist in PHP auch konform und das Forum stellt das richtig dar!


Und nochwas:

Wenn du nicht unbedingt jede Stufe deiner Formatierung von $content speichern willst, dann kannst du auch $content immer wieder überschreiben, anstatt immer wieder neue Variablen zu definieren:

Zitat:

$content = $ausgabe->content;
$content = htmlspecialchars($content);
$content = str_replace("$bb", "$bb_1", "$content");


Zuerst sagst du, was $content ist, dann entfernst du die < und > und danach ersetzt du die BB-Codes! Und die Anfangsvariable bleibt immer die gleiche. Aber wenn du, wie oben gesagt, alle Zwischenschritte gesichert haben willst, kannst du das auch so machen, wie du es oben getan hast!

Ich hoffe, ich konnte dir helfen! ;)

Gruß
Roman

 
Antwort von GAST | 12.08.2007 - 22:15
Vielen Dank Roman!
Mh ich geb dirn Ranking!
Jetzt geht das peeeerfekt.

 
Antwort von GAST | 12.08.2007 - 22:17
Ist gar kein Problem! ;)

Und dankeschön! :)

Verstoß melden Thread ist gesperrt
Hast Du eine eigene Frage an unsere Computer & Technik-Experten?

16 ähnliche Fragen im Forum: 0 passende Dokumente zum Thema:
> Du befindest dich hier: Support-Forum - Computer & Technik
ÄHNLICHE FRAGEN:
  • funzt skype bei euch!?!?
    ick werf ma die frage innen raum ..... funzt bei euch skype ?!?! weil bei mir klappt dat nich ma mitm anmelden. wenn ick ..
  • Korrektur, bitte !
    In the cartoon school is depicted as a prison. The policemen, who are watching the students replace the teachers. Control ..
  • css steam funzt net
    leute bei mir funktioniert counter stricke soruce online nicht weis jemand was man machen könnte andaunrd kommt der satz mit ..
  • Ubuntu mit Window 8 installieren
    Hallo zusammen, irgendwie habe ich Probleme Ubuntu auf auf mein PC zu bekommen. Kann jemand mir  Schritt für schritt ..
  • Milchreis: Zubereitung?
    WIe war das nochmal? Ist das genau die gleiche Regel wie bei normalen reis?(2 tassen wasser/milch eine tasse reis? Oder wie ..
  • Fragen zum e-hausaufgaben Quiz
    hey wie funzt das mit dem quiz hier genau ich kann so viele fragen beantworten wie ich will richtig4 p falsch -1 wenn ich ..
  • mehr ...