We have free text:

Line: 100 http://hashcode.ru/ Line: 1 http://hashcode.ru/privet 

How to leave only url? Developments:

 $url_list = file_get_contents('url.txt'); $url_explode = explode('http://',$url_list); $count = count($url_explode); $i = 0; while($count>$i) { echo "http://".$url_explode[$i]."<br>"; $i++; } 

    3 answers 3

    How to remove from here: "Line: 100 http://hashcode.ru/" address? Like this:

     $str="Line: 100 http://hashcode.ru"; $str2=strstr(strtolower($str),'http://'); echo($str2); // display 

    Then so:

     $str="Line: 100 http://hashcode.ru Line: 100 http://hashcode.ru"; $offset=0; $pos_space=1; while($pos_space) { $pos_http = stripos($str,'http://',$offset); if(!$pos_http) break; $pos_space = strpos($str,' ',$pos_http); if(!$pos_space) $pos_space=strlen($str)-1; $offset=$pos_space+1; $newstr=substr($str,$pos_http,trim($pos_space-$pos_http+1)); echo($newstr."<br>"); } 
    • Altered under many lines: [code] $ url_list = file_get_contents ('url.txt'); $ url_explode = explode ('\ n \ r', $ url_list); $ count = count ($ url_explode); $ i = 0; while ($ count> $ i) {$ url_explode [$ i] = trim ($ url_explode [$ i]); $ nnn = strstr (strtolower ($ url_explode [$ i]), 'http: //'); echo $ nnn. "<br>"; $ i ++; } [code] If there are several addresses, it’s like this: [code] hashcode.ru 1 hashcode.ru/privet[/code] Or: [code] hashcode.ru line: 1 hashcode.ru/privet[/code] - nick777
     $links = array(); foreach (explode("\n", $text) as $line) $links[] = 'http://'.trim(end(explode('http://', $line))); print_r($links); 
       $s = 'Line: 100 http://hashcode.ru/ Line: 1 http://hashcode.ru/privet'; preg_match_all('~(https?://[\w\./\?\-]+)~', $s, $m); print_r($m);