!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 11
https://mevius.5ch.net/test/read.cgi/tech/1591334726/
次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
【PHP】下らねぇ質問はここに書き込みやがれ 12
レス数が1000を超えています。これ以上書き込みはできません。
1デフォルトの名無しさん (ワッチョイ f6ad-UoZY)
2021/04/29(木) 12:39:39.75ID:P0iZ4CYt0981デフォルトの名無しさん (オッペケ Srbb-evTy)
2021/09/08(水) 17:28:16.18ID:dxUyUwzHr <php
setlocale(LC_ALL, 'ja_JP.UTF-8');
$fp = fopen('test.csv', 'r');
flock($fp,LOCK_SH);
$rows = array();
while ($row = fgetcsv($fp)) array_push($rows, $row);
flock($fp,LOCK_UN);
fclose($fp);
foreach (array_slice($rows, -10) as $row) vprintf("%s %s\n", $row);
var_dump($row);
?>
csvデータを下から数えて10行目から最後までを表示させたいんですが、何回直しても文字だけ出力されません
なぜでしょうか?
var_dump($row);で確認したところ
2021-09-07-4-27-36 126.156.166.227 2021-09-07-4-27-52 126.156.166.227 2021-09-07-4-31-03 126.156.166.227 2021-09-07-4-50-36 126.156.166.227 2021-09-07-4-52-03 126.156.166.227 2021-09-07-4-52-15 126.156.166.227 2021-09-07-4-52-26 126.156.166.227 2021-09-07-5-01-27 126.156.166.227 2021-09-07-5-14-25 126.156.166.227 2021-09-08-4-48-06 126.133.202.39 array(3) { [0]=> string(18) "2021-09-08-4-48-06" [1]=> string(14) "126.133.202.39" [2]=> string(40) "ううううううううううううう " }
と出てます
setlocale(LC_ALL, 'ja_JP.UTF-8');
$fp = fopen('test.csv', 'r');
flock($fp,LOCK_SH);
$rows = array();
while ($row = fgetcsv($fp)) array_push($rows, $row);
flock($fp,LOCK_UN);
fclose($fp);
foreach (array_slice($rows, -10) as $row) vprintf("%s %s\n", $row);
var_dump($row);
?>
csvデータを下から数えて10行目から最後までを表示させたいんですが、何回直しても文字だけ出力されません
なぜでしょうか?
var_dump($row);で確認したところ
2021-09-07-4-27-36 126.156.166.227 2021-09-07-4-27-52 126.156.166.227 2021-09-07-4-31-03 126.156.166.227 2021-09-07-4-50-36 126.156.166.227 2021-09-07-4-52-03 126.156.166.227 2021-09-07-4-52-15 126.156.166.227 2021-09-07-4-52-26 126.156.166.227 2021-09-07-5-01-27 126.156.166.227 2021-09-07-5-14-25 126.156.166.227 2021-09-08-4-48-06 126.133.202.39 array(3) { [0]=> string(18) "2021-09-08-4-48-06" [1]=> string(14) "126.133.202.39" [2]=> string(40) "ううううううううううううう " }
と出てます
982デフォルトの名無しさん (ワッチョイ 5f7c-KrGZ)
2021/09/08(水) 17:58:27.65ID:frtZ1H5m0 したいのはこう言う事?何も確認しないで書いているがw
$max = count($rows);
$start = $max - 10;
if ($start < 0) $start = 0;
for ($i = $start;$i < $max;$i++) {
var_dump($rows[$i]);
}
$max = count($rows);
$start = $max - 10;
if ($start < 0) $start = 0;
for ($i = $start;$i < $max;$i++) {
var_dump($rows[$i]);
}
983デフォルトの名無しさん (アウアウウー Sa8b-AvaG)
2021/09/08(水) 18:09:48.04ID:ehctv71ga984デフォルトの名無しさん (オッペケ Srbb-evTy)
2021/09/08(水) 18:17:58.95ID:dxUyUwzHr >>982
値は出力できているのに詰まっているのか
vprintf("%s %s\n", $row);で文字が表示できません
メモ帳で
2021-09-03-13-28-52,126.255.28.185,"0
"
2021-09-03-13-28-52,126.255.28.185,"ううう
"
2021-09-03-13-29-46,126.255.28.185,"ううう
"
2021-09-03-13-29-49,126.255.28.185,"ううう
"
2021-09-06-14-43-33,126.204.198.239,"ううううううううううううう
"
2021-09-06-14-45-37,126.204.198.239,"ううううううううううううう
"
2021-09-07-3-09-52,126.156.166.227,"ううううううううううううう
"
2021-09-07-3-10-34,126.156.166.227,"ううううううううううううう
"
"ううう
"
と書き換えると
2021-09-03-13-28-52 126.255.28.185 2021-09-03-13-28-52 126.255.28.185 2021-09-03-13-29-46 126.255.28.185 2021-09-03-13-29-49 126.255.28.185 2021-09-06-14-43-33 126.204.198.239 2021-09-06-14-45-37 126.204.198.239 2021-09-07-3-09-52 126.156.166.227 2021-09-07-3-10-34 126.156.166.227 ううう 2021-09-08-8-39-56 126.133.201.56 2021-09-08-8-40-31 126.133.201.56
と表示されます
値は出力できているのに詰まっているのか
vprintf("%s %s\n", $row);で文字が表示できません
メモ帳で
2021-09-03-13-28-52,126.255.28.185,"0
"
2021-09-03-13-28-52,126.255.28.185,"ううう
"
2021-09-03-13-29-46,126.255.28.185,"ううう
"
2021-09-03-13-29-49,126.255.28.185,"ううう
"
2021-09-06-14-43-33,126.204.198.239,"ううううううううううううう
"
2021-09-06-14-45-37,126.204.198.239,"ううううううううううううう
"
2021-09-07-3-09-52,126.156.166.227,"ううううううううううううう
"
2021-09-07-3-10-34,126.156.166.227,"ううううううううううううう
"
"ううう
"
と書き換えると
2021-09-03-13-28-52 126.255.28.185 2021-09-03-13-28-52 126.255.28.185 2021-09-03-13-29-46 126.255.28.185 2021-09-03-13-29-49 126.255.28.185 2021-09-06-14-43-33 126.204.198.239 2021-09-06-14-45-37 126.204.198.239 2021-09-07-3-09-52 126.156.166.227 2021-09-07-3-10-34 126.156.166.227 ううう 2021-09-08-8-39-56 126.133.201.56 2021-09-08-8-40-31 126.133.201.56
と表示されます
985デフォルトの名無しさん (ワッチョイ 0701-8qru)
2021/09/08(水) 18:27:01.86ID:SZxv8NIk0 なんのワクチンですか?
986デフォルトの名無しさん (ワッチョイ 5f02-GmXC)
2021/09/08(水) 18:27:03.41ID:ude+NG5I0 csvがSJISなんじゃね?知らんけど
987デフォルトの名無しさん (ワッチョイ 7f61-KrGZ)
2021/09/08(水) 18:27:03.41ID:n2LmV6qF0 vprintfの%sの数と表示したい列数合わせれ
988デフォルトの名無しさん (アウアウウー Sa8b-AvaG)
2021/09/08(水) 18:34:46.43ID:DA6r+9Iba989デフォルトの名無しさん (ワッチョイ 5fad-6D6a)
2021/09/08(水) 18:38:48.03ID:bMYmWp520 >>988
素にお帰り
素にお帰り
990デフォルトの名無しさん (アウアウウー Sa8b-AvaG)
2021/09/08(水) 18:52:14.84ID:wkgfp7fUa >>989
カアアーカア〜カア〜
カアアーカア〜カア〜
991デフォルトの名無しさん (ワッチョイ 0701-8qru)
2021/09/08(水) 19:05:59.20ID:SZxv8NIk0992デフォルトの名無しさん (ワッチョイ 0701-8qru)
2021/09/08(水) 19:37:31.09ID:SZxv8NIk0 vprintf("%s %s %s\n", $row);
だと思うんだけど、
それでも、うちの動作環境では表示されない。
だと思うんだけど、
それでも、うちの動作環境では表示されない。
993デフォルトの名無しさん (ワッチョイ 4763-nTGN)
2021/09/08(水) 19:52:29.28ID:SVcdT2PW0 元となるCSVを差し支えない範囲で晒してみたら?
994デフォルトの名無しさん (オッペケ Srbb-evTy)
2021/09/08(水) 20:46:39.49ID:dxUyUwzHr >$keyword_data = array(date('Y-m-d-G-i-s'), $_SERVER["REMOTE_ADDR"],$_GET['s'].PHP_EOL);
日付、IPアドレス、投稿内容の3つのカラムで格納したのを無視して、
$rows = array_slice($rows, -10);
> vprintf("%s %s\n", $row);
としていたので、格納したデータと表示したいデータが結びついていないのが原因でした。
また3カラムで格納したのに、2カラムで表示しようとして空データが返ってきていたようです。
日付、IPアドレス、投稿内容の3つのカラムで格納したのを無視して、
$rows = array_slice($rows, -10);
> vprintf("%s %s\n", $row);
としていたので、格納したデータと表示したいデータが結びついていないのが原因でした。
また3カラムで格納したのに、2カラムで表示しようとして空データが返ってきていたようです。
995デフォルトの名無しさん (オッペケ Srbb-evTy)
2021/09/08(水) 20:48:31.80ID:dxUyUwzHr996デフォルトの名無しさん (ワッチョイ 7f2c-8qru)
2021/09/08(水) 21:30:05.48ID:dK8gXF1C0 例えば、Ruby のCSV では、
列内に、クォート文字"・列区切り文字,・改行があっても、正常に動く
require 'csv'
input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT
p input_ary = CSV.parse( input ) # 2次元配列
#=> [["a\"a", "b,b", "あ"], ["c\nc", "d\nd"]]
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
出力
"a""a","b,b",あ
"c
c","d
d"
列内に、クォート文字"・列区切り文字,・改行があっても、正常に動く
require 'csv'
input = <<"EOT"
"a""a","b,b",あ
"c
c","d\nd"
EOT
p input_ary = CSV.parse( input ) # 2次元配列
#=> [["a\"a", "b,b", "あ"], ["c\nc", "d\nd"]]
# 2次元配列を、CSV 文字列に変換する
csv_str = input_ary.map( &:to_csv ).join
puts csv_str
出力
"a""a","b,b",あ
"c
c","d
d"
997デフォルトの名無しさん (アウアウクー MMbb-zbgo)
2021/09/09(木) 09:39:36.12ID:eDlF7Xc4M998デフォルトの名無しさん (ワッチョイ e6bb-Ix9S)
2021/09/10(金) 17:11:58.05ID:3d1ypOtV0 うめ
999デフォルトの名無しさん (ワッチョイ e6bb-Ix9S)
2021/09/10(金) 17:12:06.66ID:3d1ypOtV0 うめ
1000デフォルトの名無しさん (ワッチョイ e6bb-Ix9S)
2021/09/10(金) 17:12:17.40ID:3d1ypOtV0 うめー
10011001
Over 1000Thread このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 134日 4時間 32分 38秒
新しいスレッドを立ててください。
life time: 134日 4時間 32分 38秒
レス数が1000を超えています。これ以上書き込みはできません。
ニュース
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★5 [ぐれ★]
- 【地震速報】青森県で震度6強 沿岸部に津波警報 ★6 [ぐれ★]
- 「日の丸にバツ印」掲げた大学生 あいまいな国旗損壊罪に「怖い」 The Mainichi [少考さん★]
- 【速報】気象庁がマグニチュード7.5に修正しました [ニョキニョキ★]
- 高市内閣「支持」64%「不支持」19% NHK世論調査 ★2 [少考さん★]
- 【音楽】BARBEE BOYS・KONTAが事故で四肢麻痺を公表、新体制で活動は継続 [少考さん★]
- ぺこーら、地震で同僚が次々配信を止めるなか強行し続けるので悪目立ちするwww [268244553]
- かっぱ寿司←こいつが天下取れなかった理由
- 何でデートでリュック背負って来たらダメなの?
- 巨大地震 [957955821]
- 【高市速報】気象庁、後発地震注意情報を発表、運用開始後で初。対象地域では1週間程度同程度の地震が起こる可能.性 [931948549]
- 🖐( -᷄,ὢ)知らないんで……
