■ このスレッドは過去ログ倉庫に格納されています
PHPに詳しく心優しい日本男児きて!!!!!
- 1 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 16:59:10.264 ID:hb65lFF50.net
- txtファイルからfileで一行ずつ読み込んだときに空行が含まれてたらその行の内容をemptyにする、みたいな処理ができない!!!
助けてください!!!!!
- 2 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 16:59:46.537 ID:5ZAvpoNS0.net
- What?
- 3 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 16:59:55.815 ID:Vr7C0oFT0.net
- 女だからわかるけどお呼びじゃないね
さよなら
- 4 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:00:37.007 ID:hb65lFF50.net
- わかってたけどちょっとスレタイ捻ってみたらこれだよ!!!
つまらなくてごめんなさい!!!でも助けてください!!!!!
- 5 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:00:37.386 ID:rFMXN5wOa.net
- たぶん設定で出来るよ!
がんばれ!
- 6 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:01:28.978 ID:hb65lFF50.net
- ifで行の中身が改行コードのみだったら分岐してstr_replaceで置換できるはずなんだけどなんか分岐しない!!!!!
- 7 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:01:46.326 ID:eojs34E80.net
- 空行っていうけど
改行コード入ってるじゃん
おわり
- 8 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:01:52.757 ID:Vr7C0oFT0.net
- >>6
とりむすればいいだけ
- 9 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:03:02.038 ID:T5tX/ICy0.net
- 中の改行コードと指定した改行コードが違うんじゃないの
- 10 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:03:22.884 ID:cuFac2/g0.net
- あの電話そんな細かな編集とかできたっけ
- 11 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:04:03.826 ID:Vr7C0oFT0.net
- しかしえんぷてぃってなんだよそういう文字を入れたいのか?
- 12 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:04:14.919 ID:hb65lFF50.net
- UNIX環境だから\nでいいかと思って
if($content == "/n")にしたら分岐しません…
PHP_EOLとかいろいろ試してみたんだけどどうにも
- 13 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:04:34.601 ID:b/HWFrTh0.net
- どんなコード書いてんだよ・・・
- 14 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:04:55.215 ID:hb65lFF50.net
- >>11
そうです!(改行のみの)空行をemptyの文字列に置換したいだけなんです!
- 15 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:05:10.526 ID:VflzH+x70.net
- どこができないのよ。
ファイル読み込みか、空行の置換か。
問題点を洗い出す技能を身に着けるべき
- 16 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:05:18.477 ID:Vr7C0oFT0.net
- >>12
とりむして空文字ならに書き換えたら終わり
- 17 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:05:56.118 ID:hXrtMXpp0.net
- \n じゃなくて \r\n じゃねぇの
- 18 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:06:23.810 ID:Vr7C0oFT0.net
- >>17
Windowsはそうだね
- 19 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:06:38.973 ID:VflzH+x70.net
- >>17
ああ、すごくありそう
- 20 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:07:21.179 ID:b/HWFrTh0.net
- >>17
UNIX環境なら改行コードだけでいい
- 21 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:07:23.147 ID:olzY+bah0.net
- 書いたもの全部出せ
- 22 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:07:24.624 ID:hXrtMXpp0.net
- 或いは $i = "" で試してみるとか
- 23 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:08:07.339 ID:Vr7C0oFT0.net
- デバックダンプくらいしてみろよ
それかおとなしくとりむしろ
- 24 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:08:17.944 ID:T5tX/ICy0.net
- 環境がUNIXだからといってそのtxtの改行コードがLFとは限らぬ
- 25 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:08:47.929 ID:hXrtMXpp0.net
- 元ファイルは間違いなくunixか実はwinではないか
とにかく色々やるこった
- 26 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:09:45.701 ID:AWovgiAQ0.net
- emptyって0、空文字列、NULLはtrueって関数だろ
空行をemptyでチェックするって意味か??
- 27 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:09:53.627 ID:hb65lFF50.net
- $contentsという配列にfileでtxtの内容格納するとこまではうまくいってます
この行は空行ではない場合があるので,もし空行の場合だけemptyに置換したいです
if($contents[0] === "\n"){
$contents[0] = str_replace("\n", "empty\n", $contents[0]);
}
- 28 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:09:55.179 ID:Vr7C0oFT0.net
- とりあえず俺ならファイル全体を改行コードが2連続したら
改行コードエンプてぃ改行コード
に置換するコード書くけどな
- 29 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:11:26.181 ID:VflzH+x70.net
- 全部メモリに読み込んで、正規表現で書き換えちゃえとか言う富豪的発想
- 30 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:12:07.894 ID:hb65lFF50.net
- わかりにくくてすみません
emptyは置換後の文字列です
教えていただいたtrimも試してみたんですがどうにもダメそうです
もうちょっと色々やってみます
- 31 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:13:31.966 ID:Vr7C0oFT0.net
- >>29
そんな行数多くないバッチ処理用コードなら十分だよ
- 32 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:13:47.773 ID:T5tX/ICy0.net
- >>27
>if($content == "/n")
>if($contents[0] === "\n"){
話が変わってるZE
これのどこで止まってるの?1行目?2行目?
if($contents[0] === "\n"){
$contents[0] = str_replace("\n", "empty\n", $contents[0]);
}
- 33 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:14:55.923 ID:Vr7C0oFT0.net
- >>30
ダンプしろ
- 34 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:15:46.800 ID:hb65lFF50.net
- しっちゃかめっちゃかですみません
配列$contentsに格納した一行目をチェックしたいので
if($contents[0] == "\n")が正しいです
そもそも条件分岐に引っかかっていない,1行目で止まってる状況です
- 35 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:15:58.881 ID:KzZSS0D70.net
- あっという間にスレ伸びるな
VIPにPHP使い多いな
- 36 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:17:01.678 ID:Vr7C0oFT0.net
- >>34
コードを小出しにせずに全部貼れ
- 37 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:22:16.104 ID:VflzH+x70.net
- その$contentsには改行が入っているのかという疑問
- 38 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:22:20.928 ID:T5tX/ICy0.net
- >>34
>if($contents[0] === "\n")
>if($contents[0] == "\n")
また変わってるぞいww
そもそも$contents[0]に入っているものを確かめたの?
$contents[0] = str_replace(array("\r\n", "\r", "\n"), '', $contents[0]);とかで改行コード全部置き換えてみなよ
if($contents[0] == ""){
$contents[0] = str_replace("\n", "empty\n", $contents[0]);
}
- 39 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:29:16.874 ID:hb65lFF50.net
- >>38
どうもありがとうございます
やってみたんですがダメだったのでそもそも改行入ってないっぽいですね
じゃあ空なのかと思ってやってみても通らない感じです
ダンプもできないゲロ素人だもんで色々すみません
- 40 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:30:34.443 ID:b/HWFrTh0.net
- 取り込みはどうやって行ってるんだ?
そもそも配列に改行入ってるのか?
- 41 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:32:00.098 ID:Vr7C0oFT0.net
- そもそもそれ配列なの?
ファイル存在する?
ファイルパス間違ってない?
エラー出てるならそれ貼れ
- 42 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:34:44.390 ID:hb65lFF50.net
- <?php
$path = "hoge";
$contents = file($path);
$contents[0] = str_replace(array("\r\n", "\r", "\n"), '', $contents[0]);
if($contents[0] == ''){
$contents[0] = str_replace("\n", "empty\n", $contents[0]);
}
echo $contents[0];
いまやってる処理はホントにこれだけです
テキストファイルの一行目になんか書き込むとそれが表示されるんですが空行だと駄目です
それ以外の行も普通に表示できてるのでfile周りにはなんもないはずです
エラーも出てません
- 43 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:36:07.218 ID:Vr7C0oFT0.net
- 設定でエラー非表示になってないか?
- 44 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:37:42.012 ID:hb65lFF50.net
- diaplay_errorsはOnになってました
- 45 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:38:07.660 ID:VflzH+x70.net
- phpは4ぐらいの時に触ったっきりだからちゃんと動くかわからんが
var_dump($contents[0] )
か
echo len($contents[0] )
辺りで、文字列の長さをチェックするべきかも?
- 46 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:38:40.930 ID:T5tX/ICy0.net
- これでDO?
if($contents[0] == ''){
↓
if(isset($contents[0])){
- 47 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:42:36.535 ID:T5tX/ICy0.net
- ifのところの
==
===
isset
empty
is_null
これらの違いが分かってない上、$contents[0]の中身が分かってないだけかと
- 48 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:43:59.359 ID:Vr7C0oFT0.net
- ?>が無いとか言わないよな…
- 49 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:46:10.757 ID:hb65lFF50.net
- 文字列の長さ見てみたら4って言われたんですけどこれなんなんですかね
Issetもダメでした
全然違いもわかってないしダメダメダメですね
- 50 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:46:39.618 ID:Vr7C0oFT0.net
- ばーだんぷしろよ…
- 51 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:49:55.792 ID:VflzH+x70.net
- <?php
$lines = file('a.txt');
foreach ($lines as $line_num => $line) {
$line = str_replace($line, "\r", "");
$line = str_replace($line, "\n", "");
if(empty($line))
{
$line = 'nhoooooiguuuuu';
}
print($line);
var_dump($line);
}
適当に描いてとりあえず動いたけど、こんなんでいいの?
- 52 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 17:54:26.140 ID:VflzH+x70.net
- あーすまん、str_replaceの引数が違ってた
<?php
$lines = file('a.txt');
foreach ($lines as $line_num => $line) {
$line = str_replace("\r", "", $line);
$line = str_replace("\n", "", $line);
var_dump($line);
if(empty($line))
{
$line = 'nhoooooiguuuuu';
}
var_dump($line);
}
- 53 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:03:59.835 ID:JD9mLCKXd.net
- PHP研究所
- 54 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:08:53.923 ID:T5tX/ICy0.net
- >>49
print(strlen(trim($contents[0])));
これで何文字って表示される?
- 55 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:12:35.764 ID:hb65lFF50.net
- >>52
ありがとうございます!
これでもダメでした…もうちょっといじってみみます
文字数もはかってみます
- 56 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:13:53.563 ID:JDBvi24Zd.net
- だんぷもできないとかゴミすぎる
あとファイルにマルチ文字入ってるとか言わんよな?
- 57 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:16:47.376 ID:hb65lFF50.net
- ファイルにはマルチバイトの文字含まれてないです
>>55
普通のstrlenでは4,教えていただいた方法では3でした
なんなんだ
- 58 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:17:05.285 ID:hb65lFF50.net
- 安価もまともにできないとは
- 59 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:19:36.818 ID:JDBvi24Zd.net
- UTF8 BOMありとか
UTF16とか言わんよな
- 60 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:22:17.875 ID:T5tX/ICy0.net
- >>59
UTF文字だろうねー
知ってて釣りのために聞いてるか
本当ならそのtxtをうpってとこだよねww
- 61 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:24:08.487 ID:JDBvi24Zd.net
- >>60
BOMありとか16とか変な仕様作るのやめーやと思う
- 62 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:25:21.842 ID:hb65lFF50.net
- 見事にBOMありでした
どうもお騒がせしました
いろいろ教えていただいてありがとうございました
な〜にがマルチバイト含まれてないじゃ
ほんとすみませんでした
- 63 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:25:44.084 ID:T5tX/ICy0.net
- print(strlen(trim($contents[0])));
print("[".trim($contents)."]");
上が3って表示された後の次の行のカッコ内に何が表示される?
- 64 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:25:53.008 ID:JDBvi24Zd.net
- >>62
死ねwww
- 65 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:26:19.410 ID:hb65lFF50.net
- まじごめんなさい
首つってきます
- 66 :以下、\(^o^)/でVIPがお送りします:2016/09/20(火) 18:28:18.996 ID:T5tX/ICy0.net
- 雨やむコード書いてくださいおねがいします明日通勤が嫌です
総レス数 66
15 KB
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★