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);
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.
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%Warum verwenden Sie keine Fragezeichen, warum verwenden Sie keine solchen:
%Vor%Tags und Links php regex preg-replace