PHP / Regex / preg_match_all

0 Cevap php

Ben bu yüzden böyle bir forumda bir yazı dan alıntı kullanıcıları almak için preg_match_all kullanıyorum:

    preg_match_all('/quote author=(.*) link=/', $post, $quotedUsers);

$ Post dizesi genellikle gibi bir şey olacaktır:

[quote author=John link=topic=1234.msg123456#msg123456 date=1234567890]Lorem ipsum dolor sit amet[/quote]
Lorem ipsum dolor sit amet consectetur elit...

Preg_match_all fonksiyonu sadece bir kullanıcı alıntı olduğunda çalışıyor, ve benzeri bir şey verir:

Array
(
    [0] => Array
        (
            [0] => quote author=John link=
        )

    [1] => Array
        (
            [0] => John
        )

)

Benim kodu [1] kullanıcı adlarını almak için her $ quotedUsers aracılığıyla döngüsü, ve ben her şeyin iyi olduğunu düşündüm. Iki kullanıcı kote olduğunda, bu gibi daha görünüyor hariç:

Array
(
    [0] => Array
        (
            [0] => quote author=Bob link=topic=1234.msg123456#msg13456 date=1234567890]Lorem ipsum dolor sit amet[/quote]

[quote author=John link=
        )

    [1] => Array
        (
            [0] => Bob link=topic=1234.msg123456#msg13456 date=1234567890]Lorem ipsum dolor sit amet[/quote]

[quote author=John
        )

)

Neler oluyor ve bunu nasıl düzeltebilirim? Ben preg_match_all sadece $ quotedUsers [1] dizi içine adlarının tüm vereceğini düşündüm.

0 Cevap