トップページtech
1002コメント357KB

【PHP】下らねぇ質問はここに書き込みやがれ 4 [無断転載禁止]©5ch.io

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2016/03/12(土) 23:25:33.88ID:j4grSBgs
PHPに関する下らない質問用避難スレです。
まず読むこと【PHPマニュアル】
http://www.php.net/manual/ja/

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 3
http://echo.2ch.net/test/read.cgi/tech/1447495088/
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
0136デフォルトの名無しさん2016/03/23(水) 21:53:15.96ID:g8IzY8y0
>>133
CakePHP

リファクタリングを読めばいい
オブジェクト指向でメソッドを適度に細かくすればネストは減る
0137デフォルトの名無しさん2016/03/23(水) 22:29:08.16ID:1FyX1z+W
>>136
おーCakeですか
ありがとうございます
0138デフォルトの名無しさん2016/03/23(水) 23:39:47.02ID:q0Mdl0g1
リファクタリングを読めばいい同意
0139デフォルトの名無しさん2016/03/24(木) 00:13:42.66ID:J46FDWsl
コードを2種類書いて比較して綺麗な方を採用していく
というのを繰り返していけば、自然と綺麗なコードが書けるようになると思う
0140デフォルトの名無しさん2016/03/24(木) 13:43:58.72ID:5kgXhXKu
セッション保持している間、オブジェクトは$_SESSIONに突っ込んでおけばいいの?
例えばセッション開始したときにPersonオブジェクトを作ったら、$_SESSION['person']に突っ込んでセッション保持している間はこれを参照する感じ?
0141デフォルトの名無しさん2016/03/24(木) 15:10:49.34ID:ryYCL5Z2
それが一番効率良いならそうすればいんじゃね
0142デフォルトの名無しさん2016/03/25(金) 17:09:00.06ID:9tPeO3Xg
$はみなさんどう読んでますか
0143デフォルトの名無しさん2016/03/25(金) 17:11:16.43ID:nroxL6SM
ドル
人に説明するときゃ変数っていうだろうよ
0144デフォルトの名無しさん2016/03/25(金) 17:11:22.46ID:R5xBwmiE
だらー
0145デフォルトの名無しさん2016/03/25(金) 17:12:19.49ID:sGrJOjWZ
読まないことも
0146デフォルトの名無しさん2016/03/25(金) 17:50:00.07ID:Psh2jzTy
だら
0147デフォルトの名無しさん2016/03/25(金) 18:38:58.10ID:0FfQhw//
どら
0148デフォルトの名無しさん2016/03/25(金) 18:45:15.87ID:ir49Z4lH
えもん
0149デフォルトの名無しさん2016/03/25(金) 21:00:45.71ID:jE5E6FoE
変数が入っているときは「へんすう」
配列が入っているときは「はいれつ」
オブジェクトが入っているときは「おぶじぇくと」
0150デフォルトの名無しさん2016/03/27(日) 23:18:01.97ID:2Si7i7dw
PHPの勉強をやるには何を準備したらよいですか?
Win7です
0151デフォルトの名無しさん2016/03/27(日) 23:19:43.94ID:B1uwwf8h
やる気
0152デフォルトの名無しさん2016/03/27(日) 23:21:22.83ID:zkDYEIdB
>>150

師匠を選ぶ目
0153デフォルトの名無しさん2016/03/28(月) 00:07:56.74ID:eqDgVfq/
最低限メモ帳とphpバイナリがあれば開発はできるが
本番環境でVPSとか使うならちゃんとLinux環境でインストール設定出来るようにしといたほうがいいが
とりあえず素人なら環境構築はxamppとかオールインワンパッケージにまかせておいたほうがいい
プログラム素人ならIDEよりPHPエディタやNotepad++みたいなの使えばいいと思う

もしプログラム経験あるんなら環境構築は仮想マシンにvagrantでIDEはEclipse Netbeans VSあたりから選べばよい
有料でいいならPhpStormがいいらしい
ただこのへんは開発マシンのスペックと相談してください
たいしてスペックがないならxampp+エディタ系で
0154デフォルトの名無しさん2016/03/28(月) 00:16:30.94ID:c7fcoboN
>>153
ローカルのxammpで開発し動作確認しながら、
実際のサーバーに転送して再度動作確認すればいいんですね
0155デフォルトの名無しさん2016/03/28(月) 00:39:56.72ID:xoXx/JLy
俺はnabetap と普通のテキストエディタで開発
0156デフォルトの名無しさん2016/03/28(月) 00:41:37.13ID:eqDgVfq/
>>154
本番環境で使えるのにxamppのインストール直後では使えないってこともあるので
出来れば本番環境のphpinfoを調べてエクステンション周りだけでもローカル(xampp)のphp.iniを編集して合わせてやるといいんだけどね
0157デフォルトの名無しさん2016/03/28(月) 01:32:48.66ID:kF6uGKy4
>>156
xamppとnotepad++ EUC-JP対応版をインストしました。
動かす環境はできました。さっそくソース書いて行きたいとこですがphpの基本わかってないんで
本屋行ってphpの本買ってサンプルソースで勉強するしかないですね。

>>155
xampoみたいなオールインワンにnabetapってのもあるんですね。
0158デフォルトの名無しさん2016/03/28(月) 02:10:34.22ID:WGFAAxFb
EUC-JP は古い

in/outするすべてのファイルを、UTF-8 にしないとバグを起こす
0159デフォルトの名無しさん2016/03/28(月) 04:13:30.30ID:c7fcoboN
npp.6.9.installerを公式からダウンロードしインストしなおしました。
EUC-JP版はじゃなくてこっちでいいんでしょうか?
0160デフォルトの名無しさん2016/03/28(月) 04:52:10.62ID:eqDgVfq/
euc-jp版でいいよ
元ある機能の拡張でeuc-jp,sjisも扱えるようになるってだけで
utf-8が扱えなくなるわけじゃないから
0161デフォルトの名無しさん2016/03/28(月) 04:56:44.16ID:eqDgVfq/
使い方はencodingでutf-8(bomないほう)選んで
languageのPからPHP探してセットすれば入力補完してくれるようになる
0162デフォルトの名無しさん2016/03/28(月) 05:08:28.66ID:c7fcoboN
なるほどですeuc-jp版に戻しました。utf-8(BOMなし)もわかりました
あとは慣れてきたらIDEのNetbeansも導入てみようと思います。
0163デフォルトの名無しさん2016/03/28(月) 19:51:26.79ID:IKi/yKO6
わしは、pleiadesというのを使っとる。
xamppとeclipseがセットだったんで楽じゃった。
0164デフォルトの名無しさん2016/03/29(火) 09:55:43.28ID:JWick5hX
xamppとeclipseで作ってサーバーで中規模アプリ動かしてるけど何も問題ないよ
Linuxなんて使いたくないし
windowsで十分、てか便利
0165デフォルトの名無しさん2016/03/29(火) 12:25:01.83ID:6JekQQcR
windowsで作ってwindowsで動かすのは問題ない。
windowsで作ってlinuxで動かすと動かない場合がある。
大文字小文字とか文字コードがらみ。
0166デフォルトの名無しさん2016/03/29(火) 13:56:11.99ID:nKJmxYgr
未だにEUCJP使ってる人とかいるのか
スゲーな
まだSJISの方が理解できるわ
0167デフォルトの名無しさん2016/03/29(火) 14:07:02.53ID:MGaWHjrZ
sjis(-win)使う理由がwindowsとの関係や一部のクソなモバイルとの関係なように
旧資産・古いunix/linuxつかっててどうしても切り離せないというケースなのかもしれない
0168デフォルトの名無しさん2016/03/29(火) 14:11:09.82ID:JWick5hX
windowsの膨大な資産メリットに比べたら文字化けなんてサーバーで確認すればいいだけの微々たるレベル
0169デフォルトの名無しさん2016/03/29(火) 17:31:26.24ID:aXDijjSz
ローカルの開発でLinux使いたくないってのはわかるけど
本番環境とはわけて考えないと
0170デフォルトの名無しさん2016/03/29(火) 18:38:33.15ID:4928WWNs
php設置する時に777やら755やら設定するけど、どういうphpの処理する時にrwxそれぞれの権限が必要になるの?
644にしたり755にしたり 777にしたり。
(´・ω・`)なんでオーナーとその他の権限分けるの?
0171デフォルトの名無しさん2016/03/29(火) 19:03:53.27ID:52Yuz1Q/
>>166
EUC-JPを使うじゃなくてEUC-JP対応のエディタを使うっていう話でしょ。
EUC-JPやSJISに対応してるのは日本語環境のエディタの基本機能といってもいい。
notepad++調べたけど、公式に開発されてるのはEUC-JPにもSJISにも対応していない。
notepad(付属メモ帳)の代わりとして使うことを想定すれば対応しているべきで、
EUC-JP対応版(EUC-JPとSJISに対応)があっても不思議でない。
0172デフォルトの名無しさん2016/03/29(火) 19:48:41.14ID:vFEhZxRE
>>170
セキュリティのために必要最低限のパーミッションを与える
0173デフォルトの名無しさん2016/03/29(火) 20:36:50.97ID:hB33GZnr
>>170
通常実行権限はいらないよ
0174デフォルトの名無しさん2016/03/29(火) 21:37:58.05ID:jyk5ZdaS
winで制作したphpを公開Linux鯖にftp転送した後、phpのパーミッション変更なんてしたことがないな。
perlなら実行権限与えてやらないとそのままじゃinternal errorが発生するけど。
てかphpってパーミッションなんて変更してやる必要あるの?
0175デフォルトの名無しさん2016/03/29(火) 21:43:09.44ID:W1iwza/S
phpからログ吐いたりファイルアップするなら
書き込み権限与えないとできんやろ
0176デフォルトの名無しさん2016/03/29(火) 21:52:47.09ID:uzyAT3MD
phpファイル自身の更新権限でしょ?
0177デフォルトの名無しさん2016/03/29(火) 22:44:35.78ID:4928WWNs
(´・ω・`)Loggerとか使ってログを吐く場合、loggerを呼び出すphpは全部7にしないとダメって事?
0178デフォルトの名無しさん2016/03/29(火) 22:47:40.20ID:4928WWNs
間違えた 吐き出す先のファイルか(´・ω・`)
0179デフォルトの名無しさん2016/03/29(火) 22:56:48.41ID:BDGBq9XE
>>177
ファイルは604、ディレクトリは705にしておけばいい
0180デフォルトの名無しさん2016/03/29(火) 22:57:15.80ID:W1iwza/S
php自体の権限の話?
実行権限は確かにいらないね。

>>178
ログを吐き出したいディレクトリに
書き込みphpユーザから書き込みできるようにする。
しないと出力でエラー。
0181デフォルトの名無しさん2016/03/29(火) 23:16:42.01ID:4928WWNs
>>179,>>180
そうそう、php.exeじゃなくて なんちゃら.phpっていうソースファイル(?)
write.php - 604(apache:apache)
log/ - 705(apache:apache)
って感じでいいのかな(´・ω・`)
0182デフォルトの名無しさん2016/03/29(火) 23:31:58.90ID:BDGBq9XE
>>181
それでいい
書きこめるか試してみな
パーミッションについては自分でよく調べることだな
0183デフォルトの名無しさん2016/03/29(火) 23:42:07.24ID:e0CNVUKY
あなたの得意で、誰かを幸せに
みんなの「得意」を売り買いできる、モノを売らないフリーマーケットです
https://coconala.com/

占い・恋愛相談からロゴの作成・ビジネスのクラウドソーシングまで、
みんなの得意を500円から売り買いできる「ココナラ」
0184デフォルトの名無しさん2016/03/29(火) 23:43:44.09ID:hB33GZnr
できればSELinux有効にしてこまめな設定しておいたほうがいいんだけどね。
0185デフォルトの名無しさん2016/03/30(水) 00:01:28.97ID:njWzXt21
cgiで動かしてる場合は実行権限が要る、のでは
0186デフォルトの名無しさん2016/03/30(水) 17:47:31.83ID:Muyb9Qgo
>>181
userをapacheにできるなら600と701でいいと思うが
0187デフォルトの名無しさん2016/03/31(木) 01:26:01.16ID:GJ2QbDh0
CGIとphpの違いってなに?

perl、ruby→CGIという。
PHP→CGIとは言わない?
0188デフォルトの名無しさん2016/03/31(木) 01:39:01.14ID:gTuU4O2h
>>187
実行方法が違う

Nginxとかのことはよく知らないからApacheで喋るけど,

CGI: Apacheがmod_cgiからプログラムを実行する(ファイル先頭のシェバングのプログラムから起動)
PHP: Apacheがmod_phpから.phpファイルを読んで実行

レガシーなCGIではアクセス毎にインタプリタなり実行ファイルなりを起動するからパフォーマンスが極めて悪い
Apacheモジュールで実行すればサーバプロセスと一緒に常駐するからCGIより極めて高いパフォーマンスが実現出来る

尚, 最近はPHPでも高負荷環境下ではphp-fpmからFastCGI経由で実行されることが多い模様(シェバングは不要なのでレガシーCGIっぽくはない)
0189デフォルトの名無しさん2016/03/31(木) 02:06:39.04ID:tPwPmbpG
>>187
なんか10年前にタイムスリップしたような質問だなw
0190デフォルトの名無しさん2016/03/31(木) 02:28:46.49ID:i4QRtt5O
むむむ、、難しい
0191デフォルトの名無しさん2016/03/31(木) 03:09:22.24ID:9egfbJrh
すごくぼかしていうと、実行ファイルを動かすか、プログラムを読みこんで動かすかの違い
0192デフォルトの名無しさん2016/03/31(木) 03:17:43.67ID:+i7BlQ0K
とりあえず言語は関係なく
実行方式の違いってことだけ知ってればいいよ
PHPだってCGIで動作するし
Perlだってmod_perlでApacheのモジュールとして動作する
0193デフォルトの名無しさん2016/03/31(木) 06:17:49.36ID:n9weBv5F
Linuxのuptimeコマンドで得られるサーバの稼働時間を、PHPで表示させたいんだけどPHPド素人過ぎて全くわからん。

[root@ホスト名 ~]# uptime
06:04:10 up 5 days, ←この部分

uptime.phpとして
「5日6時間04分10秒、起動中です。」と表示させたい。
0194デフォルトの名無しさん2016/03/31(木) 06:25:53.80
$uptime = shell_exec('/usr/bin/uptime');
あとはカンマで区切って頑張れ
0195デフォルトの名無しさん2016/03/31(木) 07:48:14.72ID:n9weBv5F
>>194
マジでありがとう(´;ω;`)そういう風に取得するんだ。
shell_execすら見つける事ができなかった。
これはLinuxのコマンドを実行させるphpの関数かな。だいぶイメージが湧いてきた
0196デフォルトの名無しさん2016/03/31(木) 08:12:49.01ID:n9weBv5F
7:59:13 up 5 days, 5:07, 1 user, load average: 0.03, 0.19, 0.30

途中に半角スペースやカンマが入っている長い文字列から
以下のものを取り出す方法が全くわかんないw
これさえ取り出せればあとはくっつけるだけなんだけど。。。

$day =5 (日数)
$hour = 5(時間)
$minute =07(分)
0197デフォルトの名無しさん2016/03/31(木) 08:43:49.83ID:dysJg4uT
$pat = '/^.*up (\d+) days, (\d+):(\d+),.*$/';
$d = '$1,$2,$3';
list($day, $hour, $minute) = explode(',',preg_replace($pat, $d, shell_exec('/usr/bin/uptime')));
echo $day."\n".$hour."\n".$minute."\n";
0198デフォルトの名無しさん2016/03/31(木) 08:48:23.85ID:tPwPmbpG
uptimeとか知ってるくせに正規表現すら思いつかんのかえ
0199デフォルトの名無しさん2016/03/31(木) 08:50:01.21ID:dysJg4uT
「5日6時間04分10秒、起動中です。」という文字列を得たいだけなら
$patを工夫すれば、そのまま希望する文字列にできるよ
0200デフォルトの名無しさん2016/03/31(木) 09:22:07.14ID:n9weBv5F
>>197
>>199
ありがとう(´;ω;`)
(¥d+)の意味すらわかってないから、phpの文法の基礎から勉強し直してくるよ
0201デフォルトの名無しさん2016/03/31(木) 09:47:20.27
起動して1日経ってないとまた表示が違うから注意な
0202デフォルトの名無しさん2016/03/31(木) 09:55:30.49ID:NqUBDLqn
デザイナー上がりの俺がコード書くと手続き型になってしまう
この前1000人〜くらいが使うシステム作ってみた
一人で作ってるから手続き型で困ることは一切ないんだけど、まあ動けばいいんだよね
0203デフォルトの名無しさん2016/03/31(木) 10:14:49.77ID:7iH4R6mM
shell_execで思い出したけど
exec、shell_exec、passthru等って引数・戻り値・結果の取得方法以外はどんな違いがあるの?
実行時にたどるフローとか権限とか使うシステムコールとか生成されるプロセス/スレッドの扱いとか
0204デフォルトの名無しさん2016/03/31(木) 10:53:54.43ID:tPwPmbpG
https://github.com/php/php-src/blob/master/ext/standard/exec.c
php_execのif (typeから始まるところらへんが差
0205デフォルトの名無しさん2016/03/31(木) 12:37:49.17ID:eK9DBRn+
fwrite関数で大容量のログをファイルに書き込みたいのですが、内容が
128MBを越えるとファイルが作成されません。

原因がわかる方いらっしゃいましたら教えていただけると助かります。

環境
centos6.7
php7
0206デフォルトの名無しさん2016/03/31(木) 12:43:17.19ID:zV4jiE60
PHPで128MBといえばmemory_limitが思い付くが
0207デフォルトの名無しさん2016/03/31(木) 12:55:38.39ID:gTuU4O2h
逐次書き込め
0208デフォルトの名無しさん2016/03/31(木) 14:26:35.21ID:yy0681Er
>>200
(\d+) は、PHPの文法というよりも、Python, Ruby, JS などで使われる正規表現

( )はキャプチャーと言って、マッチした文字列を後で、
$1, $2, $3 のように、番号を付けて使う。
\d は、数字にマッチする。[0-9] と同じ。
+ は直前の文字の、1回以上の繰り返しにマッチする

つまり、\d+ は、数字の1回以上の繰り返しにマッチする(最長一致)。
数字以外の文字が来たら、その直前までがマッチする
0209デフォルトの名無しさん2016/03/31(木) 14:42:31.80ID:7iH4R6mM
>>204
ありがとう。後ろの方のshell_execまで読んできた

全部php_stream_fopen_from_pipeじゃねーか結果・リターンコードの扱いが違うだけじゃねーか
なんで関数名を分けてんだよこれ
0210デフォルトの名無しさん2016/03/31(木) 18:22:20.07ID:n9weBv5F
>>208
list()や正規表現preg_replace()まったく分かってなかったんで勉強しなおしてる
0211デフォルトの名無しさん2016/03/31(木) 19:35:48.87ID:eK9DBRn+
>>206-207
ありがと。メモリリークしてたわ。
0212デフォルトの名無しさん2016/03/31(木) 22:27:35.98ID:i8T5nkpN
phpとcgiはそもそも比べるものではない
ビジネスマン(cgi)とスーツ(言語)って何が違うのみたいなもんよ
ビジネスマンは良くスーツ着用するけどそもそもその2つは比べられないよって言う話
俺も詳しく理解してないからよく分かんないけど phpとかPerl、Cなんかで書かれたプログラムをどうやってサーバー側で実行するかみたいな話しだったと思う
0213デフォルトの名無しさん2016/03/31(木) 23:28:08.63ID:gmE6pszy
ウェブサイトでのPHPが普及し始めた時、
Perl/CGIとmod_phpの速度を比べて、PHP早い!Perlはクソ!って言ってる人がどれだけ居たことかw
0214デフォルトの名無しさん2016/03/31(木) 23:33:38.39ID:gTuU4O2h
Perl/CGI時代に書かれたコードがmod_perlではまともに動かなかったからなー
あの時代の立場で言えばPerl/CGIとmod_perlは別言語だったから・・・・
0215デフォルトの名無しさん2016/03/31(木) 23:39:05.69ID:gmE6pszy
今のスタイルで書けばそんなに問題起こらなそうだけどねー
PHP/CGIだと、そういう違いってあるのかな
0216デフォルトの名無しさん2016/03/31(木) 23:52:53.66ID:7iH4R6mM
いや、変わりない
#!/path/to/php で動かすにしてもfpmで動かすにしても
同じバージョンのmodule版で動いてるものならソース書き換えなしで方式変更可能
0217デフォルトの名無しさん2016/04/01(金) 01:56:08.60ID:ZIYWI5KO
つまんない話題そろそろ終わらせてよ
0218デフォルトの名無しさん2016/04/01(金) 05:10:17.51ID:NdnuNKsT
はじめてAtomというテキストエディタを知った。すげえ
これ使うのと、NetBeans使うのとどっちがいいのかな?
併用するってのも難しいよー
0219デフォルトの名無しさん2016/04/01(金) 05:26:16.14ID:d9YSx1pe
エディタ類はカスタマイズをある程度しないとまともに使えないでしょ。
ちゃんと自分流にカスマイズされればベストになる可能性はあるけど、
カスタマイズに自信がない人はIDE使ったほうが作業効率はいいだろう。
0220デフォルトの名無しさん2016/04/01(金) 06:31:34.00ID:PU9mDoTr
そいつは正規表現だ
php以外でも同じように使う
0221デフォルトの名無しさん2016/04/01(金) 11:57:09.68
AtomがWebサーバになって、書いたHTMLとJSがその場で動いたら面白い?のでは?
JavaScriptのEmacsとしてこの先生きのこれるか
0222デフォルトの名無しさん2016/04/01(金) 12:37:20.32ID:NdnuNKsT
エディタがクッソ重くなる予感
0223デフォルトの名無しさん2016/04/01(金) 18:29:01.39ID:uCJ+Rmhu
IDEのエディタ部分に不満をもったりしないのだろうか。
0224デフォルトの名無しさん2016/04/01(金) 22:24:42.03ID:ZIYWI5KO
VS codeってどうなんだろ…
0225デフォルトの名無しさん2016/04/01(金) 23:37:04.41ID:9y/cXELu
インテリセンス機能するんだっけ?
0226デフォルトの名無しさん2016/04/03(日) 04:04:48.56ID:A3StH/M8
phpstormが無料で使える(30日評価版ではない)って聞いたんだけど
やり方まとめてるサイトないかな?
0227デフォルトの名無しさん2016/04/03(日) 04:35:20.52ID:Leps+2Do
そりゃ海外サイトでごにょごにょしてくれば使えるだろうけど
有料ソフトウェアなんだからそんなことするんじゃありません
0228デフォルトの名無しさん2016/04/03(日) 05:33:40.35ID:iNd2PQNq
Adobe税にApple税に……大変だ
0229デフォルトの名無しさん2016/04/03(日) 22:25:24.56ID:vWJbXXGn
とりあえずNetBeansにしとくかな
0230デフォルトの名無しさん2016/04/04(月) 06:40:50.08ID:4hZuKlgI
有料ソフトを無料で使おうなんて考える奴は
プロとして失格
0231デフォルトの名無しさん2016/04/04(月) 09:44:25.62ID:s52B3h8o
いやいや金を使わず原価コストを下げて使おうってのがまたプロってもんだ
0232デフォルトの名無しさん2016/04/04(月) 09:45:21.88ID:s52B3h8o
会社でいうと人件費(固定費)に金をかける社長は基本的に社長失格。向いてない
0233デフォルトの名無しさん2016/04/04(月) 09:45:53.36ID:s52B3h8o
それと同じ
0234デフォルトの名無しさん2016/04/04(月) 11:27:01.25
家賃と人件費は毎月掛かる費用だから、
100倍の金銭感覚で考えた方がええで、って
ばっちゃが言ってた
0235デフォルトの名無しさん2016/04/04(月) 12:50:07.11ID:tWTMiefV
ttp://alfalfalfa.com/
このサイトみたいに記事の2chレスに対してのコメントを近くに表示するのってどうやるん?
0236デフォルトの名無しさん2016/04/04(月) 12:55:59.98ID:LrWEI3Rn
JavaScriptでDOM操作するの
■ このスレッドは過去ログ倉庫に格納されています