[php] Hoe hier een loop in te maken?

Pagina: 1
Acties:

  • decramy
  • Registratie: December 2001
  • Laatst online: 11-09 20:51

decramy

root@birdie:~#

Topicstarter
PHP:
1
<?function get_imgs ($get_img_txt){    //$get_img_txt = "ghjkdhgkjdhjkghkjdf [img]http://www.test.nl/logo.gif[/img]dhgjgkjhkjdhkjghdkjh eind";    $get_img_txt_temp1 = stristr ($get_img_txt, "[img]");    $get_img_txt_temp2 = stristr ($get_img_txt_temp1, "[/img]");    $get_img_txt_temp2_lengte = strlen($get_img_txt_temp1) - strlen($get_img_txt_temp2) - 5;    $put_into_db = substr ($get_img_txt_temp1,5,$get_img_txt_temp2_lengte);    return $put_into_db;}$hoi2 = get_imgs($hoi);echo $hoi2;?>

Wat het moet doen:
De url`s tussen de [img ]-[/img ]-tags ergens instoppen.
Uiteindelijk moeten ze in de daba, maar eerst ff dit.

Die $hoi kan dus een lange text bevatten. Als er in die lange text [img ]en[/img ] voorkomt, moet ie t geen wat er tussen staat ergens komen. Nu lukt dit, alleen bij 1 [img ] ding. Als ik dus meerdere plaatjes in die text wil hebben, wordt alleen de 1e outgeputtert.

Hoe zorg ik er nou voor dat ie alle plaatjes outputtert? Mag in een array, mag in de db, maakt niet uit :)

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • Grum
  • Registratie: Juni 2001
  • Niet online
de string nog es door de functie duwen net zo lang tot dat er nix meer word veranderd?

  • djc
  • Registratie: December 2001
  • Laatst online: 08-09-2025

djc

Met pregs werken ipv stristr enzo?

Rustacean


  • decramy
  • Registratie: December 2001
  • Laatst online: 11-09 20:51

decramy

root@birdie:~#

Topicstarter
Maar nu put ie alleen maar de 1e [img ]-[/img ]-tag eruit.
Dan zou k t eerste deel ervanaf moeten hakken, en nog es proberen...
Is dit niet ietwat omslagtig?

20*375Wp met Enphase IQ7+ micro's | Stiebel Eltron HGE Water/Water WP 9kW | Tesla M3, powered by SmartEVSE | Servertje @ www.coloclue.net


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 11-09 18:14
Als je zeker weet dat de string goed geformatteerd is, kun je 'm splitten op img-tags en alle oneven elementen uit je array pakken. (Dus met preg_split('/\\[\/?img\]/',$str).)

  • gvtulder
  • Registratie: December 2001
  • Laatst online: 27-12-2024
Een combinatie van bovenstaande methodes werkt denk ik het best, namelijk preg_match_all:
PHP:
1
<?$tekst = "asd[img]asd[/img] asd [img]qwe[/img] asd";preg_match_all("/\\[img\]([^\\[]*)\\[\/img\]/", $tekst, $array_uit, PREG_SET_ORDER);print_r($array_uit);?>

Geeft:
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Array
(
    [0] => Array
      (
        [0] => [img]asd[/img]
        [1] => asd
      )

    [1] => Array
      (
        [0] => [img]qwe[/img]
        [1] => qwe
      )

)

Hier krijg je wel alle [img]-tags mee in één array.

gvtulder.f2o.org

Pagina: 1