質問

私は現在、新しいオンラインフィードリーダーはクリアしました。特徴の一つで仕事をしているのは飼料の自動化することが出来るのですユーザーがウェブサイトのURL、利用者のスクリプトを検出できなフィードのみの飼料URL構文解析することによって、HTMLのための適切なタグです。

問題は、im現在の検出る場合のURLは、飼料またはホームページでは、作品の一部の時間とかはできなくなる。現在imのカール対応と走行でsimplexml_load_string合することはできな構文解析で扱うことです。こちらのコードです。

$xml = @simplexml_load_string( $site_found['content'] );

if( !$xml ) // this is a website, not a feed
{
    // handle website
}
else
{
    // parse feed
}

こんに最適です。また、時にスポットとして知られるHTMLサイトでの解析では考えています。

他に提案の良い方法での検出との差をフィード以外のフィードでPHP?

おかげさ

ペッパー http://feedingo.com

役に立ちましたか?

解決

い匂いを嗅の様々なリクエストに一意な識別子の方にフォーマット:

Atom:

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

RSS0.90:

<rdf:RDF
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns="http://my.netscape.com/rdf/simple/0.9/">

Netscape RSS0.91

<rss version="0.91">

など。など。(第2ソースへのリンクフル概要)

調査を実施しているのは、同じで、分離原子RSSをすべきかを容易に探し <feed><rss> タグです。プラスだの方は有効なHTMLドキュメント

できること初期チェックを伝え、HTMLのフィード別に見た <html><body> 要素です。る問題を避けることになるだろうが無効の入力方、この場合には正規表現を用いて(パーサ)がついに正当化され のための一 :)

っていることを確認してください致HTMLの試験は原子/RSSを試験します。ていない場合として認識され、飼料のXMLパーサー chokes無効入力をHTMLです。

どのように見えるのかに飼料事業者は常に、それに適合すルールは別の問題ございますのでご注意下さいていを認識できることが多くなります。

他のヒント

私はそれがFirefoxの(または他のブラウザ)がそれをしない方法だと仮定して、あなたの最良の選択がContent-Typeヘッダを得ていると思います。あなたはそれについて考える場合のほか、Content-Typeは確かに、サーバーが応答内容をどのように処理するかをユーザエージェントに伝える方法です。ほとんどすべてのまともなHTTPサーバが正しいContent-Typeヘッダを送信します。

最初のものは、「失敗した」場合は、

それでもあなたは(この基準はあなた次第です)2番目の選択肢として、コンテンツにRSS /アトムを特定しようとすることができます。

追加の利点は、あなただけのあなたは、このようなカールでこれを行うことができますので、時間等、あなたは、帯域幅の保存、文書全体の代わりにヘッダを要求する必要があるということです。

<?php
 $ch = curl_init("http://sample.com/feed");
 curl_setopt($ch, CURLOPT_NOBODY, true); // this set the HTTP Request Method to HEAD instead GET(default) and the server only sends HTTP Header(no content).
 curl_exec($ch);
 $conType = curl_getinfo($ch, CURLINFO_CONTENT_TYPE);

 if (is_rss($conType)){ // You need to implement is_rss($conType) function
    // TODO
 }elseif(is_html($conType)) { // You need to implement is_html($conType) function
    // Search a rss in html
 }else{
    // Error : Page has no rss/atom feed
 }
?>

てみてはいかがでしょうか解析してデータを部品内蔵具体的には解析をRSS/ATOMフィードのように、 Zend_Feed_Reader ?

その場合、構文解析が成功すると、大きくいただけるURLの使用は実際に有効なRSS/ATOMフィードを利用する


っていることを使用できるような成分の解析を飼料を抽出するために、その情報はありませんでしたが、お昼過ぎくな再発明は、ホイール、XMLを解析""と特別な場合。

ペッパー、

右ハンドラにディスパッチするのContent-Type HTTPレスポンスヘッダを使用します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top