Avatar billede kongfjong Nybegynder
26. november 2006 - 21:13 Der er 7 kommentarer og
1 løsning

RegEx - Streng der ikke starter med

Hej, har lavet en regex der tjekker for om et link er et billede og så erstatter det... hvis jeg skal have det til at tjekke for om der IKKE står en bestemt streng foran, hvordan får jeg det så lige til at fungere?

$string = preg_replace('/((http|https|ftp):\/\/[^\\s]+\\.(png|jpg|jpeg|gif))/i', '<a href="$1" target="_blank"><img src="$1" width="300" height="175"></a>', $string);

Troede jeg lige kunne tilføje noget i stil med ^(lnk=), lnk= er det der IKKE må stå foran strengen hvis det skal laves om til image-tag:)
Avatar billede intenz Novice
26. november 2006 - 21:18 #1
Ville gøre det sådan her, godt nok ikke regex:

$pos = strpos($string, "lnk=");

if ($pos == 0) {
// det står foran
} else {
// det står ikke foran
}
Avatar billede coderdk Praktikant
26. november 2006 - 22:20 #2
(?!lnk=) i din regex skulle gerne gøre det :)
Avatar billede viper_killerguy Nybegynder
27. november 2006 - 02:02 #3
For at intenz's skal virke skal du tester med === så:

if (strpos($string, "lnk=") === 0)
  //det står foran.
Avatar billede kongfjong Nybegynder
27. november 2006 - 17:24 #4
Prøvede følgende, uden held:

$string = preg_replace('/((?!lnk=)(http|https|ftp):\/\/[^\\s]+\\.(png|jpg|jpeg|gif))/i', '<a href="$1" target="_blank"><img src="$1" width="300" height="175"></a>', $string);
Avatar billede coderdk Praktikant
27. november 2006 - 19:08 #5
Weird, prøv med:

$string = preg_replace('/(?<!lnk=)(http|https|ftp):\/\/[^\\s]+\\.(png|jpg|jpeg|gif)/i', '<a href="$0" target="_blank"><img src="$0" width="300" height="175"></a>', $string);
Avatar billede kongfjong Nybegynder
27. november 2006 - 19:33 #6
Bingo coderdk:) Det sidste virkede, men jeg skal ikke udelukke at det første også viker, da jeg havde lavet den fejl, at det ikke var lnk= der ikke måtte stå foran, men href= :)
Avatar billede coderdk Praktikant
27. november 2006 - 20:28 #7
jeg tror ikke den første virkede pga den gruppe der var efter, derfor ?<! som er med backreference ;P
Avatar billede kongfjong Nybegynder
28. november 2006 - 08:07 #8
Ah okay;) Jamen jeg siger tak for hjælpen:)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester

IT-JOB

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Solution Manager til Cyberdivisionen

Forsvarsministeriets Materiel- og Indkøbsstyrelse

Unified Communications specialist til IT-Operations i Cyberdivisionen