0

http://en.wikipedia.org/w/api.php?action=parse&page=Petunia&format=xmlを介してウィキペディアへのAPI呼び出しを行おうとしていますが、xmlにはhtmlタグとcssタグが含まれています。

タグなしのプレーンテキストのみをフェッチする方法はありますか?ありがとう!

*編集1:

$json = json_decode(file_get_contents('http://en.wikipedia.org/w/api.php?action=parse&page=Petunia&format=json'));
$txt  = strip_tags($json->text);
var_dump($json);

ヌルが表示されます。

4

2 に答える 2

1

質問はここで部分的に回答されました

$url = 'http://en.wikipedia.org/w/api.php?action=parse&page=Petunia&format=json&prop=text';
$ch = curl_init($url);
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch, CURLOPT_USERAGENT, "TestScript"); // required by wikipedia.org server
$c = curl_exec($ch);

$json = json_decode($c);

var_dump(strip_tags($json->{'parse'}->{'text'}->{'*'}))

使用できませんでしfile_get_contentsたが、で正常に動作しcURLます。

于 2012-01-11T04:44:35.077 に答える
0

xmlを使用してウィキペディアから情報や説明を取得することができます。

       $ url = "http://en.wikipedia.org/w/api.php?action=opensearch&search=".$term."&format=xml&limit=1 ";
        $ ch = curl_init($ url);
        curl_setopt($ ch、CURLOPT_HTTPGET、TRUE);
        curl_setopt($ ch、CURLOPT_POST、FALSE);
        curl_setopt($ ch、CURLOPT_HEADER、false); //必要に応じて頭を含める
        curl_setopt($ ch、CURLOPT_NOBODY、FALSE); //本文を返します
        curl_setopt($ ch、CURLOPT_VERBOSE、FALSE); //ログを最小化します
        curl_setopt($ ch、CURLOPT_REFERER、 ""); //リファラー値
        curl_setopt($ ch、CURLOPT_SSL_VERIFYPEER、FALSE); //証明書なし
        curl_setopt($ ch、CURLOPT_FOLLOWLOCATION、TRUE); //リダイレクトに従います
        curl_setopt($ ch、CURLOPT_MAXREDIRS、4); //リダイレクトを4つに制限します
        curl_setopt($ ch、CURLOPT_RETURNTRANSFER、TRUE); //文字列で返します
        curl_setopt($ ch、CURLOPT_USERAGENT、 "Mozilla / 5.0(Windows; U; Windows NT 6.1; he; rv:1.9.2.8)Gecko / 20100722 Firefox / 3.6.8"); //Webbot名
        $ page = curl_exec($ ch);
        $ xml = simplexml_load_string($ page);
        if((string)$ xml-> Section-> Item-> Description){
            print_r(array((string)$ xml-> Section-> Item-> Text、
            (文字列)$ xml->セクション->アイテム->説明、
            (文字列)$ xml-> Section-> Item-> URL));
        } そうしないと {
            エコー「ごめんなさい」;
        }

しかし、curlはサーバーにインストールする必要があります...良い一日を...

于 2012-08-15T08:03:33.817 に答える