10/10/2018, 09:30

Em rất cần sự giúp đở về đọc file trong php >''<

Em muốn viết một code php như sau:

Em sẽ đọc 1 file php từ http://domain.com/index.php trong này có nội dung đơn giản như sau:

<html>
<a href="http://yahoo.com/">yahoo</a>
</html>

Em muốn đọc và ghi lại địa chỉ http://yahoo.com/ vào một biến tên là $url.
Em mò mãi ko biết phải làm thế nào, rất mong được sự giúp đở của các bác, Em xin đội ơn ạ.

[=========> Bổ sung bài viết <=========]

Giúp mình với >'<.
The message you have entered is too short
BossFTP viết 11:43 ngày 10/10/2018
Hên quá
Sau một hồi lục lọi mấy đoạn code cũ của em -> kiếm dc cái này, khá ok:
PHP Code:
  ini_set('user_agent''BossFTP');
  
var_dump(extracturl("http://www.bossftp.com/news.php"));

  function 
extracturl($inurl) {
    
$contents=file_get_contents($inurl);
    
preg_match_all("|<a.*href=***91;'\"***93;(.*)***91;'\"***93;.*>.*</a>|U"$contents$out);
    
$out=$out***91;1***93;;
    
$domain=parse_url($inurlPHP_URL_SCHEME).'://'.parse_url($inurlPHP_URL_HOST);
    
$dir=rtrim(dirname(parse_url($inurlPHP_URL_PATH).'boss'), '\\/');
    
$urls=array($inurl);
    
$res=explode(' ''ftp:// ftps:// mms:// rstp:// mailto: callto: skype: aim: gtalk: ymsgr: javascript:');
    foreach(
$out as $url) {
      foreach(
$res as $s) {
        if(
stripos($url$s)===0)
          continue 
2;
      }
      if(
stripos($url'http://')===or stripos($url'https://')===0)
        
$s=$url;
      elseif(
substr($url01)=='/')
        
$s=$domain.$url;
      else
        
$s=$domain.$dir.'/'.$url;
      if(!
in_array($s$urls)) {
        
$urls***91;***93;=$s;
      }
    }
    return 
$urls;
  } 
output
PHP Code:
array(9) {
  ***91;
0***93;=>
  
string(31"http://www.bossftp.com/news.php"
  
***91;1***93;=>
  
string(23"http://www.bossftp.com/"
  
***91;2***93;=>
  
string(31"http://www.bossftp.com/term.php"
  
***91;3***93;=>
  
string(31"http://www.bossftp.com/help.php"
  
***91;4***93;=>
  
string(38"http://www.bossftp.com/advertising.php"
  
***91;5***93;=>
  
string(34"http://www.bossftp.com/contact.php"
  
***91;6***93;=>
  
string(51"http://www.net2ftp.org/forums/viewtopic.php?id=3675"
  
***91;7***93;=>
  
string(51"http://www.net2ftp.org/forums/viewtopic.php?id=3658"
  
***91;8***93;=>
  
string(39"http://www.nsftools.com/tips/RawFTP.htm"

star_night viết 11:41 ngày 10/10/2018
Được gửi bởi BossFTP
Hên quá
Sau một hồi lục lọi mấy đoạn code cũ của em -> kiếm dc cái này, khá ok:
PHP Code:
  ini_set('user_agent''BossFTP');
  
var_dump(extracturl("http://www.bossftp.com/news.php"));

  function 
extracturl($inurl) {
    
$contents=file_get_contents($inurl);
    
preg_match_all("|<a.*href=***91;'\"***93;(.*)***91;'\"***93;.*>.*</a>|U"$contents$out);
    
$out=$out***91;1***93;;
    
$domain=parse_url($inurlPHP_URL_SCHEME).'://'.parse_url($inurlPHP_URL_HOST);
    
$dir=rtrim(dirname(parse_url($inurlPHP_URL_PATH).'boss'), '\\/');
    
$urls=array($inurl);
    
$res=explode(' ''ftp:// ftps:// mms:// rstp:// mailto: callto: skype: aim: gtalk: ymsgr: javascript:');
    foreach(
$out as $url) {
      foreach(
$res as $s) {
        if(
stripos($url$s)===0)
          continue 
2;
      }
      if(
stripos($url'http://')===or stripos($url'https://')===0)
        
$s=$url;
      elseif(
substr($url01)=='/')
        
$s=$domain.$url;
      else
        
$s=$domain.$dir.'/'.$url;
      if(!
in_array($s$urls)) {
        
$urls***91;***93;=$s;
      }
    }
    return 
$urls;
  } 
output
PHP Code:
array(9) {
  ***91;
0***93;=>
  
string(31"http://www.bossftp.com/news.php"
  
***91;1***93;=>
  
string(23"http://www.bossftp.com/"
  
***91;2***93;=>
  
string(31"http://www.bossftp.com/term.php"
  
***91;3***93;=>
  
string(31"http://www.bossftp.com/help.php"
  
***91;4***93;=>
  
string(38"http://www.bossftp.com/advertising.php"
  
***91;5***93;=>
  
string(34"http://www.bossftp.com/contact.php"
  
***91;6***93;=>
  
string(51"http://www.net2ftp.org/forums/viewtopic.php?id=3675"
  
***91;7***93;=>
  
string(51"http://www.net2ftp.org/forums/viewtopic.php?id=3658"
  
***91;8***93;=>
  
string(39"http://www.nsftools.com/tips/RawFTP.htm"

Em cảm ơn bác rất nhiều nhiều ạ ^^.

À nhân tiện hỏi bác luôn là em muốn lấy http://www.bossftp.com/ hiển thị lên thì ghi như nào bác ^^.
Vd : echo 'string(23)';
Em ko biết php nên bác thông cảm ạ ^^.
BossFTP viết 11:32 ngày 10/10/2018
thử cái này xem:
PHP Code:
var_dump("http://www.bossftp.com/"); 
star_night viết 11:46 ngày 10/10/2018
Được gửi bởi BossFTP
thử cái này xem:
PHP Code:
var_dump("http://www.bossftp.com/"); 
à ý em là dì nè bác :

ví dụ em : return $urls[0];
nó sẽ ra : string(83) "http://www.bossftp.com/"
Em muốn bỏ cái dòng string(83) đi có được không bác nhỉ ^^.
Em cảm ơn bác lắm lắm lận.
BossFTP viết 11:33 ngày 10/10/2018
Ko rõ bác muốn kí rì luôn :|

Cái hàm extracturl sẽ trả về một array, mỗi phần tử là một url.
Nếu bác muốn lụm mỗi cái url đầu tiên thôi thì sửa
PHP Code:
return $urls
thành
PHP Code:
return $urls***91;0***93;; 
Khi đó hàm extracturl sẽ trả về string, nếu muốn in ra bt thì
PHP Code:
echo extracturl('http://www.bossftp.com/'); 
Code sau khi sửa:
PHP Code:
function extracturl($inurl) {
    
$contents=file_get_contents($inurl);
    
preg_match_all("|<a.*href=***91;'\"***93;(.*)***91;'\"***93;.*>.*</a>|U"$contents$out);
    
$out=$out***91;1***93;;
    
$domain=parse_url($inurlPHP_URL_SCHEME).'://'.parse_url($inurlPHP_URL_HOST);
    
$dir=rtrim(dirname(parse_url($inurlPHP_URL_PATH).'boss'), '\\/');
    
$urls=array($inurl);
    
$res=explode(' ''ftp:// ftps:// mms:// rstp:// mailto: callto: skype: aim: gtalk: ymsgr: javascript:');
    foreach(
$out as $url) {
      foreach(
$res as $s) {
        if(
stripos($url$s)===0)
          continue 
2;
      }
      if(
stripos($url'http://')===or stripos($url'https://')===0)
        
$s=$url;
      elseif(
substr($url01)=='/')
        
$s=$domain.$url;
      else
        
$s=$domain.$dir.'/'.$url;
      if(!
in_array($s$urls)) {
        
$urls***91;***93;=$s;
      }
    }
    return 
$urls***91;0***93;;
  } 
hay ngắn hơn, lấy mỗi cái link đầu tiên: (chưa test )
PHP Code:
function extracturl($inurl) {
    
$contents=file_get_contents($inurl);
    
preg_match("/<a.*href=***91;'\"***93;(.*)***91;'\"***93;.*>.*</a>/U"$contents$out);
    
$url=$out***91;1***93;;
    
$domain=parse_url($inurlPHP_URL_SCHEME).'://'.parse_url($inurlPHP_URL_HOST);
    
$dir=rtrim(dirname(parse_url($inurlPHP_URL_PATH).'boss'), '\\/');
    
$res=explode(' ''ftp:// ftps:// mms:// rstp:// mailto: callto: skype: aim: gtalk: ymsgr: javascript:');
    foreach(
$res as $s) {
        if(
stripos($url$s)===0)
          continue 
2;
      }
      if(
stripos($url'http://')===or stripos($url'https://')===0)
        
$s=$url;
      elseif(
substr($url01)=='/')
        
$s=$domain.$url;
      else
        
$s=$domain.$dir.'/'.$url;
    return 
$s;
  } 
star_night viết 11:40 ngày 10/10/2018
Đã làm đc ^^.
Em rất cảm ơn sự giúp đở nhiệt tình của bác. KHi nào lên Đà Lạt em với bác đi cafe em trả công bác ^^.
ngoc_viet08 viết 11:33 ngày 10/10/2018
2 bác đang bàn luận về làm cái gì vậy . em ko hiểu làm cái gì nữa . các bạn chỉ em tí được ko .
Bài liên quan
0