|
| 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
| |
|
|