[PHP] strlen werkt niet binnen een gekregen functie.

Pagina: 1
Acties:

Onderwerpen


  • koffie-junk
  • Registratie: Juni 2006
  • Laatst online: 08-11-2022
Ik heb het nodige na gezogd op internet (o.a. php.net en google), maar ik kom er niet uit.


PHP:
1
2
3
4
5
6
7
8
9
10
11
12
    function small($url){
        $num_char=strlen($url);
        return  $num_char . " - " . $url;
    }
    
    function bbcode($txt){
        $txt = preg_replace('#\[url\](.*?)\[/url\]#si', '<a href=\1 target=\"_blank\">' . small('\1') . '</a>', 
$txt);
        return $txt;
    }

    echo bbcode("[url]google.nl[/url]")


Output: "2 - google.nl" 8)7

PHP:
1
2
3
4
    function small($url){
        $num_char=strlen("tekst");
        return  $num_char;
    }

Output: 5

Ik hoop dat ik er compleet overheen kijk, maar waarom kan ik die string die ik via de functie small() meestuur niet tellen, maar een ander woord wel?

specs - home


  • Enfer
  • Registratie: Februari 2004
  • Laatst online: 18-09 16:32
Gooi er eens een echo in van je aanroep van small in bbcode, dan kun je zien waarmee de small word aangeroepen, misschien roep je het wel aan met een verkeerd deel van de regex ;)

  • Erkens
  • Registratie: December 2001
  • Niet online

Erkens

Fotograaf

Je roept die functie ook niet aan in de regex, maar daarbuiten. Derhalve stuur je ook de string '\1' naar die functie (wat dus 2 tekens zijn).

  • Onbekend
  • Registratie: Juni 2005
  • Laatst online: 22-09 09:45

Onbekend

...

Let er op dat "small" een functie al kan zijn in php zelf.

En in je aanroep: "small('\1')" gebruik je een escape karakter? Ik kan de betekenis daarvan niet zo snel achterhalen.

Speel ook Balls Connect en Repeat


  • Snake
  • Registratie: Juli 2005
  • Laatst online: 07-03-2024

Snake

Los Angeles, CA, USA

Afaik hebt ge dit nodig:

http://be.php.net/preg_replace_callback

Going for adventure, lots of sun and a convertible! | GMT-8


  • WouZz
  • Registratie: Mei 2000
  • Niet online

WouZz

Elvis is alive!

Check de e modifier

Regex een beetje aanpassen en voila..

On track

Pagina: 1