• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

RegEx teil löschen

TecEye

New member
Hy ich muss etwas an einem alten Projekt ändern, da geht noch alles mit GET anweisungen :D
Ich bin ehrlich, ich kann kein RegEx will aber folgendens
Link: ./admin_navileiste.php?action=senden&code=e4a8530727b2331e276835210e252204
action kann immer anders heißen.
ich will via
Code:
$url = str_replace("action=save", "", $url);
das action darauslöschen, aber halt kann der ja immer unterschiedlich sein, hat jeman die minute mir das Regex zu machen :D danke im vorraus
 
Folgendes Szenario, ich hatte damals provisorisch einen Adminbereich erstellt, im frontend, gab in der navi (wenn man entsprechende berechtigung hatte) einen Link "Adminbereich" dahinter waren verschiedene seiten zum einstellen, ich habe dann den Link (unterseiten) den man da gewählt hatte in ein cookie gespeichert, damit wenn man wieder auf "Adminbereich" geklickt hat wieder zu der Seite kam bei der man das letzte mal aufgehört hatte (würde ich heute natürlich ganz anders machen :D ) nunja, es wurde immer die ganze URL gespeichert, damit wenn man verschiedene inserate/artikel usw aufgerufen hat der code in der url mit drin war oder was noch alles für variablen, aber natürlich auch die action variable beim löschen, anlegen, versenden usw. es ist jetzt beim Newslettermodeul aufgeschlagen dass die URL zum verschicken sich auch speichert, wenn man dann wieder auf "adminbereich" klickt wird der Newsletter natürlich nochmals verschickt (ist erst heute aufgefallen, weil bislang immer nach dem senden eine andere aktion noch ausgeführt wurde).

Nunja lange Rede kurzer Sinn, ich habe keine Lust das alte Schätzchen ganz umzubauen, also reicht es mir nur "action" und dessen wert aus der url zu löschen ;)
Denke das ist kein Problem für unsere RegEx Profis hier :D
 
Würde dir sehr gern besser helfen aber ich benutze weder in JS noch in PHP Regexe.
In Perl sieht das so aus, vlt. kannst du das übersetzen?
Code:
#!/usr/bin/perl
use strict;
use warnings;

my $link = './admin_navileiste.php?action=senden&code=e4a8530727b2331e276835210e252204';
(my $bereinigt = $link) =~ s/action=senden&//;
print "vorher   : $link\n";
print "hinterher: $bereinigt\n";
vorher : ./admin_navileiste.php?action=senden&code=e4a8530727b2331e276835210e252204
hinterher: ./admin_navileiste.php?code=e4a8530727b2331e276835210e252204
Setzt aber voraus, dass nach dem action Parameter immer wenigstens noch ein weiterer kommt, wegen des & am Ende.
Ansonsten wird es mit Regex etwas schwieriger zu lösen sein.
 
Perl kann ich zu meiner Schande leider 0,0% :D aber kann mir nicht vorstellen dass das so kompliziert ist, von ?action=.... bis... erstes vorkommen von & zu ermitteln und dann zu löschen.
bin schon drauf und dran das ganz bad mit explode zu splitten, aber das ist echt grausig :D
Ja kommt immer mindestens ein parameter noch danach :)
 
in JS kp ich brauch es in PHP ;)

Das replacen ist ja nicht das Thema, sondern dass action viele unterschiedliche werte haben kann,
action=senden, action=delete, action=add, action=goup, action=godown usw. usw.
kann ja keine ewiglange replaceliste machen ;)
 
Das replacen ist ja nicht das Thema, sondern dass action viele unterschiedliche werte haben kann,
action=senden, action=delete, action=add, action=goup, action=godown usw. usw.
kann ja keine ewiglange replaceliste machen ;)
du willst also alles löschen was mit action= anfängt
dann jedes belibiges zeichen haben darf
das belibige zeichen darf mehrfach (mindestens einmal) vorkommen
und endet mit einem &
du darfst nicht zu gierig sein

oder

alles was mit action= anfängt
dann darf alle kommen was kein & ist
und mit & endet
hier darfst du deiner gier freien lauf lassen
 
/action=.*?&/ für 0-n zeichen zw. = und &
oder
/action=.+?&/ für 1-n zeichen zw. = und &
oder
/action=[^&]*&/
oder
/action=[^&]+&/
 
Zurück
Oben