16/03/20 01:51:37.61 7rdlXsW/.net
urlというと語弊がある気もするが、それで合ってる
113:デフォルトの名無しさん
16/03/20 01:57:35.30 sIxj3/qZ.net
13行目からのhideEmailの使い方のサンプルとしてはそんな感じのことをしている
そのサイトはちゃんと配慮した書き方をしてないせいで
実行結果みると何もかわってないように思えるけど実際は
>実行すると以下のような出力になる
の(2個目の黄色い)部分はこんな風になってる
※ここ(2ch)でも&を半角にすると見た目わからなくなるので全角&で書く
<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#109;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;">
&#109;&#101;&#64;&#101;&#120;&#97;&#109;&#112;&#108;&#101;&#46;&#99;&#111;&#109;
</a>
114:デフォルトの名無しさん
16/03/20 06:49:09.21 7rdlXsW/.net
どうせ全角に置換するなら&を&に変えれば良いのではないか
115:107
16/03/20 09:48:22.76 Rtd+5JCT.net
おはようございます。
>>108
合ってましたか。良かったです。
>>109
実行後の結果を見たらそのようになっていました。php初心者の自分から見れば謎技術です。
皆さんレスをくださりありがとうございました。
最後にひとつ気になることがあるのでアドバイスをください。
今回のPHPコードは結果としてメールアドレスをエンティティ化していますが、
PHPコードを使用せずに最初から「URLリンク(www.luft.co.jp)」のようなサイトを使ってエンティティ化したメールアドレスをHTMLに組み込んでいる場合とではセキュリティ(回収ロボット対策)に違いが生じるものなのでしょうか。
よろしくお願いします。
116:デフォルトの名無しさん
16/03/20 11:20:55.28 7rdlXsW/.net
最初から実体参照にしてようがphpで都度実体参照にしようが、受け取る側にとっては同じ
どっちかってーとphpというよりHTTPのおはなしだなや
ロボット対策としては、実体参照を使うより
画像化するとかjavascript経由でdecodeさせるとかの方が良い気もするけど
経験則ではすごく単純にやるだけでも画像化するとほぼ全くスパム来ない
117:デフォルトの名無しさん
16/03/20 11:47:54.77 ocz4IH7r.net
人間ならwebサイトの内容みてメールアドレスがこれだなってのがわかるけど、
botはwebサイトのソースコードを解析してメールアドレスを探し出す。
レベルの低いbotは、~@~.comみたいなのでメールアドレスと判断するから、
実体参照にしておくとそのルールにはひっかからなくなるっていうだけのお話。
だから>>111のサイトで変換したものを使っても差はない。
むしろ最初から変換したものを静的に使ったほうが、動的に毎回変換するより賢い。
並のbotは実体参照に変換されたのをさらにデコード(元通りに)してから判別するので無意味。
あくまでも数多くあるbotの中でもっとも低レベルなbotの対策と捉えた方がいい。
118:デフォルトの名無しさん
16/03/20 12:35:04.56 q7lvq1yy.net
GDで出力すればいいじゃない
119:107
16/03/20 12:37:18.67 Rtd+5JCT.net
レスありがとうございます。
>>112
画像化すると良いというのはよく見かけますが本当だったんですね。
>>113
エンティティ化したメールアドレスは低レベルなロボットには対策できるんですね。
お二方、アドバイスありがとうございました。
これからサイト作りに励みたいと思います。
ありがとうございました。
120:107
16/03/20 12:40:49.25 Rtd+5JCT.net
>>114
レスありがとうございます。
今の自分にはGDは使いこなせませんです;;
121:デフォルトの名無しさん
16/03/20 13:08:19.56 R3VnfHe8.net
GDなんか使わなくても比較的簡単に使える
URLリンク(www.maurits.vdschee.nl)
122:デフォルトの名無しさん
16/03/20 13:12:07.42 ocz4IH7r.net
誤解してるようだから言うけど、実体参照変換は全く無意味だからね。
ちょっとコード追加するだけでデコード出来るし、初心者でもそんくらい簡単に出来るから。
ただGD使って画像ねじまげたりまでする必要はない。
画像解析までいくと導入ハードルはあがるし、作業も大変なだけだから、そこまでやるスパマーはそうはいない。
他の人も言ってるけどアドレスかいた画像おいとおけばいい。
画像に関して強いて言うならば、mail.jpgとかわかりやすい名前にはしないほうがいいってことぐらい。
でも実際スパマーが使ってる手口は総当り攻撃的あるいは辞書攻撃的に、
適当な文字列でYahooとかGmailとかメジャーなアドレスを作成して、
実際にそのメールアドレスが存在するか調べた後にそこに送信してるだけ。
123:107
16/03/20 16:06:37.44 Rtd+5JCT.net
レスありがとうございます。
>>117
今の自分にはエベレストのように高いハードルです。
>>118
やはり画像が一番無難のようですね。
本当はメールフォームを置くのが一番なのでしょうが、訳あって置くことができないため、このような質問をいたしました。
納得のいく答えが出たので>>107の質問はここで〆といたします。
沢山のレス、ありがとうございました。
124:デフォルトの名無しさん
16/03/20 18:59:16.49 UVbtKDHl.net
PHPではスーパーグローバルは直接操作せず、filter_input()使えってことだけど、
$_FILESはどうするのかな?
125:デフォルトの名無しさん
16/03/20 19:23:05.07 ocz4IH7r.net
そんなことはない
isset使った三項演算子のコードで書いてる人のほうが多分多い
php7では??演算子ってのがあってそれが主流になっていくと思われる(タブン)
126:デフォルトの名無しさん
16/03/20 21:27:02.46 UVbtKDHl.net
106あたりを読んでたら、
今後スーパーグローバルの直接参照ができなくなるんじゃないかと焦ったんだけど、
邪推かね。
やれ、10年分汗かいた。屁でもして寝るか…
127:デフォルトの名無しさん
16/03/21 06:14:59.31 csZVNDaX.net
>>121
初見だと「おっ書くの楽になるないいかも」と思ったけど
これってnullか未定義しか拾えないし判定に使ったものと実際に代入するものを別にできないよな
使われることなく忘れられていきそう
128:デフォルトの名無しさん
16/03/21 07:33:32.57 .net
>>121
empty(判定する変数 ? : 空でなければこうする);
ってどうなりますか
129:デフォルトの名無しさん
16/03/21 07:57:20.73 tg5Bjvem.net
質問にすらなっていない
130:デフォルトの名無しさん
16/03/21 21:16:11.86 QwlARmOt.net
>>124
結局何が言いたいんだ…?
131:デフォルトの名無しさん
16/03/21 22:44:58.69 JGe4MEfE.net
以下の処理を行いたいのですが何か良い方法があればご教示いただけないでしょうか。
1.メイン処理で別スレッドを生成する
2.別スレッドをバックグラウンド実行する
3.別スレッドの処理結果(標準出力)をメイン処理に返却する
<環境>
PHP:7.0.3
OS:Windows7
よろしくお願いします。
132:デフォルトの名無しさん
16/03/21 23:37:09.63 hs33rQ/Z.net
「php 外部プログラム 非同期」で検索!
133:デフォルトの名無しさん
16/03/23 19:40:56.99 bhVhOKrP.net
パーフェクトPHP読んでたら
$path_info=(string)su
134:bstr($request_uri , strlen($base_url)); というコードがあったんですが、(string) って何を表しているのですかっっ(´・ω・`)
135:デフォルトの名無しさん
16/03/23 19:48:17.15 /CoInmbi.net
>>129
URLリンク(php.net)
136:デフォルトの名無しさん
16/03/23 19:56:23.21 SGU6tbYr.net
>>129
substr の結果を文字列化してる。
元々 substr の結果は文字列じゃないかと思うかもしれないけど、切り出し位置が元の文字列の範囲内に引っかからないと結果は boolean型の false になる。
これをキャストしてヌルストリングスにしてる。
137:デフォルトの名無しさん
16/03/23 20:43:50.59 bhVhOKrP.net
>>131
解説わかりやすいです(´・ω・`)
ありがとうございます(´;ω;`)ブワッ
138:デフォルトの名無しさん
16/03/23 20:47:59.96 1FyX1z+W.net
このコードは美しいから参考になるっていう
phpのライブラリは有りますか?
自分が作るとループとネストが多くなってあとで読み返すのが辛いです。
139:デフォルトの名無しさん
16/03/23 21:01:22.20 ygSnWzaX.net
エラーなり例外なり返せよなあ
php7では空文字返すようになったみたいだけど
140:デフォルトの名無しさん
16/03/23 21:20:26.54 lc58fuH/.net
php the right way
141:デフォルトの名無しさん
16/03/23 21:53:15.96 g8IzY8y0.net
>>133
CakePHP
リファクタリングを読めばいい
オブジェクト指向でメソッドを適度に細かくすればネストは減る
142:デフォルトの名無しさん
16/03/23 22:29:08.16 1FyX1z+W.net
>>136
おーCakeですか
ありがとうございます
143:デフォルトの名無しさん
16/03/23 23:39:47.02 q0Mdl0g1.net
リファクタリングを読めばいい同意
144:デフォルトの名無しさん
16/03/24 00:13:42.66 J46FDWsl.net
コードを2種類書いて比較して綺麗な方を採用していく
というのを繰り返していけば、自然と綺麗なコードが書けるようになると思う
145:デフォルトの名無しさん
16/03/24 13:43:58.72 5kgXhXKu.net
セッション保持している間、オブジェクトは$_SESSIONに突っ込んでおけばいいの?
例えばセッション開始したときにPersonオブジェクトを作ったら、$_SESSION['person']に突っ込んでセッション保持している間はこれを参照する感じ?
146:デフォルトの名無しさん
16/03/24 15:10:49.34 ryYCL5Z2.net
それが一番効率良いならそうすればいんじゃね
147:デフォルトの名無しさん
16/03/25 17:09:00.06 9tPeO3Xg.net
$はみなさんどう読んでますか
148:デフォルトの名無しさん
16/03/25 17:11:16.43 nroxL6SM.net
ドル
人に説明するときゃ変数っていうだろうよ
149:デフォルトの名無しさん
16/03/25 17:11:22.46 R5xBwmiE.net
だらー
150:デフォルトの名無しさん
16/03/25 17:12:19.49 sGrJOjWZ.net
読まないことも
151:デフォルトの名無しさん
16/03/25 17:50:00.07 Psh2jzTy.net
だら
152:デフォルトの名無しさん
16/03/25 18:38:58.10 0FfQhw//.net
どら
153:デフォルトの名無しさん
16/03/25 18:45:15.87 ir49Z4lH.net
えもん
154:デフォルトの名無しさん
16/03/25 21:00:45.71 jE5E6FoE.net
変数が入っているときは「へんすう」
配列が入っているときは「はいれつ」
オブジェクトが入っているときは「おぶじぇくと」
155:デフォルトの名無しさん
16/03/27 23:18:01.97 2Si7i7dw.net
PHPの勉強をやるには何を準備したらよいですか?
Win7です
156:デフォルトの名無しさん
16/03/27 23:19:43.94 B1uwwf8h.net
やる気
157:デフォルトの名無しさん
16/03/27 23:21:22.83 zkDYEIdB.net
>>150
師匠を選ぶ目
158:デフォルトの名無しさん
16/03/28 00:07:56.74 eqDgVfq/.net
最低限メモ帳とphpバイナリがあれば開発はできるが
本番環境でVPSとか使うならちゃんとLinux環境でインストール設定出来るようにしといたほうがいいが
とりあえず素人なら環境構築はxamppとかオールインワンパッケージにまかせておいたほうがいい
プログラム素人ならIDEよりPHPエディタやNotepad++みたいなの使えばいいと思う
もしプログラム経験あるんなら環境構築は仮想マシンにvagrantでIDEはEclipse Netbeans VSあたりから選べばよい
有料でいいならPhpStormがいいらしい
ただこのへんは開発マシンのスペックと相談してください
たいしてスペックがないならxampp+エディタ系で
159:デフォルトの名無しさん
16/03/28 00:16:30.94 c7fcoboN.net
>>153
ローカルのxammpで開発し動作確認しながら、
実際のサーバーに転送して再度動作確認すればいいんですね
160:デフォルトの名無しさん
16/03/28 00:39:56.72 xoXx/JLy.net
俺はnabetap と普通のテキストエディタで開発
161:デフォルトの名無しさん
16/03/28 00:41:37.13 eqDgVfq/.net
>>154
本番環境で使えるのにxamppのインストール直後では使えないってこともあるので
出来れば本番環境のphpinfoを調べてエクステンション周りだけでもローカル(xampp)のphp.iniを編集して合わせてやるといいんだけどね
162:デフォルトの名無しさん
16/03/28 01:32:48.66 kF6uGKy4.net
>>156
xamppとnotepad++ EUC-JP対応版をインストしました。
動かす環境はできました。さっそくソース書いて行きたいとこですがphpの基本わかってないんで
本屋行ってphpの本買ってサンプルソースで勉強するしかないですね。
>>155
xampoみたいなオールインワンにnabetapってのもあるんですね。
163:デフォルトの名無しさん
16/03/28 02:10:34.22 WGFAAxFb.net
EUC-JP は古い
in/outするすべてのファイルを、UTF-8 にしないとバグを起こす
164:デフォルトの名無しさん
16/03/28 04:13:30.30 c7fcoboN.net
npp.6.9.installerを公式からダウンロードしインストしなおしました。
EUC-JP版はじゃなくてこっちでいいんでしょうか?
165:デフォルトの名無しさん
16/03/28 04:52:10.62 eqDgVfq/.net
euc-jp版でいいよ
元ある機能の拡張でeuc-jp,sjisも扱えるようになるってだけで
utf-8が扱えなくなるわけじゃないから
166:デフォルトの名無しさん
16/03/28 04:56:44.16 eqDgVfq/.net
使い方はencodingでutf-8(bomないほう)選んで
languageのPからPHP探してセットすれば入力補完してくれるようになる
167:デフォルトの名無しさん
16/03/28 05:08:28.66 c7fcoboN.net
なるほどですeuc-jp版に戻しました。utf-8(BOMなし)もわかりました
あとは慣れてきたらIDEのNetbeansも導入てみようと思います。
168:デフォルトの名無しさん
16/03/28 19:51:26.79 IKi/yKO6.net
わしは、pleiadesというのを使っとる。
xamppとeclipseがセットだったんで楽じゃった。
169:デフォルトの名無しさん
16/03/29 09:55:43.28 JWick5hX.net
xamppとeclipseで作ってサーバーで中規模アプリ動かしてるけど何も問題ないよ
Linuxなんて使いたくないし
windowsで十分、てか便利
170:デフォルトの名無しさん
16/03/29 12:25:01.83 6JekQQcR.net
windowsで作ってwindowsで動かすのは問題ない。
windowsで作ってlinuxで動かすと動かない場合がある。
大文字小文字とか文字コードがらみ。
171:デフォルトの名無しさん
16/03/29 13:56:11.99 nKJmxYgr.net
未だにEUCJP使ってる人とかいるのか
スゲーな
まだSJISの方が理解できるわ
172:デフォルトの名無しさん
16/03/29 14:07:02.53 MGaWHjrZ.net
sjis(-win)使う理由がwindowsとの関係や一部のクソなモバイルとの関係なように
旧資産・古いunix/linuxつかっててどうしても切り離せないというケースなのかもしれない
173:デフォルトの名無しさん
16/03/29 14:11:09.82 JWick5hX.net
windowsの膨大な資産メリットに比べたら文字化けなんてサーバーで確認すればいいだけの微々たるレベル
174:デフォルトの名無しさん
16/03/29 17:31:26.24 aXDijjSz.net
ローカルの開発でLinux使いたくないってのはわかるけど
本番環境とはわけて考えないと
175:デフォルトの名無しさん
16/03/29 18:38:33.15 4928WWNs.net
php設置する時に777やら755やら設定するけど、どういうphpの処理する時にrwxそれぞれの権限が必要になるの?
644にしたり755にしたり 777にしたり。
(´・ω・`)なんで
176:オーナーとその他の権限分けるの?
177:デフォルトの名無しさん
16/03/29 19:03:53.27 52Yuz1Q/.net
>>166
EUC-JPを使うじゃなくてEUC-JP対応のエディタを使うっていう話でしょ。
EUC-JPやSJISに対応してるのは日本語環境のエディタの基本機能といってもいい。
notepad++調べたけど、公式に開発されてるのはEUC-JPにもSJISにも対応していない。
notepad(付属メモ帳)の代わりとして使うことを想定すれば対応しているべきで、
EUC-JP対応版(EUC-JPとSJISに対応)があっても不思議でない。
178:デフォルトの名無しさん
16/03/29 19:48:41.14 vFEhZxRE.net
>>170
セキュリティのために必要最低限のパーミッションを与える
179:デフォルトの名無しさん
16/03/29 20:36:50.97 hB33GZnr.net
>>170
通常実行権限はいらないよ
180:デフォルトの名無しさん
16/03/29 21:37:58.05 jyk5ZdaS.net
winで制作したphpを公開Linux鯖にftp転送した後、phpのパーミッション変更なんてしたことがないな。
perlなら実行権限与えてやらないとそのままじゃinternal errorが発生するけど。
てかphpってパーミッションなんて変更してやる必要あるの?
181:デフォルトの名無しさん
16/03/29 21:43:09.44 W1iwza/S.net
phpからログ吐いたりファイルアップするなら
書き込み権限与えないとできんやろ
182:デフォルトの名無しさん
16/03/29 21:52:47.09 uzyAT3MD.net
phpファイル自身の更新権限でしょ?
183:デフォルトの名無しさん
16/03/29 22:44:35.78 4928WWNs.net
(´・ω・`)Loggerとか使ってログを吐く場合、loggerを呼び出すphpは全部7にしないとダメって事?
184:デフォルトの名無しさん
16/03/29 22:47:40.20 4928WWNs.net
間違えた 吐き出す先のファイルか(´・ω・`)
185:デフォルトの名無しさん
16/03/29 22:56:48.41 BDGBq9XE.net
>>177
ファイルは604、ディレクトリは705にしておけばいい
186:デフォルトの名無しさん
16/03/29 22:57:15.80 W1iwza/S.net
php自体の権限の話?
実行権限は確かにいらないね。
>>178
ログを吐き出したいディレクトリに
書き込みphpユーザから書き込みできるようにする。
しないと出力でエラー。
187:デフォルトの名無しさん
16/03/29 23:16:42.01 4928WWNs.net
>>179,>>180
そうそう、php.exeじゃなくて なんちゃら.phpっていうソースファイル(?)
write.php - 604(apache:apache)
log/ - 705(apache:apache)
って感じでいいのかな(´・ω・`)
188:デフォルトの名無しさん
16/03/29 23:31:58.90 BDGBq9XE.net
>>181
それでいい
書きこめるか試してみな
パーミッションについては自分でよく調べることだな
189:デフォルトの名無しさん
16/03/29 23:42:07.24 e0CNVUKY.net
あなたの得意で、誰かを幸せに
みんなの「得意」を売り買いできる、モノを売らないフリーマーケットです
URLリンク(coconala.com)
占い・恋愛相談からロゴの作成・ビジネスのクラウドソーシングまで、
みんなの得意を500円から売り買いできる「ココナラ」
190:デフォルトの名無しさん
16/03/29 23:43:44.09 hB33GZnr.net
できればSELinux有効にしてこまめな設定しておいたほうがいいんだけどね。
191:デフォルトの名無しさん
16/03/30 00:01:28.97 njWzXt21.net
cgiで動かしてる場合は実行権限が要る、のでは
192:デフォルトの名無しさん
16/03/30 17:47:31.83 Muyb9Qgo.net
>>181
userをapacheにできるなら600と701でいいと思うが
193:デフォルトの名無しさん
16/03/31 01:26:01.16 GJ2QbDh0.net
CGIとphpの違いってなに?
perl、ruby→CGIという。
PHP→CGIとは言わない?
194:デフォルトの名無しさん
16/03/31 01:39:01.14 gTuU4O2h.net
>>187
実行方法が違う
Nginxとかのことはよく知らないからApacheで喋るけど,
CGI: Apacheがmod_cgiからプログラムを実行する(ファイル先頭のシェバングのプログラムから起動)
PHP: Apacheがmod_phpから.phpファイルを読んで実行
レガシーなCGIではアクセス毎にインタプリタなり実行ファイルなりを起動するからパフォーマンスが極めて悪い
Apacheモジュールで実行すればサーバプロセスと一緒に常駐するからCGIより極めて高いパフォーマンスが実現出来る
尚, 最近はPHPでも高負荷環境下ではphp-fpmからFastCGI経由で実行されることが多い模様(シェバングは不要なのでレガシーCGIっぽくはない)
195:デフォルトの名無しさん
16/03/31 02:06:39.04 tPwPmbpG.net
>>187
なんか10年前にタイムスリップしたような質問だなw
196:デフォルトの名無しさん
16/03/31 02:28:46.49 i4QRtt5O.net
むむむ、、難しい
197:デフォルトの名無しさん
16/03/31 03:09:22.24 9egfbJrh.net
すごくぼかしていうと、実行ファイルを動かすか、プログラムを読みこんで動かすかの違い
198:デフォルトの名無しさん
16/03/31 03:17:43.67 +i7BlQ0K.net
とりあえず言語は関係なく
実行方式の違いってことだけ知ってればいいよ
PHPだってCGIで動作するし
Perlだってmod_perlでApacheのモジュールとして動作する
199:デフォルトの名無しさん
16/03/31 06:17:49.36 n9weBv5F.net
Linuxのuptimeコマンドで得られるサーバの稼働時間を、PHPで表示させたいんだけどPHPド素人過ぎて全くわからん。
[root@ホスト名 ~]# uptime
06:04:10 up 5 days, ←この部分
uptime.phpとして
「5日6時間04分10秒、起動中です。」と表示させたい。
200:デフォルトの名無しさん
16/03/31 06:25:53.80 .net
$uptime = shell_exec('/usr/bin/uptime');
あとはカンマで区切って頑張れ
201:デフォルトの名無しさん
16/03/31 07:48:14.72 n9weBv5F.net
>>194
マジでありがとう(´;ω;`)そういう風に取得するんだ。
shell_execすら見つける事ができなかった。
これはLinuxのコマンドを実行させるphpの関数かな。だいぶイメージが湧いてきた
202:デフォルトの名無しさん
16/03/31 08:12:49.01 n9weBv5F.net
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(分)
203:デフォルトの名無しさん
16/03/31 08:43:49.83 dysJg4uT.net
$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";
204:デフォルトの名無しさん
16/03/31 08:48:23.85 tPwPmbpG.net
uptimeとか知ってるくせに正規表現すら思いつかんのかえ
205:デフォルトの名無しさん
16/03/31 08:50:01.21 dysJg4uT.net
「5日6時間04分10秒、起動中です。」という文字列を得たいだけなら
$patを工夫すれば、そのまま希望する文字列にできるよ
206:デフォルトの名無しさん
16/03/31 09:22:07.14 n9weBv5F.net
>>197
>>199
ありがとう(´;ω;`)
(¥d+)の意味すらわかってないから、phpの文法の基礎から勉強し直してくるよ
207:デフォルトの名無しさん
16/03/31 09:47:20.27 .net
起動して1日経ってないとまた表示が違うから注意な
208:デフォルトの名無しさん
16/03/31 09:55:30.49 NqUBDLqn.net
デザイナー上がりの俺がコード書くと手続き型になってしまう
この前1000人~くらいが使うシステム作ってみた
一人で作ってるから手続き型で困ることは一切ないんだけど、まあ動けばいいんだよね
209:デフォルトの名無しさん
16/03/31 10:14:49.77 7iH4R6mM.net
shell_execで思い出したけど
exec、shell_exec、passthru等って引数・戻り値・結果の取得方法以外はどんな違いがあるの?
実行時にたどるフローとか権限とか使うシステムコールとか生成されるプロセス/スレッドの扱いとか
210:デフォルトの名無しさん
16/03/31 10:53:54.43 tPwPmbpG.net
URLリンク(github.com)
php_execのif (typeから始まるところらへんが差
211:デフォルトの名無しさん
16/03/31 12:37:49.17 eK9DBRn+.net
fwrite関数で大容量のログをファイルに書き込みたいのですが、内容が
128MBを越えるとファイルが作成されません。
原因がわかる方いらっしゃいましたら教えていただけると助かります。
環境
centos6.7
php7
212:デフォルトの名無しさん
16/03/31 12:43:17.19 zV4jiE60.net
PHPで128MBといえばmemory_limitが思い付くが
213:デフォルトの名無しさん
16/03/31 12:55:38.39 gTuU4O2h.net
逐次書き込め
214:デフォルトの名無しさん
16/03/31 14:26:35.21 yy0681Er.net
>>200
(\d+) は、PHPの文法というよりも、Python, Ruby, JS などで使われる正規表現
( )はキャプチャーと言って、マッチした文字列を後で、
$1, $2, $3 のように、番号を付けて使う。
\d は、数字にマッチする。[0-9] と同じ。
+ は直前の文字の、1回以上の繰り返しにマッチする
つまり、\d+ は、数字の1回以上の繰り返しにマッチする(最長一致)。
数字以外の文字が来たら、その直前までがマッチする
215:デフォルトの名無しさん
16/03/31 14:42:31.80 7iH4R6mM.net
>>204
ありがとう。後ろの方のshell_execまで読んできた
全部php_stream_fopen_from_pipeじゃねーか結果・リターンコードの扱いが違うだけじゃねーか
なんで関数名を分けてんだよこれ
216:デフォルトの名無しさん
16/03/31 18:22:20.07 n9weBv5F.net
>>208
list()や正規表現preg_replace()まったく分かってなかったんで勉強しなおしてる
217:デフォルトの名無しさん
16/03/31 19:35:48.87 eK9DBRn+.net
>>206-207
ありがと。メモリリークしてたわ。
218:デフォルトの名無しさん
16/03/31 22:27:35.98 i8T5nkpN.net
phpとcgiはそもそも比べるものではない
ビジネスマン(cgi)とスーツ(言語)って何が違うのみたいなもんよ
ビジネスマンは良くスーツ着用するけどそもそもその2つは比べられないよって言う話
俺も詳しく理解してないからよく分かんないけど phpとかPerl、Cなんかで書かれたプログラムをどうやってサーバー側で実行するかみたいな話しだったと思う
219:デフォルトの名無しさん
16/03/31 23:28:08.63 gmE6pszy.net
ウェブサイトでのPHPが普及し始めた時、
Perl/CGIとmod_phpの速度を比べて、PHP早い!Perlはクソ!って言ってる人がどれだけ居たことかw
220:デフォルトの名無しさん
16/03/31 23:33:38.39 gTuU4O2h.net
Perl/CGI時代に書かれたコードがmod_perlではまともに動かなかったからなー
あの時代の立場で言えばPerl/CGIとmod_perlは別言語だったから・・・・
221:デフォルトの名無しさん
16/03/31 23:39:05.69 gmE6pszy.net
今のスタイルで書けばそんなに問題起こらなそうだけどねー
PHP/CGIだと、そういう違いってあるのかな
222:デフォルトの名無しさん
16/03/31 23:52:53.66 7iH4R6mM.net
いや、変わりない
#!/path/to/php で動かすにしてもfpmで動かすにしても
同じバージョンのmodule版で動いてるものならソース書き換えなしで方式変更可能
223:デフォルトの名無しさん
16/04/01 01:56:08.60 ZIYWI5KO.net
つまんない話題そろそろ終わらせてよ
224:デフォルトの名無しさん
16/04/01 05:10:17.51 NdnuNKsT.net
はじめてAtomというテキストエディタを知った。すげえ
これ使うのと、NetBeans使うのとどっちがいいのかな?
併用するってのも難しいよー
225:デフォルトの名無しさん
16/04/01 05:26:16.14 d9YSx1pe.net
エディタ類はカスタマイズをある程度しないとまともに使えないでしょ。
ちゃんと自分流にカスマイズされればベストになる可能性はあるけど、
カスタマイズに自信がない人はIDE使ったほうが作業効率はいいだろう。
226:デフォルトの名無しさん
16/04/01 06:31:34.00 PU9mDoTr.net
そいつは正規表現だ
php以外でも同じように使う
227:デフォルトの名無しさん
16/04/01 11:57:09.68 .net
AtomがWebサーバになって、書いたHTMLとJSがその場で動いたら面白い?のでは?
JavaScriptのEmacsとしてこの先生きのこれるか
228:デフォルトの名無しさん
16/04/01 12:37:20.32 NdnuNKsT.net
エディタがクッソ重くなる予感
229:デフォルトの名無しさん
16/04/01 18:29:01.39 uCJ+Rmhu.net
IDEのエディタ部分に不満をもったりしないのだろうか。
230:デフォルトの名無しさん
16/04/01 22:24:42.03 ZIYWI5KO.net
VS codeってどうなんだろ…
231:デフォルトの名無しさん
16/04/01 23:37:04.41 9y/cXELu.net
インテリセンス機能するんだっけ?
232:デフォルトの名無しさん
16/04/03 04:04:48.56 A3StH/M8.net
phpstormが無料で使える(30日評価版ではない)って聞いたんだけど
やり方まとめてるサイトないかな?
233:デフォルトの名無しさん
16/04/03 04:35:20.52 Leps+2Do.net
そりゃ海外サイトでごにょごにょしてくれば使えるだろうけど
有料ソフトウェアなんだからそんなことするんじゃありません
234:デフォルトの名無しさん
16/04/03 05:33:40.35 iNd2PQNq.net
Adobe税にApple税に……大変だ
235:デフォルトの名無しさん
16/04/03 22:25:24.56 vWJbXXGn.net
とりあえずNetBeansにしとくかな
236:デフォルトの名無しさん
16/04/04 06:40:50.08 4hZuKlgI.net
有料ソフトを無料で使おうなんて考える奴は
プロとして失格
237:デフォルトの名無しさん
16/04/04 09:44:25
238:.62 ID:s52B3h8o.net
239:デフォルトの名無しさん
16/04/04 09:45:21.88 s52B3h8o.net
会社でいうと人件費(固定費)に金をかける社長は基本的に社長失格。向いてない
240:デフォルトの名無しさん
16/04/04 09:45:53.36 s52B3h8o.net
それと同じ
241:デフォルトの名無しさん
16/04/04 11:27:01.25 .net
家賃と人件費は毎月掛かる費用だから、
100倍の金銭感覚で考えた方がええで、って
ばっちゃが言ってた
242:デフォルトの名無しさん
16/04/04 12:50:07.11 tWTMiefV.net
URLリンク(alfalfalfa.com)
このサイトみたいに記事の2chレスに対してのコメントを近くに表示するのってどうやるん?
243:デフォルトの名無しさん
16/04/04 12:55:59.98 LrWEI3Rn.net
JavaScriptでDOM操作するの
244:デフォルトの名無しさん
16/04/04 14:26:43.44 +Zn59SDD.net
PHPかんけーねーし、
ブラウザのソースみりゃわかんだろ
245:デフォルトの名無しさん
16/04/04 22:08:09.50 1LILMCI+.net
>>236
ほえーjavascript使うんっすね
ありがとう!
>>237
すまんすまん初心者なりに考えた結果PHP使うのかと思ってw
ソースも覗いてみるよ~
246:デフォルトの名無しさん
16/04/04 22:12:34.35 XmiF8pQ4.net
まあサーバサイドとかクライアントサイドとか
基本のキすら学んでない人にとっては、間隔がつかみにくいんだろうな
247:デフォルトの名無しさん
16/04/04 22:35:56.66 0+RtGrV4.net
URLリンク(millkeyweb.com)
にある、
<?php if ($is_chrome) : ?>
// Chrome用コンテンツ
<?php else: ?>
// その他用コンテンツ
<?php endif; ?>
をWordPressで試しているのですが、Chromeで実行しても $is_chrome が
空のようで「その他のコンテンツ」のほうが表示されます。
なぜですか?
248:デフォルトの名無しさん
16/04/04 22:50:30.56 LrWEI3Rn.net
WPなんてしらんけど
$is_chromeっていうグローバル変数はちゃんとそのファイル内で使えるようになってんの?
249:デフォルトの名無しさん
16/04/04 22:54:41.79 9uPoM1fV.net
やってることを理解していない典型例
教えてもらったうえで何が理解出来るというのか
250:デフォルトの名無しさん
16/04/05 00:22:50.90 PBrOQNL5.net
WPで試してるんだから使えるんじゃないの
URLリンク(codex.wordpress.org)
UAに何送信してるか調べてみたら?
251:デフォルトの名無しさん
16/04/05 00:37:57.65 aIjRskG1.net
if文をコロン/セミコロン/endifで書けることを今知った
いやたぶん使わんけど
252:デフォルトの名無しさん
16/04/05 06:26:24.09 w1a858Dh.net
PHPだけに限ったことじゃないんだが、プログラミングやってると文字列ばかり見てめまいがする。
みんなは頭が基地外になってこない?オレは文字列の羅列を見るだけでめまいがする。
253:デフォルトの名無しさん
16/04/05 06:35:27.28 hR4UL7wD.net
>>244
PHP自体がテンプレートエンジンだから軽量な実装する場合にviewで割りとよく使われるぞ
254:デフォルトの名無しさん
16/04/05 10:35:42.12 ppnKHRiK.net
>>241
どうやればいいの?
255:デフォルトの名無しさん
16/04/05 11:13:51.20 oEPANDny.net
グローバル宣言してますか?
256:デフォルトの名無しさん
16/04/05 11:17:29.11 ppnKHRiK.net
>>248
特に何もしていません
257:デフォルトの名無しさん
16/04/05 11:21:27.14 oEPANDny.net
>>249
使う前に
global $is_chrome;
とおまじないを唱える
258:デフォルトの名無しさん
16/04/05 11:24:37.57 ppnKHRiK.net
>>250
出来ました。ありがとうございました。
グローバル変数を使う場合にわざわざ再宣言しなくちゃいけないのはなぜ?
phpって面倒臭い言語ですね
259:デフォルトの名無しさん
16/04/05 11:36:24.48 hR4UL7wD.net
PHPが悪いんじゃなくてWPの設計が悪いだけだろ
260:デフォルトの名無しさん
16/04/05 11:42:29.01 oEPANDny.net
>>251
PHPにおける変数のスコープを理解することは重要
>グローバル変数が自動的に関数で使用可能で ある C 言語と少々
>異なっていると気がつかれるかもしれません。C言語のような場合、
>グローバル変数を不注意で変更してしまうという問題を生じる可能性
>があります。PHP では、グローバル変数は、関数の内部で使用する
>場合、関数の内部でグローバルとして宣言する必要があります。
URLリンク(php.net)
261:デフォルトの名無しさん
16/04/05 12:08:31.00 5k7a1AT7.net
【OS名】MacのMAMP
【PHPのバージョン】5.6.10
【連携ソフトウェア】なし
【質問内容】
こちらのページの、ページ数がいくつあるかをスクレイピングで取得したいです。
URLリンク(www.amazon.com)
このページの場合だと、4という数字を取得したいです。
<!DOCTYPE html>
<html lang = "ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>テストプログラム</title>
</head>
<body>
<?php
$dom = new DOMDocument;
@$dom->loadHTMLFile('URLリンク(www.amazon.com)');
$xpath = new DOMXPath($dom);
$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');
var_dump($num_pages);
echo $num_pages;
?>
</body>
</html>
262:デフォルトの名無しさん
16/04/05 12:11:59.63 5k7a1AT7.net
続きになります。
PHPの入門書を何回か読んで、ネットの情報を読んで手探りで実践しているところです。
実行した所、このような結果が帰ってきます。
object(DOMNodeList)#3 (1) { ["length"]=> int(0) }
$num_pagesのlengthのintが0ということは、
どこかでミスがあり$num_pagesに何も格納されていないと思い、
いろいろ試してミスを探してみましたがわかりませんでした。
$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');
の所にミスが有ると思い、いろいろなパターンで試してみました。
$num_pages = $xpath->query('/body//div[@class="a-text-center a-spacing-large"]/ul/li[last()-1]/a');
などと、
XPathの正規表現を確認しながら、
[@class=""]やlast()などを削除して余計なものをつけずに
なんでもいいから値を取得しようとしても取得できず、
いろいろなパターンを試してみましたが、
結果は
object(DOMNodeList)#3 (1) { ["length"]=> int(0) }
ばかりで変わりませんでした。
勉強不足で非常につまらない所で間違えているとは思うのですが、
今の私にはどこが間違っているかわかりませんので、
お知恵を貸しいただけませんでしょうか。
ご指摘いただけますと非常に嬉しく思います。
263:デフォルトの名無しさん
16/04/05 12:49:13.36 PBrOQNL5.net
>>254
まずは取得したHTMLの内容を見ること。
そしてそこに書かれている内容を読むこと。
264:デフォルトの名無しさん
16/04/05 13:01:19.31 w0vmBuKb.net
file_get_contents して正規表現で抜き出せばいい
URLリンク(php.net)
265:デフォルトの名無しさん
16/04/05 13:02:56.33 hR4UL7wD.net
>@$dom->loadHTMLFile('URLリンク(www.amazon.com)');
@なんてつけてエラー制御してるから肝心なことがわからないんやで
503返ってきてるしBOTと見なされて拒否られてるってところだろう
ストリームコンテキスト作成してみるとかcURL使ってみるとか
266:
267:デフォルトの名無しさん
16/04/05 14:11:45.62 ruInOaYl.net
カウントして、ファイルに書き込んでリダイレクトすると、カウントが1つ増えるんだけど、なにが原因でしょうか…
268:デフォルトの名無しさん
16/04/05 14:27:24.69 F6iG++QK.net
>>254
$dom = new DOMDocument;
@$dom->loadHTMLFile('URLリンク(www.amazon.com)');
$xpath = new DOMXPath($dom);
$num_pages = $xpath->query('//ul[@class="a-pagination"]/li[last()-1]/a');
$num_pages がおかしいなら、その前の、$xpath もチェックする。
それもおかしいなら、その前の、$dom もチェックする
こういうように、周辺の変数の内容を、すべて見るのが早い。
それか、1行ずつデバッグして、変数の内容を見ていく
269:デフォルトの名無しさん
16/04/05 14:48:14.91 hR4UL7wD.net
>>259
コードも出さなきゃ答えようがない
270:デフォルトの名無しさん
16/04/05 16:31:14.94 yO8yjDkc.net
例えばなんだけど DBに接続するためのユーザー名とパスワードを記述したphpファイルがあるとして
/web/lib/userdb.php(600)
みたいな形にしてwebからアクセスできないようにすればたとえそのメインphpファイルがサーバーのミスやなんかしらの際に流出してもdbのIDとパスワードは守れる?
271:デフォルトの名無しさん
16/04/05 16:37:11.54 Urfcnp8R.net
>>262
dbのIDとパスワードが漏れても外部からアクセスできないようにしとけよ
272:デフォルトの名無しさん
16/04/05 16:41:19.57 +K5F7tY8.net
Webに公開されていないパスに置けば大丈夫では
273:デフォルトの名無しさん
16/04/05 19:24:34.83 izAp1z4+.net
>たとえそのメインphpファイルがサーバーのミスやなんかしらの際に流出しても
ファイル自体が流出したらパーミッション関係ないがな。
274:デフォルトの名無しさん
16/04/05 20:35:59.23 H8S937SL.net
WordPressなんかは、ユーザー名とパスワードを記述したファイルも公開領域だけどね。
275:デフォルトの名無しさん
16/04/05 22:24:24.93 cf9M5ih9.net
MySQLの部分一致
%ae%
とかやると
abcdeのレコードが一致してしまうんですがどうすればいいんでしょうか
つまり何が言いたいかというと
続いてない文字列が一致してしまう
先頭と端が一致してるのも取り出してしまう
276:デフォルトの名無しさん
16/04/05 22:34:15.27 1mo6kAvy.net
それはおかしい。
SQLとその付近のコードはどうなってんの?
277:デフォルトの名無しさん
16/04/05 22:34:20.37 UC4UBEI8.net
MySQLのほうのログ漁って
想定通りのクエリが飛んでるか調べるとか?
278:デフォルトの名無しさん
16/04/05 22:38:27.01 cf9M5ih9.net
ああ、まじですか
やっぱりおかしいみたいですね
コードを見直してみます。
ありがとうございました
279:デフォルトの名無しさん
16/04/05 22:42:55.17 cf9M5ih9.net
>>269
なるほど。。
280:デフォルトの名無しさん
16/04/05 23:00:19.33 gOJOQ9cJ.net
未だに開発環境でも常にApache+PHPでやってた骨董品なんだけど, PHPのビルトインWebサーバめっちゃ便利やな, 軽んじてたわ
281:デフォルトの名無しさん
16/04/06 06:32:29.83 cc6aqB73.net
全レススマソ
>>263 それだわ 有難う
>>264 一応そうしてるけどそれでもなんか怖くて・・・
>>265 エッ
282:デフォルトの名無しさん
16/04/06 06:58:14.77 chXvhDzz.net
メインの文字読み落としただけだから気にしないでくんろ
283:デフォルトの名無しさん
16/04/06 11:48:54.09 CSfgqPLP.net
>>267ですが一日中考えた結果
前方一致と後方一致の両方が一致しているので取り出してしまっている
という結論に至りました
あいまい検索って本当にあいまいなんですね
284:デフォルトの名無しさん
16/04/06 11:58:30.75 MS+65iNt.net
>>273
えっ いや違和感あるんだが
メインのphpが流出する⇒db接続に使う資格情報が書いてあるっぽいファイルのパス・名前が流出する、ってことで
で、このdb用ファイルの内容をどのように取得する?
db用ファイルがwebからアクセスできる場所にある場合でも、生txtであったりあるいは設定ミス等によって
webから直アクセスして実行結果ではなくファイル内容そのものが読める場合でない限りは資格情報は盗まれない
<?php $id='user'; $pass='password'; ?> と書かれたファイルを.phpとして実行しても何も返されないわけで
逆に生txtか生txt同然であったならば、chmod 600してても何も防止できない
好きに.php等をアップロード&実行されてしまう状況ならばどこに置いても一緒
mod_phpやfpmからアクセス可能じゃなかったらそもそも使えない
あとはサーバに侵入される、あるいは雑居ビル状態の共用サーバ使ってる場合等
前者はroot権限かdb用ファイルの所有権がないならchmod 600も一応意味があるが侵入されてるなら時間の問題
後者は利用者ごとに実行ユーザを厳しく切り替えてるなら意味を見出せなくもないけど
DocumentRoot外にファイルを配置できる時点でなさげ
だいたいdb接続情報のパスが漏れたらその時点でやばいっつーならmediawikiとか使えなくね
285:デフォルトの名無しさん
16/04/06 12:43:28.61 cc6aqB73.net
サーバーのミスって.htaccessの設定ミスとかそう言う話だよ!
後は何らかの原因でユーザーログイン出来てしまった時にrootのパスワードがわからない状態でソースが覗けなければいいかな程度
そっから先は俺らの考える事じゃないし・・・
286:デフォルトの名無しさん
16/04/06 13:26:05.81 K9SGMphy.net
>>275
いやその結論はおかしい。mysqlスレいこ
287:デフォルトの名無しさん
16/04/06 14:09:25.41 ZQg6xGn/.net
>>275
んなわけないだろ
where句全部書いてみろよ
つかSQL作ってるコードを貼ってみろよ
288:デフォルトの名無しさん
16/04/06 14:58:23.75 MS+65iNt.net
>>277
領分で想定範囲に線引き入れるならばshellに入られる事態がすでにお手上げ状態だと言っても良いと思うが
それはそれとして、webから覗ける範囲に所有者以外が書き込み可能なファイル/ディレクトリが1つもないことの確認を推奨
メインの.phpにセキュリティホールがあればやはり全部無駄になるからこれも(ありがちなのがアップローダ機能)
ところで.htaccessでどんな設定書いてんの
289:デフォルトの名無しさん
16/04/06 15:28:04.17 gq7o88bt.net
ドット始まりのファイル名にしとけばよほどのことをしてもWeb経由では見られないんじゃね
290:デフォルトの名無しさん
16/04/06 16:07:22.70 b8EzfBRn.net
Laravelなら安心!
291:デフォルトの名無しさん
16/04/06 16:22:16.52 zh0XMq5l.net
>>281
これは隠しファイル扱いですよという一種の約束事なので、
知っていれば自由に読み書きできてしまう
292:デフォルトの名無しさん
16/04/06 18:58:39.31 Y+jXv/sp.net
超初歩的な質問で申し訳ないのですがXSS対策のエスケープで事前に
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
}
を作っておくことを学んだのですが
$sはそのphpでは上記部分以外では見つからないのですがどういう意味を持つ引数なのでしょうか?
また事前に$sの宣言を行わなくても良いのはなぜでしょうか?
293:デフォルトの名無しさん
16/04/06 19:22:28.16 xAgh0Pyq.net
引数って言葉使ってるけど、関数が何か理解してますか?
294:デフォルトの名無しさん
16/04/06 19:23:39.55 b8EzfBRn.net
Manual見よう
295:デフォルトの名無しさん
16/04/06 19:45:33.76 ZQg6xGn/.net
>>283
httpdのデフォルトの設定でドット始まりは見せないようになってるでしょ
.htaccess の設定ミス程度ではこの動作は変わらないから、余程のことをしない限りは安全でしょ
296:デフォルトの名無しさん
16/04/06 19:50:32.95 xAgh0Pyq.net
Apache限定の話だけどネ
297:デフォルトの名無しさん
16/04/06 22:06:02.77 chXvhDzz.net
PHPでは$_POSTなどのスーパーグローバルは直接操作するなと言われているけど、
書き換えることが出来てしまうということが、
バリデーターのテストコードを書く上で、物凄く便利であるということに気付いた春。
298:デフォルトの名無しさん
16/04/06 23:11:26.49 q1HrDxSz.net
javascriptやってて最近php始めたんですが、文字列や正規表現などの記述でphpはイライラします。phpは何でjavascriptみたいな柔軟な記述が出来ないのでしょうか?phpなんて作った奴は誰ですか?
299:デフォルトの名無しさん
16/04/06 23:20:26.16 HSAkNgFK.net
>>284
function h($s) {
return htmlspecialchars($s, ENT_QUOTES, 'UTF-8');
}
echo h($s);
function h($s) { の $s は、仮引数(parameter)であって、
関数のための受け渡し用の仮の変数だから宣言はいらず$vとか好きにしていい。
echo h($s);の $s は、実引数(argument)であって、
実際に流れの中で利用されている変数で、宣言や代入され値が入っている。
300:デフォルトの名無しさん
16/04/07 00:34:49.43 838jiYpM.net
まずjsは柔軟じゃない。ガバガバなのだ
301:デフォルトの名無しさん
16/04/07 03:41:23.49 861uWPB3.net
Apacheともう一個なんだっけ最近上がってきてたやつ あれの評判どうなんだろうね
302:デフォルトの名無しさん
16/04/07 04:18:50.70 PO5E9BnC.net
スレチ 独り言 質問しっぱなしが最近大杉
こっちに引っ越してきてから過疎スレそのものだったのに
春休みで同じやつがやってるんだろ
303:デフォルトの名無しさん
16/04/07 13:08:16.18 O69mbgIK.net
php-cs-fixerをインストールしたらPHPのバージョンが勝手に7に上がってました。OS標準(Mac)のバージョンに戻すことは可能ですか?
上書きされてしまったのでしょうか
304:デフォルトの名無しさん
16/04/11 13:57:00.23 pJYoLHo6.net
read.php ← conf.txt
write.php → conf.txt
こんな感じて特定の設定を保存しておきたいんだけど、おすすめの方法ないですか
自前で全部作らないとダメ?
305:デフォルトの名無しさん
16/04/11 14:24:35.69 2HwASHVN.net
すみません、ページごとの閲覧数を表示できるPHPってありますか?
ワードプレスの「WP-PostViews」プラグインは知っていますが、ワードプレスではないサイトなので・・・
306:デフォルトの名無しさん
16/04/11 14:28:52.63 cX0ZVNHx.net
>>296
おれは設定を array にした PHPコードにしてファイルに書いちゃう手をよく使う。
書く処理は作らなくちゃいけないが、読む処理は include するだけでいい。
307:デフォルトの名無しさん
16/04/11 14:34:17.61 pHIRjOY+.net
>>297
スレリンク(php板)
308:デフォルトの名無しさん
16/04/11 14:42:15.76 2HwASHVN.net
>>299
ありがとうございます。
質問してみました。
309:デフォルトの名無しさん
16/04/11 14:58:26.31 zPYXS2gG.net
>>298
書く処理を作るくらいならばいっそserialize()してしまったほうが良くないか
以前試したときは速度的には配列だけの.php読み込みもcsv読み込みもunserializeもほぼ変わらない
ただ、設定ファイルをそれなりに頻繁に手で書き換えるなら配列.phpやcsvのほうが確かに便利
310:デフォルトの名無しさん
16/04/11 15:28:56.19 cX0ZVNHx.net
>>296
設定ファイルの可読性を全く問わないなら serialize/unserialize を使うって手もあるね。
JSON形式で保存することにして json_encode/json_decode を使うって手もありそう。
311:デフォルトの名無しさん
16/04/11 15:34:31.20 cX0ZVNHx.net
おお、かぶったw
>>301
おれも計ったけど、unserialize は結構遅かったような。
設定ファイルじゃなくキャッシュだが、それで serialize 使ってたのを array を使うようにした。
と言っても設定ならどのみち一瞬で読めるから出来合いでやれる方がいいかな。
312:デフォルトの名無しさん
16/04/11 15:41:47.48 cX0ZVNHx.net
連投すまん
array でやるなら var_export が使えるのを思い出した。
おれは余計なスペースや改行だらけになるのを嫌って自前で書いたが、設定ファイルならむしろこっちの方がいいだろう。
313:デフォルトの名無しさん
16/04/11 15:45:31.94 YMrMfC9q.net
ディブ アライン アライン
なんですかこれ
314:デフォルトの名無しさん
16/04/11 16:34:07.85 PHHPdBbi.net
JSのTypeScriptみたいな、PHPを別言語から変換して使う言語はないのでしょうか?
静的型付け言語出身なので、動的言語に慣れなくて・・・
本当はjava鯖がいいのですが、共用鯖だと使えないところが多いので
315:デフォルトの名無しさん
16/04/11 16:46:29.06 zPYXS2gG.net
>>303
実際やってることがほぼ変わらないからか、php5.6系ではいずれもほぼ同じだった
確認は定番のmicrotime(true)@cli、読み込むデータのサイズをバカみたいに大きくしても同様
真面目に考えるならopcacheとの兼ね合いを第一に考えるべき
…というかunserializeと他とで速度差が露骨に出るって.phpコード読み込みにopcache効いてましたってオチじゃなかろうな
var_exportは設定読み書きに使うにはちょっと読む処理を書かなきゃいけないような
316:デフォルトの名無しさん
16/04/11 16:50:34.64 jGs+gPDI.net
そんな1回あたり1ms未満の戦いしても意味ないんじゃないの
1万req/sec超とかなら話は別だが
317:デフォルトの名無しさん
16/04/11 17:45:50.42 cX0ZVNHx.net
>>307
ごめん、PHP5.1.6 で試したら serialize 結果をそのままファイルに吐いたのを userialize するのが一番速かった。
計った時のいろんな事情や条件がおぼろげで曖昧になってたよ。
速度比としてはこんな感じ。
A. serialize結果がファイル化されたものを、unserialize(file_get_contents('conf.txt)); する
B. serialize結果のデコードをPHPコード化(<?php $conf=unserialize([serialize結果の文字列化]); )したファイルを include する
C. var_export結果を PHPコード化(<?php $conf=[var_export結果]; )したファイルを include する
D. Cと似てるけど、余計な空白や改行を含まないファイルを include する
A 5.4
B. 14.7
C. 19.5
D. 12.6
サンプルデータは、適当なディレクトリツリーを array化したのにしてみた(A のデータファイルで 7KB規模)。
読み込みを include 一発で済ませられるようにするなら D、極簡単な読み込みコードを書くなら A だね。
データファイルの可読性や編集しやすさを取るなら C/D、読み取りパフォーマンス重視なら D、書き込みコードを簡単にするなら C だ。
JSON も試したかったけど今手元にあった環境では使えなかった。
>>308
それはその通り、ほ
318:とんど影響の無い時間を稼ぐのに無駄に苦労するのはただのアホだわな。 おれの場合は処理済みデータのキャッシュ化に使ったから読み取りパフォーマンスを重視したけど。
319:デフォルトの名無しさん
16/04/11 18:38:16.01 jGs+gPDI.net
YAMLにしろよ
320:デフォルトの名無しさん
16/04/12 01:59:13.91 vDLzdyvt.net
PHPの勉強にweb巡回ツールを作成中なのですが
現在はfire_get_contentsでHTMLを取得し、DOMDocumentからLoadHTMLでDOMドキュメントに変換し、それをsimplexml_import_domでxmlに変換し、xpathで要素を指定するといった方法を取っています。
しかし変換したxmlの中身のデータに元のソースコードの食い違いなど不審な点があったので、中身の要素を全て表示してみたところ、htmlソースの「::before」「::after」で指定されている部分のソースコードが取得出来ていないという事が判明しました。
調べてみたところこのタグはCSSでいじる段階になってからHTMLコードを追加するといったタグのようで、fire_get_contentsで取得したhtmlには含まれていないようです
こういった表示段階になって始めて表示される要素まで含めた完全なHTMLソースを取得したいのですが、何か良い方法は無いでしょうか。
よろしくお願い致します。
321:デフォルトの名無しさん
16/04/12 02:12:44.98 NLppiuAm.net
>>311
PHPとは関係無い話になっちゃうけど、chrome かなんかのレンダラを使う方法があったような。
早い話、ブラウザのインスタンスを作ってそれを制御する感じ(もちろん物理的な画面は必要無い)。
スクリーンショットの取得なんかもできたと思うし、多分JSなんかで加工された後のDOMも取得できると思う。
やり方わかったら教えて。
322:デフォルトの名無しさん
16/04/12 02:20:26.21 20poyVM6.net
cssの擬似要素だけが問題なら自分で展開すりゃいいんでないの
っていうかjavascriptでUA判定して内容切り替えとかしてたらどうすんの
323:デフォルトの名無しさん
16/04/12 02:38:41.31 vDLzdyvt.net
>>312
やっぱり一旦ブラウザに読み込んでからhtmlを取得した方が確実みたいですね
設定作業が難しそうなので避けていましたが、セレニウムってのでそんな感じの事が出来ると思うのでもう少しやり方を調べてみようと思います
>>313
UAならリクエスト送る段階で偽装出来ると思うのですが、なるべく対応したいです
やっぱりページ更新のチェック位置が取得出来ない部分にあったら巡回不可能なサイトが出来てしまう訳ですし・・・
HTMLやCSSにはあまり詳しくないのですが、擬似要素での可変部分は内部的な記述で隠蔽しているという訳ではないんですね
自分で展開できそうならそちらも視野に入れて調べてみます、ありがとうございます
324:デフォルトの名無しさん
16/04/12 03:01:29.60 20poyVM6.net
>>314
スクレイパなどではなくてほんとに汎用web巡回更新チェックか。cssの擬似要素は単純っちゃかなり単純なのですぐわかると思う
ところで素朴な疑問なんだけど
rssを使うとかならともかく生htmlを使って巡回・更新チェックを行う場合、同じく生htmlに吐かれたアクセスカウンターとかどうすんの?
さらに生htmlに実データが無くデータ取得から整形までクライアントに負わせ同時に確実な広告表示を実現してるサイト等の場合も
更新に関わらず内容が変化しうる、これはjsエンジン等を突っ込んだー、だけじゃ解決できない気がするんだけどこの辺どうなんだろう?
325:デフォルトの名無しさん
16/04/12 03:29:34.82 vDLzdyvt.net
>>315
あまり詳しくはないのですが要素の位置に変化が無ければ値が変化しても特に問題は無いと思います
htmlが取ってこれればそれをdomに突っ込んでxmlに変換してxpath通せば特定要素だけを取ってくる事は出来るので
それでhtml上の更新時に必ず変化が起きる要素を一定時間ごとにチェックして変化が確認できたらログを保存してチェックデータを更新といった具合で実装しようと思っています
326:デフォルトの名無しさん
16/04/12 03:32:39.65 w4romtCS.net
思い込みで話すとだめという例
327:デフォルトの名無しさん
16/04/12 05:46:53.79 vDLzdyvt.net
しかしどうしても不思議なんだけど外部サーバから動かす時ってブラウザはどうやって用意するんだろ・・・
seleniumにブラウザのドライバがあってそれ使ってコマンド飛ばせばブラウザを動かせるってのは分かるんだ
そしてwindowsやらmacならフツーにfirefoxなりchromeなりインストールしたら使えるってのも分かる
しかし外部サーバにphpファイルをアップロードして使うって話になると肝心のwebブラウザはどうやって読みこませればいいんだろう
元からインストールされてるとも思えないしレンタルサーバにwebブラウザがインストール出来るのか、それともwebブラウザのexeファイルだけ置けば普通に使えるのか
そもそもレンタルサーバがGUI環境じゃなかった場合webブラウザってのはマトモに動くのか
php web driverってのがある以上何らかの手段はあるんだろうけど、レンタルサーバ上でセレニウムを動かすに当たって何をアップロードすればいいのかっていう必要なものが見えてこない・・・うーむ・・・
328:デフォルトの名無しさん
16/04/12 09:22:36.97 .net
>>318
めんどくさいので、
(1)node.jsが使えるレンタル鯖を借りて
(2)JS+Node.jsによるWebクローラー/ネットエージェント と言う本を買いなさい
329:デフォルトの名無しさん
16/04/12 09:30:30.18 K20+5BP2.net
>レンタルサーバ上でセレニウムを動かすに当たって何をアップロードすればいいのか
いやいや、普通はルートでやるんですよ
VPSが最低要件
それとそこそこのメモリが必要になるでしょうね
そもそもクローラーをレンタルサーバでやる意味がわからないのだけれど・・・
自分のPCでいいじゃない
330:デフォルトの名無しさん
16/04/12 10:42:50.72 PLXRZMCg.net
レンタルサーバーでそれやられたら負荷が高くて同居人に迷惑だな
331:デフォルトの名無しさん
16/04/12 10:55:55.85 NLppiuAm.net
>>320
マナーの問題は置いておいて、こんな処理で root が必要?
パッケージマネージャみたいので入れるなら root を要求されるだろうけど、ディレクトリ一式上げれば動くんじゃないの?
332:デフォルトの名無しさん
16/04/12 11:55:03.31 gTjFdqWa.net
PhantomJSとかその派生は使わんの?
333:デフォルトの名無しさん
16/04/12 11:59:06.19 uMcJYrhA.net
>>322
FirefoxとXvfbが必要
結局JavaScriptで操作した分の対応ってだけで
DOMでない擬似クラスの:afterや:beforeはどうしようもないけど
334:デフォルトの名無しさん
16/04/12 14:46:55.51 pjxLuk2S.net
ログファイルを利用してwebサービス的なものを考えてはいたんですがseleniumは負荷が激増しそうなのでやめておこうと思いますお騒がせしました
むしろ読み込んだhtmlデータを確実に破棄出来てるか、メモリリーク起きてないかが気になってきました
今までは使った変数とか適当に放置してましたがunsetで確実に破棄して行こうと思います
335:デフォルトの名無しさん
16/04/12 16:06:33.46 xc/VnKsQ.net
レベルが高くで全然わからん
やっと$変数名っての覚えた
336:デフォルトの名無しさん
16/04/12 17:46:29.87 ZuNPcNPl.net
PHPやろうと思ったら仮想サーバーとかSQL?とかいろいろ設定しないといけなくて手が出せない
なんていうか全部パッケージされてて解凍かインストールするだけでPHP初められる開発ソフトって何かないか?
337:デフォルトの名無しさん
16/04/12 17:54:12.53 xc/VnKsQ.net
>>327
xampp
338:デフォルトの名無しさん
16/04/12 17:56:37.42 pjxLuk2S.net
>>327
WebMatrix3ってのインストールして起動して新規で空サイト立ち上げたらホーム→新規→新しいファイル→PHPっての入れて
phpコード書くっぽい部分にecho 'test';って入れてから作ったファイル右クリして「ブラウザで起動」選んだら動くよ
mysqlとかwordpressとかも大体入ってる
339:デフォルトの名無しさん
16/04/12 20:52:26.03 VhrT22lj.net
Propelって、コードを読めば読むほどアホが作ったんだなって分かる。
壮大なゴミクズだな。
340:デフォルトの名無しさん
16/04/12 20:57:22.23 uMcJYrhA.net
php4時代の産物に文句言ってもしゃーない
341:デフォルトの名無しさん
16/04/12 21:09:45.08 FIX7kEEP.net
何で今Propelなんや, Doctrineやろ
342:デフォルトの名無しさん
16/04/12 21:33:32.50 VhrT22lj.net
既存プロジェクトだから。
新規ならDoctrineだって馬鹿らしい。
343:デフォルトの名無しさん
16/04/13 00:09:44.78 pIZn+U3p.net
>>327
PHPやるために仮想サーバやデータベースは必要じゃないよ。
仮想サーバが必要なら入れないといけないし、データベースもそう。
深く考えすぎじゃないでしょうか。
344:デフォルトの名無しさん
16/04/13 00:36:38.99 eHbmdEvw.net
>>333
おすすめORMおしえて
345:デフォルトの名無しさん
16/04/13 03:31:33.91 .net
>>327
土日でわかるPHPプログラミング
と言う本やな
自分のパソコン側ではなくてVirtualBoxにPHPやらデータベース入れて動かす方法
346:デフォルトの名無しさん
16/04/13 04:22:33.01 799QV5+T.net
VirtualBoxで動作確認環境を構築するって仮想マシンのOSはLinux入れろってこと?
ローカルpcでphpのソース書いて、わざわざVM側にアップロードして動作確認するの?
開発する時はローカルにxampp入れてソース書いてはローカルで動作チェックしてってやらないの?
ローカルでチェックした後にLANにあるテストサーバや本番サーバにアップしたりしないの?
347:デフォルトの名無しさん
16/04/13 04:39:51.30 SBj4pmRf.net
最低限php -l script-fileできりゃいいや
最近のphpはwindows版バイナリがvcランタイム必須なのがちょっと面倒
348:デフォルトの名無しさん
16/04/13 05:45:48.69 .net
>>337
Vagrantと言う仕組みが有って、ローカルのフォルダの内容をVM側に自動で同期出来る
ローカル側では秀丸エディタとかPhotoShopとか使えるわけで転送も不要、楽だろ
本番機との同期はGitにしなさい
ローカルで開発、SourceTreeでBitBucketにプッシュ、本番機でプル
バージョン管理もバックアップも出来る
349:デフォルトの名無しさん
16/04/13 05:51:50.27 od2stSEV.net
IDEの設定でサーバと連携させる
実行したらFTPなりSCPなりでデプロイしてIEでの実行結果がIDE内に表示される
350:デフォルトの名無しさん
16/04/13 07:30:03.80 m+b23jHk.net
>>335
一般に出回っているもので、まともなORMなんてPHPには無いよ。どれもこれもクソ。
PDOがとても優秀なんだから、PDOをラップしたライブラリを自作すればいいと思う。
何年か前にPDOをラップしたDataMapperの作り方を詳細に書いてくれてたページがgoogle検索の上位にいて、
オレはそれを参考に作って使ってる。
さっきちょっと検索してみたけど、今はどうでもいい内容の薄いページばかりが上がってきて、
ちょっと見つけられなかった。
351:デフォルトの名無しさん
16/04/13 16:10:54.68 m2aMgexj.net
初歩的で申し訳ないですがスマホ用ページとPC用ページでURLを変えたくない場合
一つのPHPにスマホ用とPC用のコード両方書いてもブラウザで判別して分岐させたら
処理は重くならないですよね?
ファイル分けた方が軽いんでしょうか
352:デフォルトの名無しさん
16/04/13 16:29:00.50 V9vZnwrf.net
重くなるってほど変わるような話じゃない
というか最近のトレンドは画面サイズで処理振り分ける方法
ようは全部スタイルシートでやる
353:デフォルトの名無しさん
16/04/13 17:30:50.08 Qs0P8RGZ.net
諸先輩方に質問なのですが
特定の文字列の末尾に[]で囲まれた0以上の整数値(最大値は不明)が入っている事があります
文字列にこれが含まれているかを判定して[]まで含めて除去したいという場合どのような処理を用いればよいのでしょうか
354:デフォルトの名無しさん
16/04/13 18:05:35.83 KCoW39g8.net
>>344
微妙に曖昧な点があるから、文字列の具体例と欲しい結果を書いてごらんよ
355:デフォルトの名無しさん
16/04/13 18:50:02.39 SBj4pmRf.net
>>345
曖昧な点がどこにあるか教えてもらえないでしょうか
356:デフォルトの名無しさん
16/04/13 18:53:10.23 fbVZAWIt.net
例を書けよ、オレもあいまいだから様子見してた
その探したい文字列は複数あるの?
全体は複数行なの?
357:デフォルトの名無しさん
16/04/13 18:59:33.89 OSAV0HGg.net
preg_replace('/\[\d+\]$/', '', $s)
とかじゃないの
358:デフォルトの名無しさん
16/04/13 19:04:16.19 pIZn+U3p.net
そうだと思うよ。
文字列のパターンによっては [ 以降を切り捨てるだけで解決する話かもしれない
359:デフォルトの名無しさん
16/04/13 19:20:04.40 eHbmdEvw.net
整数値と明示されていると/\[[1-9][0-9]*\]$/としたくなるな
360:デフォルトの名無しさん
16/04/13 19:20:44.70 pIZn+U3p.net
0以上の整数値だそうですよ
361:デフォルトの名無しさん
16/04/13 19:21:34.17 eHbmdEvw.net
Oh
362:デフォルトの名無しさん
16/04/13 19:30:22.40 Qs0P8RGZ.net
返答遅れましたが、具体例は'foo/bar[1]/qux/quux[3]'といった形で
'foo/bar[1]/qux/quux'だったり'foo/bar[1]/qux/quux[30]'だったりします
欲しい結果としては、どのパターンでも最後のカッコだけを切り落として'foo/bar[1]/qux/quux'という結果です
363:デフォルトの名無しさん
16/04/13 19:38:51.78 Qs0P8RGZ.net
>>348
今確認しましたがピッタリです。ありがとうございます
364:デフォルトの名無しさん
16/04/13 21:51:54.45 Qs0P8RGZ.net
度々申し訳ありません、再度質問なのですが
//foo[@id="aaa"]/bar/baz[@id="bbb"]/@xyz
といった文字列の中から、一番最後に出てきた[@id="xxx"]以降の文字列を取得したいのですが、これは正規表現で指定可能でしょうか
/\[@id=".*"\].+/で一番最初に出てきたid以降の文字列を取得出来る事は分かったのですが、一番最後のidを指定する方法が分からず困っています
検索文字列の中に[@id=""]が何度出現するかは不定、""の中に入る文字列も不定で何が入ってくるかは分からないという状態です
よろしくお願いします。
365:デフォルトの名無しさん
16/04/13 21:57:23.60 pIZn+U3p.net
先頭に .* つけとけばいいよ
366:デフォルトの名無しさん
16/04/13 22:06:18.52 Qs0P8RGZ.net
>>356
正規表現チェッカーで試してみましたが失敗しました
/.*\[@id=".*"\].+/ これで間違いないでしょうか
367:デフォルトの名無しさん
16/04/13 22:52:26.62 pIZn+U3p.net
>>357
/.*(\[@id=".*"\].+)/
368:デフォルトの名無しさん
16/04/13 23:05:42.73 Qs0P8RGZ.net
グループ化して前に.*を置くと配列の2番に欲しい要素が取れるんですね
何故これで取れるのかは少し理解が及びませんが、グループ内外の計算順序的な関係でしょうか・・・
ありがとうございます、とても助かります
369:デフォルトの名無しさん
16/04/14 00:20:33.95 NDERo24Z.net
でも多分、ちょっとテクい正規表現を使って書くより
素直にifやらforやらを使って処理したほうが幸せになれる。たぶんね。
370:デフォルトの名無しさん
16/04/14 00:59:09.74 0z/54ctX.net
クッソド素人な質問でごめん。
NetBeans8.1(PHPバンドル)+xampp5.6.19でやってるんだけど、デバックとかやったことがなくデバックの意味がよくわからなくて質問。
デバックってプログラムを途中で止めたり出来るってこと
?
ブレークポイント?で止めてその変数に何が入ってるとか見れたりするってことかな?
デバックを使うにはxamppのphp.iniを編集しないといけないみたいなんだけど、ということはレンタルサーバなんかの本番環境はphp.iniの設定がデバックできない設定になってるってことなの?
371:デフォルトの名無しさん
16/04/14 02:50:30.37 nrccYQkH.net
>>361
デバッグってのはプログラムが意図通りに動作しない原因を調べて修正する作業のこと
ブレークポイントとかで止めて変数チェック出来ると便利だけど別に出来なくても問題無い
要するに変数の中身が見たかったらechoとかprint_rとかで適当に変数の中身を出力してチェックするだけでも事足りる
むしろif文で更に条件絞り込めたりするからブレークポイントより使いやすかったりする
そういうデバッグ用の表示はif(DEBUG_FLAG){}とかで囲っておくとデバッグ終わったら定数をFALSEにすると一々コメントアウトしなくていいからラク
というか本番環境はデバッグ用に使っちゃ駄目じゃない?
問題が起きたらローカル環境でデバッグ済ませたコードで修正しようよ
372:361
16/04/14 03:57:13.82 kAeel0Dm.net
ありがと。php.iniにxdebug追加してNetBeansでデバック実行できた。
ブレークポイントの動かし方がいまいちわからなくて直感的に止めてやってみたけど変数の中身を確認する事ができた。
中身を見たけりゃデバックなんて使わずにechoするってのもわかった。
>本番環境はデバッグ用に使っちゃ駄目じゃない?
なるほど。そういうことなんだね
373:デフォルトの名無しさん
16/04/14 05:06:21.70 3AVihPqE.net
デバッグをはかどらせるためにデバッガを使っている。
これで用語が安定してくれるだろうか。
デバックのままな時点で注意力散漫なんだろうけど。
374:デフォルトの名無しさん
16/04/14 07:52:56.33 NDERo24Z.net
よぉし、エンバグなら任せとけ
375:デフォルトの名無しさん
16/04/14 07:56:28.93 yvAyG8T7.net
やめて!!
376:デフォルトの名無しさん
16/04/14 09:16:28.14 Ut07vz2q.net
デグレーダーと呼ばれた男
377:デフォルトの名無しさん
16/04/14 19:41:19.87 V5OZRKDZ.net
デグレとか気にしないためにも、テストコードはちゃんと書こうな! みんな
378:デフォルトの名無しさん
16/04/15 05:47:16.79 AwudtfsZ.net
いやでござる!
379:デフォルトの名無しさん
16/04/15 10:58:24.26 .net
CSSのテストってどうすんやろか
よく「あれっinput textの角丸がなくなってるじゃん」とかなる
380:デフォルトの名無しさん
16/04/15 11:15:26.36 hZLpy2lo.net
ここがなんのスレだと思ってんだか
381:デフォルトの名無しさん
16/04/15 14:41:36.55 h/bEplyz.net
PHP=WEB関連含むって思ってんじゃね?
382:デフォルトの名無しさん
16/04/15 15:32:55.87 hZLpy2lo.net
URLリンク(echo.2ch.net)
383:デフォルトの名無しさん
16/04/15 16:16:21.15 DHB605eu.net
<form>
<input type="checkbox" name="s1">スイッチ1<br>
<input type="checkbox" name="s2">スイッチ2<br>
<input type="checkbox" name="s3">スイッチ3
</form>
こんな感じで複数のチェックボックスがあります。
これがチェックされているかいないか確認し、boolean型の配列で保存するにはどうしたら良いでしょう?
(スイッチの数は1~1000くらいのあり不定です)
384:デフォルトの名無しさん
16/04/15 16:40:55.85 vlLJvY6e.net
nameを配列にする
385:デフォルトの名無しさん
16/04/15 16:44:16.32 hZLpy2lo.net
不定といってもチェックボックス数はわかるんでしょ?
<input type="hidden" name="checkbox_count" value="30">
みたいのを一緒に送れるなら作成する配列数がわかるし簡単でそ
386:デフォルトの名無しさん
16/04/15 18:11:39.89 CtWeAAug.net
バージョンわからないが、そもそもPOSTできる数の上限があるの知ってんのかね?
まあ設定変更はできるけど
387:デフォルトの名無しさん
16/04/15 18:32:22.00 ckmbczRy.net
無知な質問すまん
バッチファイル使って指定したバッチファイル強制終了させるにはどうすりゃいいの?
388:デフォルトの名無しさん
16/04/15 18:40:06.37 AwudtfsZ.net
端的にkill/killprocやtaskkillをexecで呼び出せばいいんでないの
事前にバッチ自身にgetmypidでpid吐かせといてもいいし、psやtasklistでプロセスの一覧拾ったり
あとは必要ならcrontab見て、Windowsだとatコマンドも使えたっけ
389:デフォルトの名無しさん
16/04/15 18:40:09.67 KMLXrrkX.net
>>374
<form>
<input type="checkbox" name="s[1]" value="1">スイッチ1<br>
<input type="checkbox" name="s[2]" value="1">スイッチ2<br>
<input type="checkbox" name="s[3]" value="1">スイッチ3
</form>
if(@$_POST['s']['2']) echo 'スイッチ2 はチェックされてるよ';
390:デフォルトの名無しさん
16/04/15 18:41:11.89 KMLXrrkX.net
ちょっと訂正
if(@$_POST['s'][2]) echo 'スイッチ2 はチェックされてるよ';
391:デフォルトの名無しさん
16/04/15 19:23:10.16 nJ+BLq/e.net
最近、新しい仕事でFuelPHPを使わなければいけなくなったんだけど、Webサイトや参考書を見てもいまいちピンとこない。
元々フレームワークなんか一切使わない、フルスクラッチ派のSEなんで、なんかMVCとかいうのが肌に合わないんだよなー。
もちろん時代の潮流としてフレームワークを使って作成したアプリ開発もしないといけないのはわかるんだけどさ。
fuelPHPを使ってゴリゴリにやっている若いエンジニアから、フルスクラッチ派を古株エンジニアのオレに対して小馬鹿にされるのがなんか切ない。
392:デフォルトの名無しさん
16/04/15 20:33:12.28 fQgrroZ3.net
@とかつかうのやめれ
393:デフォルトの名無しさん
16/04/15 22:15:50.32 EFtvuIJr.net
>>381
何でissetしないん?
>>382
車輪の再発明を毎回やってんの?
394:デフォルトの名無しさん
16/04/15 22:22:10.68 UZSoNJii.net
>>379
サンクス
あと 指定したプログラムが終了したらそのbatも同時に終了する 的なbatはどうすれば作れるの?
395:デフォルトの名無しさん
16/04/15 22:29:02.96 KMLXrrkX.net
>>384
任意の値を取れる他の要素を使う場合も考慮して。
@ が遅いという留意点はあるけど、ここで示したい本質はそこではなく name の配列表現だから。
396:デフォルトの名無しさん
16/04/15 22:30:44.74 7TuTTpcb.net
@って正直自分も使いたくないんだけど、5系の環境で
$foo = @$bar ?: $baz;
はアリ? ナシ?
397:デフォルトの名無しさん
16/04/15 22:47:35.26 AwudtfsZ.net
今のphpは確かにname="value[n]"を$_POST['value'][n]にまとめてくれるけど
htmlソースがいかにもphp独自仕様です、って感じなので好きじゃない俺ロートル
>>385
情報が少なすぎるアンドなんかすでにphpの問題じゃない匂いがする
phpバッチにプロセス存否を監視させ続けるとか、
対象の別プログラムにロックファイルを生成させといてそれをチェックさせるとか(要clearstatcache()確認)、
そもそもphpバッチから別プログラムを呼ばせるとか、プログラムを監視して落ちてたらphpバッチを
398:探して生きてたらこれを落とす別バッチを書くとか
399:デフォルトの名無しさん
16/04/15 23:57:49.68 Bg5QZn6N.net
自宅でwebクリエーターとして小さな個人会社向けにweb制作したいんですがHTML5+CSS3+Javascript+PHPだけで食えますか?
画像処理(デザイン)はめちゃくちゃ苦手でセンスゼロです。
wordpressのテンプレカスタマイズしたほうが食えますか?
400:デフォルトの名無しさん
16/04/16 00:14:57.05 yp3MoCIl.net
食うのに必要なのは、技術よりもまずコネと営業だ
401:デフォルトの名無しさん
16/04/16 01:18:41.49 ESOj33QV.net
受注してきました!→技術がないので作れません
402:デフォルトの名無しさん
16/04/16 01:32:20.87 qRVltTpd.net
→外注だ
403:デフォルトの名無しさん
16/04/16 02:51:57.19 ESOj33QV.net
利益がなくなりますw
404:デフォルトの名無しさん
16/04/16 03:08:54.48 FFCasTRX.net
>>382
MVCが肌に合わないから特定のフレームワークを使わないというのならわからんでもないが、
フルスクラッチ派だからMVCが肌に合わないというのはおかしな話じゃないですかね。
てか、そのフレームワークに関してはその若いエンジニアのほうが「古株」でしょ。
>>386
> ここで示したい本質はそこではなく
本質じゃないから余計なものを省いたということなら、
なおさら @ ないほうがよかったんじゃないでしょうか。
405:デフォルトの名無しさん
16/04/16 03:38:21.70 CqNnK3O6.net
>>394
本質じゃないから余計なものを省いたんじゃなく、本質を説明するための必要十分の例として @ を使ってるんだよ。
本質はお目当ての物が配列で参照できるということであり、そこが分かれば好きにコードを書けるでしょ。
その本質を示す手段としては @ だろうと @無しだろうと isset だろうと array_key_exists だろうとどれでもいいから、おれは @ で示したというだけの話だ。
ちなみにおれも普段は isset を使ってるよ。
さらに付け足すと、フォーム要素を配列で受けるのもあんまりしない。
406:デフォルトの名無しさん
16/04/16 14:39:46.43 PpvjCwHN.net
>>377
上限なんてあるの?
407:デフォルトの名無しさん
16/04/16 15:15:24.00 yp3MoCIl.net
データサイズなんぼとか、ファイル数なんぼとか、そういうのならあった
408:デフォルトの名無しさん
16/04/16 16:36:00.58 qRVltTpd.net
5.3.9以上で有効になってるmax_input_varsという設定があってな、まあこれだ
URLリンク(php.net)
5.3.8以前では3000個だろうが10000個だろうが問題ない(ブラウザの制限は受ける)
409:デフォルトの名無しさん
16/04/16 16:46:43.81 qRVltTpd.net
もちろんHTTPの制限じゃなくてphpが独自に追加したDOS対策
POSTならphp://input読んで、GETなら$_SERVERでリクエスト読んだりapache_request_headers()使ったり
COOKIEだとそもそも複数個を連結できるしapache_request_headers()で取れるかも、という風に設定変更以外で回避はできるが
410:デフォルトの名無しさん
16/04/16 23:08:06.17 yp3MoCIl.net
ちょいと意見聞かせてくれ。
PHPでWebツール作ってて、内容によってはWeb上だけで完結させず、
別個のプログラムを用意して、例えばcronに投げたほうがいいって判断したとする。
このとき、同じくくりのプログラムだし、保守面も考慮して両方ともPHPで書く?
それともPHPではなくPerlなりPythonなり、そういう用途向き(?)の言語で書く?
とりあえずプログラマは複数の言語に習熟してて、
かつ処理内容も言語を問わないものという前提とする。
411:デフォルトの名無しさん
16/04/16 23:23:15.80 .net
>>400
PHPでページからExcel出力するモジュール書いて
自動eMailでもそれ使ったりするよ
412:デフォルトの名無しさん
16/04/16 23:26:21.71 yp3MoCIl.net
>>401
ありがとう。
どうもPHP = Webサイト表示用 という意識が抜けなくてなあ
413:デフォルトの名無しさん
16/04/16 23:37:48.61 FFCasTRX.net
>>400
同じDB参照したりするだろうし、資産使いまわせるから便利だなと思うよ
414:デフォルトの名無しさん
16/04/17 01:38:56.11 S2UekzcW.net
そのオブジェクトが参照する変数のドットのメソッド名
と先生に習いました。
意味が全然わかりません。
obj1.method()?
頭が固くて固くてプログラミングに頭脳が向いていません。
415:デフォルトの名無しさん
16/04/17 01:50:43.62 sy21xjHh.net
$記号をシフトキー押さずに入力する方法ありますか?
変数のたびに毎回シフトキー押す手間を省きたいです
416:デフォルトの名無しさん
16/04/17 02:15:00.06 I4Bf6IMv.net
>>400
バッチ用途でphpがperl・pyに劣ってる点おしえて
417:デフォルトの名無しさん
16/04/17 02:37:15.07 LFk8XMyg.net
>>400
好きにしろ
>>404
主文が抜けて何を聞きたいのかわからない
>>405
キーマップでggr
418:デフォルトの名無しさん
16/04/17 02:50:11.51 5SdFsd1w.net
>>406
別に優劣の話なんてしてないかと。
> PHP = Webサイト表示用 という意識が抜けなくて
なだけで。
JavaScript = Webブラウザ上のクライアントサイドスクリプトという意識が抜けなくて
という人もいるだろう。
419:デフォルトの名無しさん
16/04/17 03:04:32.12 I4Bf6IMv.net
>>408
>それともPHPではなくPerlなりPythonなり、そういう用途向き(?)の言語で書く?
ここから 少なくともphp = そういう用途向きではない と読み取ったんだが
まあ言語ごとのバッチサポートの様子を語ってくれるなら誰でもいいよ
420:デフォルトの名無しさん
16/04/17 03:59:55.77 WVqY7eVD.net
>>405
$ をコピーしておいて、$ を打ちたい場所で CTRL+V
421:デフォルトの名無しさん
16/04/17 05:50:07.84 schrg1Ho.net
if(0 == '@attributes'){
echo '一致';
}else{
echo '不一致';
}
このPHP文を実行するとなぜか一致してしまうんですがこれは一体どういうことなんでしょうか
バージョンは5.3です。
422:デフォルトの名無しさん
16/04/17 05:59:53.89 .net
PHPで書かれたソースコードから見ると、入力にGET index.html 貰ってファイル処理して返すのと
標準入力からコマンド貰ってなんかしてechoすんのと
やることに変わりはないと思うんすよ
423:400
16/04/17 07:56:36.40 SaVaSm2U.net
>>409
優劣があると捉えられないように、慎重に言葉を選んだつもりだったんだけど
なかなか難しいね、すまん。
要はさ、もともとPHPはWebページ出力用として、Perlはバッチ処理用として、
あとは有名ドコロだと、Cは低レベル処理が可能な高級言語として生まれた、
……みたいなのあるじゃん?
優劣とまでは行かなくても、その生まれに適した部分(設計思想)って
やっぱりあったりするのかなって。
424:デフォルトの名無しさん
16/04/17 09:21:16.78 I4Bf6IMv.net
>>413
なるほど…なるほど?perlは"バッチ"処理用として生まれたのか?cの生い立ちはbと比べて機械語吐ける/型がある/高開発効率が欲しかったからじゃ?まあ細かいことか
機能的にはぶっちゃけ列挙されたものだとさしたる違いはないかと バイナリも扱えるしsocketも叩ける
ただ、少なくともphpについては基本的には同期処理一本で出来てるから
複数の処理を平行でやらせて全部終わったらこれやらせて…とかはちょっと
あとサーバの機能を分割するときに「あーphp入れなきゃな」とか「バージョン同じにしないと」「別verと同居させないと」「php.ini別に作って指定させないと」がある
pythonやrubyだと最小構成でサーバ作ってるとき「あーpython入れなきゃな」ってことは良くあるし、perlでも移すのに「cpanであれこれ入れなきゃ」が稀に良くあるけど
そういやphpだとpearで持ってこなきゃって経験はないな
んで、web利用が基本だからなのかメモリとか継続実行時間とかで設定(php.ini)に気を使わなきゃいけないことが若干多い…かもしれない
自分が決めていい状況ならあらかじめ問題があるとわかってる場合以外はphpを採用しちゃう
cで書かなきゃ速度的に辛いってこともそう無いし、メインもphpならphp以外が苦手な人にもまとめて投げられる
425:デフォルトの名無しさん
16/04/17 15:07:09.77 vkBmD+Lb.net
1,2,3,
この文字列を分解して数値配列にしたいんだけどどうすればいいの?
426:デフォルトの名無しさん
16/04/17 15:16:01.30 CLrgwT7G.net
$list = preg_split("/,/", "1,2,3,");
とか?
文字列として入るし、最後のカンマのせいで空文字が末尾につくけど
427:デフォルトの名無しさん
16/04/17 15:36:53.85 YYhB6pHO.net
みなさんPHPやり始める時は基本の基本から時間かけてやりました?
変数宣言の仕方とか、echoとprintの違いとかそこからやりました?
正規表現をいきなりやろうと思ってpreg_splitなどを調べてたりしたんですがチンプンカンプンなんですよね。
428:デフォルトの名無しさん
16/04/17 15:37:03.30 MApiboDi.net
カンマをtrimしてexplode
429:デフォルトの名無しさん
16/04/17 15:40:37.31 MXiE5eIT.net
正規表現は、仕様を理解できた範囲で使えばいいよ。
ワイルドカードを使わない文字列の検索や置換から慣れて行けば良い。
理解できないうちに複雑な表現を使うとメンテできなくなる。
430:デフォルトの名無しさん
16/04/17 15:41:30.72 UjRxHr47.net
$array=explode(´,´,´1,2,3´)
431:デフォルトの名無しさん
16/04/17 16:01:01.71 vkBmD+Lb.net
できました。
ありがとうございました。
432:デフォルトの名無しさん
16/04/17 16:06:20.13 r8zM09th.net
>>411
==演算子を使っていいのは何やってるか分かっている人間だけ
分からんなら===演算子を使え
433:デフォルトの名無しさん
16/04/17 16:11:31.64 CLrgwT7G.net
>>411
どうぞ
URLリンク(php.net)
434:デフォルトの名無しさん
16/04/17 18:33:57.46 SaVaSm2U.net
>>417
今月からPHPプログラマとして仕事してるけど
休日にパーフェクトPHPを1冊読んだくらいかな。
それでもちょっとしたツールを作れるくらいにはなったよ。
もちろん細かい仕様とか、セキィリティ界隈とかの話とかはまだ怪しいところもあるけれど
最初からクリティカルな仕事を任されるわけでもないし。
435:デフォルトの名無しさん
16/04/17 19:17:40.22 LFk8XMyg.net
>>411
数値と比較してるから@attributesはintにキャストされてると思えばいい
当然@attributesの前に何も数字がないので0になる
booleanで比較したいのなら!!をつけるとか
型まで考慮する場合===で比較するといい
436:デフォルトの名無しさん
16/04/17 19:33:09.25 S2UekzcW.net
>>424
他に何かプログラミング経験はあったんですか?
Cをやってたとか
437:デフォルトの名無しさん
16/04/17 19:44:45.16 SaVaSm2U.net
>>426
うん。仕事で使ったといえるのはC、C++、C#、Perlくらいだけど
438:デフォルトの名無しさん
16/04/18 00:19:52.32 tA63gAjN.net
数値 == 文字でやった時の結果って 数字があるなしだったのか
10年近く勘違いしてたわ・・・
439:デフォルトの名無しさん
16/04/18 15:41:37.77 3MBtO9g0.net
バッチ処理にPerlやPythonがよく使われてるのは
デフォルトの環境でインストール済みが多いからだ
PHPはインストールされてないことのほうが多い
440:デフォルトの名無しさん
16/04/18 16:48:18.20 Py/QbWo6.net
php ruby perl python なら python がほぼ確実に入っているでしょう。
> 最小構成でサーバ作ってるとき「あーpython入れなきゃな」ってことは良くある
何のディストリつかってるんだろう
441:デフォルトの名無しさん
16/04/18 16:55:31.74 V0FZFOjy.net
MacOSの中には PHP入ってますね
442:デフォルトの名無しさん
16/04/18 17:07:57.24 looFcgiP.net
php単体で動かすことあまりないからな
基本的にapache
443:がはじめから入ってる環境でないと・・・
444:デフォルトの名無しさん
16/04/18 21:14:51.29 qDtmsg1l.net
Perlはもともとawkの代替ってのもあるんじゃね
445:デフォルトの名無しさん
16/04/19 12:36:16.06 6K/M8riZ.net
>>432
PHPにはビルトインWebサーバ付いてるぞ
しかしバッチ処理は2000年代まではPerlで書いてたけどPerl 6が正式に出た以上新規には書きにくくなったなー
Pythonは兎も角Rubyは趣味に合わないから専らPHPで書いてるわ
446:デフォルトの名無しさん
16/04/19 22:50:20.52 IoSLlNnO.net
もうどうしていいか検討もつかないから助けてください。
$fp = fopen("list.csv", "r");
while (!feof($fp)) {
$line = fgetcsv($fp);
mb_convert_variables("UTF-8", "SJIS", $line);
echo "Title:$line[0] Date:$line[1]";
}
こんな感じでlist.csvからデータを読み込むことはできました。
問題は
1.Titleをクリックできるようにして、クリックでされたら対応するDateを返すこと
2.50件まで表示させて残りは次のページに表示させること
list.csvは4万件以上のデータがあるらしくページ番号で移動もおそらく必要
list.csvは
aaa,a000
bbb,b111
ccc,c222
……
こんな感じになっています。
447:デフォルトの名無しさん
16/04/19 23:05:59.46 vjTai48k.net
>>435
csvファイルはtitle,dateの2列だけ?
a000がdateなの?
[title],[date]
aaa,a000
448:デフォルトの名無しさん
16/04/19 23:19:30.67 9i1atlZ9.net
問題がある、わからないところがある、じゃなくてただの丸投げだな
449:デフォルトの名無しさん
16/04/19 23:26:25.28 IoSLlNnO.net
>>436
はい
その通りです。
>>437
すみません。
PHPは昨日まで触ったこともなくて…
昨日環境作ってドットインストールで勉強して
今日から作ってたんです。
450:デフォルトの名無しさん
16/04/19 23:43:55.16 pETlWi8B.net
「Titleをクリックできるようにする」と「Dateを返す」の2つの意味が分からない
妄想はできるけどw
451:デフォルトの名無しさん
16/04/19 23:48:02.32 6Xufz3Pd.net
何がしたいかよくわからんな。
htmlのテーブルで表でも作る?
クリックはAタグ?
452:デフォルトの名無しさん
16/04/20 00:20:19.71 hJ4omFpR.net
list.csvから内容を取得
HTMLのテーブルで読み込んだ内容を上から50件のTitleをリストのように表示
(残りは次のページで表示させる・ページ番号で移動できるようにする)
Titleは<a>で囲いリンクにする
リンクを選択するとDateの部分が画面に表示される
説明下手だな…
わからない部分をまとめるとこんな感じになる。
453:デフォルトの名無しさん
16/04/20 00:39:10.82 1rGPQiSA.net
Dataの表示とページ番号で移動とが繋がりにくい
ページ移動せずにDataを表示しないといけない感じ?
454:デフォルトの名無しさん
16/04/20 00:44:45.90 W+moKoI4.net
ページング php とかで適当に検索してこい
phpどころかHTTP/htmlすらわかってるか怪しいのに内容エスパーも追加とか役満レベル
455:デフォルトの名無しさん
16/04/20 01:02:38.69 Hoj62ndF.net
1、Titleとその行数を返すPHPを作る
2、1を開始行数、取得行数を与えてその範囲の値を返す関数に改造する
これでデータ一覧およびページングができる
3、行番号を与えるとDateを返すPHPを作る
4、2を元に作られた一覧から、TitleのAタグをクリックしたら3にアクセスし値を取ってくるJavascriptを作る
456:デフォルトの名無しさん
16/04/20 01:19:22.25 QFZZ7CGm.net
どうしたらいいかわからないなんてのは
たいてい身の丈にあってないことやろうとしてるだけで
基礎的なところから勉強していくしかないわけで
457:デフォルトの名無しさん
16/04/20 01:27:31.57 hNTaWlcr.net
くだらない質問ですみません。
WordPressのフォーム云々の説明文があった場合、
WordPressでフォームというと、メールフォームのことを指すのでしょうか?
PHPでフォームというと、HTMLの<form></form>タグで、
そこから送信されたデータの処理することを指すと思うのですが、どうなのかなと。
458:デフォルトの名無しさん
16/04/20 01:35:54.43 3QX7LeE6.net
$total = $total + 1
これを見た時「んんん?成り立ちません」って思ったおれは頭が硬いんだよね。ブログラマ向いてないよね
459:デフォルトの名無しさん
16/04/20 01:39:34.86 3QX7LeE6.net
よくソフトウェア関係やIT関係の会社の入社試験で暗号化とか推理判断とか全然ついていけなかったもん。
aabbbccccdddeeこんなのみたらめまいがしてきてたよ
460:デフォルトの名無しさん
16/04/20 01:55:50.19 hNTaWlcr.net
>>447
大丈夫、そのぐらいの誤読は誰でもやるし、どんな時にでも起こりうる。
本当のプロは、普通だったらやらないだろう、普通だったらわかるだろうということさえ、
注意して確認を行える人。
そうならないために、普段から変数名に「no」ではなく、「id」を使ったりする。
461:デフォルトの名無しさん
16/04/20 02:40:12.55 jyo5QKfK.net
>>446
> HTMLの<form></form>タグで、
> そこから送信されたデータの処理する
メールフォームはそれに含まれるよ。
462:デフォルトの名無しさん
16/04/20 03:25:37.50 hNTaWlcr.net
>>450
うん、だからWordPressを使う人は、
フォームと聞いたら、メールフォームだけを限定していうのか、
<form></form>タグで行う処理全般を指すのか、
その境目の認識がよくわからないです。
まあ、某掲示板でこんなやり取りがあって質問したところです。
A「WordPressのフォームに関して……」DBが必要云々の質問
B「メールフォーム如きにWordPressを使うのはオーバースペック」
僕(あれ、メール以外にも色々あるよね。てかWordPressって、PHPで動いているCMSだよね
それだと、フォームから来たデータを基に、DB登録とかCSV作成とか、データ編集とか色々あるよね?)
463:デフォルトの名無しさん
16/04/20 03:55:52.29 TcGBKumn.net
Wordpress特有に文化をここで質問するのってどうなん
464:デフォルトの名無しさん
16/04/20 03:57:25.84 3t709hpA.net
まともな質問はねーのか
> ID:3QX7LeE6
人生相談じゃなくてPHPの質問しろ
IQは個人差あるから仕方ねーよ
雑談スレ池
> ID:hNTaWlcr
PHP=WPみたいに語るんじゃねーよ
俺には投稿フォームであるコメント欄のイメージが浮かぶし
WPスレ池
465:デフォルトの名無しさん
16/04/20 04:03:47.18 2dGZ41Su.net
>>453
PHPだよ
$total = $total + 1
466:デフォルトの名無しさん
16/04/20 04:05:29.57 3t709hpA.net
それの何が質問なの?
467:デフォルトの名無しさん
16/04/20 06:40:41.54 w5hbs5qX.net
>>435
Paginator の話だろ。
CakePHP, RoR などのフレームワークを使う
>>447
>$total = $total + 1
文法なんて、単なる取り決めに過ぎない。下なら理解しやすいかい?
$total ← $total + 1
468:デフォルトの名無しさん
16/04/20 06:52:36.18 hNTaWlcr.net
>>453
少なくとも、イコールではないけど、PHPで行う範囲の中に、
WordPressは含まれるよ。
WordPressで作成したコンテンツの改修は、PHPの理解が薄いと限界があるわけだし。
469:デフォルトの名無しさん
16/04/20 06:56:48.91 hNTaWlcr.net
>>402
PHPはバッチ処理の実行やシェルスクリプトような使い方もできるので、
Apache上では、いろいろ動けますよ。
とはいえ、そういうところは、基本的に表にでないし、動作確認がログファイルだけになるので、
そういう使い方があるという知識と実例をみないと結びつきにくいです。
470:デフォルトの名無しさん
16/04/20 07:02:35.08 3t709hpA.net
PHPで行う範囲の中にってまるでPHPerにとってWPは必修みたいな言い方だなwww
それともWPはPHPで書かれてるっていう当たり前のことをドヤ顔でいってみたのか?
とりあえず専スレでやれ
471:デフォルトの名無しさん
16/04/20 12:53:23.84 jyo5QKfK.net
>>451
何でその人にメールフォームじゃないよという話をしなかったのかがどうにも解せないんだけど
フォームはフォームであって、メールフォームは含まれるだけだ。
472:デフォルトの名無しさん
16/04/20 15:14:06.00 spVU+LpI.net
PDOで、プレースホルダが展開されて
実行される直前のクエリを確認したいんだけど
どうしたらSQL文を見ることができますか?
473:デフォルトの名無しさん
16/04/20 15:18:23.34 oXU9Jk7I.net
>>461
使用しているデータベースは?
データベースによっては、展開されない場合もあるし(こっちが多数派?)
474:デフォルトの名無しさん
16/04/20 15:51:29.35 g9fYYFr2.net
展開の有無はエミュレーションのON/OFFで切り替えられるけど
どっちにしてもそのまま展開後のSQL文は取れないとは思う
475:デフォルトの名無しさん
16/04/20 15:53:23.66 pQik9E63.net
これからPHPの基本からもう一度はじめるんだけど書籍は何がオススメ?
何年も前にweb制作の民間の職業訓練に行ったことがあって
xhtml1.0/css/Javascript/PHPを一通り勉強した。
xampp入れてphpmyadminから簡単なデータベースをGUIで作ってそれをphpからどうやって接続するのか?
どうやってデータベースからデータを取得するのか?
など本当に基本的なことをした。
ライブラリとフレームワークの違いも理解できてなくて、
当時は確かPEARってのを使ってた記憶がある。
ほんとにプログラミングド素人
476:デフォルトの名無しさん
16/04/20 15:56:31.25 pQik9E63.net
その時に買わされた書籍は
基礎PHP (改訂3版) WINGSプロジェクトって本
これ今でもいい本なのかな?
477:デフォルトの名無しさん
16/04/20 16:05:12.08 TcGBKumn.net
>>464
公式マニュアル読んどけ
478:デフォルトの名無しさん
16/04/20 16:15:15.39 w5hbs5qX.net
山田祥寛(よしひろ)、翔泳社
10日でおぼえる jQuery 入門教室 第2版
10日でおぼえる PHP 入門教室、第4版、2012
この2冊は、必須
479:デフォルトの名無しさん
16/04/20 16:47:04.98 pQik9E63.net
今の開発環境
NetBeans IDE 8.1 (PHPバンドル)
notepad++
Xampp5.6.19 (PHP5.6.19)
本番環境(自宅サーバ/CentOS6.7)
Apache 2.2.15
MySQL 5.1.73
PHP 5.3.3�
480:ヲレンタルサーバも5.3
481:デフォルトの名無しさん
16/04/20 16:48:15.76 pQik9E63.net
>>467
ありがとう!
482:デフォルトの名無しさん
16/04/20 16:56:38.76 TcGBKumn.net
PHP5.3とかサポート終わっとるやんけ
483:デフォルトの名無しさん
16/04/20 17:50:24.79 pQik9E63.net
>>470
レンタルサーバは5.6利用可能たった。
自宅サーバーCentOS6.7はyum updateしても5.3.3が最新ですってなる。
484:デフォルトの名無しさん
16/04/20 18:12:22.87 W+moKoI4.net
tarとってきてコンパイルして使えよ
485:デフォルトの名無しさん
16/04/20 18:28:17.08 XJ2suwVk.net
リポジトリ追加すりゃいいだろ
epelとかrpmforgeとか
486:デフォルトの名無しさん
16/04/20 18:48:27.95 pQik9E63.net
epelを追加してphp56をインストール中です。
今までphpのバージョンとか全く気にきにしていませんでした。
5.3,3が最新って出るからそれでいいやって使ってました。
5.5以上じゃなきゃ使えないもの(使えない関数?)ってあるんですね。今までそういうのに遭遇した事がなかったので。
487:デフォルトの名無しさん
16/04/20 19:13:53.26 spVU+LpI.net
>>462-463
マジすかDB依存でしたか
MyちゃんSQL使ってるけど、DB側でPDOでもクエリログ取れるかどうか
ちょっと実験してくるわ
488:デフォルトの名無しさん
16/04/20 19:27:34.85 1zVoxsrg.net
セキュリティがよくわからんからFuelphpとやらを使ってみることにしたけど面倒だね
489:デフォルトの名無しさん
16/04/20 22:19:53.77 vRaGgTgt.net
phpの初歩的な質問が2つあります。
外部phpファイルをincludeし、HTMLタグの出力を行いたいのですが、
直接アクセスされた時に表示を防ぐ、スマートな方法はありますか?
先頭でif( empty(変数) ){ exit; }というのは考えました。
また、テンプレートを使って作れるようなページを、
わざわざphpの1ファイルずつにHTML展開しているソースがあるのですが、
あまりに冗長なので、何か将来的な個別変更を想定している意図があるように見えたのですが、
PHPの界隈の人たちには当たり前の事なのでしょうか?
490:デフォルトの名無しさん
16/04/20 22:20:23.71 vRaGgTgt.net
ageさせていただきます
491:デフォルトの名無しさん
16/04/20 22:40:53.37 c8GcwH6R.net
>>477
includeしただけで表示するのではなくて、出力部分を関数化やクラス化して
関数(メソッド)実行をしなければ表示されないようにするのも一つの手法。
下の質問は、単に横着してコピペした結果だと思う。
当然、PHPでもバッドノウハウだよ。
492:デフォルトの名無しさん
16/04/20 22:46:29.32 1rGPQiSA.net
>>477
include対象のphpファイルは、外部からアクセスできない所においても大丈夫だよ
493:デフォルトの名無しさん
16/04/20 22:52:58.88 vRaGgTgt.net
>>479
回答ありがとうございます。
関数で括る事は考えたのですが、PHPを読めない人にもHTML編集しやすい方法が良いと思いまして、
PHPコードの少ない方法を求めてました。
もう一つの方は、明らかにコピペの手間の方がかかっているような内容で、
コード冗長化に伴う労力の増加が一見してわかるようなコードでしたので、
もしかしたら、コードの水増しをする意図があったのかも知れません。
494:デフォルトの名無しさん
16/04/20 23:00:30.46 vRaGgTgt.net
>>480
それは知りませんでした。しかし現在の環境ではDocRootより上にファイルを置くのが無理ですね。
でも他の時にかなり有効に使えそうです。ありがとうございます。
ところで、PHPプロセスの権限ってhttpdとは別になっているんですか?