Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


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

Re: Ist hier noch jemand? str_replace multiple replacement

Path csiph.com!weretis.net!feeder8.news.weretis.net!reader5.news.weretis.net!news.solani.org!.POSTED!not-for-mail
From Detlef Paschke <schabau@t-online.de>
Newsgroups de.comp.lang.php
Subject Re: Ist hier noch jemand? str_replace multiple replacement
Date Tue, 5 Nov 2024 10:03:00 +0100
Message-ID <vgcn02$6n4u$1@solani.org> (permalink)
References <vgavv1$5s7v$1@solani.org> <1t67294ef1i26d911n3e8%sfroehli@Froehlich.Priv.at>
MIME-Version 1.0
Content-Type text/plain; charset=UTF-8
Content-Transfer-Encoding 8bit
Injection-Date Tue, 5 Nov 2024 09:02:58 -0000 (UTC)
Injection-Info solani.org; logging-data="220318"; mail-complaints-to="abuse@news.solani.org"
User-Agent Betterbird (Windows)
Cancel-Lock sha1:1OFL9hBvGuzrRFMVVYIdJ+ps7FA=
In-Reply-To <1t67294ef1i26d911n3e8%sfroehli@Froehlich.Priv.at>
X-User-ID eJwNxEkBACAIBMBKoCxgHA7pH0HnMdjKWiYKFQymQ0eS7pzwNZyR9WeEEcOtPcNWX6DARNgPOeERfA==
Content-Language de-DE
Xref csiph.com de.comp.lang.php:4952

Show key headers only | View raw


Am 04.11.2024 um 23:56 schrieb Stefan Froehlich:
> On Mon, 04 Nov 2024 18:23:47 Detlef Paschke wrote:
>> [Funktioniert, braucht aber 2 Aufrufe]
>> str_replace(['../', './'], '', str_replace('\\', '/', $datei));
> 
>> [Funktioniert nicht]
>> str_replace(['./', '../', '\\'], ['','','/'], $datei)
> 
> ...
> 
> Aber natürlich geht es auch in der eleganteren Version, Du musst nur
> aus hoffentlich naheliegenden Gründen sicherstellen, dass ../ *vor
> ./ ersetzt wird.

Stimmt danke, im eigentlichen Script ist es auch richtig herum, in der
"Test.php" habe ich es korrigiert. Da war mir der Fehler noch gar nicht
aufgefallen.

>> Mit preg_replace geht es so, wie ich es mir vorstelle, doch so
>> kann ich es kaum noch lesen.
> 
>> preg_replace(['/(\.\/|\.\.\/)/', '/(\\\\)/'], ['', '/'], $datei);
> 
> Hier funktioniert es unabhängig von der Reihenfolge, da reguläre
> Ausdrücke immer den längsten Match suchen. Die Auswahl zwischen .
> und .. ließe sich allerdings auch einfacher treffen, die Klammern um
> das Pattern sind unnötig, und für den Delimiter empfiehlt sich in
> diesem Fall ein anderes Zeichen. Ich würde etwas lesbarer schreiben:
> 
> preg_replace(['#\.\.?/#', '#\\\\#'], ['', '/'], $datei);

Mein Beweggrund ist, was bis jetzt nur mit diesen blöden regulären
Ausdrücke und preg_replace funktioniert, mit str_replace hinzubekommen.
Es funktioniert ja auch ganz schick mit den preg_replace Varianten, aber
es ist so fürchterlich zu lesen für mich.

Ganz primitiv übersetzt:

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. :-)

> Servus,
>    Stefan

Viele Grüße
Detlef Paschke

-- 
Das "Zitat des Augenblick" gibt es nur auf:
https://schabau.eu

Meine "Merkzettel" findet man unter:
https://helpdesk.schabau.eu

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