Toon posts:

[php] overeenkomende strings in string zoeken

Pagina: 1
Acties:
  • 86 views sinds 30-01-2008

Verwijderd

Topicstarter
Ik heb een variabele $artikel, die er bijv. zo uit ziet:

$artikel = "bla bla basd [linkid=1]ald[/id] dke [linkid=2]hol hola[/id] asd";

Hoe kan ik nu een string (array) krijgen die alle [linkid=x]**[/id] geeft?

  • Orphix
  • Registratie: Februari 2000
  • Niet online
PHP:
1
preg_match_all("|\\\[linkid=([0-9]+)\\](.*?)\\\[/id\\]|", $text, $matches)

goh dat ziet er mooi uit :>

  • vinnux
  • Registratie: Maart 2001
  • Niet online
Je wilt dus in principe splitten op alles wat niet voldoet aan [linkid=x]**[/id].
Nou dat wordt een mooie reguliere expressie.
de functie split($regex,$toSplit) heb je nodig.
Hier een klein voorbeeldje hoe je split op alles wat geen getal is :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
     * Checks is a date if valid. Seperator can be everything except numbers. 
     * The given date must complie with the format : day , month, year
     **/
    function isDate($date){
        $isDate = FALSE;
        if ($date != ''){
            $parts = split('[^[:digit:]]+',$date) ;
            if (count($parts) === 3){
                $isDate = checkdate($parts[1],$parts[0],$parts[2]); 
            }
        }
        return $isDate;
    }

edit:
Geen nummering zie [PHP] Tag voor de reden

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/**
     * Checks is a date if valid. Seperator can be everything except numbers. 
     * The given date must complie with the format : day , month, year
     **/
    function isDate($date){
        $isDate = FALSE;
        if ($date != ''){
            $parts = split('[^[:digit:]]+',$date) ;
            if (count($parts) === 3){
                $isDate = checkdate($parts[1],$parts[0],$parts[2]); 
            }
        }
        return $isDate;
    }


ff testen plz ignore

Doet iets met Cloud (MS/IBM)


  • vinnux
  • Registratie: Maart 2001
  • Niet online
offtopic:
Maar wat is de rede van deze test ?

  • p0m
  • Registratie: September 2000
  • Laatst online: 22-08 07:02

p0m

Waarom die haat voor regelnummers ?
offtopic:
Ik zal de grijze balk nog helemaal laten verdwijnen bij [php=0] :)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

vgouw schreef op 31 juli 2002 @ 20:49:
offtopic:
Maar wat is de rede van deze test ?
offtopic:
kijken of ie de regelnummers mee copieert ;)
p0m schreef op 31 juli 2002 @ 20:53:
Waarom die haat voor regelnummers ?
offtopic:
Ik zal de grijze balk nog helemaal laten verdwijnen bij [php=0] :)
offtopic:
niet te copy/pasten ;)
ik haal vaak onleesbare code uit een topic en format die naar mijn in in mijn eigen editor vandaar

Doet iets met Cloud (MS/IBM)


  • vinnux
  • Registratie: Maart 2001
  • Niet online
p0m schreef op 31 juli 2002 @ 20:53:
Waarom die haat voor regelnummers ?
offtopic:
Ik zal de grijze balk nog helemaal laten verdwijnen bij [php=0] :)
offtopic:
Dan kan ik niet snel ff code kopieren en testen, moet ik weer moeilijk dingen gaan doen. Maar ik zie dat je er nu een extra <td> heb ingevoegd, dan is mijn haat voorbij !
Dit geeft ook leuke effecten [php=7654763524752374]

  • p0m
  • Registratie: September 2000
  • Laatst online: 22-08 07:02

p0m

D2k schreef op 31 juli 2002 @ 20:56:
[...]
offtopic:
kijken of ie de regelnummers mee copieert ;)

[...]
offtopic:
niet te copy/pasten ;)
ik haal vaak onleesbare code uit een topic en format die naar mijn in in mijn eigen editor vandaar
Eh :? ik kan toch echt makkelijk die code selecteren zonder de nummering, je moet alleen je selectie-drag beginnen bij <? en niet in het grijze gedeelte.

edit:
Ah was dus verouderde haat O-)

  • vinnux
  • Registratie: Maart 2001
  • Niet online
offtopic:
Maar dat was volgens mij toen straks voor die witte achtergrond nog niet !

Maar wat gebeurt er nu als :
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
function isURL($url){
        $isUrl = FALSE;
        if ( $url != '' ){
            if (!preg_match('#^http:\/\/#i', $url) ){
                $url = 'http://' . $url;
            }
            if (preg_match('#^http\\:\\/\\/[a-z0-9\-]+\.([a-z0-9\-]+\.)?[a-z]+#i', $url) ){
                $isURL = TRUE;
            }
        }
        return $isURL;
    }

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

p0m schreef op 31 juli 2002 @ 21:00:
[...]

Eh :? ik kan toch echt makkelijk die code selecteren zonder de nummering, je moet alleen je selectie-drag beginnen bij <? en niet in het grijze gedeelte.

edit:
Ah was dus verouderde haat O-)
:*
;)

Doet iets met Cloud (MS/IBM)


  • p0m
  • Registratie: September 2000
  • Laatst online: 22-08 07:02

p0m

Niet zo snel replien ! :) Maar is het nu wel naar tevredenheid ?

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

maar goed dit is wel redelijk opgelost en gruweloos offtopic :P
als de starter nog problemen krijgt mag ie een nieuw topic maken

Doet iets met Cloud (MS/IBM)

Pagina: 1

Dit topic is gesloten.