トップページphp
1001コメント269KB

PHP】下らねぇ質問はID出して書き込みやがれ 122

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2012/08/15(水) 01:52:15.26ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 121
http://kohada.2ch.net/test/read.cgi/php/1343219409/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
0522nobodyさん2012/09/11(火) 15:07:14.32ID:???
とりあえず正規表現見直したら直りました。

やっぱエラーっぽい気がします。

また後で時間がある時に調べてみますね!
0523nobodyさん2012/09/11(火) 19:05:22.27ID:hqGkGd7k
クッキー使えないときとかで、
PHPSESSID みたいなセッションIDのあれを
別の名前にしてるとき、なんて名前にしてたか忘れたときように
名前を取得したいんだけど、どうしたらいいですか?
0524nobodyさん2012/09/11(火) 19:23:01.05ID:???
別の名前に変更した箇所で、忘れないように変数に保存
05255232012/09/11(火) 20:11:54.83ID:???
>>524
あれってphp.iniとかでも変更したりしちゃいますよね
0526nobodyさん2012/09/11(火) 21:39:47.08ID:???
iniの値を取得
0527nobodyさん2012/09/11(火) 22:08:33.21ID:???
>>525
なぜIDを出さない
0528nobodyさん2012/09/11(火) 22:15:26.12ID:???
なぜ角を取らない
0529nobodyさん2012/09/12(水) 01:42:27.62ID:???
>>513
preg_matchでPHPが落ちる。 

http://www.php.net/manual/ja/function.preg-match.php
また、下のnoteにしか書いてないけどさ。

http://docs.php.net/manual/ja/pcre.configuration.php
0530nobodyさん2012/09/12(水) 05:19:21.39ID:zAC47Bhv
string(19) "2011-03-12 18:29:52"

こーいうデータを

2011年3月12日 18時29分52秒

という風に型変換をしたいのですが、
文字列操作なしに yyyymmdd みたいな感じでどうやれば変換できますか?
0531nobodyさん2012/09/12(水) 07:10:25.69ID:???
>>530
string(19) "2011-03-12 18:29:52"
これが文字列なんだから文字列操作なしにってのは無理がある気がするけど

date('Ymd', strtotime('2011-03-12 18:29:52'));
これじゃだめ?
0532nobodyさん2012/09/12(水) 07:15:53.44ID:???
あーごめん間違った
date('Y年m月d日 H時i分s秒', strtotime('2011-03-12 18:29:52'));
こうだね
0533nobodyさん2012/09/12(水) 12:21:13.48ID:Hsh35kHw
最近オブジェクト指向というものを知ったので
試してみたくてサンプルコードを書いてみました。
ただ、自分だとこの書き方でいいのかわからないので
添削していただきたいです。よろしくお願いします。
http://chopapp.com/#pykzo0ll

自分としてはメソッドの命名のしかた(オブジェクト指向関係ないですけど)、
generate_numbers()のネストが深さが気になっています。
0534nobodyさん2012/09/12(水) 12:29:44.07ID:???
>>530
$date="2011-03-12 18:29:52";
sscanf($date,"%d-%d-%d %d:%d:%d",$y,$m,$d,$h,$i,$s);
print("{$y}年{$m}月{$d}日 {$h}時{$i}分{$s}秒");
0535nobodyさん2012/09/12(水) 12:37:53.14ID:???
正規表現を使ってもよし
0536nobodyさん2012/09/12(水) 12:46:16.39ID:???
sscanfも正規表現も処理が重いんじゃ……
0537nobodyさん2012/09/12(水) 13:00:23.09ID:???
>>533

別にいいんじゃないの?
じぶんならこうするけど

for($i=0;$i<6;$i++){
$r=range(1,43);
shuffle($r);
foreach( array_slice($r,0,6) as $n )
print " $n";
print "\n";
}
0538nobodyさん2012/09/12(水) 13:09:11.43ID:???
>>536
何ミリ秒重くなるんだ?
やってることはたいして変わらん
0539nobodyさん2012/09/12(水) 13:17:23.21ID:???
>>536
各10万回で

date('Y年m月d日 H時i分s秒', strtotime($date));
3.2秒


sscanf($date,"%d-%d-%d %d:%d:%d",$y,$m,$d,$h,$i,$s);
$x=$y.'年'.$m.'月'.$d.'日 '.$h.'時'.$i.'分'.$s.'秒';
0.3秒
0540nobodyさん2012/09/12(水) 13:20:06.87ID:???
>>536は大嘘つき
0541nobodyさん2012/09/12(水) 13:29:53.35ID:???
ついでに正規表現
$date="2011-03-12 18:29:52";

for($a=0;$a<100000;$a++){
preg_match("/(\d{4})-(\d{2})-(\d{2})\s(\d{2}):(\d{2}):(\d{2})/",$date,$m);
$x=$m[1].'年'.$m[2].'月'.$m[3].'日 '.$m[4].'時'.$m[5].'分'.$m[6].'秒';
}
0.3秒

>>540
そういうのやめようぜ
0542nobodyさん2012/09/12(水) 13:57:57.76ID:???
>>530
それ見た感じ、DBから引っ張り出してきたもんに見えるんだけど
もし、そうであればSELECTかける際に整形するって手もあるけど。
例えばMySQLならDATE_FORMATとか。
0543nobodyさん2012/09/12(水) 14:11:51.04ID:???
>>539
遅さの原因はstrtotime?
05445362012/09/12(水) 14:21:09.43ID:???
自分でもためしたけど確かにsscanf、正規表現の方がはやかったです
適当なことを言って申し訳ないです。イメージで語ってしまいました
0545nobodyさん2012/09/12(水) 14:29:56.00ID:???
それはさておき正規表現は使いこなせてる?
記法すらちゃんと覚えてないんじゃない?
イメージで語るけど
0546nobodyさん2012/09/12(水) 14:42:40.51ID:???
>>543
字句解析してるからね
parse_date.c
re2cの出力なんで見にくいけど
手間のかかる処理だね
0547nobodyさん2012/09/12(水) 18:27:23.33ID:???
>>529
ぬおー情報サンクスコです!
0548nobodyさん2012/09/12(水) 18:38:16.11ID:yaqcUT69
MySQLに投げたクエリを"sql.log"ログファイルに記録してるんですが、BLOBカラムがあるテーブルがあって
バイナリデータがログファイルに記録されてしまい、ログファイルを閲覧する際に画面が崩れてしまいます。
従って、バイナリデータはログファイルに記録されないようにしたいと考えています。

例えばdataカラムがBLOBだとして、現状
INSERT INTO table (id, name, data) VALUE (1, 'テスト', '!Qa"Ws#Ed$Rf');
みたいになってますが
INSERT INTO table (id, name, data) VALUE (1, 'テスト', '');
のようにクエリ文字列からASCII印字とUTF-8文字の範囲外は取り除くような感じで考えています。

ログへの記録はerror_log()を使っていて
function logSql($sql) {
 // TODO バイナリを取り除く処理

 error_log($sql, 3, '/path/to/sql.log');
}
みたいな感じです。

バイナリを取り除く処理はどのようなやり方があるのでしょうか?
一応自分で考えてみたところ、mb_strlen()で長さを計ってforの中でmb_substr()で一文字ずつ取り出して
ord()で31以下か127ならスキップして(改行やタブはスキップしない?)文字列を作り直すみたいなイメージですが、
何か重くなりそうですし、こういう場合の定石があればお願いします。
0549nobodyさん2012/09/12(水) 20:36:15.83ID:???
そういうときの正規表現
0550nobodyさん2012/09/12(水) 23:24:41.52ID:???
>>548
mb_encode_numericentity($sql, array(0,31,0,0xff) ,"utf8")

そういうSQLの組み立てはやめたほうがいいよ
0551nobodyさん2012/09/13(木) 00:08:57.38ID:???
>>550
そんな関数あんのか!
本当、把握し切れんなぁ。。。みんなよく知ってるよなぁ。
第二引数の範囲指定がわけわからん
0552nobodyさん2012/09/13(木) 00:36:24.61ID:???
>>551
覚える必要はないだろうね
範囲指定は、 開始、終了、オフセット、マスクの4つの繰り返し
0553nobodyさん2012/09/13(木) 01:42:28.81ID:SYCxV2zj
カヤックってレベル高そうだな
0554nobodyさん2012/09/13(木) 02:41:39.00ID:???
面白法人?それとも船のほう?
0555nobodyさん2012/09/13(木) 02:44:54.09ID:???
インスタントの焼きそばに乗せる方?
0556nobodyさん2012/09/13(木) 10:28:02.98ID:OFHzdsvA
本当に下らない質問ですみません

PHPの割り算って

/で商を返すんじゃないんですか?
小数点付きで帰ってくるんですが。。
0557nobodyさん2012/09/13(木) 10:33:03.77ID:???
必要なら自分で丸めなさい
0558nobodyさん2012/09/13(木) 10:42:25.40ID:OFHzdsvA
自分で丸めますた
PHPっていらんところでいらんことしますな
0559nobodyさん2012/09/13(木) 11:19:07.09ID:???
整数に丸める方が要らんこと
0560nobodyさん2012/09/13(木) 12:07:12.98ID:???
商で返すなんてどっかに書いてあったっけ?
とりあえず割るのみだよ。
か、もしくは先に%等を使ってあまりを引け。
0561nobodyさん2012/09/13(木) 12:14:12.16ID:???
秒数を分秒に直すとかある程度よく使う処理ではある
0562nobodyさん2012/09/13(木) 12:37:14.74ID:???
演算子/で商を返す言語って何があるの?
0563nobodyさん2012/09/13(木) 12:40:31.97ID:???
整数同士の除算が整数になるのは、c java ruby c# fortran
ならないのが php perl VB javascript pascal
Pythonは途中からならないように変更
0564nobodyさん2012/09/13(木) 12:41:40.25ID:OFHzdsvA
まー俺様はC言語バリバリだったもんですいまそん
0565nobodyさん2012/09/13(木) 12:48:11.68ID:???
途中から変更はダサいな
0566nobodyさん2012/09/13(木) 13:00:54.16ID:???
動的型付けなんで、いろいろあるんだよ
0567nobodyさん2012/09/13(木) 13:36:45.99ID:???
Cとかだとint型で宣言して計算するんだから小数になるわけないだろ
0568nobodyさん2012/09/13(木) 15:57:04.64ID:???
pascalだとinteger同士の割り算でも
結果はrealで、 あとからCの仕様見てへんだなと思ったな
0569nobodyさん2012/09/13(木) 17:00:55.41ID:mx46wsSa
画像圧縮について少し質問させてください。

PHPでウェブ上の画像をwidth、heightはそのままで画質だけ
落とす方法がわかりません。

ファイルサイズを少しでも少なくしたいのです。

詳しい方、お手数掛けますがご教授お願いします。
0570nobodyさん2012/09/13(木) 17:35:23.40ID:???
jpegの品質を落とすのであれば
imagejpegのqualityオプション

色数減らすのであれば
imagetruecolortopalette
0571nobodyさん2012/09/13(木) 18:23:33.27ID:???
PHPのすごいパワーを見た。
俺様Cばりばりとか言っている奴でも
よく仕様を確認しないくそPHPerにしてしまう
何かよくわからないすごいパワーを見た。
0572nobodyさん2012/09/13(木) 18:25:45.63ID:???
オレPHPerだけど、マニュアル確認しながらじゃないと書けないよ
引数の順番とかカオスじゃん
0573nobodyさん2012/09/13(木) 18:41:56.88ID:???
PHPの関数の引数はキチガイじみてるどころかキチガイそのもの
0574nobodyさん2012/09/13(木) 18:50:40.16ID:???
関数の引数だけじゃなく、関数名そのものがおかしい
だが、それを言ってても直りようもない
ひたすらエイリアス作って古い関数名を非推奨って言い張って徐々に直すくらいか
旧バージョンと互換性なくなったら、PHPから一気に人離れちゃうからね
0575nobodyさん2012/09/13(木) 18:57:27.61ID:mx46wsSa
>>570
回答ありがとうございます。

でも使い方がさっぱりわかr(ry
0576nobodyさん2012/09/13(木) 19:21:43.49ID:???
時 分 秒 月 日 年だっけ?
キチガイだ
0577nobodyさん2012/09/13(木) 19:24:19.20ID:???
>>576
いやお前それ…
英語勉強したことある?
0578nobodyさん2012/09/13(木) 19:25:25.91ID:???
で、なんで英語圏に合わせる必要があるんだ?
ここは日本だ
0579nobodyさん2012/09/13(木) 19:29:31.80ID:???
本物の低学歴がでたぞ
0580nobodyさん2012/09/13(木) 19:29:45.70ID:???
英語圏なら月日年時分秒だし
同じ英語でも違う並びの文化もあるからな
一緒くたにするな
0581nobodyさん2012/09/13(木) 19:30:02.34ID:???
>>576,578
頭悪すぎワロタ
0582nobodyさん2012/09/13(木) 19:30:57.84ID:???
phpスレってほんと馬鹿が多いのなw
0583nobodyさん2012/09/13(木) 19:31:18.17ID:???
>>576-581
はいはい、キチガイ乙
0584nobodyさん2012/09/13(木) 19:33:42.02ID:???
phpは英語なんか勉強しなくてもできるだろ!!馬鹿にするのはやめろ!!
0585nobodyさん2012/09/13(木) 19:34:16.14ID:???
PHPは英語圏で開発されて英語圏の利用者が一番多い
0586nobodyさん2012/09/13(木) 19:35:11.51ID:???
>>578
phpは日本で開発されたのか〜そうだったのか〜勉強になったわ
0587nobodyさん2012/09/13(木) 19:35:48.71ID:???
PHPは馬鹿御用達言語
↑PHPerは馬鹿だから読めない
0588nobodyさん2012/09/13(木) 19:36:20.77ID:???
>>587
それ英訳してみw
0589nobodyさん2012/09/13(木) 19:50:45.84ID:???
涙でてくるわこのスレ
0590nobodyさん2012/09/13(木) 20:21:18.06ID:???
>>588
お前ができもしないことを人に求めるな
0591nobodyさん2012/09/13(木) 20:35:29.31ID:???
>>590
涙ふけよw
0592nobodyさん2012/09/13(木) 20:49:09.42ID:???
>>590
0593nobodyさん2012/09/13(木) 21:01:22.20ID:???
そんなに英語が好きなら英語で書けよw
0594nobodyさん2012/09/13(木) 21:02:29.49ID:???
>>590
lol
0595nobodyさん2012/09/13(木) 21:04:25.57ID:???
pgr
0596nobodyさん2012/09/13(木) 21:55:12.99ID:???
巣に帰れゴミども
0597nobodyさん2012/09/13(木) 22:09:52.92ID:???
skgd
0598nobodyさん2012/09/13(木) 23:39:05.59ID:???
もう一ヶ月になるけど、やってくれないんだよね。
どっかに報告するんだっけ?
0599nobodyさん2012/09/13(木) 23:48:36.57ID:???
あ?
0600nobodyさん2012/09/14(金) 09:25:17.84ID:???
gvim を使いはじめたんですけど

:e ~/_gvimrc
ファイルに↓の設定をしているにも関わらず
長い文字列をコンソール上で編集していると自動で下段に文章が
折り返されてしまいます。

set nowrap

gvimには、gvimrcの内容を無視(スルー)する優先度の高い何か
特殊な設定がされているのでしょうか?

0601nobodyさん2012/09/14(金) 12:23:15.88ID:???
>>600 >>1
0602nobodyさん2012/09/14(金) 12:23:58.86ID:0fGFEht6
phpのerror_logを取ろうと、サーバの設定をしたのですが、
なぜかUTCで記録されます。
他のhttpdやメールサーバーのログは違うのですが、phpのログだけなので
php固有の設定場所があればどなたか教えてくださいませ
06036022012/09/14(金) 12:26:06.77ID:???
補足です
php.iniのタイムゾーンの設定は以下の通りです
date.timezone = Asia/Tokyo
0604nobodyさん2012/09/14(金) 12:36:28.93ID:???
なんかスレ消えてね?この板
0605nobodyさん2012/09/14(金) 13:32:47.09ID:???
>>602-603
https://bugs.php.net/bug.php?id=60723
もう一個の荒れてる質問スレに回答があった
0606nobodyさん2012/09/14(金) 15:34:56.73ID:pQ1rhec8
fsockopenを使ってソケット通信をした後で、Headerを使ってリダイレクトすると、リダイレクトできないと怒られます
HTTPヘッダでソケット通信をしているからリダイレクトできないのかな?
http-equiv="refresh"か、JavaScriptで対処するしかないのでしょうか?
0607nobodyさん2012/09/14(金) 16:02:21.91ID:???
>>606
リダイレクトできない原因、エラーメッセージは?
0608nobodyさん2012/09/14(金) 16:32:53.34ID:pQ1rhec8
>>607
fsockopenを使ってソケット通信の処理を行う
header('location: hogehoge.html')
と書くと「Cannot modify header information - headers already sent」というエラーメッセージがでます
header関数の前にはechoなどの出力はしていないですが、このエラーが出るためリダイレクトできないのです
別のページでも同じ症状が出ているところがあり、どちらもソケット通信後はheader関数でのリダイレクトとなっているので、ソケット通信後はheader関数でのリダイレクトはできないのかな?
0609nobodyさん2012/09/14(金) 16:33:55.67ID:ea72DcYT
横からすいません、質問させてください。

パスワードのかかったページのソースはPHPで取得できるのでしょうか?
0610nobodyさん2012/09/14(金) 16:49:56.05ID:???
>>608
ソケット通信関係ないんじゃない?
header関数の直前でexitした場合に、なんか出力されてんじゃないかな
BOMか空白、空行かエラーかな
0611nobodyさん2012/09/14(金) 16:51:30.84ID:???
>>609
パスワードってベーシック認証?
それともログイン処理?
どっちでもできないことはないよ
06126062012/09/14(金) 17:29:23.99ID:???
>>610
ヒントをありがとう。原因がわかりました
fsockopenで別鯖と接続し、送信したデータの結果をループで取得しているのですが、ループ毎にflush()していました
flush()を消したら無事header関数でリダイレクトできました
06136052012/09/14(金) 18:32:13.76ID:0fGFEht6
>>605
I am having the same issue!!
ってことで、同じ現象おきてるってことはわかったのですが、
英語があまり得意出ないので、解決方法がわからんです
main.cをいじって、phpをインストールしなおせってことでしょうか?
0614nobodyさん2012/09/14(金) 20:10:26.87ID:ea72DcYT
>>611
おお!ベーシック認証じゃなくてもできるんですか!
普通のログイン処理がしたいので、教えていただけると嬉しいです
0615nobodyさん2012/09/14(金) 21:10:20.08ID:???
>>614
ブラウザでやる処理(HTTPのリクエスト処理、レスポンス処理、COOKIE処理)を
自分で実装するだけだよ
0616nobodyさん2012/09/14(金) 21:32:14.27ID:ea72DcYT
>>615
回答ありがとうございます
おおまかに理解できました!

ちょっと自分なりに作ってみることにします

詳しい部分、再度教えてもらうかもしれませんがその時はよろしくお願いします!
0617nobodyさん2012/09/14(金) 22:20:18.43ID:???
>>616
HTTP_Client (今なら HTTP_Request2?)か curl あたりを
使うことが多いと思う
0618nobodyさん2012/09/15(土) 00:07:13.68ID:JCdwiU1Y
phpとmysqlで、画像をアップロードしたりコメントを挿入できたりする
管理画面を作ってるんですが、
管理フォーム、画像アップローダ、記事削除、画像削除、インサート、アップデート
入力したものが、反映されるエンドユーザーページ、バリデーション

過去に作ったものを使いまわしても、変更箇所が多かったり
大幅に仕様が変わったりして

全部で4日くらいかかります。
もっと早く作る方法ってないですか?
また、普通どれくらいかかりますか?
0619nobodyさん2012/09/15(土) 00:58:23.25ID:???
>>618
工数見積もるから、もっと具体的な仕様書をアップロードして
0620nobodyさん2012/09/15(土) 00:59:03.77ID:???
>もっと早く作る方法
IDEとフレームワークを駆使する

>普通どれくらいかかりますか?
人規模つくり込みによる
0621nobodyさん2012/09/15(土) 02:15:28.72ID:3QA/1G4I
デプロイツールつかってますか?

コミットと同時にVPSに配置したいです
0622nobodyさん2012/09/15(土) 03:23:12.41ID:???
俺さ…、めんどくさいから個人サイトでは、 remote登録してから git push honban.com master とかやっちゃってるんだが
同じ様にやってる人いますかw? サーバーへのssh接続は公開鍵認証にしてるし大丈夫だよね…?
ちゃんと.gitignoreを作れば、設定ファイル等も壊れる事はないし。
■ このスレッドは過去ログ倉庫に格納されています