1

私は複数のソースからのデータを解析するRSSスクレーパーに取り組んできました。とは言うものの、これらすべてのソースには、RSSの説明の独自の実装があります。

特に、CDATAタグを使用して、たとえばlikeに説明を書き込みます。

<![CDATA[
<p align=justify><font face="verdana, arial, helvetica, sans-serif" size=1>
<font color=#004080></font>
SOME TEXT GOES HERE 
 </font></p>
]]>

ただし、SimplePieでアイテムの説明を取得しようとすると、この出力が表示されます

<div><p align="justify"></p></div>

私はこのphpスクリプトを使用してこれをすべて行います

 foreach($feed->get_Items() as $item)
 {
        
        $title = $item->get_title();
         $description = $item->get_description();
        //some other stuff
 }

そして今、良い部分

フィードのタイトルもこのようになります

<title>
  <![CDATA[ 
     Nice title
  ]]>
</title>

そして...それは動作します!!!

フィードの説明を取得するにはどうすればよいですか?私はほとんどすべてを試しました!

ありがとうございました!


巨大なビットマップで最初のセットビットを検索する

インタビューの質問:

百万台の車を収容できる駐車場では、無料の駐車場を見つける必要があります。スロットがどこにあるかという条件はありません。つまり、駐車場には複数の入り口があり、入り口の近くにスロットを見つけることなどは問題ではありません。問題は、どのような種類のデータ構造を使用する必要があり、さまざまな操作がどのように複雑になるかということでした。

ミリオンビットのビット配列を使用することを提案しました。テイクド/フリースロットには0/1を使用するため、フリースポットを見つけるための質問は、最初のセットビットを見つけることに変換されます。車の数などについては何も想定しないでください。つまり、ビット配列がまばらまたは密である可能性があります。

巨大なビットマップでセットビットを見つける最も速い方法は何ですか?スキームとして、バイナリ検索+単語ごとの効率的なffs()を提案しました。

4

1 に答える 1

3

get_description () メソッドとget_content()メソッドは両方とも生データのサニテーションを行いますが、次のようにget_item_tags ()メソッドを使用してそのまま抽出することができます。

$desc_tags = ($item->get_item_tags('', 'description')); // empty namespace is RSS2.0
if ($desc_tags) {
    print $desc_tags[0]['data'];
}

唯一の注意点は、get_contentまたはget_descriptionが名前空間を検出しようとするときです。名前空間を に提供する必要があります。名前空間の定数はこちらでget_item_tags確認できます。事前にフィード形式がわかっている場合は問題ありませんが、それ以外の場合は試行錯誤が必要になる場合があります。get_description

于 2012-07-20T15:39:32.983 に答える