At 17:19 09.11.2002, Jens Lehmann said:
--------------------[snip]--------------------
>Hi out there,
>
>I encountered a lot of problems while trying to convert a list
>in Forum-Code (like UBB-Code).
>
>[list]
>[*] item 1
>[*] item 2
>[*] item 3
>[/list]
>
>should be converted to
>
><ul>
><li>item 1</li>
><li>item 2</li>
><li>item 3</li>
></ul>
--------------------[snip]-------------------- 

Maybe you could use this solution. It supports newlines and special
characters in the item's data as well:

<?php

function ubb2ul($src)
{
        // retrieve the items
        preg_match('/\[list\]\n?(.*?)\n?\[\/list\]/is', $src, $ar);

        // now split the results by (opt) newline, followed by '[*]', (opt)
followed by whitespace
        $ar = preg_split('/\n*\s*\[\*\]\s*/s', $ar[1]);

        // $ar[0] is empty since the first element begins with a [*], chop
it off
        array_shift($ar);

        // apply htmlentities
        for ($i = 0, $c = count($ar); $i < $c; ++$i)
                $ar[$i] = nl2br(htmlentities($ar[$i]));

        // finally construct the list
        $result = '<ul><li>' . join("\n\t<li>", $ar) . "\n</ul>\n";
        return $result;
}

$ubb = '[list]
   [*] item 1 äöü line 1
item 1 line 2
  [*]               item 2
[*] item 3
[/list]';

echo ubb2ul($ubb);
?>

-- 
   >O     Ernest E. Vogelsinger
   (\)    ICQ #13394035
    ^     http://www.vogelsinger.at/



--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to