Jacob Stetser
06-17-1999, 04:38 PM
Ok, I'm getting better at Regular expressions, but I'm not the best yet...
I'm trying to write a module for my personal home page (heh, that's the original full name of PHP!) that tells me what today's active topics are.
Basically, it calls up the page referenced by the Today's Active Topics link at the top of the page, regexps the links out and then I want it make the links clickable.. here's the code...
<?php
$hostname[nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]"www.aota.net";
$port[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]80;
$uri[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]"/cgi-bin/search.cgi?action=simplesearch&SearchDate=0&ForumChoice=ALL";
$header_passed[nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]0;
$link_prefix[nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]"&nbsp;&nbsp;o ";
[nbsp][nbsp][nbsp][nbsp][nbsp]$fpread = fsockopen("$hostname", $port, &$errno, &$errstr);
[nbsp][nbsp][nbsp][nbsp][nbsp]if(!$fpread) {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]echo "$errstr ($errno)
\n";
[nbsp][nbsp][nbsp][nbsp][nbsp]} else {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]fputs($fpread,"GET $uri HTTP/1.1\nHOST: $hostname\n\n");
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]while(!feof($fpread)) {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$line=fgets($fpread, 255);
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]// loop while there are links in the line
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]while(ereg("HREF=\"([^\"]*)\">([^</A>]*)</A>", $line, $match)) {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp] if($match[1] != "search.cgi?action=intro" OR $match[1] != "Ultimate.cgi?action=intro&BypassCookie=true") {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$ao_content.=$link_prefix."<A HREF=\"".$match[1]."\">$match[2]</a>
\n";
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp] }
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$replace=ereg_replace("\?", "\?", $match[0]);
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$line=ereg_replace($replace, "", $line);
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]}
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]}
[nbsp][nbsp][nbsp][nbsp][nbsp]}
[nbsp][nbsp][nbsp][nbsp][nbsp]fclose($fpread);
print($ao_content);
?>
The Today's Active Topics page is at http://www.aota.net/cgi-bin/search.cgi?action=simplesearch&SearchDate=0&ForumChoice=ALL
Now, can anyone tell me the correct regexp to weasel out only the Topic titles and links?
Pleeeease?<!-- NO_AUTO_LINK -->
------------------
icongarden.com/?fq (http://icongarden.com/?fq)
icongarden: making good ideas grow.
I'm trying to write a module for my personal home page (heh, that's the original full name of PHP!) that tells me what today's active topics are.
Basically, it calls up the page referenced by the Today's Active Topics link at the top of the page, regexps the links out and then I want it make the links clickable.. here's the code...
<?php
$hostname[nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]"www.aota.net";
$port[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]80;
$uri[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]"/cgi-bin/search.cgi?action=simplesearch&SearchDate=0&ForumChoice=ALL";
$header_passed[nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]0;
$link_prefix[nbsp][nbsp][nbsp][nbsp][nbsp]=[nbsp][nbsp][nbsp][nbsp][nbsp]"&nbsp;&nbsp;o ";
[nbsp][nbsp][nbsp][nbsp][nbsp]$fpread = fsockopen("$hostname", $port, &$errno, &$errstr);
[nbsp][nbsp][nbsp][nbsp][nbsp]if(!$fpread) {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]echo "$errstr ($errno)
\n";
[nbsp][nbsp][nbsp][nbsp][nbsp]} else {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]fputs($fpread,"GET $uri HTTP/1.1\nHOST: $hostname\n\n");
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]while(!feof($fpread)) {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$line=fgets($fpread, 255);
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]// loop while there are links in the line
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]while(ereg("HREF=\"([^\"]*)\">([^</A>]*)</A>", $line, $match)) {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp] if($match[1] != "search.cgi?action=intro" OR $match[1] != "Ultimate.cgi?action=intro&BypassCookie=true") {
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$ao_content.=$link_prefix."<A HREF=\"".$match[1]."\">$match[2]</a>
\n";
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp] }
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$replace=ereg_replace("\?", "\?", $match[0]);
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]$line=ereg_replace($replace, "", $line);
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]}
[nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp][nbsp]}
[nbsp][nbsp][nbsp][nbsp][nbsp]}
[nbsp][nbsp][nbsp][nbsp][nbsp]fclose($fpread);
print($ao_content);
?>
The Today's Active Topics page is at http://www.aota.net/cgi-bin/search.cgi?action=simplesearch&SearchDate=0&ForumChoice=ALL
Now, can anyone tell me the correct regexp to weasel out only the Topic titles and links?
Pleeeease?<!-- NO_AUTO_LINK -->
------------------
icongarden.com/?fq (http://icongarden.com/?fq)
icongarden: making good ideas grow.