![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_07.png?5a7ff87)
<?php
$input_01 = file('list/001.txt');
echo '<ul>'."\n";
foreach( $input_01 as $value ){
$num++;
echo "\t".'<li><a href="' .$value. '"><img src="' .$num. '.jpg" alt="" /></a></li>'."\n";
}
echo '</ul>'."\n";
/*
1. list/001.txtにはURLが多数入っていると仮定します。上記の構文ですと、<ul>~</ul>の中に全てのURLが出力されます。
例えばこれを以下のように5つずつ順にURLを出力、同時に00001~00005.jpgとなるよう出力するには、どうのような方法が、 軽く、スマートな方法のでしょうか?
<ul>
<li>~</li>
<li>~</li>
<li>~</li>
<li>~</li>
<li>~</li>
</ul>
2. echo '<ul>'."\n"; のように、シングル、ダブルクォートを同時に使用する事は、変でしょうか?
色々検索して試行錯誤しましたが、フリーズしてしまいました。ご回答よろしくお願いいたします。
*/
No.2ベストアンサー
- 回答日時:
簡単に書いてみました。
参考までに。インデントは全角スペースになっています。
<?php
$list = file('list.txt');
$count = 1;
while($a = array_splice($list, 0, 5)){
echo "<ul>\n";
foreach($a as $v){
printf("<li><a href=\"%s\"><img src=\"%05d.jpg\"/></a></li>\n", chop($v, "\n"), $count);
$count++;
}
echo "</ul>\n";
}
?>
参考URL:http://www.php.net/manual/ja/function.array-spli …
No.1
- 回答日時:
<?php
$input_01 = file('list/001.txt');
$i = 0; //5個ずつに区切るためのフラグ
foreach($input_01 as $num => $value){ //配列のindexもこの方法で取得できる
$num++; //画像のナンバリングは1から始めるならとりあえずインクリメント。
if($i === 0){ //区切りが最初だったら
echo '<ul>' . "\n"; //<ul>を出力
}
//printfでフォーマットして出力をする。
//%sの所に第二引数以下の値が代入される。
//また、%05sといった書き方をすると必ず0で埋められた5桁で出力される。
printf("\t" . '<li><a href="%s"><img src="%05s.jpg" alt="" /></a></li>' . "\n", rtrim($value), $num);
$i++;
if($i == 5){ //5個で区切りの最後なので
echo '</ul>' . "\n"; //</ul>を出力
$i = 0; //フラグを初期化
}
}
//001.txtが半端な数だった場合、
//</ul>が閉じられないで終了してしまうので
if($i !== 0){ //ちぇっくして
echo '</ul>' . "\n"; //</ul>を出力
}
?>
こんな感じにするのが一番早そうです。
シングルクオーテーションとダブルクオーテーションの混在は結構やります。
HTMLの属性要素をダブルクオーテーションで括りたい場合に、円マーク使うと見づらくなるので。
<?php
echo '<a href="http://example.com">link</a>' . "\n";
//としたほうが
echo "<a href=\"http://example.com\">link</a>\n";
//とするより見やすいので。
?>
回答ありがとうございます!
1.の質問については、スマートなロジックで勉強になります!
2.の質問については、たしかにいろいろなPHPファイル全行で見ても、混在しますよね。
1行ではどんなものかと深読みでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP アコーディオンPHPが上手くいかない 3 2022/07/15 16:29
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- PHP SQLとPHPの連結方法がわからないのでアドバイスお願い致します 1 2022/07/12 12:16
- Perl RSSにdiv,ul classを付けたいのですがどのようにつけるのかわからないです 2 2022/03/28 01:53
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- PHP ランキングを表示する際の画像の大きさを固定することは可能でしょうか? <?php if ( has_ 1 2022/07/21 14:55
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- HTML・CSS インラインブロックの中のテキストを上下中央に合わせたい 1 2022/12/24 17:46
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
Windowsのsetコマンドでの小数...
-
バッチファイルで、全てのウィ...
-
DBのハッシュ化したパスワード...
-
小数点以下0の非表示
-
switch()文で値の大小比較
-
findstrのerrorlevel
-
PHPのTRUEとFALSEについて 値...
-
syntax error, unexpected 'ech...
-
$_SERVER["REQUEST_METHOD"]に...
-
csvの特定のキーワードを指定し...
-
PHP 九九表
-
カレンダーの今日の日付をハイ...
-
全角を半角にして、整数か小数...
-
オブジェクトの中身の判定(PHP)
-
出力されない原因を教えてくだ...
-
ナベアツプログラム(3の倍数...
-
電話番号入力確認 やっぱり分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Dosブロンプトでtabを出力したい
-
switch()文で値の大小比較
-
バッチファイルでpingの結果を...
-
shシェルスクリプト 空白行の...
-
phpでcookieがうまく保存されない
-
findstrのerrorlevel
-
syntax error, unexpected 'ech...
-
小数点以下0の非表示
-
バッチファイルで、全てのウィ...
-
オブジェクトの中身の判定(PHP)
-
PHPで訪問回数を表示するカウン...
-
ゼロとNULLを区別して number_f...
-
bashの関数の引数にスペースが...
-
ナベアツプログラム(3の倍数...
-
変数の受け渡しによる画像の表示
-
PHP一覧表示した項目にリンクを...
-
Windowsのsetコマンドでの小数...
-
Parse error というエラーの対...
-
pdftkを使った処理をバッチファ...
-
DBのハッシュ化したパスワード...
おすすめ情報