PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Perl Url Namen austauschen



MrIch
27-09-2005, 10:23
Hallo Leute,

ich habe ein kleines Problem, ich baue einen squid redirector und möchte gewissen Adressen austauschen, beispielhaft:

http://test/post.php?name=otto&action=blabla

ich möchte Egal was für Name dort steht den Namen auf "klaus" setzen.

Kann mir jemand ein perl code "Schnipsel" dafür geben?

baumgartner
27-09-2005, 11:24
bahnhof

gehts etwas ausführlicher

MrIch
27-09-2005, 11:31
ich habe nen String dort steht eine Adresse drin


$url="http://test12339/post.php?name=otto&action=blabla"
# oder
$url="http://test45352/post.php?name=franz&action=blabla"

print $url;

als Adresse soll immer http://test12339/post.php?name=klaus&action=blabla rauskommen. Es soll also immer nur das zwischen name und action ersetzt werden. Wichtig ist das egal was davor(der servername) steht er nur den namen ändert.

baumgartner
27-09-2005, 12:35
das wär dann

$url =~ s/(^.*name=).*?(&.*)/$1klaus$2/;


sollte funktionieren
(is jetzt natürlich ungetestet :D )

MrIch
27-09-2005, 13:41
DANKE, funktioniert gut.

wie ersetze ich denn hier den Namen franz durch klaus?
http://test45352/Name/franz

Ich könnte mir zwar was mit split zurecht bauen, aber deine Lösung scheint mir komfortabler...

baumgartner
27-09-2005, 14:27
:rolleyes:

$url =~ s/(^.*Name/).*?/$1klaus/;

du bist ja ein ganz fauler :p :rolleyes:

baumgartner
27-09-2005, 14:28
bist du im besitzt eines Perl buches - vielleicht sogar larrys bibel??

do solltest mal das kapitel über Reguläre Ausdrücke lesen, bist ja richtig lästig :p

MrIch
27-09-2005, 14:34
sorry sowas habe ich leider nicht und genau soweit wie du bin ich mit Hilfe des Internets auch gerade gekommen, hatte leider was vergessen

die Url lautet

http://test45352/Name/23563636/franz

Die zweite Nr variert auch... Wie kann ich das einstellen das der Name am Ende kommt? Zudem wird bei dir der alte Name auch noch ausgegeben?

baumgartner
27-09-2005, 15:25
das wäre dann

$url =~ s/(^.*\/Name\/\d{1,}\/).*?/$1klaus/;

so, das müsste passen :cool:

( bei dem unterem habe ich misst gebaut, der funkt so nicht!!!)


Was willst du damit machen?

baumgartner
27-09-2005, 15:27
soweit wie du bin ich mit Hilfe des Internets auch gerade gekommen,..



wie meinst du dass? wissensmäßig oder den ausdruck?

MrIch
27-09-2005, 15:41
nicht falsch verstehen... den Perl Wissen habe ich sicherlich nicht in den 2 Stunden Perl Auffrischung erlangt... habe früher mal mehr in perl gemacht... aber mit der Zeit vergißt man viel.

baumgartner
28-09-2005, 16:38
ich weis das hab ich auch

vor 3jahren(noch schule) hab ich auch ganz gut C könnnen und jetzt bin ich wieder an nem buch.
eigentlich ne befehlsreferenz(ich möchte mir nicht zum 3.mal durchlesen was ein schleife ist :D ) die gut beschrieben ist, mir gefällt sie ---->> www.pronix.de ( ist ein openbook)



mfg martin

Technaton
28-09-2005, 18:04
Kommt's mir nur so vor und lesen wirklich die wenigsten mal bei http://perldoc.perl.org/ nach?

baumgartner
29-09-2005, 08:02
ja, das mache ich auch nie, hatte früher keinen inet zugang, bin das einfach nicht gewöhnt, obwohl du ja völlig recht hast