
このように設定しています。
どこかに何かをすれば何番目指定表示できるのでしょうか。
<?php
require_once "Feed.php" ; //rss-phpライブラリを読み込みます
require_once 'code_table.ucs2jis';
require_once 'jcode.php';
$feed = new Feed ;
$url = "rss.xmlのURL"; //RSSのURLを入力する
$rss = $feed->loadRss( $url ) ;
$num = 30;//表示させたい件数
$i=0;
$desW = 201;//詳細の文字数を制限します。制限しないときは0にします。
if ( $desW != 0){
$desW = ($desW*2)+2;
}
foreach( $rss->item as $item )
{
if($i>=$num){
}
else{
$title = $item->title ; // タイトル
$title = JcodeConvert($title, 4, 2);
$link = $item->link ; // リンク
$timestamp = strtotime( $item->pubDate ) ; // 更新日時
$description = $item->description ; // 詳細
$description = mb_convert_encoding($description, "Shift_JIS", "auto");
$description = str_replace("-- Delivered by","","",$description);
//$description = str_replace("-- Delivered by","Feed43","service",$description);
//↑ ▼続きを読むなど、決まった文章が詳細にはいっている場合に、それを除外する
$description = strip_tags($description);
if ( $desW != 0){
//表示文字数指定
$description = mb_strimwidth($description, 0, 201, "" , "Shift_JIS");
}
$thumbnail = trim($now_url,"/") . "/img/noimage.jpg";//画像がない場合の指定
if( preg_match_all('/<img([\s\S]+?)>/is', $item->description, $matches) ){
foreach( $matches[0] as $img ){
if ($img === reset($matches[0])) {//最初の画像にマッチしたもの
if( preg_match('/src=[\'"](.+?jpe?g)[\'"]/', $img, $m) ){
$thumbnail = $m[1];
}
}
}
}
?>
<li><a href="<?php echo $link; ?>"><?php echo $title; ?></a><br /><?php echo $description; ?></li>
<?php
$i++;
}
}
?>
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
No1です。
>if($i<11 || $i>20){ にしてみましたが、サイトに表示されなくなりました。
そこだけ変えたんでしょうか?
であれば、No1にも記しておきましたが、多分 $i の値が変化していないので、条件に合致するものがないと判断されて、何も表示されないのではないでしょうか?
No1に記したように、$iのインクリメントを外側に出すか、現状のままなら、条件分岐の何もしない部分にインクリメントを追加するなどのどちらかが必要になると思います。
No.1
- 回答日時:
こんにちは
現状で、出力する対象を選別しているのは、
>if($i>=$num){
の部分で、指定項目数より小さければ出力するようになっています。
ですので、この部分をお好みの範囲に設定すれば良いでしょう。
ご提示のロジックでは、省く方を条件式にしていますので、
if($i<11 || $i>20){
のようにすれば、falseの場合に出力されるようになります。
※ ただし、ご提示のコードでは $i のインクリメントを条件式がfalseの場合だけ行っているように見受けられます。(波括弧が多いので、きちんと確認してはいませんけれど)
条件式できちんとカウントが反映されるには、foreachのループ内で、条件式の結果に関わらず、必ずインクリメントされるようにしておく必要があります。
具体的には、最後の方の
>$i++;
の位置を、確認の上、調整する必要がありそうな気がします。
(きちんと確認していなくて、申し訳ありませんが…)
fujillin様
早速のご回答有難うございます。
早速、if($i>=$num){ を if($i<11 || $i>20){ にしてみましたが、サイトに表示されなくなりました。
もし、お手すきな際に、ご回答頂ければ幸いです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
処理を止める関数
-
GDで生成したはずの画像が文字...
-
セッション管理に関する質問
-
phpのheader("Location:#pos")...
-
*.php、*.php3、*.phtmlの違い
-
phpのextension_dirを複数指定...
-
PHP PDOライブラリが読み込まれ...
-
phpでメール送信できません 原...
-
header(Location:~)で$_SESS...
-
<A href ~ と一緒に値を渡すには
-
さくらインターネットでメール...
-
【PHP】tmp_nameの命名規約につ...
-
php4とphp5での数値の取り扱い...
-
テレメールとは?
-
PHPでメールを受信するには?
-
データ送信をボタンを押さずに...
-
PEAR(Image_QRCode)のエラー
-
Apache 2.4でphp-5.3を使いたい...
-
セッションについての設定なの...
-
require_once()でファイルが読...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ob_end_clean と ob_clean の違...
-
CSV出力にHTMLが入ってしまう
-
GDで生成したはずの画像が文字...
-
Wordpress、カスタム投稿の管理...
-
mPDFでのPDF出力がうまくいかな...
-
phpにcssを適応させたい...
-
PHPで`headers already sent`と...
-
PHP/phpMyAdmin/データベースな...
-
TCPDFについて
-
PHPで取得したHTML内のdiv要素...
-
リダイレクト元のURLの取得方法...
-
ImageStringで日本語表示させたい
-
PHPにおける時間計算、時間足し...
-
PHPで五角形、または多角形のグ...
-
JavaScriptからPHP呼び出しHTML...
-
warningを画面に表示させない設...
-
CGIからPHPへの書き換え
-
FeedPHPでfeedをHTML表示を11個...
-
【smarty】<A href="">内でのみ...
-
PHPをSJISでやるのは不可能
おすすめ情報