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

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

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

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0571nobodyさん2011/04/09(土) 13:36:48.46ID:???
>>570
何で?
予約語か何か使われてたかな?
0572nobodyさん2011/04/09(土) 18:06:43.41ID:LAXo4B+J
すみません、例外処理について聞きたいのですが

今、例外発生したらエラーコントローラに投げて例外情報に従った処理をするプログラムを書いています
そこで、throw new Exception();で指定できるexceptionの引数って、配列は無理なんでしょうか?

エラー発生時の状況を知らせたいので以下のようにやりたかったのですがエラーになりました
$errMsg = array(
'errType'=>'token_error',
'uId'=>$uId,
'uType'=>$uType,
'file'=>__FILE__,
'line'=>__LINE__
);
throw new Exception($errMsg);

マニュアルやエラーメッセージを見るとException([string $exception [, long $code ]])て書いてあるので
無理なのはわかるんですが、上記のようなエラーの詳細情報を投げたい時はセッションに情報を入れて
エラー処理(エラーコントローラのスクリプト)でセッションを拾って解析&実行するしかないですか?
皆さんどうやっていますか?

ご意見お願いします
0573nobodyさん2011/04/09(土) 18:09:12.18ID:???
継承して自分で作ればいいだろ
0574nobodyさん2011/04/09(土) 19:00:33.83ID:???
>>573
そっか、継承すればいいのか
ありがとうございました
0575nobodyさん2011/04/09(土) 20:02:53.04ID:???
>>573
すみません。>>574は偽者です
継承して自分で作るって、どうやれないいんでしょうか?
0576nobodyさん2011/04/09(土) 20:03:16.76ID:???
×どうやれないいんでしょうか?
○どうやればいいんでしょうか?
0577nobodyさん2011/04/09(土) 20:22:47.86ID:???
継承するだけ
0578nobodyさん2011/04/09(土) 20:32:48.96ID:???
誰が何を敬称すればいいんでしょうか?
0579nobodyさん2011/04/09(土) 20:33:07.06ID:???
×敬称
○継承
0580nobodyさん2011/04/09(土) 20:34:56.50ID:???
あなたがクラスを
05815722011/04/09(土) 20:38:30.66ID:LAXo4B+J
質問した572ですが、>>575は相手しないようお願いします
0582nobodyさん2011/04/09(土) 20:55:00.29ID:???
×>>575
>>574
0583nobodyさん2011/04/10(日) 01:08:44.90ID:???
質問した575ですが、>>581は相手しないようお願いします
0584nobodyさん2011/04/10(日) 03:42:37.21ID:???
>>581
公式読んでおけばアホの相手をしなくて済むんだ
http://www.php.net/manual/ja/language.exceptions.extending.php
0585nobodyさん2011/04/10(日) 10:06:16.88ID:vY8CJ6sh
SQL検索結果のwhile繰り返しの中で、
空の配列変数に値を入れたいのです

$ary = array(1 => "a" , 2 => "", 8 => "" , 9 => "b" , 10 => "")

があるとして、
繰り返し一回目で$ary[2]に代入、二回目で$ary[8]に代入…
という感じにしたいのです

毎回頭から空かどうか検索するのも効率悪そうですし、
なにかシンプルな方法があればご教授お願いします。
0586nobodyさん2011/04/10(日) 10:37:17.11ID:???
while (true) {

}
0587nobodyさん2011/04/10(日) 10:37:56.27ID:???
誤爆
0588nobodyさん2011/04/10(日) 10:50:55.33ID:He2iWruv
simplexmlで、まとめて生データを書き出す方法ありますか?

$xml->name

↑これだとnameタグの部分しか出ませんが、
$xmlに入ってる生データをそのままごっそり出したいんです。

file_get_contentsとかでそのままとってきて吐き出すのはだめです。
xmlオブジェクトを何回か読んであるところまでスキップしてから吐き出したいもので。

お願いします。
0589nobodyさん2011/04/10(日) 11:00:24.23ID:???
>>588
print_rかxpath
0590nobodyさん2011/04/10(日) 11:10:57.39ID:???
>>585
毎回頭から検索じゃなくて前回見つかったインデックス番号を変数に保存しておいて、
そのインデックス+1から空を検索するようにすればいい

てか、そもそもforeachで$aryを検索するなら、勝手にポインタ保存されてるっしょ
0591nobodyさん2011/04/10(日) 11:12:43.46ID:He2iWruv
>>589
ありがとうございます。やってみます
0592nobodyさん2011/04/10(日) 11:35:41.27ID:???
PHP自動アップデートツールがあったらお前ら使いたいですか?
0593nobodyさん2011/04/10(日) 11:40:26.75ID:???
なんのために?
0594nobodyさん2011/04/10(日) 11:49:39.04ID:???
なんのためにって聞く奴はaptとかyumなんて使ったこと無いか手動でソース入れる奴だな
Win環境で自動アップデートできるなら欲しい
0595nobodyさん2011/04/10(日) 11:59:44.13ID:???
なに自演?
そういう意味での自動アップデートなら、既にyumがあるじゃん
windowsならインストーラがあるだろ
定期的にチェックして勝手にアップデートしてくれる機能だったら、馬に食わせるくらいしか役に立たない
0596nobodyさん2011/04/10(日) 12:00:02.32ID:???
関数仕様が変わるのは不便
0597nobodyさん2011/04/10(日) 12:01:25.39ID:???
windowsだとインストーラ使うか?
0598nobodyさん2011/04/10(日) 12:05:16.10ID:???
>>595
欲しいって書いただけで自演認定するカス乙
0599nobodyさん2011/04/10(日) 12:19:06.89ID:???
でも自演は本当なんだろ?
0600nobodyさん2011/04/10(日) 12:26:17.01ID:???
>>592 あったらお前ら使いたいですか?

質問なら >>1 を読み直して出直しですね。
0601nobodyさん2011/04/10(日) 12:28:58.06ID:???
自演認定する奴ってXAMPPはやめろ!とか$_SERVERはやめろ!とか言ってた荒らしと同一人物くさいですね。

荒れるから次の質問どうぞ。
0602nobodyさん2011/04/10(日) 12:38:21.30ID:???
敗北宣言乙
0603nobodyさん2011/04/10(日) 14:35:30.26ID:???
>>601 荒れるから次の質問どうぞ?

質問なら >>1 を読み直して出直しですね。
0604nobodyさん2011/04/10(日) 14:45:18.92ID:???
粘着杉
0605nobodyさん2011/04/10(日) 15:31:36.36ID:???
粘着性杉花粉
0606nobodyさん2011/04/10(日) 16:14:16.40ID:???
粘着宣言乙
0607nobodyさん2011/04/10(日) 16:14:38.89ID:???
自演宣言乙
0608nobodyさん2011/04/10(日) 16:42:41.88ID:???
あれ?
0609nobodyさん2011/04/10(日) 20:31:24.18ID:7H7FFmtv
GDのimagestringを使って画像にコピーライトを載せてるんですが、
20KBくらいの画像が100KB越えになってしまい、古い携帯だと容量越えになってしまいます
容量小さくする方法ありますでしょうか?
それか、他に軽く文字を上に乗せる方法などありましたらご教授ください。
宜しくお願いします。
0610nobodyさん2011/04/10(日) 20:59:41.47ID:???
imagejpgだったら品質を下げるとか。
0611nobodyさん2011/04/10(日) 21:01:43.61ID:???
>>610
回答有難う御座います。
画像のサイズを20KBから10KBに落としたら90KBくらいになりました
処理だけで+80KBくらい上乗せされちゃうのは仕方ないのでしょうか?
0612nobodyさん2011/04/10(日) 21:10:35.93ID:???
>>610が言ってるのはimagejpegでの圧縮レベルを上げろってことだと思うが
http://php.net/manual/ja/function.imagejpeg.php
第三引数にqualityってのあるでしょ
それを見直しな
0613nobodyさん2011/04/10(日) 21:19:04.00ID:???
>>610>>612
ありがとうございます。意味を穿き違えてました。

そのqualityを下げる処理をするために、
header('Content-Type: image/png');
imagepng($im);

header('Content-Type: image/jpeg');
imagejpeg($im);
として吐き出すようにしたら
それだけで90KBから14KBまで縮んでしまいました
png自体がそもそもの原因だったんでしょうか
0614nobodyさん2011/04/10(日) 21:27:50.92ID:???
http://www.htmq.com/gazo/index.shtml
0615nobodyさん2011/04/10(日) 21:32:59.66ID:???
>>613
imagepngの圧縮レベルのデフォルトがあまり高くないんじゃね?

マニュアルには
> 圧縮レベル。0 (圧縮しない) から 9 までの値です。
としか書いてないけど

imagejpegのほうは
> quality はオプションであり、0(品質は最低 ですが、ファイルはより小さい)から100(品質は最高ですが、
> ファイルは 最大)の範囲で指定します。デフォルトは IJG 品質値(75)です。
と書いてるからデフォルトである程度圧縮されてる

header('Content-Type: image/png');
imagepng($im, null, 9);

とかにしたらだいぶ小さくなるんじゃね?
0616nobodyさん2011/04/10(日) 22:11:01.27ID:2E3V6CAL
初心者ですみません。
コンソール画面でPHPを実行(またはcron)し、エラーが返って来た時のみ、特定のメールアドレスにメッセージを送るにはどのような処理を書けばよいのでしょうか?

例えば、次のコマンドをコンソール画面で叩いた場合
# /usr/local/bin/php /path/hogehoge.php
XML_Parser: Invalid character at XML input line 15
と返って来た場合、そのエラー内容をhogehoge@example.comにメールを送ります。
0617nobodyさん2011/04/10(日) 22:22:25.53ID:???
直前のエラーを取得する関数を使ってメール関数を使う
全部標準関数です
0618nobodyさん2011/04/10(日) 23:45:40.01ID:???
学校の宿題ワラタw
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1159440211
0619nobodyさん2011/04/11(月) 02:39:55.53ID:???
>>617
>>616はPHPスクリプトの外でエラーを取得してメールを送りたいんじゃないの?
もっとも、そのPHPスクリプトの中でエラーハンドラを設定すれば済むだろうけど
0620nobodyさん2011/04/11(月) 04:41:29.57ID:???
>>615
なるほどそういう原理なんですね
わかりやすく解説いただき感謝です
0621nobodyさん2011/04/11(月) 09:02:36.85ID:???
>>616はスクリプトの外でエラー取得したいなんて一言も書いてないよ
>>617で正解
0622nobodyさん2011/04/11(月) 11:18:00.40ID:???
>>621
エラーレベルにもよるがエラーによっては直前のエラーを取得することはできない。
0623nobodyさん2011/04/11(月) 11:35:26.41ID:???
エラー内容書いてあんじゃん
>XML_Parser: Invalid character at XML input line 15
0624nobodyさん2011/04/11(月) 12:46:19.04ID:???
「例えば」という文字が読めないようですね
0625nobodyさん2011/04/11(月) 12:52:57.75ID:???
次の質問受付中
0626nobodyさん2011/04/11(月) 13:12:31.34ID:???
いいよもう質問しなくて
0627nobodyさん2011/04/11(月) 13:17:55.00ID:???
>amachang 今粛々と民事刑事の方面で進めています。一応、すべて証拠として保存しなければいけないので、冗談でも今はこのスレに変なこと書き込まないでください。
>2011/01/28


http://hibari.2ch.net/test/read.cgi/prog/1291518728/

>1 :amachang撲滅振興協議会:2010/12/05(日) 12:12:08
> amachangが憎い・・・・amachangが許せない・・・・

> ククク・・・・クククククク・・・・・
> クックックックックックックッ・・・・・
> クー、クー、クー、クー、クー、クー・・・・・
>
> もう許せない。
> もはや沸き上がる滅意を抑えることが出来ない!!!
0628nobodyさん2011/04/11(月) 14:00:48.95ID:???
cronで実行されたものの標準出力および標準えらー出力の内容は、そのcronのownerに対してメールで送信されるよ
0629nobodyさん2011/04/11(月) 14:16:22.95ID:???
mailtoだっけ
0630nobodyさん2011/04/11(月) 15:12:50.57ID:???
>>616 の質問に答えようと思ったら、
>>628 で答えが出ていた…orz
0631nobodyさん2011/04/11(月) 16:58:26.84ID:???
何でそんなことをわざわざ言うの?
俺答え知ってるぜーって自慢したいの?
0632nobodyさん2011/04/11(月) 17:23:34.54ID:???
自演に構うな
0633nobodyさん2011/04/11(月) 17:29:22.88ID:???
自演には見えんが
0634nobodyさん2011/04/11(月) 17:44:14.67ID:???
しつこいよ
06356282011/04/11(月) 18:11:57.93ID:???
>>629
補足ありがとう。MAILTO変数のこと忘れてた。
0636nobodyさん2011/04/12(火) 02:11:31.31ID:???
突然すみません。
PHPの教科書という本を終えて、さらにwebプログラミングについて学びたいと考えているのですが、フレームワークやCGI等、具体的にどんなことを勉強すればいいのか見えてこず困っています…。
皆さんは駆け出しプログラマのとき、どのように知識を増やしていきましたか?聞かせていただけると嬉しいです。
0637nobodyさん2011/04/12(火) 02:48:56.55ID:???
PHPはwebプログラミングじゃないと思うぞ。
ネットワークに手軽にアクセス出来るスクリプト言語だろ。
0638nobodyさん2011/04/12(火) 05:32:28.73ID:???
>>636 質問なら >>1 を読み返してから出直しなさい。
0639nobodyさん2011/04/12(火) 06:59:12.81ID:???
>>636
ひたすら書きまくる
0640nobodyさん2011/04/12(火) 08:52:43.77ID:???
>>638
質問ではありませんので>>1は読み返しませんし出直しません。
0641nobodyさん2011/04/12(火) 08:55:53.01ID:???
>>636
書けばいいと思うよ
0642nobodyさん2011/04/12(火) 09:23:19.37ID:???
>>640

そんなあなたには、こちらがお似合い!
【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50
0643nobodyさん2011/04/12(火) 22:51:34.82ID:???
簡単なことからやっていく
0644nobodyさん2011/04/13(水) 00:47:25.03ID:appmuAfb
php+mysqlで質問です。
|id|name|age|
|1 |Aさん|10|
|2 |Bさん|15|
|3 |Cさん|13|
(以下略)

上のようなテーブルで、idが1,4,7,11,21,35・・・のいずれかのレコードを抽出したいのですが、クエリは
WHERE id = 1 OR id = 4 OR id = 11 OR ・・・
みたいにひたすらつなげて書くんでしょうか・・・何か短い書き方ありますか?
あと、ORが大量にあると負荷が極端に増えたりしますか?
0645 【東電 71.9 %】 2011/04/13(水) 01:03:10.02ID:???
んん?
変数使えばいいのでは?
0646nobodyさん2011/04/13(水) 06:02:07.82ID:aY/2E/pl
php高速化するAPCをこのようにインストールしました。
$ tar zxf APC-3.0.17p2.tgz
$ cd APC-3.0.17p2
$ phpize
$ ./configure --enable-apc
$ make
$ su -
# make install

思ったほどの性能ではなかったのでアンインストールをしたいと思って
pecl uninstall APC
rpm -ihv --test APC-3.1.7
yum remove php-pecl-apc
yum remove apc
といろいろ試したのですができません。
どうしたらでしょうか?OSはFEDORA14です。


0647nobodyさん2011/04/13(水) 08:08:26.73ID:???
IN >>644

idが、インデックス対象のカラムであっても、OR使ったらインデックスが使われない。

って、PHPの質問じゃねぇじゃん。
0648nobodyさん2011/04/13(水) 10:31:24.37ID:???
>>644
SQL文のほうはIN句を使えば多少短く書ける
PHPのほうは配列にidを格納してimplodeで繋げればいい
0649nobodyさん2011/04/13(水) 10:36:11.94ID:???
>>646
PHPの質問じゃねーし、makeコマンドはソースからのコンパイルビルドであって
パッケージのインストールじゃねえ

make uninstallでビルドしたファイルを削除してくれるソフトもあるから試してみれば?
0650◆oDupeixhZv52 2011/04/13(水) 10:36:32.74ID:???
同じカラム(一つのインデックス)なら使うんじゃなかったっけ?
0651nobodyさん2011/04/13(水) 11:29:49.14ID:???
んなもんDBによる。
どっちにしろPHP関係ないし。
0652nobodyさん2011/04/13(水) 13:44:12.94ID:???
PHPをしようしているのでPHPに関係あります。
0653nobodyさん2011/04/13(水) 13:48:52.85ID:???
MySQLを5.5にしてPHPも5.3にしたんですが、phpMyAdminを起動すると、ライブラリとバージョンが違うから問題起きるかもって出てます。
これって無視していいんですかね?
具体的にはどんな問題が起きるんでしょうか?
0654nobodyさん2011/04/13(水) 15:16:13.97ID:???
>>646
>>649もかいてるけど、make installでインストールされたものをすべて消せばいいよ。
--prefixでディレクトリ指定してれば楽だったんだけどね。

それと、rpm -ihv は、インストール用コマンドだよ。
0655nobodyさん2011/04/13(水) 15:18:54.75ID:???
>>644
そのidの一覧はどうやって取得してるの?DBから取得してるわけじゃないのかな
0656nobodyさん2011/04/13(水) 15:35:08.26ID:???
idは私の優秀な頭脳に記憶されております。
06576442011/04/13(水) 22:36:22.96ID:urwW+Tur
>>645>>648
ありがとうございます調べてみます

>>655
idは別のテーブルにカンマ区切りで格納しています

|1|グループA|1,2,5,7,…|
|2|グループB|1,3,4,5,…|
|3|グループC|2,3,4,6,…|
みたいな感じです
06586442011/04/13(水) 22:41:42.13ID:???
>>647
すみません…mysqlのスレが見つからず
こちらなら分かる人がいるかなと思いまして
0659nobodyさん2011/04/13(水) 22:42:28.18ID:???
>>658
MySQLのスレはDB板です
0660nobodyさん2011/04/13(水) 22:44:29.40ID:???
>>657
カンマ区切りで保持しているのが設計の誤り。
テーブルレイアウトを変更することができないなら、書かれていたように、長いSQLを発行する。
変更することができるなら、短いSQLを発行すれば、それよりもずいぶん速く結果を取得できるようになる。

続きはSQLスレあたりで。
06616602011/04/13(水) 22:46:13.47ID:???
>>658
SQL質疑応答スレ 11問目
http://hibari.2ch.net/test/read.cgi/db/1299305530/

>>659
MySQLスレはややスレ違い。
0662nobodyさん2011/04/13(水) 23:09:19.36ID:???
MySQLスレは厨房やクズのたまり場と化してて機能してない
06636442011/04/14(木) 00:24:00.71ID:???
>>660
なんとなく正解がわかりました。ありがとうございます。
まだテスト段階だったので構造を直してチャレンジしてみます。
0664nobodyさん2011/04/14(木) 00:36:14.23ID:???
短ければ速いという問題でもなかろ
0665nobodyさん2011/04/14(木) 02:31:23.67ID:???

$result = mysql_query("SELECT * FROM Persons
WHERE FirstName='Peter'");


Peterを変数に代入して入れたいんですけど、どうしたらいいですか?

0666nobodyさん2011/04/14(木) 02:33:15.59ID:jIcMQS2c
$omanko = 'peter';

$result = mysql_query("SELECT * FROM Persons
WHERE FirstName= $omanko ");
↑でやっても駄目なんですよね...
0667nobodyさん2011/04/14(木) 03:13:22.44ID:nz/ViMIK
"select * from item where FirstName like '%"$omanko"%'"
0668nobodyさん2011/04/14(木) 03:55:45.55ID:???
omankoっていい歳した空気よめないオッサンか
ひyな言葉ではしゃぐ中2のどちらかだろ
0669nobodyさん2011/04/14(木) 07:55:10.31ID:???
>>666
$omanko = 'peter';

$result = mysql_query("SELECT * FROM Persons
WHERE FirstName= '$omanko' ");
06706442011/04/14(木) 08:25:43.46ID:???
>>647
すみません…mysqlのスレが見つからず
こちらなら分かる人がいるかなと思いまして
■ このスレッドは過去ログ倉庫に格納されています