|
| regex der driller Fra : Ulrik Nielsen |
Dato : 08-11-05 09:39 |
|
hej der,
er der nogen der har en god løsning på følgende:
hvordan erstatter man alle & tegn i en url med & uden at ødelægge
& og & som jo allerede er i et rigtigt format.?
normalt ville jeg bare skrive:
$s = preg_replace('/&/', '&', $s);
- men det ville jo nettop ødelægge både & og &
håber nogen har en løsning.
på forhånd tak
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | somebody was calculating pi on the server
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Ulrik Nielsen (08-11-2005)
| Kommentar Fra : Ulrik Nielsen |
Dato : 08-11-05 10:58 |
|
Ulrik Nielsen wrote:
> hej der,
>
> er der nogen der har en god løsning på følgende:
>
> hvordan erstatter man alle & tegn i en url med & uden at ødelægge
> & og & som jo allerede er i et rigtigt format.?
>
> normalt ville jeg bare skrive:
> $s = preg_replace('/&/', '&', $s);
>
> - men det ville jo nettop ødelægge både & og &
- til andre interesserede
jeg fandt en løsning, men den er ikke køn...
function amp_replace($text) {
$text = str_replace('&#', '*-*', $text);
$text = str_replace('&', '&', $text);
$text = preg_replace('|&(?![\w]+;)|', '&', $text);
$text = str_replace('*-*', '&', $text);
$text = str_replace('&', '&', $text);
return $text;
}
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | somebody was calculating pi on the server
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Jacob Atzen (08-11-2005)
| Kommentar Fra : Jacob Atzen |
Dato : 08-11-05 11:05 |
|
On 2005-11-08, Ulrik Nielsen <un.spam@tiscali.dk> wrote:
> Ulrik Nielsen wrote:
>> hej der,
>>
>> er der nogen der har en god løsning på følgende:
>>
>> hvordan erstatter man alle & tegn i en url med & uden at ødelægge
>> & og & som jo allerede er i et rigtigt format.?
>>
>> normalt ville jeg bare skrive:
>> $s = preg_replace('/&/', '&', $s);
>>
>> - men det ville jo nettop ødelægge både & og &
>
> - til andre interesserede
>
> jeg fandt en løsning, men den er ikke køn...
>
> function amp_replace($text) {
> $text = str_replace('&#', '*-*', $text);
> $text = str_replace('&', '&', $text);
> $text = preg_replace('|&(?![\w]+;)|', '&', $text);
> $text = str_replace('*-*', '&', $text);
> $text = str_replace('&', '&', $text);
> return $text;
> }
Det var ikke noget du kunne have brugt rawurlencode eller venner til?
--
Med venlig hilsen
- Jacob Atzen
| |
Ulrik Nielsen (08-11-2005)
| Kommentar Fra : Ulrik Nielsen |
Dato : 08-11-05 11:24 |
|
Jacob Atzen wrote:
> Det var ikke noget du kunne have brugt rawurlencode eller venner til?
joah, måske, men det er for at parse et helt xml dokument, så hvis man
først skulle finde urler og så encode dem....
xml'en kommer fra en ekstern leverandør som åbenbart er ligeglad med at
xml'en er ugyldig. øv.
mvh
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | somebody was calculating pi on the server
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Thomas Finnerup (08-11-2005)
| Kommentar Fra : Thomas Finnerup |
Dato : 08-11-05 12:57 |
|
On Tue, 08 Nov 2005 09:38:57 +0100, Ulrik Nielsen <un.spam@tiscali.dk>
wrote:
> hvordan erstatter man alle & tegn i en url med & uden at ødelægge
> & og & som jo allerede er i et rigtigt format.?
Du kan gøre det med en negativ lookahead:
$s = preg_replace('/&(?!#038;|amp;)/', '&', $s);
Dette matcher alle &-tegn, der ikke efterfølges af #038; eller amp;.
Venligst
Thomas
| |
Ulrik Nielsen (08-11-2005)
| Kommentar Fra : Ulrik Nielsen |
Dato : 08-11-05 13:51 |
|
Thomas Finnerup wrote:
> Du kan gøre det med en negativ lookahead:
>
> $s = preg_replace('/&(?!#038;|amp;)/', '&', $s);
>
> Dette matcher alle &-tegn, der ikke efterfølges af #038; eller amp;.
aah ! :) tænkte nok at der var et eller andet snedigt hack, jeg takker..
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | somebody was calculating pi on the server
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Jeppe Bundsgaard (08-11-2005)
| Kommentar Fra : Jeppe Bundsgaard |
Dato : 08-11-05 14:04 |
|
Thomas Finnerup wrote in dk.edb.internet.webdesign.serverside.php:
> $s = preg_replace('/&(?!#038;amp;)/', '&', $s);
Hov, der var du hurtigere end mig, thomas.
Der er dog vist en fejl, der skal være et eller-tegn (|), den skal vist
se således ud:
$s = preg_replace('/&(?!#038;|amp;)/', '&', $s);
mvh
jeppe
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Jeppe Bundsgaard (08-11-2005)
| Kommentar Fra : Jeppe Bundsgaard |
Dato : 08-11-05 14:07 |
|
Jeppe Bundsgaard wrote in dk.edb.internet.webdesign.serverside.php:
> Der er dog vist en fejl, der skal være et eller-tegn (),
Ja, se det forsvinder af en eller anden grund, så du havde det nok,
thomas. Så, ulrik: Der skal være et eller-tegn som er en lodret streg (på
mit tastatur er der et hul i den og den nås med alt gr. - men det er en
bærbar så det kan være anderledes på din). Det skal stå efter semikolonet
i #034;
jeppe
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
Thomas Finnerup (08-11-2005)
| Kommentar Fra : Thomas Finnerup |
Dato : 08-11-05 14:25 |
|
On 08 Nov 2005 13:06:38 GMT, Jeppe Bundsgaard <jeppe@bundsgaard.net>
wrote:
> > Der er dog vist en fejl, der skal være et eller-tegn (),
>
> Ja, se det forsvinder af en eller anden grund, så du havde det nok,
> thomas. Så, ulrik: Der skal være et eller-tegn som er en lodret streg (på
> mit tastatur er der et hul i den og den nås med alt gr. - men det er en
> bærbar så det kan være anderledes på din). Det skal stå efter semikolonet
> i #034;
Det må være din nyhedslæser, der fjerner tegnet. Jeg kan sagtens se
det i mit eget indlæg.
Venligst
Thomas
| |
Ulrik Nielsen (08-11-2005)
| Kommentar Fra : Ulrik Nielsen |
Dato : 08-11-05 15:11 |
|
Thomas Finnerup wrote:
> Det må være din nyhedslæser, der fjerner tegnet. Jeg kan sagtens se
> det i mit eget indlæg.
jep, jeg havde heller ikke problemer med at se det...
- tak for hjælpen.
--
ulrik nielsen |
-----------------+---------------------------------------------------
quote or the day | somebody was calculating pi on the server
from bofh | http://www.cs.wisc.edu/~ballard/bofh/
| |
Jeppe Bundsgaard (08-11-2005)
| Kommentar Fra : Jeppe Bundsgaard |
Dato : 08-11-05 14:00 |
|
Ulrik Nielsen wrote in dk.edb.internet.webdesign.serverside.php:
> hej der,
>
> er der nogen der har en god løsning på følgende:
>
> hvordan erstatter man alle & tegn i en url med & uden at ødelægge
> & og & som jo allerede er i et rigtigt format.?
>
> normalt ville jeg bare skrive:
> $s = preg_replace('/&/', '&', $s);
>
Hej Ulrik
Prøv denne:
$s = preg_replace('/&(?!#038)/', '&', $s);
Den skulle gerne lave en lookahead assertion og se om der ikke er en #038
efter &'et.
Se for øvrigt altid denne grundige vejledning:
http://dk2.php.net/manual/en/reference.pcre.pattern.syntax.php
Mvh
jeppe
--
Vil du lære at kode HTML, XHTML, CSS, SSI, ASP eller ASP.NET?
- Pædagogiske tutorials på dansk
- Kom godt i gang med koderne
KLIK HER! => http://www.html.dk/tutorials
| |
|
|