【PHP】下らねぇ質問はID出して書き込みやがれ 139©5ch.io
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん 転載ダメ©2ch.net
2015/01/05(月) 15:56:07.51ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 138
http://kanae.2ch.net/test/read.cgi/php/1414427135
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.5
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0751nobodyさん
2015/04/26(日) 20:54:04.36ID:???0754nobodyさん
2015/04/27(月) 18:59:38.45ID:z1qxnXFQ【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
定数のチェックを行いたいのですが以下だとエラーが表示されます。
echo A::TEISU;
class A {
const TEISU = check_teisu('teisu');
function check_teisu($val) {
〜 処理 〜
return $val;
}
}
const TEISU に入れる前にチェックを行いたいのですが
Parse error: syntax error, unexpected '(', expecting ',' or ';' in /sample.php on line 5
と表示されます
定数をチェックしたい場合はどのようにすればいいのでしょうか?
0755nobodyさん
2015/04/27(月) 19:03:56.18ID:???よってチェックなんぞ必要ない
0756nobodyさん
2015/04/27(月) 20:27:52.54ID:???issetは使えないし、下手に値を見て識別……とかしたら、お約束どおりにその名前の変数と解釈してその後文字列値と解釈して……となる
0757nobodyさん
2015/04/27(月) 20:42:05.18ID:???クラス定数にはコンパイル時に解決できる式しか書いてはならない
実行時に評価する必要があるものはstaticなり使おう
0758nobodyさん
2015/04/28(火) 17:28:38.52ID:???0759nobodyさん
2015/04/28(火) 23:31:13.40ID:5FBT/PjKこの場合、プロセスを終了させないでwhile (my $q = CGI::Fast->new) {}などでループさせ使いまわすため
メモリ内容がそのまま残り、初期化処理や設定値等をそのまま使いまわせますが
PHPではこのメモリ内容の保持・使いまわしは可能なのでしょうか?
0760nobodyさん
2015/04/29(水) 02:21:20.64ID:???どちらかというとファイル操作を共有メモリ操作に置き換えたかたちであって
fpmの同一のプロセスでもしくは別々のプロセスで配列やオブジェクトを保持し続ける感じのものではない
f(ast)cgiまわりやphp-fpmあたりではそういった機能は提供してない、だと思う
元々fastcgi等の目的はメモリの維持ではなくプロセス起動やコンパイルのオーバーヘッドを減らす・無くすこと
0761nobodyさん
2015/04/29(水) 15:41:54.33ID:???a
aa
0762nobodyさん
2015/04/30(木) 08:48:28.32ID:lExAyQ29【PHPのバージョン】 5.5.24
【連携ソフトウェア】 Apache 2.4.12
【質問内容】
定数がこう設定されていて
define('HOGE', 1);
1か0かで設定を変えられるようになっています
それで、 「HOGE が 0 だった場合は」という条件式は
どう書くのが正しいのでしょうか?
理由も知りたいです
[1] if (!HOGE) {}
[2] if (HOGE === 0) {}
[3] if (HOGE === FALSE) {}
[4] 他?
0763nobodyさん
2015/04/30(木) 11:22:37.54ID:???!!HOGE === FALSEとかならまだわかるけど3はおかしい
0765nobodyさん
2015/04/30(木) 14:46:43.25ID:???HOGEを間違えて定数ではなく変数$HOGEと書いてしまった場合
またHOGEをHAGEと書いてしまった場合(※Noticeが出る)、さらに、$HAGEと書いてしまった場合
この辺を考えて、どういう動作を期待してるのか考慮のうえで選べば良いんじゃないかな
とりあえず[1]はちょっと危ない、設定値を考えると[2]辺りが妥当(あとからソースみたときに設定値との比較で理解もしやすい)、
[3]は……型変換が入ってfalseになってしまって欲しいか否か、個人的にはおすすめしない
0766765
2015/04/30(木) 14:49:14.96ID:???2値でいいならそもそも定義自体をtrue / falseにするほうがいいとは思う
0767nobodyさん
2015/04/30(木) 16:41:06.12ID:biWQeheW0768nobodyさん
2015/04/30(木) 16:49:12.78ID:???デバッグ
0769nobodyさん
2015/04/30(木) 17:05:14.66ID:???0770nobodyさん
2015/04/30(木) 17:23:06.01ID:biWQeheW擬似だけど
if (有効化スイッチ == on) {
// 機能に関するロジック
}
else {
// 何か。
}
↑よく作るし気にならない。
if (有効化スイッチ == off) {
}
// else なし
↑こういう単独ブロックっていつ作るんだろ?と。
デバッグも同様で、if debug ... else ... は普通に書くけど、if !debug ... というのを書く機会が思いつかず。
0771nobodyさん
2015/04/30(木) 17:40:18.41ID:???テスト・デバッグのときは行わない処理を入れたい(テスト時はDBへの書き込みしないとか?)
そこでテスト・デバッグ時は代わりに行う処理がない、というとき
これが正も逆もあるようなめんどくさい状況だと使わざるを得ない
あとは、elseを使わないifみたいな条件判定としては、try、catch、の後で何か処理したいときとか
tryの中に大筋で2パターンの処理に分かれてて、どっちでException投げてきたのかわからない、
値をチェックしてどっちの状況でも適合するように準備とか
0772nobodyさん
2015/04/30(木) 21:32:21.96ID:biWQeheWif (デバッグモード) {
// DB書き込みをしない
}
else {
// DB書き込みをする
}
という形にすればいいよね。とだけ言うと詭弁に思われるかもしれないから、
if (デバッグモード === false) {
// DB書き込みをする
}
というブロックが唐突に現れるより意図が明確だと思うんだけどどうかな。
else { DB書き込みをしない }ってつけるのはもっと不自然だと思う。
Exceptionの件については例外ブロックの作り方がおかしいような気がするけれど、
こちらの考えが及んでないだけならごめん。
0773nobodyさん
2015/04/30(木) 22:34:39.26ID:???on/offスイッチがoffの時だけやりたい処理とは何かの質問じゃないな
さらに元の話題は定数定義のやりかた・条件分岐の正確性の問題だ
例外処理だって、例外処理をどのように設計し組むかはもはや哲学
例えばtry入れ子をどう考えるかひとつとっても非常に深い問題だ
0774nobodyさん
2015/04/30(木) 22:39:07.12ID:???計算コストが変わらずコーディング規約の縛りがないなら
可読性を重視するかどうかも含めて好きに選べば良い好みの問題だと思う
個人的には、単独ブロックの使い道かと思ったら可読性の話題になってて後出しに見えるがな
0775nobodyさん
2015/04/30(木) 22:45:15.00ID:biWQeheWon/offスイッチがオフのときだけやりたい処理は今のところ出てないような。
まぁ、本来の話で言うなら、そもそもHOGEが肯定形のスイッチなのかどうかがまず一つ。
否定形のスイッチであるなら、意味を逆にするべきだと思う。
その上で、if (!HOGE) {} ではなく、if (HOGE) {}となるようにしたほうがよいだろうというのが提案。
0776nobodyさん
2015/04/30(木) 22:55:49.01ID:???さらにいずれの書き方が可読性の面で
より良いものかは統一的な見解はありえない
offの時だけやりたい処理なら
例えばDEBUG_LEVELを指定しておいてレベルごとに詳しく書く
他方DEBUG_LEVEL===0&&何かエラー発生なら最後の最後で警告文を出す
こんなやり方でも絶対こう書かねばならない必要性は存在しないか
存在していても簡単にこうと説明できないだろうし不自然・おかしいといくらでも評論できる
0777nobodyさん
2015/04/30(木) 22:57:55.59ID:biWQeheW>>770 で無効化スイッチではなく有効化スイッチと書いたのは肯定形にするため。
>>772 はfalse判定よりtrue判定の方が読みやすいよねという確認のため。
そんなおかしなレスはしていないつもりなんだけどなぁ。
isSuccessを作る場合は、成功時のブロックを作るのが目的だろうし
hasErrorを作る場合は、失敗時のブロックを作るのが目的でしょうと。
なのに、なぜ作ったスイッチが偽であるときの単独ブロックを作るの?という素朴な疑問だよ。
0778nobodyさん
2015/05/01(金) 10:36:29.29ID:???0 1 2と値を持つなら、それはフラグじゃなくてステータスです。
0779nobodyさん
2015/05/02(土) 23:55:29.72ID:???何らかの日本語対応文字コードで記述されている長さ不明の文字列を
単純なサイズ (~~~bytes) 指定で文字列長の上限を設けるかたちで途中で切ることを考えるとき
単純にsubstrで切るとマルチバイト文字の途中で切れるかもしれない、mb_substrで切るとbytesで切れない、
Shift_JISやEUCは2bytesだけどUTF-8などは3bytesと違いがある
やはり、泥臭くても
文字コード判定→マルチバイト文字の長さ n を取得→
指定サイズで切ったあと最後から n bytes分取ってmb_detect_encodingとかにかける→
失敗したら切る場所を指定サイズから1文字少なくしてリトライ
ってやるか、それか文字コード完全決め打ちして少し処理軽減するくらいしかないのだろうか?
0780nobodyさん
2015/05/02(土) 23:56:24.64ID:coJVhBbG0782nobodyさん
2015/05/03(日) 00:13:02.35ID:TtbVeIFQ本題のn-bytesに収まるようにマルチバイト文字列をtruncateするような関数は心当たりないので、
探しても見つからなければ泥臭くやるしかないかな…
0783nobodyさん
2015/05/03(日) 00:17:47.47ID:???どうやってたかな
0784nobodyさん
2015/05/03(日) 00:46:31.88ID:2lX5h8+Aうわーお知らなかった・・・教えて下さってありがとうございます
やっぱ泥臭くやるしかないですよね
こういう処理が必要なケースを考えると裏の管理用のログ吐き等に限らないし
まだ出くわしてないけど検索結果の一部表示とか出来たらサイズで指定したい場合とかありそうだ
0786nobodyさん
2015/05/10(日) 13:12:25.93ID:e4eaXZ/I0787nobodyさん
2015/05/10(日) 23:37:51.42ID:???http://daemonforums.org/showthread.php?t=7587
これ見る限り動かないわけじゃなくて設定が悪いっぽいが。
0788nobodyさん
2015/05/12(火) 14:23:40.06ID:c0kK6DYp俺が悪いみたいな言い方はやめてもらえませんか
こんな使いにくいものを作ったゴミが悪いのでは
0789nobodyさん
2015/05/12(火) 14:58:46.59ID:n9hvbdSt一応確認だけど、そのゴミってPHPをさしてるの?
0790nobodyさん
2015/05/13(水) 00:11:24.03ID:LCIAHadrそのページの画面幅を取得するもの(WebAPI)を作りたいのですが
そんなことってかのうでしょうか?
0791nobodyさん
2015/05/13(水) 03:00:29.02ID:???0792nobodyさん
2015/05/13(水) 10:02:08.84ID:LCIAHadr自動化できないのでしょうか?
0793nobodyさん
2015/05/13(水) 10:36:14.29ID:???無指定の場合のボーダー幅やtextareaのサイズなんかもブラウザによりけりだから誤差が出る。
ページの両脇全面に貼られてる広告領域をどうするかとか基準づくりも必要。
ソースコードやスタイルシートを解析する手法だとページによっては可能。
環境(解像度、OS)を指定して実際にその環境で開いてキャプチャーしたものを画像解析なら幅広く対応可能。
探せばありそうな部分的に作業を助けてくれるサードパーティー製ツールがあるとしても、
どっちもそれなりにスキルが必要で難しい作業になると思うが。
0794nobodyさん
2015/05/13(水) 15:35:12.79ID:???0795nobodyさん
2015/05/13(水) 15:39:48.44ID:yL8Uii6C0796nobodyさん
2015/05/13(水) 16:15:14.66ID:???ページの幅なんか取得できて何が嬉しいの?
0797nobodyさん
2015/05/13(水) 16:19:42.73ID:???そのソース見てこい
0798nobodyさん
2015/05/13(水) 22:07:13.00ID:BtUlN0Fpよかったら、見てみて。
https://blngs.com
0800nobodyさん
2015/05/16(土) 09:49:05.03ID:ctEjgOJq0801nobodyさん
2015/05/16(土) 10:27:14.40ID:xbZnLJlD今PHPを独学で勉強してるんですが、先ほどUNIXタイムという考え方?というか概念?を知りました
でもそれを知った時に
「なぜいちいち1970年1/1 00秒からの経過時間を一旦出してから現在の日付等に変換するの?」
と疑問に思いました。
素人考えですと「素直にdate関数があるんだしそれで一発で求められるじゃん」と思ったんですが・・・
UNIXタイムって回りくどいやり方にしか感じないのですが、どうしてこのような方法がとられるのですか?
0802nobodyさん
2015/05/16(土) 10:49:04.16ID:mqSZICsNdate関数はなに基準で日付求めてる?
0803nobodyさん
2015/05/16(土) 11:00:26.53ID:mqSZICsN名は体を表しているほうがわかりやすいのでSESSIONIDに変えてもよいし変えなくてもよい
0804nobodyさん
2015/05/16(土) 11:20:19.48ID:xbZnLJlDあーdate関数自体がUNIXタイムを基準にして求められているという事ですか?
なるほど、よく考えたらコンピューターは人間ではないから「いつからいつまででこの日にち」と考えられないので、ある特定の日付を基準に設ける事で色々な日付を求めているという事でしょうか?
素人なのですごくザックリとした解釈ですが・・・
0806nobodyさん
2015/05/19(火) 01:46:28.69ID:gWJF6hzWテキストエリアから改行されて入力されたものを表示させる際に、どうしてもその改行を反映させたいので
htmlspecialchars($str, ENT_QUOTES, ‘UTF-8′);でエスケープしたあとにstr_replaceを使って<br />だけを置換させて改行タグのみ反映したいのですが
どうしても画像のような結果になってしまいます。色々試して、h()を外してエスケープさせずに$commentを表示させてみるとちゃんと改行が反映されるので恐らく自作関数のほうで何かがダメっぽいんですが、いくら試したり調べても全然解決に辿り付きません・・・
なにがダメなんでしょうか・・・素人なりに「もしかして記述してる位置がダメなのかな?」とか思ったりもしましたが、phpの処理って上から順に処理されてるんですよね?
http://uproda.2ch-library.com/877752q2U/lib877752.png
0807nobodyさん
2015/05/19(火) 03:21:17.72ID:mQWlTTlu  と ⁄ ってなんですか
0809nobodyさん
2015/05/19(火) 04:58:21.26ID:mQWlTTluこの場合、配列になってないと何が問題なんですかね。
0811nobodyさん
2015/05/19(火) 12:10:04.46ID:gWJF6hzWおはようございます。書き込み内容はdatファイルに入れるようにしていて、書き込み処理前のソースはこうなってます。
http://uproda.2ch-library.com/877790Hti/lib877790.png
$serchiが配列になっていないとダメなんでしょうか?
>>807
半角スペースとバックスラッシュです
0812nobodyさん
2015/05/19(火) 12:12:07.45ID:gWJF6hzW改行について調べまくってたのでごちゃごちゃになってました・・・
0814nobodyさん
2015/05/19(火) 12:40:21.84ID:???自分で仕様を想像しないほうがいいぜ
0815nobodyさん
2015/05/19(火) 13:23:53.71ID:mQWlTTlu> 半角スペースとバックスラッシュです
いいえ。
0816nobodyさん
2015/05/19(火) 13:28:03.75ID:???0817nobodyさん
2015/05/19(火) 14:12:22.48ID:gWJF6hzW半角スペースとスラッシュのの文字参照がダメだったんですね・・・直接打ち込んで<>だけ文字参照にしたらいけました!
本当にありがとうございます。昨日に朝から夜中までずっと悩んでたので凄くスッキリしました・・・
>>816
Atomってやつです!
0818nobodyさん
2015/05/19(火) 18:33:03.54ID:???日本語が不自由だ。
0819nobodyさん
2015/05/19(火) 22:05:04.29ID:???string nl2br ( string $string [, bool $is_xhtml = true ] )
改行文字の前にHTMLの改行タグを挿入する
http://php.net/manual/ja/function.nl2br.php
0820nobodyさん
2015/05/20(水) 11:45:54.08ID:???今、javascriptからphpで画像を保存してその画像をマスタ画像にimagepngでマージするっていう処理
をしているのですが排他制御が上手くいかず、全く別のipから同時に起動すると
片方の処理が無視されてしまいます。
(もちろん少しタイミングをずらすと二人とも上手くいきます)
flockが上手く行ってないのでしょうか
ちなみにサーバーはロリポップを使っているのですが
どうやらflockは使えないとの話なので
排他制御の方式をロックファイル生成に切り替えたところ
こちらも上手くいかないようでした
若干エスパーになってしまいすみませんが
何かヒントになることを教えて頂けたらと
片方の処理が終わるまで処理を待機させたいのです
phpのバージョンは5.3です
0821nobodyさん
2015/05/20(水) 12:36:27.76ID:???0822nobodyさん
2015/05/20(水) 13:16:04.87ID:ubUGGxxs再度伺わせて下さい
今、javascriptからphpで画像を保存してその画像をマスタ画像にimagepngでマージするっていう処理
をしているのですが排他制御が上手くいかず、全く別のipから同時に起動すると
片方の処理が無視されてしまいます。
(もちろん少しタイミングをずらすと二人とも上手くいきます)
flockが上手く行ってないのでしょうか
ちなみにサーバーはロリポップを使っているのですが
どうやらflockは使えないとの話なので
排他制御の方式をロックファイル生成に切り替えたところ
こちらも上手くいかないようでした
若干エスパーになってしまいすみませんが
何かヒントになることを教えて頂けたらと
片方の処理が終わるまで処理を待機させたいのです
phpのバージョンは5.3です
0823nobodyさん
2015/05/20(水) 14:36:31.41ID:???どういうの想定してんのかいまいちわからない。
たぶん大きなキャンパスがあって、部分部分を別々の人が書いてるイメージなんだろけど、
編集してる人はリアルタイムで最新の画像の情報がわかるようになってるのかとか、
そうでない場合マージする部分は編集の重複が起こる可能性があるのかとか。
08240822
2015/05/20(水) 14:55:45.04ID:ubUGGxxs返信ありがとうございます
はい、御察しのように、一つの大きなキャンバスの部分部分を別々の人が編集しているのですが
保存すると同時に画像を生成し、そのままマスタにマージしに行きます。
マージされた画像は再読み込みをしてキャンバス上に表示されますが
リアルタイムでの表示はできません、また、重複も構わないです。(マージが遅い方が優先される)
0825nobodyさん
2015/05/20(水) 15:17:38.43ID:???編集者が多くなるほどブラウザとのタイムアウト考慮してcronで非同期でやるのが好ましいが
使ったことないけどロリポップじゃ期待できなそうだし
0826nobodyさん
2015/05/20(水) 15:42:38.06ID:+OEHlOHz> こちらも上手くいかないようでした
ここが気になる。
排他かけるタイミングを間違えたとか、何かそういう要因がありそう
0827nobodyさん
2015/05/20(水) 16:26:01.20ID:???DBで言うファントムリードやらかしてるだけの話に見えるが
ロックを取る区間に誤りがあるんじゃない?
どっちにしてもソースがなきゃなんとも言えない
0828nobodyさん
2015/05/20(水) 17:49:59.61ID:SRGb65SGこういった場合は付かない(例: str_replace)といった命名規則はあるんでしょうか?
0829nobodyさん
2015/05/20(水) 18:09:43.24ID:???0830nobodyさん
2015/05/20(水) 18:20:41.46ID:???個人がちょっとしたツールとして開発し始めたもんだからそんなもんだろう
0832nobodyさん
2015/05/20(水) 20:08:02.59ID:???str_replace ← replace
str_split ← split
str_repeat ← repeat
strlen ← length
strpos ← position
strchr ← character
0833nobodyさん
2015/05/20(水) 20:10:50.51ID:+OEHlOHzgetenv
get_include_path
0834nobodyさん
2015/05/20(水) 20:37:55.29ID:???レンタルサーバに最初からLAMPが入っているだけでいいのか
自PCやVPSにLinuxいれてAMPを追加してそれなりのコピペ設定が出来ればいいのか
GUIはいれずCUIで完璧に構築してviなんかでPHP編集すらLinuxでやることを求めてるのか
0836nobodyさん
2015/05/20(水) 23:30:34.90ID:???何かオススメな奴ってありますか?
08370822
2015/05/20(水) 23:39:13.93ID:GqCjN2mT無事解決しました
原因はファイルロックのタイミングが間違っていたことで、
基本的な所で間違っていました
どうもありがとうございました
0839nobodyさん
2015/05/21(木) 03:57:08.81ID:SK5s5hf9よかったおめでとう。
0840nobodyさん
2015/05/21(木) 05:55:15.80ID:9jA4JBSh情報科学科?電気電子工学科?物理学科?
0841nobodyさん
2015/05/21(木) 09:30:33.04ID:???0842nobodyさん
2015/05/21(木) 15:13:52.42ID:???新しい1つの分野として研究して、新しい理論を組み立ててみたものの、
(部分部分は合致しても)世界中探しても同じ分野を研究してる人はいなくて、
人材育成から始めないと理論の証明が難しいというのはよくある話。
何が言いたいかというと、全ての分野を網羅とか無理。
もっと明確な目標をもったほうがいい。
0843nobodyさん
2015/06/04(木) 23:31:21.63ID:JiS2cWy0やはりC#などでwinツールを作る必要がありますか?
0846nobodyさん
2015/06/12(金) 09:28:37.14ID:T4y3mbCd【PHPのバージョン】5.3,3
【質問内容】
.htaccess で動的URLを静的URLに見せかけていたのですが、
サーバー移転を行った所、ブラウザのURLも変換されるようになってしまいました。
RewriteRule ^blog\/([\w\-]+)\/ http://%{HTTP_HOST}/blog.php?dir=$1 [L]
↑ [L]が利かなくなってしまった
原因は分かりますでしょうか?
事情により元の環境に戻す事は出来ません。
0847nobodyさん
2015/06/12(金) 09:43:43.97ID:???以上
0848nobodyさん
2015/06/12(金) 09:47:45.89ID:T4y3mbCdサーバーのどこの設定に問題ありますか?
使用しているのはさくらVPSです
0849nobodyさん
2015/06/12(金) 15:11:37.05ID:???Q 問題です。
この現象はどこに関連があるでしょう。
次の中から選んでください。
1)CentOS rc.conf
2)httpd httpd.conf or .htaccess
3)php php.ini
4)その他
0850nobodyさん
2015/06/12(金) 17:20:20.68ID:9nmmwY7w[L]が正しく作用しているかどうかと、クライアントが見ているURLが変換されることの因果関係は?
■ このスレッドは過去ログ倉庫に格納されています