Groups | Search | Server Info | Login | Register


Groups > de.comp.lang.php > #4956

Re: Ist hier noch jemand? str_replace multiple replacement

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>

Show all headers | View raw


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 | NextPrevious in thread | Next in thread | Find similar


Thread

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