/ Forside / Teknologi / Udvikling / PHP / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
PHP
#NavnPoint
rfh 3959
natmaden 3372
poul_from 3310
funbreak 2700
stone47 2230
Jin2k 1960
Angband 1743
Bjerner 1249
refi 1185
10  Interkril.. 1146
Sletter en del af sn streng.
Fra : Erik Hansen


Dato : 08-09-02 18:41

Hejsa.

Er det bare mig det ikke kan finde det, eller har PHP ikke en funktion
som kan slette en del af en streng. Lige som substr der kan udtage en
del af en streng mangler jeg noget som kan slette en del af en streng.


--
....::Erik

 
 
Larz (08-09-2002)
Kommentar
Fra : Larz


Dato : 08-09-02 18:44

Erik Hansen wrote:
> Er det bare mig det ikke kan finde det, eller har PHP ikke en funktion
> som kan slette en del af en streng. Lige som substr der kan udtage en
> del af en streng mangler jeg noget som kan slette en del af en streng.

http://dk.php.net/substr
http://dk.php.net/substr_replace

Kan begge gøre det...

   $nystr = substr(0,3,$var) . substr(5,3,$var);

og

   $nystr = substr_replace($var,'',3,2);

--
-
Lars
http://coder.dk/sohofaq.php - Uofficiel WOL SOHO 77 FAQ
http://wshlman.moons.dk/ - Say goodbye to GameSpy
- A Free Half Life Manager!
To mail me remove your pants.


Niels Andersen (08-09-2002)
Kommentar
Fra : Niels Andersen


Dato : 08-09-02 18:47

Erik Hansen wrote in <cq2nnu8644j20k7f6tc5j4bqqeetkknphd@4ax.com>:
> Er det bare mig det ikke kan finde det, eller har PHP ikke en funktion
> som kan slette en del af en streng. Lige som substr der kan udtage en
> del af en streng mangler jeg noget som kan slette en del af en streng.

Prøv at komme med lidt flere detaljer.

Et eksempel på at fjerne en del:

$string = str_replace('fjols', 'XXX', $string);

På den måde er ordet "fjols" meget enkelt cencureret ud.
Hvis du vil fjerne det helt kan du fjerne de tre X'er, så bliver ordet
erstattet med en tom streng, altså intet, og dermed er det fjernet.

Du kan også bruge substr() til at finde delen før og delen efter, og så
sætte disse to dele sammen.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Erik Hansen (08-09-2002)
Kommentar
Fra : Erik Hansen


Dato : 08-09-02 19:42

On Sun, 08 Sep 2002 19:46:56 +0200, Niels Andersen
<niels-usenet@myplace.dk> wrote:

>Prøv at komme med lidt flere detaljer.
>
>Et eksempel på at fjerne en del:
>
>$string = str_replace('fjols', 'XXX', $string);
>
>På den måde er ordet "fjols" meget enkelt cencureret ud.
>Hvis du vil fjerne det helt kan du fjerne de tre X'er, så bliver ordet
>erstattet med en tom streng, altså intet, og dermed er det fjernet.

Det er en forskellig streng jeg skal fjerne, derfor kan jeg ikke bruge
str_replace. Det jeg ønsker at fjerne er et <a href....> tag, dvs. fra
start < til slut >.
</a> fjerner jeg med str_replace.

Løsningen som Lars kom med, substr_replace kan det jeg gerne vil.


--
....::Erik

Niels Andersen (08-09-2002)
Kommentar
Fra : Niels Andersen


Dato : 08-09-02 20:03

Erik Hansen wrote in <s36nnucv9pqld1bhnorssqug6m6k9788il@4ax.com>:
> Det jeg ønsker at fjerne er et <a href....> tag, dvs. fra
> start < til slut >.
> </a> fjerner jeg med str_replace.

Der ville jeg bruge en preg_replace

Nok noget i stil med:

$string = preg_replace('/<a .*?>(.*?)</a>/', '$1', $string);

Ganske utestet, og jeg har nok glemt et eller andet. Men princippet i det
giver præcist hvad du ønsker, og tager i øvrigt "</a>" med.

Og så kan den nemt tilpasses til også at fungere når man bruger store
bogstaver i sine tags.

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Peter Brodersen (08-09-2002)
Kommentar
Fra : Peter Brodersen


Dato : 08-09-02 21:00

On Sun, 08 Sep 2002 21:02:31 +0200, Niels Andersen
<niels-usenet@myplace.dk> wrote:

>Ganske utestet, og jeg har nok glemt et eller andet.

s-modifieren, så . også kan matche newlines, som jeg også glemte
tidligere i dag? :)

<news:alfvoh$g68$1@dknews.tiscali.dk>

Dvs:
$string = preg_replace('/<a .*?>(.*?)</a>/s', '$1', $string);

--
- Peter Brodersen

Niels Andersen (08-09-2002)
Kommentar
Fra : Niels Andersen


Dato : 08-09-02 21:05

Peter Brodersen wrote in <alga7d$gkr$1@dknews.tiscali.dk>:
>>Ganske utestet, og jeg har nok glemt et eller andet.
> s-modifieren, så . også kan matche newlines, som jeg også glemte
> tidligere i dag? :)

For eksempel. :)

Der skal vist også en g-modifier på, for at det virker på mere end den
første. Eller er den implicit i PHP's implementation?

--
Mvh.

Niels Andersen
(la nels. anersyn.)

Peter Brodersen (08-09-2002)
Kommentar
Fra : Peter Brodersen


Dato : 08-09-02 21:46

On Sun, 08 Sep 2002 22:05:21 +0200, Niels Andersen
<niels-usenet@myplace.dk> wrote:

>>>Ganske utestet, og jeg har nok glemt et eller andet.
>> s-modifieren, så . også kan matche newlines, som jeg også glemte
>> tidligere i dag? :)
>For eksempel. :)

Derudover kan "<a" godt være efterfulgt af en anden whitespace. Dvs.:

$string = preg_replace('/<a\s.*?>(.*?)</a>/s', '$1', $string);

Den vil dog heller ikke fange <a>, så den mulighed bør vi nok også
tillade - og endelig kan a både være med små eller store bogstaver.
Skal det optimeres, bør [Aa] i dette tilfælde være nok, men lad os
bare holde os til flag:
$string = preg_replace('/<a(?:\s.*?)?>(.*?)</a>/si', '$1', $string);

>Der skal vist også en g-modifier på, for at det virker på mere end den
>første. Eller er den implicit i PHP's implementation?

Yep.

--
- Peter Brodersen

Søg
Reklame
Statistik
Spørgsmål : 177503
Tips : 31968
Nyheder : 719565
Indlæg : 6408541
Brugere : 218887

Månedens bedste
Årets bedste
Sidste års bedste