So ersetzen Sie ein n-tes Vorkommen in einer Zeichenfolge

7

Ich brauche eine einfache und schnelle Lösung, um das n-te Vorkommen (Platzhalter) in einer Zeichenkette zu ersetzen.

Zum Beispiel sollte das n-te Fragezeichen in der SQL-Abfrage durch einen bereitgestellten Wert ersetzt werden.

$subject = "SELECT uid FROM users WHERE uid = ? or username = ?";

Also, ich brauche Funktion wie str_replace_nth($seach, $replace, $subject, $nth) und für das zweite Fragezeichen sollte es als str_replace_nth("?", $username, $subject, 2);

aufgerufen werden

Irgendwelche Ideen?

P.S. Bitte, schlage ich nicht vor, PDO zu verwenden, weil ich an FDO (Facebook Data Object) eine Bibliothek mit einer Schnittstelle arbeite ähnlich wie PDO, aber für FQL.

Wichtiger Hinweis! Ich habe herausgefunden, dass dieser Ansatz schlecht ist, weil nach dem ersten Ersetzen die Abfrage geändert wird und Indizes verloren gehen. (Schlechte Ansätze kommen, wenn Sie spät in der Nacht programmieren :() Also, wie @GolezTrol im Kommentar erwähnt, ist es besser, alle auf einmal zu ersetzen.

    
sasa 11.11.2013, 13:05
quelle

4 Antworten

13

Hier ist die Funktion, nach der Sie gefragt haben:

%Vor%

Hinweis: $nth ist ein nullbasierter Index!

Ich empfehle jedoch, etwas wie das Folgende zu verwenden, um die Platzhalter zu ersetzen:

%Vor%     
bitWorking 11.11.2013, 13:41
quelle
6

Warum verwenden Sie keine Fragezeichen, warum verwenden Sie keine solchen:

%Vor%     
Raphaël Malié 11.11.2013 13:09
quelle
0

Validierung des Eingabeparameters nicht erfolgt

%Vor%     
Avinash Ware 11.11.2013 13:50
quelle
0

Keine Ihrer Lösungen hat für mich funktioniert, also habe ich Folgendes gemacht:

%Vor%

tab () ist nur eine Funktion, die ich zum Drucken verwende:

%Vor%     
jeremyb 10.11.2015 16:00
quelle

Tags und Links