또 왔습니다. openapi 대해서....

1

########### book2.php

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">
<script>
function aa(a) {
 if(!fom1.title.value) {
     alert("값을 입력하세요")
        return false;
    }
    fom1.submit();
}
</script>
</head>

<body bgcolor="#FFFFFF" text="#000000">
<p>책 검색</p>
<p>
<form name="fom1" method="post" action="book3.php">
  <input type="text" name="title">
  <a href="#" onclick="aa()">검색</a></p>
</form>
</body>
</html>

 

#### book3.php

<?
$title = urlencode($title);
$url="http://openapi.naver.com/search?key=[인증키]&query=$title&display=10&start=1&target=book&sort=sim";

// 밑에 것은 php스쿨에서 검색해서 찾았는데 fopen 이 에러가 나네요. 앞글에서 ajax를 써면 된다고 했는데 ajax에 대해선 처음들어보고 어떻게 해야될지 모르겠네요.

$fp=fopen($url,"r");
$text=fread($fp,200);
fclose($fp);

echo $text;
?>

검색란에 글자을 입력하고 book3로 넘어오면 이런에러가

Warning: fopen(): URL file-access is disabled in the server configuration in /home/nammunbook/book3.php on line 5

Warning: fopen(http://openapi.naver.com/search?key=[인증키]ry=go&display=10&start=1&target=book&sort=sim): failed to open stream: no suitable wrapper could be found in /home/nammunbook/book3.php on line 5

Warning: fread(): supplied argument is not a valid stream resource in /home/nammunbook/book3.php on line 6

Warning: fclose(): supplied argument is not a valid stream resource in /home/nammunbook/book3.php on line 7

가 나네요. fopen이 안먹히는건가요?

음 그리고 질문이 openapi 로 페이지가 넘어가서 xml을 읽어와야 하는지요?

만약에 xml을 읽어오게 되면 xml페이지로 넘어가버리면 어떻게 xml에 있는 책제목이나 다른 변수들을 어떻게 뽑아서

다른 페이지 폼으로 넘기는지요? 하다가 생각해보니 생각보다 어렵네요.

아니면 다른 방법이 있는건지요? 아 갈수록 어렵워지네요.

좋은 하루 되세요. ^^;

ps : 아 참고로 allow_url_fopen 가 off 상태로 되어 있고  file_get_contents 로 안먹히는 서버이네요.

아 또 글 수정하러 왔습니다.

fopen 대신에 소켓을 넣어 보았는데 소켓도 잘몰라 php스쿨에서 가져왔는데 검색버튼 누러면 book3.php에서

book2.php 로 바로 돌려보는것 같네요.. 뭐가 잘못된걸까요?

 

get_url_fsockopen($url);

function get_url_fsockopen( $url ) {
        $URL_parsed = parse_url($url);

        $host = $URL_parsed["host"];
        $port = $URL_parsed["port"];
        if ($port==0)
            $port = 80;

        $path = $URL_parsed["path"];
        if ($URL_parsed["query"] != "")
            $path .= "?".$URL_parsed["query"];

        $out = "GET $path HTTP/1.0\r\nHost: $host\r\n\r\n";

        $fp = fsockopen($host, $port, $errno, $errstr, 30);
        if (!$fp) {
         echo "$errstr ($errno)<br>\n";
        } else {
            fputs($fp, $out);
            $body = false;
            while (!feof($fp)) {
                $s = fgets($fp, 128);
                if ( $body )
                    $in .= $s;
                if ( $s == "\r\n" )
                    $body = true;
            }

            fclose($fp);
            echo $in;
        }
    }

댓글
  • No Nickname
    No Comment
  • 권한이 없습니다.
    {{m_row.m_nick}}
    -
목록형 📅 달력형