PDA

View Full Version : How do you parse [url] and [/url] commands in php output to an html page<?php


09-11-2000, 08:22 PM
Below is the code that I use. It's a hack that's been modified html wise from this board. The problem is, when I put it on my page and there's a [url] it doesn't parse the output and it posts:
[url="http://blah.com/forum/showthread.php3?threadid=155"]
which throws the columns of my table off.
I've tried everything and figure out how to parse it, I'm hoping somebody better at php can help me out.

<?php
require("/usr/local/etc/httpd/htdocs/forum/admin/config.php3");

$num_active = 5;
$num_chars = 82;

$db=mysql_connect($servername,$dbusername,$dbpassw ord);
mysql_select_db($dbname);

$querylatest="select * from thread where forumid='1' or forumid='2' or forumid='3' or forumid='4' or forumid='5' or forumid='6' or forumid='7' or forumid='8' or forumid='9' or forumid='10' or forumid='11' order by lastpost desc limit $num_active";

$resultlatest = mysql_query($querylatest,$db);

print("<center><table width=\"150\" cellspacing=\"2\" cellpadding=\"2\">");

while ($latest_array = mysql_fetch_array($resultlatest)) {

// Get Forum Infomation
$query_forum = "select * from forum where forumid='$latest_array[forumid]'";
$result_forum = mysql_query($query_forum,$db);
$forum_info_array = mysql_fetch_array($result_forum);

printf("<tr><td bgcolor=\"#00004b\"><b><font color=\"#FFFFFF\" size=\"1\" face=\"Verdana, Arial, Helvetica, sans-serif\">%s: %s</font></b>",$forum_info_array["title"],$latest_array["title"]);

// split the date up a bit
$datestr1 = substr($latest_array["dateline"],0,10);
$datetime = substr($latest_array["dateline"],11,8);
printf ("</td></tr><tr><td bgcolor=\"#101010\"><font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\" color=\"#FFFFFF\"><b>%s</b>%s<br>Replies: %s<br></font>", $latest_array["postusername"], $datetime, $latest_array["replycount"]);

$querythread="select * from post where threadid='$latest_array[threadid]' order by dateline asc limit 1";

$result_thread_text= mysql_query($querythread,$db);

$result_thread_array = mysql_fetch_array($result_thread_text);
printf ("<font face=\"Verdana, Arial, Helvetica, sans-serif\" size=\"1\" color=\"#FFFFFF\"><img src=\"/forum/images/icons/icon1.gif\"> Last Post: %s<br>%s...<br><a href=\"/forum/showthread.php3?threadid=%s\">[ Click here for more ]</font></td></tr><tr><td><img src=\"http://www.hitemup.com/images/hold.gif\" height=4 width=4 border=0></td></tr>",$latest_array["lastposter"],substr(strip_tags($result_thread_array["pagetext"]),0,$num_chars),$latest_array["threadid"]);
}

printf ("</table></center>");
?>

09-12-2000, 02:08 PM
Ripped straight from vB:
$bbcode=eregi_replace("\\[url\\]www.([^\\[]*)\\[/url\\]","<a href=\"http://www.\\1\" target=_blank>\\1</a>",$bbcode);
$bbcode=eregi_replace("\\[url\\]([^\\[]*)\\[/url\\]","<a href=\"\\1\" target=_blank>\\1</a>",$bbcode);

// do yyy (xxx)
$bbcode=eregi_replace("\\[url=\"([^\"]*)\"\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=_blank>\\2</a>",$bbcode);
$bbcode=eregi_replace("\\[url=([^\"]*)\\]([^\\[]*)\\[\\/url\\]","<a href=\"\\1\" target=_blank>\\2</a>",$bbcode);


it's a regular expression that should take care of your problem