• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

str_replace in funktionen geht nicht

pdflocker

Neues Mitglied
[Erledigt] str_replace in funktionen geht nicht

Hallo

ich hoffe hier kann mir jemand helfen :)

Und zwar, ich hab diese Function hier:

PHP:
function converter($para) {
    $para = str_replace($bb, $html, $para);

    $para = preg_replace('/\[url=(.+?)\](.+?)\[\/url\]/', '<a target="_blank" class="link" href="\1">\2</a>', $para);

    $para = nl2br($para);

    echo str_replace($mit_br, $ohne_br, $para);

}

Leider funktioniert das str_replace einfach nicht, es greift nicht darauf zu...Wenn ich diese Sachen ohne eine function schreibe, dann geht das...hat jemand eine idee? Das preg_replace geht. nl2br ebenfalls.
 
Zuletzt bearbeitet:
Werbung:
Frage: woher soll die Funktion $bb, $html, $mit_br und $ohne_br kennen???

Klassischer Fall von

Richtig debuggen

1.Man bemerkt, dass ein Skript nicht das tut, was es soll.
2.Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
3.Man verwendet ini_set('display_errors', true); damit die Fehler auch angezeigt werden.
4.Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
5.An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde. Wichtig bei MySQL Fehlern (...not a valid MySQL result resource...): mysql_error() verwenden oder Abfrage ausgeben und zb mit phpmyadmin testen.
6.Schritt 5 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
7.Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
8.Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
9.Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

Damit hätte man das auch alleine erkennen können.
 
Naja gut, ich kenn mich da schon aus und hab einiges gemacht. Die Funktion ansich steht GENAU unter den $bb, $htm etc...auch wenn ich die Funktion ausgelagert hatte (dort wo die ganzen sachen gehen ohne eine function), und genau da hin geschrieben, geht es nicht.
 
Werbung:
oh ok..danke dir^^' hab das jt gemacht, und bei mir kommt die selbe fehlermeldung raus. Hab die variablen (sind arrays) aber auch mal IN die funktion geschrieben, gehen tut es dennoch nicht.

//edit: Hab jt die variablen in der funktion vorher noch mit global gekennzeichnet, jetzt geht es...
 
Zuletzt bearbeitet:
//edit: Hab jt die variablen in der funktion vorher noch mit global gekennzeichnet, jetzt geht es...
Mag zwar funktionieren, aber das ist ja wohl nicht die richtig Lösung. Übergib der Funktion converter doch einfach die benötigten Variablen, das zumindest wäre die saubere Lösung.
 
Werbung:
das ist ja wohl nicht die richtig Lösung
Ich finde es immer wieder erstaunlich, dass viele erst mal in die falsche Richtung gehen. :D

Noch zur Ergänzung: globale Variablen führen fast immer zu einer Chaosprogrammierung, die hinterher keiner mehr wirklich überblicken kann.
 
Ich versuch mein bestes^^ Leider komm ich ansonsten nicht auf eine andere Lösung, so ein Problem hatte ich ehrlich gesagt noch nie bzw. die Situation..obwohl ich manchmal einfach die variablen IN die funktion geschrieben hab, ging es immer..hier leider nicht.

Ich hab eben gegooglet wie man variablen übergibt, aber ich komm einfach nicht auf die Lösung bzw. wird es mir bei den Ansätzen nicht klar.

//edit: bzw ich glaub ich hab da einen ansatz, durch parameter?
//edit2: jap geht^^ naja hätte auch vorher drauf kommen können...danke euch vielmals :)
 
Werbung:
Zurück
Oben