Daleeburg Posted May 14, 2007 Share Posted May 14, 2007 I have a newsite, that i like to follow, but it is constantly changing. Basically I want to make a feed of sorts, but the site does not offer a feed, is there a way that I can take the source of a certain page then have a function that looks through the code for links and come out with just the links. more or less i have an idea of how to do the search function, but i was wondering about the retrieving the other page, is it possible? And if so, how? thx ~D Link to comment https://forums.phpfreaks.com/topic/51326-opening-source-code-of-a-remote-site/ Share on other sites More sharing options...
chigley Posted May 14, 2007 Share Posted May 14, 2007 <?php function textbetweenarray($s1,$s2,$s){ $myarray=array(); $s1=strtolower($s1); $s2=strtolower($s2); $L1=strlen($s1); $L2=strlen($s2); $scheck=strtolower($s); do{ $pos1 = strpos($scheck,$s1); if($pos1!==false){ $pos2 = strpos(substr($scheck,$pos1+$L1),$s2); if($pos2!==false){ $myarray[]=substr($s,$pos1+$L1,$pos2); $s=substr($s,$pos1+$L1+$pos2+$L2); $scheck=strtolower($s); } } } while (($pos1!==false)and($pos2!==false)); return $myarray; } $externalcontent = file_get_contents("http://www.google.co.uk"); $as = textbetweenarray("<a href=\"", "</a>", $externalcontent); $output = array(); foreach($as as $a) { $output[] = "<a href=\"$a</a>"; } echo "<pre>"; foreach($output as $link) { echo "$link\n"; } echo "</pre>"; ?> That outputs each link on Google Link to comment https://forums.phpfreaks.com/topic/51326-opening-source-code-of-a-remote-site/#findComment-252830 Share on other sites More sharing options...
Daleeburg Posted May 14, 2007 Author Share Posted May 14, 2007 oh that works wonderfully. Thank you very much ~D Link to comment https://forums.phpfreaks.com/topic/51326-opening-source-code-of-a-remote-site/#findComment-252848 Share on other sites More sharing options...
Daleeburg Posted May 16, 2007 Author Share Posted May 16, 2007 K so i took part of the code you proposed and tried to change it, now it doesnt work. <?php function textbetweenarray($s1,$s2,$s){ $myarray=array(); $s1=strtolower($s1); $s2=strtolower($s2); $L1=strlen($s1); $L2=strlen($s2); $scheck=strtolower($s); $disallow = '</strong></a>'; do{ $pos = strpos($scheck,$disallow); // this is line 21 if($pos!==false){ $pos1 = strpos($scheck,$s1); if($pos1!==false){ $pos2 = strpos(substr($scheck,$pos1+$L1),$s2); if($pos2!==false){ $myarray[]=substr($s,$pos1+$L1,$pos2); $s=substr($s,$pos1+$L1+$pos2+$L2); $scheck=strtolower($s); } } } } while (($pos1!==false)and($pos2!==false)); return $myarray; } ?> I am trying to filter out any strings that include </strong></a> but i get a fatal error at line 21 , it says that it took to long to run. ~D Link to comment https://forums.phpfreaks.com/topic/51326-opening-source-code-of-a-remote-site/#findComment-254838 Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.