【PHP】下らねぇ質問はID出して書き込みやがれ 105
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2011/03/17(木) 04:00:34.11ID:???過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0721nobodyさん
2011/04/16(土) 21:01:36.91ID:???0722nobodyさん
2011/04/16(土) 23:31:50.34ID:???0723nobodyさん
2011/04/16(土) 23:39:14.45ID:???0727nobodyさん
2011/04/17(日) 09:09:49.80ID:???0728nobodyさん
2011/04/17(日) 09:17:54.25ID:???0729nobodyさん
2011/04/17(日) 12:07:08.72ID:???0730nobodyさん
2011/04/17(日) 12:10:05.87ID:???セッションファイルは1つだろうしなにを言ってるのかよくわからんが
0731nobodyさん
2011/04/17(日) 12:31:15.22ID:???0733nobodyさん
2011/04/17(日) 12:42:22.75ID:???これぐらい普通でしょ
0734nobodyさん
2011/04/17(日) 12:57:48.07ID:???逆に、どうすればスマートに記述できますかね。
explode("<>",$l, 2)[0]
という記述ができる言語ならよかったんだけど
0737nobodyさん
2011/04/17(日) 15:54:23.99ID:???もてもてです
0738nobodyさん
2011/04/17(日) 15:57:07.53ID:???んで、PHPがダメ言語だな厨にオープンソースでどんくらい稼げるか書類見せてやって黙らせてる
君らにはそんな実力ないから毎日頑張って勉強して欲しい
もちろん勉強だけじゃ稼げないよ
0739nobodyさん
2011/04/17(日) 16:06:44.40ID:???素人丸出しだな
0740nobodyさん
2011/04/17(日) 16:10:15.29ID:???ほら、早く早く
ハァハァ
0741nobodyさん
2011/04/17(日) 18:24:08.55ID:???0743nobodyさん
2011/04/17(日) 21:51:29.07ID:???0744nobodyさん
2011/04/18(月) 00:03:37.17ID:nGStzrzkdisplay_errors = Onでした
結局必要なerror_reportingのみを選択して解決しました。
具体的には
error_reporting = E_ERROR | E_PARSE
にしました。
お騒がせ致しました。ありがとうございました。
0746nobodyさん
2011/04/18(月) 00:37:38.67ID:???大体
error_reporting = E_ALL
にしてsyntax errorが出なくなるわけないだろ?
だから元に戻せって言ってんのに
0747nobodyさん
2011/04/19(火) 01:58:34.81ID:???Webからプロセスを再起動させようとし次のコードを記述したのですが失敗します。
exec("sudo /etc/init.d/プロセス名 restart" ,$s");
apacheには上記パスのsudo権限パス無しは設定済みです。
どこがおかしくて起動出来ないのでしょうか?
0751nobodyさん
2011/04/19(火) 07:17:39.70ID:???引用符の使い方と末尾の全角セミコロン
0752747
2011/04/19(火) 08:26:15.63ID:???おはようございます。
すいません、上記のは記述ミスです。
exec("sudo /etc/init.d/プロセス名 restart" ,$s);
これですけど、起動しません。
よろしくお願いします。
0753nobodyさん
2011/04/19(火) 08:35:32.21ID:W2zxScT8>>747....
>>747....
>>747....
馬鹿なの?
0754nobodyさん
2011/04/19(火) 08:59:10.39ID:L9R4T5O7ログインを行うHPにて、
セッションタイマーが20分と
Ajaxにてヘルスチェック(ログインしていることの通知)が3分ごとに
設定されている場合に、
ブラウザを開いたまま放置した場合。
20分立てばセッションタイムアウトになるのでしょうか。
それとも3分ごとにブラウザから情報が来ているため、
何分たってもセッションタイムアウトにならないのでしょうか。
0755nobodyさん
2011/04/19(火) 10:25:09.97ID:???タイムアウトしないと思う
ヘルスチェックってのが何をしてるか、もう少し詳しく書くけば
もっと適切な答えが期待できると思うよ。
0756nobodyさん
2011/04/19(火) 10:36:05.49ID:???他人のシステムなんて予想はついても
調べない限り適切な答えなんて出ない
0757nobodyさん
2011/04/19(火) 12:36:41.94ID:iclRm0oPset_error_handlerを使ってエラーが発生したときの処理を実装しようとしています。
set_error_handler('fncHoge');
とし、
function fncHoge($errno, $errstr, $errfile, $errline){
//エラーの制御
}
と、記述しているのですが、
このfncHoge関数内で
$errfile, $errlineの内容をログに書きこもうとすると
変数が定義されていませんみたいなエラーがでます。
マニュアル通りに書いたのに何でエラーが出るかわかりません。
なにか気をつけるポイントがあるのでしょうか?
0758nobodyさん
2011/04/19(火) 14:07:34.68ID:???set_error_handlerはエラーだけじゃなく変数が定義されてない等のワーニングでも呼び出される
fncHoge関数内で、たとえば
if($errno == 1 || $errno == 2 || $errno == 4)
とか自分が処理したいエラーレベルでふりわければいい
0761747
2011/04/19(火) 14:59:18.79ID:ObrOm4D8偽物乙。お暇ですね。
本買ってきたから読んで勉強しなきゃ。
でもEXECについて詳しくのってないんだよなぁ。
シェルをキックさせた方が良いのかしら。
0762nobodyさん
2011/04/19(火) 15:43:11.72ID:???既に最初の質問の段階でIDを出していないことからスレ違い。
むしろこれだけレスを重ねていることから荒らし認定。
出直しておいで。
0763757
2011/04/19(火) 15:49:58.74ID:iclRm0oP解決しました。
ありがとうございました。
0764nobodyさん
2011/04/19(火) 15:55:17.04ID:???0765nobodyさん
2011/04/19(火) 17:31:23.47ID:???一. 努力を放棄すること
教えて君たるもの、努力をするなど以ての外である。
一. 情報を開示しないこと
エラーなど必須の情報を知らせてはならない。
「いろいろやってみたけど動きません」が理想のセリフである。
一. 答える人間の事を考えないこと
教えて君は相手の事を考えるようでは失格というものだ。
教えて君グループは世界中に拠点を持っている。
日本の教えて君ブランドを汚してはならない。
日本の教えて君がなめられないように日々、自分で努力して調べないで人を使ってほしい。
0766762
2011/04/19(火) 18:03:12.51ID:fgmca1z+解決しました。
ありがとうございました。
0767nobodyさん
2011/04/20(水) 20:57:28.37ID:ftmBb0O8error_reporting = E_ALL | E_STRICT にしていますが、エラーメッセージは出ずに処理が続行されます
どうして null が返るのでしょうか
0769nobodyさん
2011/04/20(水) 22:23:38.66ID:???Javaのpackageに相当する機能を使いたいのだが
0772nobodyさん
2011/04/21(木) 07:16:38.51ID:XEGIAaxgjson_encodeする方法はないでしょうか?
0773 【東電 63.4 %】 忍法帖【Lv=6,xxxP】
2011/04/21(木) 07:23:01.97ID:GH5Vi5/t見てきた。たしかに対応しているっぽいね。
しかし、後付しただけに随分と煩雑だ
Javaのpackageよりパターンが豊富でいろんなことができるようだが、
Javaのpackageとimportとの組み合わせと比べると気持ち悪いコードを書く輩が増えそうだな…
ソースコードが読みにくくなったら本末転倒だ
コーディング規約をいちいち定めないと面倒なことになりそうだな
JavaのCheckStyleに相当するコーディング規約チェックツールは、PHPにはあるかな?
ついでに、Javaのバグの温床になるコードを自動検出してくれるFindBugsちうチェックツールはPHPにはあるかな?
0774nobodyさん
2011/04/21(木) 07:30:09.90ID:???json_encode ? 値を JSON 形式にして返す
説明
string json_encode ( mixed $value [, int $options ] )
value を JSON 形式にした文字列を返します。
パラメータ
value
エンコードする値。 resource 型以外の任意の型を指定できます。
この関数は、UTF-8 エンコードされたデータでのみ動作します。
0776nobodyさん
2011/04/21(木) 07:43:42.04ID:???言葉遣いが悪い奴は何も得られない。
0777nobodyさん
2011/04/21(木) 09:04:24.29ID:???0779nobodyさん
2011/04/21(木) 10:29:46.86ID:???0780。 ◆oDupeixhZv52
2011/04/21(木) 11:51:47.10ID:???json_encodeのページの__json_encodeのエンコード部分を殺してつかうとか。
0783nobodyさん
2011/04/21(木) 16:01:17.06ID:XEGIAaxgその後にstr_replaceで日本語と置換するという方法を使いました。
今回は小さいデータだからこれでもいいけど、もっと良い方法はないものか
0784nobodyさん
2011/04/21(木) 16:11:03.09ID:???0786nobodyさん
2011/04/21(木) 16:16:29.88ID:XEGIAaxg文字列もソースコードもUTF8なんだけど、勝手にエンコードされる。
0787nobodyさん
2011/04/21(木) 16:23:59.84ID:???エンコードしないとデータがバイナリになるんだよ。
jsonデコードしたら、文字列も自動でデコードされる。
0788nobodyさん
2011/04/21(木) 16:25:59.90ID:???そういうフォーマット。
バイナリデータを直接格納するにはそういうフォーマットつかえ。
メールデータをBASE64にするのと一緒。
0789nobodyさん
2011/04/21(木) 16:33:51.66ID:XEGIAaxgという事情なので質問しました。
多分そのAPIがおかしいんだと思う。デコードしてくれりゃいいのに。
どことは言わんけど日本で一番有名なSNS?
0790767
2011/04/21(木) 16:42:28.91ID:Ljywmxzd失礼致しました
DOMDocument::loadHTML で正常に読み込めるようにするため
不完全な HTML から、重複する id のうち最後のものだけを残そうとしています
$example = preg_replace('/(id=".+?")(.+?)\\1/s', '\\2\\1', $example);
上のような記述をしていますが、対象データが大きいと null が返る場合があります
現在は検索で id をリストアップしてから削除処理していますが
preg_replace ではどうして失敗するのでしょうか
【成功】
<title id="foo"></title>
<p id="bar">テスト1</p>
<p id="bar">テスト2</p>
以降 60KB 程度の文章
【成功】
<title id="foo"></title>
<p id="foo">テスト1</p>
<p id="bar">テスト2</p>
以降 70KB 程度の文章
【エラー】
<title id="foo"></title>
<p id="bar">テスト1</p>
<p id="bar">テスト2</p>
以降 70KB 程度の文章
0791nobodyさん
2011/04/21(木) 16:42:32.00ID:???0792nobodyさん
2011/04/21(木) 18:31:02.76ID:???ユー自作しちゃいなよ
http://ideone.com/nevGC
RFCは流し読みしかしてないから間違いがあるかも知れんが
0793nobodyさん
2011/04/21(木) 18:50:24.50ID:0idGxcNP対処方法はどのようにされてますか?
もしくはエラーが発生したときの検知の方法は何か一工夫されてますか?
エラーが発生したときにログに書きこむようにして、
cronでログに何か書き込まれていないか確認するように
しておくとか考えているんですが・・・如何なもんでしょ?
0794nobodyさん
2011/04/21(木) 19:07:09.39ID:???止まる予定の所すべてで、おかしくなりそうなら情報をファイルへ書き出す仕組みを挿入するしかなくないか。
面倒だが。
0795nobodyさん
2011/04/21(木) 19:09:10.88ID:???PHPが動いている(ローカルな)サーバーだけに出力を残すこともない。
0796nobodyさん
2011/04/21(木) 19:55:44.61ID:???基本はログを残すこと。
エラー時だけ残すのか、正常時も含めたトレースログを残すのかはシステムによる。
次にログを監視すること。
cronで監視してエラー時だけ通知するのか、生存確認の意味も含めて定期的に通知し続けるのかはシステムによる。
必要であれば外部からも定期的にアクセスして監視。
0797nobodyさん
2011/04/21(木) 20:16:32.48ID:???ちなみになんで6万かっつーと、夜中にMySQLのDBが壊れやがってWebサイトにアクセスあるたびにDB接続エラーがえんえんとry
0798nobodyさん
2011/04/21(木) 20:52:11.99ID:???0799nobodyさん
2011/04/21(木) 21:04:51.08ID:LlCZE+TNdate型で呼び出した数字 (date("Ymd",タイムスタンプ)が20111021とか) をそのままint型に変える事は出来るんでしょうか?
一度stringにしてintにしても、表示された数字ではなく、内部ポインタ変数っぽい別の数字が値になってしまいます
一度HTMLやデータベース等に文字として出力し、そこから受け取ればなんとかなりますが、出来ればPHPのみで型変換がしたいです
0800nobodyさん
2011/04/21(木) 21:08:04.68ID:???0802799
2011/04/21(木) 22:43:20.01ID:???date("YmdHis") で出して、それがINT範囲の上限を超えていたのが原因のようです。
floatval で浮動小数点型に直したら問題なく利用できました。
0803nobodyさん
2011/04/21(木) 23:05:21.28ID:???文字列のままでいいじゃん
0804799
2011/04/21(木) 23:10:12.47ID:???データベースにぶっこんだ後、比較演算子利用して指定データを取り出したりしたかったので
文字ではなく数字に変える必要がありました。
0805nobodyさん
2011/04/21(木) 23:12:20.81ID:???文字列のままつっこめばいいのに。
データベースが文字列でも比較できるんだし、
データベースが数値型でも文字列で突っ込めばいい。
0806nobodyさん
2011/04/21(木) 23:28:01.49ID:???0807nobodyさん
2011/04/21(木) 23:48:45.32ID:???PHPの場合はINTを指定してもINTでないから受け付けないというよりINTにキャストして渡してくれるしな
0808nobodyさん
2011/04/22(金) 00:02:45.79ID:???データベースの型をINTにしたため、PHPもそれに合わせて自動でINTにキャストした結果
「DATE(”YmdHis”)=(STR)201104222359」
↓ PHPでの自動処理
「(INT)2147483647 」 ← INTでの上限値
↓
「」
0809nobodyさん
2011/04/22(金) 00:05:24.23ID:???↓ PHPからデータベースに代入
「(INT)214748347」
となっていたようです。
次からは素直にデータベース側をDATETIMEに指定して利用します。
0810nobodyさん
2011/04/22(金) 00:22:05.82ID:???あと内部ポインタ変数ってなんだったの?
0811nobodyさん
2011/04/22(金) 01:13:51.33ID:???0812nobodyさん
2011/04/22(金) 02:20:33.83ID:b2miHkLW0813nobodyさん
2011/04/22(金) 03:14:30.60ID:???0814nobodyさん
2011/04/22(金) 04:28:37.95ID:b2miHkLW何だと!?なんてリア充向けがプログラミング言語なんだ
0815。 ◆oDupeixhZv52
2011/04/22(金) 11:55:32.83ID:???0816793
2011/04/22(金) 12:01:14.75ID:???ひとまずエラー時にログファイルに出力するようにして
クーロンで定期的にファイルが更新されていないかを
確認し、更新されていたらメールで通知するようにします。
さすがに6万通もメールがきたら、
私の携帯だと、受信するだけで
バッテリーが無くなりそうなので。
そして、それとは別に生存監視もしていこうと思います。
0817nobodyさん
2011/04/22(金) 14:09:45.37ID:S4ofJDv4【PHPのバージョン】5.3
【質問内容】
$string = '1111-111111';
$search = '/[^0-9]/';
$replace = '';
if (preg_match($search, $string)) {
$string = str_replace($search, $replace, $string);
}
こんな感じで'-'を置換したのですが、なぜか出来ません。
preg_match()では、マッチしているのに。。。
ちなみに'-'であったり'ー'する可能性があるので、
str_replace()を使ってます。
よろしくお願いします。
0818。 ◆oDupeixhZv52
2011/04/22(金) 14:19:30.37ID:???$string = str_replace(array("-","ー"), $replace, $string);
0820nobodyさん
2011/04/22(金) 14:29:36.99ID:???■ このスレッドは過去ログ倉庫に格納されています