【PHP】下らねぇ質問はID出して書き込みやがれ 101
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/11/15(月) 13:00:07ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 100
http://hibari.2ch.net/test/read.cgi/php/1288168893/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0342nobodyさん
2010/11/29(月) 23:36:51ID:???$php_errormsgはtrack_errorsが有効じゃないと何も吐かない。
なぜob_start()使うのかわからんが、使うんだったら
ob_start();
require_once 'そのクラスファイル.php'; // includeじゃなくrequire
$errmsg = ob_get_contents();
ob_end_clean();
0343342
2010/11/29(月) 23:40:05ID:???error_reporting(0x7FFFFFFF); // エラー全部吐くようにする
ini_set('display_errors', 1);
が最初に必要。
0344nobodyさん
2010/11/30(火) 02:43:25ID:???何のための定数だよ、意味が分からなくなるだろ
error_reporting(E_ALL | E_STRICT);
こう書きなよ。
こういう「結果は同じなんだから結果だけ書いとけ」みたいな感じで書かれると
定数の意味がないし、メンテナンスが面倒だから自分が書くものだけにしてほしい
0345nobodyさん
2010/11/30(火) 05:59:01ID:???それもそうだな。とにかくエラー全部と思って
バージョン関係なくエラー全部用のコピペだったんだけど、
今回はE_ALLだけで十分だな
0346nobodyさん
2010/11/30(火) 07:20:07ID:H2kkF3xUサーバーメンテの際はなにも取得できません
代入したデータが空であれば、取得できませんでした、と表示させてるんですけど、
メンテで取得できない場合、simplexml_load_file()自体が
failed to open stream: HTTP request failed!
ってなってしまいます
どうすればいいでしょうか?
0347nobodyさん
2010/11/30(火) 07:28:24ID:2WrqxWb3ユーザーから受け取った数値の、百の位以下を0にしたい。
56102
↓
56000
こんな場合どうしたらいいですか?
0348nobodyさん
2010/11/30(火) 07:33:26ID:???http://www.php.net/manual/ja/function.round.php
>>346
is_file, is_readable, file_exists等
0349nobodyさん
2010/11/30(火) 07:33:40ID:???0350nobodyさん
2010/11/30(火) 07:41:53ID:???まず、文字列に変換して、
終わりから3つを0に置換して
(必要なら)再度、数値に変換する。
http://www.sasaraan.net/program/php/tips.php?id=settype(型の変換)
http://www.php-ref.com/bapi/02_substr_replace.html(置換)
もしくは、1000で割って、その余りを元の数から引けばいいんじゃないか?
0354nobodyさん
2010/11/30(火) 08:42:31ID:rNn1SdByで変換に失敗したかどうか判りますが、変換に失敗した部分を抜き出す良い方法はないでしょうか?
0355nobodyさん
2010/11/30(火) 08:52:40ID:???0356nobodyさん
2010/11/30(火) 12:43:26ID:???それでも「?」に変換される文字があったりしてちょっと区別しにくいですが、
もうちょっと試行錯誤してみます。
0357nobodyさん
2010/11/30(火) 13:01:55ID:???詳細の状況によると思うが、一般的にはどうかな?
0359nobodyさん
2010/11/30(火) 14:54:43ID:???0360nobodyさん
2010/11/30(火) 15:57:26ID:vry2lrbmこの質問に回答してくれ
0361nobodyさん
2010/11/30(火) 17:51:46ID:???$kuji = array("凶","小吉","小吉","中吉","中吉","中吉","吉","吉","大吉");
$result = array();
for ($i = 0; $i < 10; $i++) {
$result[] = array_rand($kuji);
}
?>
<table>
<?php
foreach ($result as $key => $value) {
$key++;
echo "<tr><td>{$key}回目</td><td>{$kuji[$value]}</td></tr>";
}
?>
</table>
0362nobodyさん
2010/11/30(火) 19:40:35ID:???一発で欲しい形でデータを取るための複雑なクエリーで最適化できてないのもあるけど、結果取得に20秒位かかってるんだけど、クエリーはシンプルにして結果取得を短い時間でできるものにして、クエリーを複数回実行して結果を処理でなんとかしたらどうかなと思ったんだよね。
0363nobodyさん
2010/11/30(火) 19:57:22ID:???クエリーがきちっと最適化できてないだけじゃないの?
まぁこれ以上はシステム構成やデータ件数等も関連してくるし
スレチにもなるから若干過疎ってるがmysqlのスレ行くほうが良いよ
0365nobodyさん
2010/11/30(火) 22:28:10ID:???56102
↓/100
56.102
↓*100
56102
こうならないっけ?
0366nobodyさん
2010/12/01(水) 01:29:45ID:???0368nobodyさん
2010/12/01(水) 01:40:06ID:???ていうか最初に答え出てるのに引っ張るなよw
if (strlen($num) <= 3)
return $num;
} else {
return round($num, -3);
}
0369nobodyさん
2010/12/01(水) 10:44:50ID:KEK0dLq10370nobodyさん
2010/12/01(水) 10:59:50ID:???0371nobodyさん
2010/12/01(水) 11:16:50ID:B1SR7o7P(uオプションを使えばUTF-8なら使える…らしい)
mb_ereg_replaceを使えって色々なところに書いてあるんですが
色々試してみたんですが、preg_replaceでも普通にマルチバイトで
置換ができてしまいます。
UTF-8/EUC-JP/SJIS全て試し、漢字・半角カタカナなどもやりましたが
正常に処理されました。
PHPの環境によるんでしょうか?Windows+XAMPPのPHPです。
0372nobodyさん
2010/12/01(水) 12:01:46ID:???0373nobodyさん
2010/12/01(水) 12:54:07ID:???0374nobodyさん
2010/12/01(水) 12:57:12ID:???0375nobodyさん
2010/12/01(水) 13:18:36ID:???mb_internal_encoding
mb_regex_encoding
あたりがきちんと設定されていれば、pregでいいんじゃないの?
不具合起きたことないんだけど。
というか、ereg系はすでに非推奨になってるので、こっち使うほうが問題あると思う。
0376nobodyさん
2010/12/01(水) 14:52:40ID:???0377nobodyさん
2010/12/01(水) 15:10:40ID:???mb_ereg系はとくに記載がありませんでした。うーん。
0378nobodyさん
2010/12/01(水) 15:11:39ID:???mb_internal_encodingの設定ってmb系の関数で元の文字コードを指定しなかったときのデフォルトなだけだよね?
0379nobodyさん
2010/12/01(水) 15:12:23ID:???mb系じゃなきゃ、文字のエンコードなんかしったことじゃないから
SJISなら、漢字のつもりでもxx5Cって文字の後ろを\としてしまうとか、 ある漢字の中に 5Bがあって [ と勘違いするとか、
EUCの( [a1ca] が 押分[b2a1caac]って文字列内に見つかるとか。
0380nobodyさん
2010/12/01(水) 15:43:06ID:???0381nobodyさん
2010/12/01(水) 15:55:54ID:???mb_eregはバイナリセーフだから使ってよし
mb_languageって何にでも効くおまじないじゃないよ、そんなソースみたら笑っちゃうかも
0382nobodyさん
2010/12/01(水) 16:10:48ID:???間違って覚えてる人とか勘違いしてる人は少しくらいいるかもね。
0383nobodyさん
2010/12/01(水) 16:36:11ID:???文字化けすることを確認しました。
ありがとうございます。
0384nobodyさん
2010/12/01(水) 16:51:58ID:???Twitterのような感じのものです。他にはニコニコ生放送のタグや商品広告みたいな感じです。
ページをリロードしていないのに、内容が更新されていきます。
あれはどうやっているのでしょうか。
更新内容はDBに保存するとして、リロードしてないのにページの一部を更新する方法がわかりません。
0385nobodyさん
2010/12/01(水) 16:59:02ID:???0387nobodyさん
2010/12/01(水) 17:21:59ID:???0390nobodyさん
2010/12/01(水) 17:49:40ID:???おまえが書いて間違ってるかどうかチェックしてもらう側だろうがよ
0391nobodyさん
2010/12/01(水) 18:01:55ID:???一般人のインフラで多用するようなもんじゃないよ
リアルタイムにこだわるとリクエスト数が激しいから
すぐ管理者に目をつけられる
0392nobodyさん
2010/12/01(水) 18:02:04ID:???0394nobodyさん
2010/12/01(水) 19:47:55ID:???そのような筋は聞いたことがありません。
このスレのルールを承知しているのですか?
>>1をよく読みなおして私に質問があるならIDを出してからにしてください。
0395nobodyさん
2010/12/01(水) 19:50:48ID:???0397nobodyさん
2010/12/01(水) 23:40:58ID:u6fu+xrh200番を返すようになっています。これって正しくは500番のレスポンスコードを
返すのが正しい動作だと思い変更したいと思っています。
ただphp.iniの設定項目等で変えられないかと見てみたのですがそのような項目がちょっと
見つけられませんでした。
PHPのバージョンは5.1くらいだったと思います。
もし、何かご存知の方がいましたら教えてもらえると助かります。
0398nobodyさん
2010/12/01(水) 23:59:00ID:???動作的には200であってるんだが
0399nobodyさん
2010/12/02(木) 00:06:04ID:???サーバがリクエストの処理に失敗した。
0400nobodyさん
2010/12/02(木) 00:14:22ID:???headerで送出するのがいいんじゃないだろうか
http://www.php.net/manual/ja/function.trigger-error.php
http://www.php.net/manual/ja/function.set-error-handler.php
http://www.php.net/manual/ja/function.header.php
0401nobodyさん
2010/12/02(木) 00:21:12ID:???<?php
echo $a;
if (error_get_last()) {
header("Status: 500 Internal Server Error");
die();
}
あとはエラードキュメント用意する
0402401
2010/12/02(木) 00:26:59ID:???スルーして
0403nobodyさん
2010/12/02(木) 00:37:13ID:???例えばPHPからJavascriptを吐き出す時、エラーのページが200で返って来ると
ブラウザがエラーメッセージをjsファイルだと思い込んで実行して
Unexpected token '<'とかなんとか。
#500やら40xなら普通は実行されない。
ただそれは開発中の話であってHTTPステータス細工する暇あったらFatalError無くすし、
運用後に発生するかも知れない未知のエラーをログに残したいならphpのエラーログがあるし
そこまで必要性は感じなかったね
0404nobodyさん
2010/12/02(木) 00:53:52ID:i7zddhjb一日中調べていてこの事に触れている記事などが余りなくて
私が気にし過ぎなだけで、PHP的には正しい動作なのかなとも考えていました。
本来、エラー系は開発時に潰しておかないといけないのはその通りなのですが
開発時に私がいなかったもので一通りログから調べ直してみたいと思った次第です。
エラーログも切り分ければ良いのですが、エラーログの出力先がApaheと共通に
なっているので単純にResponseコードで判断できないかなと考えていました。
その設定を変えろよ、言われればおっしゃる通りですが、、、
なんとなく200番返しちゃうとエラーページも検索エンジンがインデックスしちゃうよなー
とかも考えたりするので何か解決策が無いかなとか考えています。
書いていただけた事を読み直して対応を考えたいと思います。ありがとうございます。
0405nobodyさん
2010/12/02(木) 00:57:01ID:???日付つけてなんかするシステムだとバグで時限式爆弾みたいなことはあるかもしれないが
なんかどこまでシステムを信頼していいのか不安になってきた
0406nobodyさん
2010/12/02(木) 01:11:44ID:i7zddhjbPHPのバージョンアップに伴って確認し切れない所でエラーが発生したり
とかは十分あり得るかなー、と。。。思います。
これは分かりやすい部分の例ですが。
それも本来、ちゃんと確認しろよって部分ですが諸般のIT事情により見れない時がありますので、、、
0407nobodyさん
2010/12/02(木) 01:39:12ID:???>一通りログから調べ直してみたい
そういう用途なら尚更PHPのエラーログを出す設定にした方がいいね
noticeもwarningも取れるし
>>405
単に負荷が高くなって開発時には想定してなかった場所でタイムアウトの類のエラーが出てきたとか
DBのコネクション数オーバーとか
データ保存領域のパーティションが一杯になったとか
DB作り直した時InnoDBのつもりがMyISAMでトランザクション効いてなかったりとか
md5がコンフリクトしたとかw
まあ「未知のバグ」と読み替えてもいいし
0408346
2010/12/02(木) 06:07:59ID:2FQwk5Ve> is_file, is_readable, file_exists等
いろいろ試したところ、同じサーバーにあるファイルだとそれでTRUEが確認できましたが、
外部サイトだとあってもなくてもFALSEを返してきます
外部のRSSのアクセス可能不可能の確認に使うにはなにかやり方があるのでしょうか?
教えていただけるとさいわいです
よろしくお願いします
0409nobodyさん
2010/12/02(木) 06:14:41ID:???get_headersとかでいいんじゃね
0410nobodyさん
2010/12/02(木) 06:17:51ID:2FQwk5Veありがとうございます
if (!preg_match('/Not Found/',$rssurl)){
で読みたいRSSの有無判定できるようになりました
感謝です
0411nobodyさん
2010/12/02(木) 06:18:48ID:???そのrssurlのとこにget_headersのデータはいってます
0412nobodyさん
2010/12/02(木) 06:20:42ID:???200だったらのほうがいいと思う
それだと503とかも通っちゃうしね
0413nobodyさん
2010/12/02(木) 06:29:44ID:2FQwk5Ve$head = get_headers($rss,1);
if (preg_match('/200|302/',$head[0])){
ありがとうございます
読みに行ったブログのrssは302を返してきたので、302も通るようにしました
レスポンスコードむずかしいです
0414nobodyさん
2010/12/02(木) 11:11:26ID:xyBKojGi使ったこと無いけどmysql_insert_id()みたいなものを。
0415nobodyさん
2010/12/02(木) 11:14:30ID:???0416nobodyさん
2010/12/02(木) 11:27:54ID:???0417nobodyさん
2010/12/02(木) 12:51:52ID:xyBKojGiできました。ありがとうございます。
DとO紛らわしいと思う。
0418nobodyさん
2010/12/02(木) 16:53:09ID:???携帯サイト用画像リサイズスクリプトImageresize4keitai
http://www.web2-labo.com/_imageresize4keitai090421.html
というものがあります。
画像のサイズを指定した小さいサイズでリサイズしてくれるとのことなのですが・・・
前のHPを作った前任者さんが使っていたのですが、使うメリットが分かりません。
<img="" width="70">でも同じではないのでしょうか?
教えていただけると助かります。
0419nobodyさん
2010/12/02(木) 16:58:28ID:???携帯のハードが耐えられるメモリ量ならimg-widthでも構わない。
強いてあげるなら携帯への転送量が減る分だけ表示が速くなるとかそんな感じかな。
0421418
2010/12/02(木) 17:17:51ID:???フォトショップなどで画像を最初から小さいサイズにしておけば、Imageresize4keitai のメリットはなくなりますか?
0422nobodyさん
2010/12/02(木) 17:20:30ID:???0423nobodyさん
2010/12/02(木) 17:29:31ID:???指定しなかったら携帯の横幅に合わせられる
昔ほぼ同じ物作ったわ
これキャッシュディレクトリあるけど、毎回生成し直すんじゃね?
0424nobodyさん
2010/12/02(木) 17:33:26ID:???そうだが思考がデザイナーだな
0426nobodyさん
2010/12/02(木) 20:41:55ID:gvFjnnhT【PHPのバージョン】5.3
【連携ソフトウェア】MySQL Samba
【質問内容】
sample.php
exec($command, $out, $return);
で別ファイル(mail.php)のsendmailを実行してます。
mail($to,$subject,$body);
という簡単なものです。
戻り値によってexec実行後の挙動を変えているのですが、sendmailからgmailのsmtpを使うことになり
pearのmailのモジュールを直接起動するように変更しました。
モジュールを直接起動するだけなので$outに何も残らずexec後の挙動が自動化できなくなりました。
$outに戻り値を返すにはどのようにしたらよいでしょうか?
0427nobodyさん
2010/12/02(木) 23:51:02ID:???0428426
2010/12/03(金) 09:25:48ID:d50vwSIOいまは
require_once("Mail.php");
$param = array(SMTPの設定);
$header = array(toとかsubject設定);
$smtp = Mail::factory( 'smtp', $param );
$smtp->send( $mailto, $header, $body );
という風にして送信してます。
これらにさらにオプションみたいなものがあるんでしょうか。
0429nobodyさん
2010/12/03(金) 10:29:21ID:Q3Oa/UUXSQLiteの型がINTEGERであっても、fetchで返ってくる値の型はstringでした。
MySQLのBOOLEAN型などであっても、fetchは常にString型で返してくるのでしょうか?
よろしくお願いします。
0430nobodyさん
2010/12/03(金) 15:30:10ID:???サーバサイドスクリプト言語「PHP」にサービス拒否(DoS)攻撃を受ける脆弱性が確認されたと「Japan Vulnerability Notes(JVN)」で発表した。
5.3.3 revision 305571以前のバージョンのgetSymbol関数には、整数オーバーフローの脆弱性が存在する。悪用されると、
遠隔の第三者からのDoS攻撃を受ける可能性がある。JVNでは、ベンダーが提供する情報をもとに最新版へアップデートするよう呼びかけている。
0431nobodyさん
2010/12/03(金) 15:34:18ID:???Windowsカーネルに権限昇格バグがあるのだけは知っている
0432nobodyさん
2010/12/03(金) 18:47:43ID:apCQGjmG外部ファイルをrequireやincludeするとき、コンストラクタの中で呼び出すのと
クラス宣言の外(冒頭)で呼び出すのはどう違うんでしょうか?
0433nobodyさん
2010/12/03(金) 18:57:01ID:jI96G3Kcその呼びたいプログラムはファイルに結果を出力する形になっています
/tmp/out.data
を一時出力ファイルにしようとしましたが
同時に副数人がアクセスすると/tmp/out.dataが前の人の結果を上書きしてしまいます
ファイル名をuuidなどで生成させて絶対重ならないようにするのが普通のやりかたなのでしょうか?
何かLinuxのパイプ関係でプロセスごとに一時ファイルを自動で分けるようなやり方はないのでしょうか
0434nobodyさん
2010/12/03(金) 19:17:07ID:???プログラムの流れの順番が違う
冒頭で呼び出すと最初に全ファイルの関数かぶりやら
ファイルの依存関係がチェックされるのに対して
コンストラクタ中で宣言するとインスタンス生成時にチェックされる
そのため関数かぶりやらで止まる可能性は少なからずあるし
ファイルの依存関係もそれまでチェックされない
>>433
tempnamを使ってみてはどう?
ttp://jp2.php.net/manual/ja/function.tempnam.php
0435nobodyさん
2010/12/04(土) 01:18:43ID:???htmlのフォームの属性で携帯のキャリアによっては
name属性かid属性か使い分けなくてはならなかったような気がしたのですが
どうでしたっけ…
0436nobodyさん
2010/12/04(土) 01:19:24ID:IEmBp40c0437nobodyさん
2010/12/04(土) 02:39:53ID:???http://hibari.2ch.net/test/read.cgi/hp/1291304974/
0438nobodyさん
2010/12/04(土) 07:40:58ID:???本人の身元を完全に特定できるようになりたいのですが、
そういう場合、どのようなところに就職すれば良いのでしょうか?
プロバイダーですか?
それとも、警察庁のサイバー犯罪対策なんちゃらとかいうところですか?
それとも、また別の機関?なのでしょうか?
やはり、警察系の組織が一番良いのですかね?
それとも、プロバイダーなんですかね?
個人的には、この2つのどちらかだと思っているのですが、
実際はどうなんでしょうか?
誰か教えてください。お願いします。
0439nobodyさん
2010/12/04(土) 07:49:53ID:???0440nobodyさん
2010/12/04(土) 08:43:24ID:???0441nobodyさん
2010/12/04(土) 08:45:19ID:???■ このスレッドは過去ログ倉庫に格納されています