Berücksichtigung von Abschnitten in Hochkommas
TobiasBuschi
- php
0
Dennis
hallo allerseits
Ich habe zum Beispiel einen String (hier ein SQL-Query):
$string =
"
INSERT INTO test SET value='test;test';
INSERT INTO test SET value='noch was';
";
jetzt will ich diese Befehle ausführen
$querys = explode(';', $string);
foreach($querys AS $query){
mysql_query($query);
}
Ihr merkt vieleicht was ich meine, nun will ich die Querys anhand der ";" aufsplitten aber es kann natürlich auch ein ";" innerhalb eines querys vorkommen, jedoch nur innerhalb der Hochkommas.
In der Programmier-Technik kommt dieser Fall ja sehr häufig vor.
Wie löst man sowas?
mfg
Tobias Buschor
Hi TobiasBuschi,
Ihr merkt vieleicht was ich meine, nun will ich die Querys anhand der ";" aufsplitten aber es kann natürlich auch ein ";" innerhalb eines querys vorkommen, jedoch nur innerhalb der Hochkommas.
Wie löst man sowas?
Ich bediene mich für diesen Fall immer einer fertigen Funktion - PhpMyAdmin hat so etwas, da ja eingegebener SQL Code auch so zerlegt werden muss. Schau dir mal die Funktion PMA_splitSqlFile aus der Library read_dump.lib.php (im CVS) an.
MfG, Dennis.
Besten dank für den Hinweis!
Für diesen spezifischen Fall ist das bestimmt geeignet, ich suche jedoch nach einer grundsätzlichen Lösung für mein Problem.
Vieleicht eine Funktion die sowas macht:
$string = ' href="javascript:document.location.href='index.php'" target="_blanc" ';
echo meine_gewuenschte_string_funktion('"', $string);
Ausgabe: ' href="à?@%^%^èçà%è^è^%ç%çéèàç%/`覧¬`èèà覧" target="è^%ç`%" '
die Ausgabe ist der selbe String wie der Original-String, jedoch werden die Zeichen in Hochkomma-Abschnitten so verändert das sie nicht mehr als bekannte Zeichen erkannt werden, zum Beispiel Zeichen vom UTF8-Standart, die es gar nicht gibt.
So kann man den String bearbeiten ohne dass den Abschnitten in Hochkommas irgend etwas zustösst.
Es muss doch etwas geben das diesen Zwech erfüllt??
Jeder Browser und jeder Editor der Code higlighten kann und sicher noch ganz viele andere Anwendungen brauchen das!
Machen die das mit regulären Ausdrücken?
Ich muss das wissen :)
Danke
echo $begrüßung;
Jeder Browser und jeder Editor der Code higlighten kann und sicher noch ganz viele andere Anwendungen brauchen das!
Machen die das mit regulären Ausdrücken?
Nicht alle Zeichenfolgen eigenen sich zur Analyse per Mustererkennung. Du solltest dich mal über die Aufgabe eines Parsers erkundigen.
Ich muss das wissen :)
Die Quelltexte einiger Browser oder Code-Hochlichter sind frei zugänglich. Es findet sich bestimmt auch ein solcher Code in der von dir bevorzugten Programmiersprache in.
echo "$verabschiedung $name";
Hi TobiasBuschi,
Für diesen spezifischen Fall ist das bestimmt geeignet, ich suche jedoch nach einer grundsätzlichen Lösung für mein Problem.
Wie man so eine Vorform eines Parsers bauen kann, habe ich neulich schon mal gezeigt (und Christian hat es auch noch ausführlich erklärt) - dabei ging es zwar um das zählen eines Teil-Strings (und anschließendes Schneiden), die Grundidee die bei sowas aber dahinter steckt, ist dieselbe.
MfG, Dennis.