このように設定しています。
どこかに何かをすれば何番目指定表示できるのでしょうか。
<?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で質問しましょう!
似たような質問が見つかりました
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP 共通の処理をまとめる方法がわからないのでアドバイスお願いします。 1 2022/12/19 20:20
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- PHP PHP MySql ページング 2 2022/09/20 06:38
- PostgreSQL 画像とカテゴリーを出力したいのですが、取得の条件を付ける方法がわかりません。 2 2022/05/01 18:03
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
warningを画面に表示させない設...
-
クッキーがセットされません
-
phpにcssを適応させたい...
-
onedrive にexcelファイルをア...
-
PHPのif文でその処理を途中で抜...
-
.phpと.incファイルの違いはな...
-
.htaccessにphp_valueが使用できな
-
form actionで二つ送信先を指定...
-
phpでget_headers()が使えない?
-
PHP8を使うと、大量のWarningが...
-
Apacheでhttp://localhost/が表...
-
フォントの色を変えるには?
-
cakephpのサブタイトルはどこで...
-
VBSの「MsgBox」について
-
stat failed
-
PHPのコマンドラインでのバージ...
-
openCVの超解像処理
-
FTPClientで転送結果(OKかFAIL)
-
FTPコマンドでディレクトリごと...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
CSV出力にHTMLが入ってしまう
-
PHPSpreadsheetによる書き出し...
-
PHPにおける時間計算、時間足し...
-
PHPで取得したHTML内のdiv要素...
-
TCPDFについて
-
エクスプローラーでフォルダを...
-
¥マークを出力したいがバック...
-
リダイレクト元のURLの取得方法...
-
ob_end_clean と ob_clean の違...
-
PHPで`headers already sent`と...
-
PerlからPHPへ移行したときの注...
-
PHPでデータベースからデータを...
-
image関数でMS Pゴシックを使い...
-
smarty foreach 半角スペース
-
phpでの画像表示
-
webroot以外の画像の表示
-
phpexcelにてsubmitボタンを押...
-
phpにcssを適応させたい...
-
PHPで動的に生成した画像がキャ...
-
文字列を段落で分ける方法を教...
おすすめ情報