'함수'에 해당되는 글 2건

  1. 2007/10/07 글뻥 PHP 다른 사이트의 HTML을 긁어 오는 내장함수
  2. 2007/10/07 글뻥 PHP에서 XML을 Array로 변환하는 함수

대부분의 호스팅 사이트는 보안문제로 잠겨 있을것입니다.

내장 함수는 다음과 같이

file_get_contents("주소");

아니면 CURL을 사용할수 도 있습니다.


 function GetData($addr) {
   $data="";
  $ch = curl_init();
  $header[]="User-Agent: User Browser HTTP/1.0\r\n";
  $header[]="Connection: close\r\n";

  curl_setopt($ch, CURLOPT_URL, $addr);
  curl_setopt($ch, CURLOPT_HEADER, true);
  curl_setopt($ch, CURLOPT_HTTPHEADER,$header);
  curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);

  $data=curl_exec($ch);   return $data;  }



아니라면 소켓을 열자
   $Server = "서버의주소";
   $Port = "80";
   $File = "페이지";
   $Request = "GET " . $File . " HTTP/1.1\r\n";
   $Request .= "Host: " . $Server . "\r\n"; 
   $Request .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.5; Windows XP)\r\n\r\n";
   $Socket = fsockopen($Server, $Port, &$errno, &$errstr, 30);
   fputs($Socket, $Request);
   while(!feof($Socket)) {
       $html = $html . fgets($Socket, 1024);
   }
   fclose($Socket);
   if (strpos($html,"No Results")>0){
         echo "Off Line Player";
         return;
   }
   return $html

2007/10/07 20:20 2007/10/07 20:20
XML을 파싱하여 배열로 반환합니다.

function xml_to_array( $file )
{
    $parser = xml_parser_create();
    xml_parser_set_option( $parser, XML_OPTION_CASE_FOLDING, 0 );
    xml_parser_set_option( $parser, XML_OPTION_SKIP_WHITE, 1 );
    xml_parse_into_struct( $parser, $file, $tags );
    xml_parser_free( $parser );
    
    $elements = array();
    $stack = array();
    foreach ( $tags as $tag )
    {
        $index = count( $elements );
        if ( $tag['type'] == "complete" || $tag['type'] == "open" )
        {
            $elements[$index] = array();
            $elements[$index]['name'] = $tag['tag'];
            $elements[$index]['attributes'] = $tag['attributes'];
            $elements[$index]['content'] = $tag['value'];
            
            if ( $tag['type'] == "open" )
            {    # push
                $elements[$index]['children'] = array();
                $stack[count($stack)] = &$elements;
                $elements = &$elements[$index]['children'];
            }
        }
        
        if ( $tag['type'] == "close" )
        {    # pop
            $elements = &$stack[count($stack) - 1];
            unset($stack[count($stack) - 1]);
        }
    }
    return $elements[0];
} 


배열을 전부 나열하고 싶으면 내장함수인 print_r() 함수를 사용하면 됩니다.
2007/10/07 20:13 2007/10/07 20:13
TAG , , ,