2ちゃんねる スマホ用 ■掲示板に戻る■ 全部 1- 最新50    

■ このスレッドは過去ログ倉庫に格納されています

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 ★