1

私は私の人生でJavaを使用したことはありませんが、私はphpが得意です。ウェブサイトのページソースを取得したい.しかし、私はAppspot(GAE)を使用しています.file_get_contentsとCurlが機能していません. Java経由のソース.Javaのいくつかの基本を学び、コードの下に見つけましたが、コードの下にあるのは外部ページの1行目だけです.私が間違っているところを教えてください.

<?php

function get($url){

        import java.net.URL;
        import java.io.BufferedReader;
        import java.io.InputStreamReader;

        $java_url = new URL($url);
        $java_bufferreader = new BufferedReader(new InputStreamReader($java_url->openStream()));

        while (($line = $java_bufferreader->readLine()) != null) {
            $content .= $line;
        }

        return $content;
}


echo get("http://domain.com");

?>

たとえば、stackoverflow.com をスクレイピングすると、以下のコードのみが返されます

<!DOCTYPE html><html><head>        <title>Stack Overflow</title>    <link rel="shortcut icon" href="//cdn.sstatic.net/stackoverflow/img/favicon.ico">    <link rel="apple-touch-icon image_src" href="//cdn.sstatic.net/stackoverflow/img/apple-touch-icon.png">    <link rel="search" type="application/opensearchdescription+xml" title="Stack Overflow" href="/opensearch.xml">    <meta name="twitter:card" content="summary">    <meta name="twitter:domain" content="stackoverflow.com"/>    <meta name="og:type" content="website" />    <meta name="og:image" content="http://cdn.sstatic.net/stackoverflow/img/apple-touch-icon@2.png?v=fde65a5a78c6"/>    <meta name="og:title" content="Stack Overflow" />    <meta name="og:description" content="Q&amp;A for professional and enthusiast programmers" />    <meta name="og:url" content="http://stackoverflow.com/"/>
4

1 に答える 1

0

Scannerクラスを試してみてください。

<?php

function get($url){

        import java.net.URL;
        import java.util.Scanner;

        $java_url = new URL($url);
        $java_scanner = new Scanner($java_url->openStream());

        while (($line = $java_scanner->nextLine()) != null) {
            $content .= $line;
        }

        return $content;
}


echo get("http://domain.com");

?>

それでもうまくいかない場合は、念のため、変数の内容を空の文字列で初期化してください。:)

于 2013-10-01T07:46:20.350 に答える