Groups | Search | Server Info | Login | Register
Groups > de.comp.lang.php > #4956
| From | Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) |
|---|---|
| Newsgroups | de.comp.lang.php |
| Subject | Re: Ist hier noch jemand? str_replace multiple replacement |
| Date | 2024-11-05 12:19 +0000 |
| Message-ID | <1t672a0c08i2973ddn3e8%sfroehli@Froehlich.Priv.at> (permalink) |
| References | <vgavv1$5s7v$1@solani.org> <1t67294ef1i26d911n3e8%sfroehli@Froehlich.Priv.at> <vgcn02$6n4u$1@solani.org> <3t6729ebcfi28f81an3e8%sfroehli@Froehlich.Priv.at> <vgd03m$ghr6$1@solani.org> |
On Tue, 05 Nov 2024 12:38:32 Detlef Paschke wrote:
> Am 05.11.2024 um 10:59 schrieb Stefan Froehlich:
>> On Tue, 05 Nov 2024 10:03:00 Detlef Paschke wrote:
>>> Am 04.11.2024 um 23:56 schrieb Stefan Froehlich:
>>> Array1('../' ODER './', '\'), Array2('', '/')
>>> Und genau diesen ODER Teil, dass ../ ODER ./ zu '' wird, also
>>> gelöscht werden sollen, bekomme ich mit str_replace nicht hin.
>>> Und das in so einem hübschen kleinen Einzeiler. :-)
>> Wieso? Inzwischen sollte das ja klappen.
> In keiner Weise. Mit preg_replace funktioniert es wie ich es mir
> vorstelle, ist aber schwerer zu lesen. Mit str_replace geht es nur
> nacheinander oder wenn das replace Arrays und das search Array die
> selbe Anzahl an Werten haben.
> $datei = './folder\file.txt ODER ../folder\file.txt';
> echo '<p>str_replace (./folder\file.txt ODER ../folder\file.txt)</p>';
> var_dump(str_replace(['../', './'], '', str_replace('\\', '/', $datei)));
> Die ursprüngliche, derzeit verwendete und funktionierende Variante. Die
> wollte ich gern in ein str_replace "zusammenschieben".
> var_dump(str_replace(['../', './', '\\'], ['', '', '/'], $datei));
Eben, passt. Fertig und aus :)
> Die Werte '../' und './' haben den gleichen replace Wert. Ich
> hätte ja gern, dass sie den selben haben.
> echo '<p>str_replace WUNSCH';
> var_dump(str_replace([('../' | './'), '\\'], ['', '/'], $datei));
Sorry, wenn ich Deinen WUNSCH zerstöre, aber wie sollte das denn
funktionieren? Einmal abseits der PHP-Spezifikation, rein
wunschtheoretisch: ('../' | './') ist wahlweise Unfung, weil sich
Strings nicht verodern lassen, oder Unfung, weil das Ergebnis der
(egal ob typkonvertierten oder bitweisen) Veroderung nicht das ist,
was Du gerne hättest. Jedenfalls aber kannst Du nicht einer
Funktion, die als Argument einen String erwartet (und sei es in der
Komponente eines Arrays) statt dessen eine Liste von Strings (oder
einen arithmetischen Ausdruck) geben, in der Hoffnung, dass daraus
auf magische Weise das richtige entsteht.
Entweder Du machst ein 1:1 Mapping von search und replace (was ich
hier bevorzugen würde), oder Du nimmst eben einen regulären
Ausdruck, in dem Alternativen per Definition enthalten sind. Dann
landest Du halt wieder bei preg_replace().
>> Löse Dich von der Oder-Verknüpfung und ersetze gedanklich einen
>> Teilstring nach dem anderen, immer mit dem längsten beginnend.
> Ganz gebe ich noch nicht auf, manchmal muss man nur das richtige
> Suchwort bei google haben und findet was man schon ewig sucht. :-)
Nicht, wenn bereits die Grundidee einen Logikfehler enthält.
Servus,
Stefan
--
http://kontaktinser.at/ - die kostenlose Kontaktboerse fuer Oesterreich
Offizieller Erstbesucher(TM) von mmeike
Stefan - Eine Klasse für sich.
(Sloganizer)
Back to de.comp.lang.php | Previous | Next — Previous in thread | Next in thread | Find similar
Ist hier noch jemand? str_replace multiple replacement Detlef Paschke <schabau@t-online.de> - 2024-11-04 18:23 +0100
Re: Ist hier noch jemand? str_replace multiple replacement Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2024-11-04 22:56 +0000
Re: Ist hier noch jemand? str_replace multiple replacement Detlef Paschke <schabau@t-online.de> - 2024-11-05 10:03 +0100
Re: Ist hier noch jemand? str_replace multiple replacement Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2024-11-05 09:59 +0000
Re: Ist hier noch jemand? str_replace multiple replacement Detlef Paschke <schabau@t-online.de> - 2024-11-05 12:38 +0100
Re: Ist hier noch jemand? str_replace multiple replacement Detlef Paschke <schabau@t-online.de> - 2024-11-05 12:55 +0100
Re: Ist hier noch jemand? str_replace multiple replacement Stefan+Usenet@Froehlich.Priv.at (Stefan Froehlich) - 2024-11-05 12:19 +0000
Re: Ist hier noch jemand? str_replace multiple replacement Detlef Paschke <schabau@t-online.de> - 2024-11-05 15:27 +0100
Re: Ist hier noch jemand? str_replace multiple replacement Arno Welzel <usenet@arnowelzel.de> - 2024-11-07 17:31 +0100
Re: Ist hier noch jemand? str_replace multiple replacement Detlef Paschke <schabau@t-online.de> - 2024-11-08 11:25 +0100
Re: Ist hier noch jemand? str_replace multiple replacement Arno Welzel <usenet@arnowelzel.de> - 2024-11-08 17:29 +0100
csiph-web