【PHP】下らねぇ質問はID出して書き込みやがれ 128
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 127
http://kohada.2ch.net/test/read.cgi/php/1363698829/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
テンプレここまで。前スレ
>>1000 を踏んでも次スレが見つからなかったので建てました。
勝手にテンプレにすんなボケ
死ねカス
9 :
nobodyさん :2013/05/27(月) 00:34:12.76 ID:QfhA6lTw
フレームワーク?ってなにが美味しいんですか? 人の書いたのってなんか中身がわかんないから心配だし、フレームワークとか余計に面倒臭いんですけど…
sohoとかクラウドワークスとか見ててもphpの案件ばっかりだな perlとかrubyとかやってたってしょうがないよ
【OS名】Debian 7 【PHPのバージョン】5.4.4 【連携ソフトウェア】特になし 【質問内容】 Debian 7 で、apt-get で普通に Apache や PHP を入れただけの環境なんですが、 phpinfo() の結果を見ると、_SERVER["REQUEST_TIME"] が -472361226 のような 負の数になっています。 _SERVER["REQUEST_TIME_FLOAT"] のほうは正常に 1369622206198 などという数値を示します。 Debian 6 のころとバージョンが変わって、 何か設定しなければならないことが増えたのでしょうか。 それとも、何らかのバグでしょうか。 同じような現象に遭遇された方がいらっしゃったら、情報をいただきたいです・・・。
12 :
11 :2013/05/27(月) 13:24:05.88 ID:???
11 です。 自己解決しました。 libapache2-mod-php5 ではなくて、 libapache2-mod-php5filter がインストールされていたのが原因でした。 libapache2-mod-php5 をインストールしなおしたら解決しました。 libapache2-mod-php5filter なんて、いつ入ったんだろ・・・。 どうもお騒がせしました。
>>9 あれは奴隷製造機だからな あれをちゃんと使えないと立派な奴隷になれないぞ!
15 :
nobodyさん :2013/05/27(月) 18:40:37.66 ID:QfhA6lTw
あの、場違いな真面目な質問(悩み?)です。 以前はWindowsネイティブなアプリも請け負ってましたが、最近は全くありません。もうほとんどWebアプリだけです。 クライアントは全て中小零細企業ですが。 FORTRAN77からプログラムを初めてCの開発実績が一番長いのですが、現在はPHPとSQLがメインです。SQLはオラクルシルバー持ってます。 一番重要なのはデータベース設計なんで、プロフラム言語は別になんでもいいんですが、ほんとにPHPは将来性がないんですか? まさかpythonでやれとかRubyに行けとか、家族を抱えた職業人の私に言わないですよね? Javaとか無理ですよ、現実。 だって、受注後0.5〜1ヶ月くらいで実運用求められる案件ばっかですから。 有識者のご意見下さい。
>>15 Java人間雇えば? 仕事もらえるネットワークが財産であり武器である
>>15 PHPに将来性があるかどうかを心配しているようだが、
言語の有用性の推移に関する未来予測を行う方法は数多く提案されていて、
予測不可能だとする従来の学説と真っ向から対立する形になった。
肯定派と否定派の合同の研究班が結成され、
いくつかの推測方法を検証したところ、
全くのでたらめと言うべき結果も数多くあった一方で、
統計学的に有意とされる結果も数例ほど報告された。
その比率は優位な方法が全体のわずか5%という微々たるものではあったが、
追跡調査ではそのうち約半数がやはり有意な結果であった。
研究班はこの推測方法でプログラミング言語の将来の有用性を測ることが
不可能であるとは断言できる理論は今のところ確立されていないという結論に達した。
その推測方法をPHPのコードとして実現したものがこちら <p>PHPには将来性が <?php echo array_rand(array('ある', 'ない')); ?> </p>
あのー、array_randが返すのは配列のキーですが
わろた
23 :
nobodyさん :2013/05/27(月) 22:15:29.80 ID:BO/BVLbf
静的クラスを明示する方法って、 コンストラクタをprivateにするくらいですか?
何言ってるかわからない
25 :
nobodyさん :2013/05/27(月) 23:56:42.17 ID:BO/BVLbf
http://msdn.microsoft.com/ja-jp/library/79b3xss3 (v=vs.80).aspx
C#では
static class CompanyInfo{
}
のように静的クラスを宣言できますが、
PHPで
static class Hoge {
}
と記述したらエラーになりますよね
だから静的にしか使って欲しくないクラスは、
newした時点でエラーになるように、
コンストラクタをprivateにするとか、コンストラクタで例外を投げるとか、
あまりスマートではないけれど、それくらいの方法しかないのでしょうか?
ということです
静的プロパティを保証できないんじゃない?
>>15 何歳?Web系は言語よりhttpの知識の方が必要だよ。
スマホのネイティブアプリやれば?
【OS名】Ubuntu12.03 【PHPのバージョン】5.3.10 【連携ソフトウェア】MySQL 【質問内容】 whileからのmysqli_fetch_rowやassocを使った際、最後の一行が読み込まない状態で困っています。 例えば「v,w,x,y,z」の5つを入れて参照すると、v,w,x,yのみ表示されzが読み込まれない状態です。 ぐぐってもそれらしいコメントが見つからなかったため質問しますが、わかる方いらっしゃいますか?
12.04でした。
どうやって読んでる? 一回足りないだけのような
31 :
nobodyさん :2013/05/28(火) 15:16:24.29 ID:3sZRAxgy
>>27 ありがとうございます。
えっと、30代です。
HTMLの知識ってなんですか?
全然煽るつもりも喧嘩売るつもりもないんですけど、
「知識」ってほどのものなんかなんにもないですよ、HTML
ちょっと意味がわからないです。
あと、スマホのネイティブアプリとか言いますけど、趣味でやってる学生じゃないのでご理解ください。
作る「だけ」なら、もちろん作れますよ、当たり前だけど。
やっぱ色々考えてみると、当面零細企業相手の仕事ではPHPと各種データベースの組み合わせしか選択肢がないですね、現状。
アカデミック()な分野はべつとして
DBやってるならDBの設計終われば言語何でもいいのはわかるべ それに複数言語扱うのも大したことは無い、phpやりながらjava慣れとけばいい 環境作る方が大変だけどな。 httpはやればやるだけできること広がるから何でも手をつけておいた方がいいよ。
痛々しい30代ですことw
>>31 > HTMLの知識ってなんですか?
10年以上前の、超しょぼいページ遷移しかしないWebアプリしか作らないなら、それほどHTMLの知識は要らない。
サーバ側で静的ページを生成して戻すだけだし。
そこそこ見栄えが良く使い勝手が良いWebアプリを作るなら、CSS, HTML, Javascriptの知識が最低必要。
35 :
nobodyさん :2013/05/28(火) 15:59:24.99 ID:3sZRAxgy
>>34 いやいや(苦笑)
>CSS, HTML, Javascriptの知識が最低必要
そんなの分かってるから
36 :
nobodyさん :2013/05/28(火) 16:00:07.20 ID:3sZRAxgy
ごめん、ここで聞いた俺が馬鹿だった 謝る m(__)m
HTMLじゃなくてhttpと書いたのは、SOAPを始めとするプロトコル関連も含んでるんじゃないのか
こういうおっさんに限ってHTML4.01 CSS2.1止まりなんだよなww
30代越えるとhttp=インターネット=HTMLだから赦してやってくれ
40 :
nobodyさん :2013/05/28(火) 16:03:21.97 ID:3sZRAxgy
41 :
nobodyさん :2013/05/28(火) 16:03:51.27 ID:3sZRAxgy
>>36 貴方や会社の将来設のことを
たかが言語に求められても困るでしょう。
PHPなんてのは ただの道具ですよ。
phpの質問スレだからな、たしかに聞く場所間違ってるw
>>35 > そんなの分かってるから
いや、わかってないと思うよ。だってサーバサイドの話しかしてないじゃん。
人の行く 道に裏あり 花の山 いずれを行くも 散らぬ間に行け
>>30 足りないだけなのでしょうか。
以前も同じような構文で作ったんですがその時は最後までループして吐き出してくれたので大丈夫だと思ったんですが・・・
>>31 いや、HTMLじゃなくて、HTTPプロトコルのこと。
パケットを見るとかじゃなく、単純にどうやってWebは動いているかって知識。
ノウハウと言い換えても言いけど。言語仕様なんてたいしてハードルじゃない。
まぁ、メールの問い合わせフォームとかならそうでもないけどね。
ネイティブアプリ作れるなら、そっちの方が需要あるよ。
51 :
nobodyさん :2013/05/28(火) 20:44:35.96 ID:02y4dFlJ
HTTPS抜きでやるつもりかよ PHP厨はやっぱダメだな
意味わかんね 知ったかで文句付けてみただけのようなw
<?php $moji = array( 'iti' => '<html>', 'ni' => '<body>' ); ?> <html> <head> <meta> <title>ソース変換</title> </head> <body> <form> <div class="container"> <label for="sosu">ソースを表示</label><br /> <textarea rows="5" cols="30" ID="memo" name="memo"> <?php print($moji['iti']); ?> <?php print($moji['ni']); ?> </textarea> </div> </form> </body> </html> テキストエリアで改行するにはどうすればいいですか? やりたいことは、htmlやphpのコードをテキストエリアに貼り、 htmlspecialcharsで文字列を置き換えるということです。
>>53 IDが出ていないので、お答えしないことになっています。
phpというよりほとんどhtmlの話だけど、ID出してね
ID出す前に一言言わせてくれ。 得体のしれないブログ記事をつまみ食いして質問してくんな。 参考にしてるソースが古過ぎる。 古いソースは問題が多い。 新しい記事を参考にして書いたんだったらその参考にしてる記事がクソ。 記事の信憑性を見極めるのにはそれなりの知識が必要だから、 最初は新し目の書籍を一冊買ってとりあえずそれだけでやるといい。
\n
これは、PHPの閉じタグ直後の改行コードの扱いの仕様の問題
俺がやりたいことをやってるサイトがあるんだが人のサイトだからここに 貼るわけにもいかず・・・
WWWの原則としてリンクは自由であるべきだ
>>59 閉じタグの後に改行しなくちゃいけないとでも思ってるのかよ
>>62 *PHPの*閉じタグの直後の改行コードは、無効にされますので、
<?php print($moji['iti']); ?>
<?php print($moji['ni']); ?>
だと、?>のあとの改行は出力されず <html><body> と出力されます。
<html>
<body>
としたければ、 1行目と2行目の間で2回改行するとか、そういうことです。
なんだ質問者かよ、ID出さなきゃ答えられないって言ってるだろ
65 :
nobodyさん :2013/05/29(水) 13:12:38.05 ID:16tE3DEI
>>63 phpじゃなくhtmlでの<br>改行とかならわかるんだけど
テキストエリアなので困ってます。
>>65 テキストエリアですので、 <textarea>タグ直後でなければ、
htmlソースの改行コードで改行されます。
<?php print($moji['iti']) ."\n"; ?>
とするか、
<?php print($moji['iti']); ?>
<?php print($moji['ni']); ?>
とやってみてください。
\r\n
69 :
カミカゼ :2013/05/29(水) 22:53:50.60 ID:RY40XdSy
関数、クラスをfunction.phpにまとめています この読み込みの挙動について聞きたいです function.phpに大量の関数、クラスがある場合は、includeに時間がかかるのでしょうか それとも呼び出した関数、クラスのみ探して読み込んでくれるのでしょうか クラスの挙動についても聞きたいです 30つ以上メソッドがあるクラスをインスタンス化して、5行程度の1つメソッドの使う場合の 負荷はどのようなものになるのでしょうか?
71 :
nobodyさん :2013/05/30(木) 01:46:56.46 ID:MG1e5+Bh
すみませんID忘れていました
72 :
nobodyさん :2013/05/30(木) 02:41:01.79 ID:EYpF140+
すみませんID忘れていました
クラスは一つずつ別ファイルにして オートロード機能を使うと良いよ
>>74 オートロードってパフォーマンス的に駄目駄目じゃない?
OSのメモリ上にファイルのキャッシュが残ってればそうでもないのかな?
APCでキャッシュしちゃえば全然問題ない。
78 :
nobodyさん :2013/05/30(木) 18:07:25.88 ID:MG1e5+Bh
>>76 質問はID出せよ知能障害
お前みたいに好き勝手やってるゴミは社会の迷惑
>>76 使いもしないファイルを読み込むほうが・・・
って話とどっちが上か下かは状況次第じゃん
>>76 includeの可能性があるファイルが10個あるとして
全てロードだとコスト10固定、
autoloadにしているとコスト0〜10だと思うけど、
オートロードでダメな理由って何なの?
82 :
nobodyさん :2013/05/31(金) 03:30:57.93 ID:0pyQKPZl
掲示板の投稿で 本文の70%が半角の場合は投稿拒否をしたいです 半角判定の方法はわかったのですが 〜%で拒否の部分のコードをどう書けばいいのかわかりません ヒントだけでもいいので助言ください
$lenOfOriginal = mb_strlen($src); $hankaku = preg_replace('/[^\x{FF65}-\x{FF95}]/u', '', $src); $lenOfHankaku = mb_strlen($hankaku); $ratioOfHankaku = $lenOfHankaku / $lenOfOriginal;
if ($ratioOfHankak > 0.7) { throw new HogeHogeException(); }
85 :
nobodyさん :2013/05/31(金) 05:05:18.35 ID:Vx9Hevlv
すみません、ドットインストールのCakePHPの講座をやっているのですが、 よくわからないバグが生じております。 ブログにコメントを付けるものなのですが、endforeachが不正と表示されて、 処理が進まないエラーが生じました。 一応、書き加えたソースは以下のものです。 <ul> <?php foreach ($post['Comment'] as $comment); ?> <li><?php echo h($comment['body']) ?> by <?php echo h($comment['commenter']);?></li> <?php endforeach; ?> </ul> エラーが生じるのは、この<?php endforeach; ?>です。 ただ、他のソースでも、この部分はきちんと処理が実行でき、それをコピッてきたので、 スペルミスの可能性は少ないかと思います。 何卒、お願いします。
なんだコレフレームワークってほんと別言語だな
viewは大体こういう書き方のが多いね モデルやコントローラーは普通のPHPクラスで書かれてる
ここでID出せID出せっていってるやつは何目的でこのスレにいるんだ?
たいしたスキルもなく教えることもできないがIDだけにはこだわって
言い続けてる。お前は自閉症児かw
>>79 こういうやつなw何が目的なのか答えろよ引きこもりニートが
まっとうな言動をしてるようでお前の方こそ人を不愉快にしてることに
気づかないのか?
ようつべのコメントでもまともなコメをしてるようで相手をただ単に攻めてるだけ
ってのよくあるけどまさにそんな感じだな
お前みたいに自分の言動が人にどう思われるのかわからないで好き勝手にやってる
ゴミは社会の迷惑だから早く北朝鮮の炭鉱へ行って
>>85 foreach();
じゃなくて
foreach():
でしょ
90 :
nobodyさん :2013/05/31(金) 09:52:51.73 ID:Vx9Hevlv
>>89 わかりました、ありがとうございます。
foreach():
〜〜
endforeach;
ですね。
>>88 言い回しはともかく、IDを表示するのがルールなんだから答える必要はないと思うよ。
君の言動?も相当人を不愉快にさせてると思うけどね。
92 :
76 :2013/05/31(金) 11:53:17.47 ID:2B6R5nZc
話の流れで疑問が出たときもID必要なのね。
>>81 > オートロードでダメな理由って何なの?
一発でパスを確定できるファイル名でPHPファイルを置いているなら問題ないけど、
ロード候補ディレクトリが複数になる場合は、ファイルの存在チェックが必要になる。
そのオーバーヘッド分が馬鹿にならないんじゃないかと思った。
SPRに準拠したnamespaceを定義していて、きれいにPHPファイルを配置してるなら
問題ないけど。
93 :
76 :2013/05/31(金) 17:18:33.14 ID:???
時間ができたのでちょっとだけ実験してみた。 一つのクラスをnewするだけのコードを、"ab -c 32 -n 10000"でrequire_onceとautoloadを比較。 PHP 5.4.10。APC有効。開発用Macで実行。 require_once版: Requests per second: 8452.75 [#/sec] (mean) Time per request: 3.786 [ms] (mean) Time per request: 0.118 [ms] (mean, across all concurrent requests) autoload版: Requests per second: 6625.91 [#/sec] (mean) Time per request: 4.830 [ms] (mean) Time per request: 0.151 [ms] (mean, across all concurrent requests) autoloadの方が20%程度くらい遅いけど、そこそこぬるい環境だったら問題ないのかな。
自分でできるんなら、最初から自分でやれアホ
必要なファイルの数 = N1 無駄なファイルの数 = N2 ファイルロードのコスト = L オートローダによる1ファイルあたりのオーバーヘッド = A (オートローダのファイルロードコスト = L+A) とした場合のファイルロード全体のコスト C 通常のファイルロードコスト C1 C1 = (N1+N2) * L オートローダ使用時のコスト C2 C2 = N1 * (L+A) オートローダ使用時の差分 C2-C1 N1*A - N2*L
現状のフレームワークでプラグイン多用した構成の場合は ファイルの存在チェックのほうがはるかにコストが低い場合が多いと思うけどな。 素で書き起こした機能限定のシステムじゃなければオートローダ使わない手はないと思うけど。
97 :
76 :2013/05/31(金) 17:56:07.06 ID:???
>>95 うーん、そもそもその「無駄なファイルの数」というのが何なのかわからないんだ。どういうこと?
ひょっとして、ロードする必要が無いファイルもrequireしてるってこと?
98 :
76 :2013/05/31(金) 18:04:22.71 ID:???
あ、こういうことか。 Foo.php: <?php class Foo { public function hoge() { $o = new Bar(); } public function fuga() { $o = new Baz(); } Bar.php: <?php class Bar {} Baz.php: <?php class Baz {} index.php: <?php require_once 'Foo.php'; require_once 'Bar.php'; require_once 'Baz.php'; $o = new Foo(); $o->hoge(); としたとき、Baz.phpのロードがいらないってことか。
99 :
95 :2013/05/31(金) 18:04:47.74 ID:???
え、だからオートローダが有利な場面があるんじゃないの? おかしい?
100 :
76 :2013/05/31(金) 18:09:16.63 ID:2B6R5nZc
ところで、
>>98 のような場合、autoloadを使わないとき、requireはどうやるのがいいのかな。
ケース1:Fooを使う人は内部のことなんかしったこっちゃないからFoo.phpでrequireしろ派
Foo.php:
<?php
require_once 'Bar.php';
require_once 'Baz.php';
ケース2:呼び出し側でやる派
index.php:
<?php
require_once 'Foo.php';
require_once 'Bar.php';
俺の場合は、最初はケース1派だったんだけど、理由は忘れたがケース2派になり、今はautoload派になった。
101 :
nobodyさん :2013/05/31(金) 18:13:00.31 ID:2B6R5nZc
ケース1しかありえない
102 :
nobodyさん :2013/05/31(金) 18:13:21.01 ID:2B6R5nZc
途中で送った。 ケース1しかありえない気がしてきた。
正しい作法としてはケース1でしょ。 とはいえ、ファイル間の結合度や依存度によってケースバイケース。 たとえばフレームワークのルーティンにおいて bootstrap で基本ファイルを呼び出すっていうのはお決まりのパタン。
autoloadが解決する問題は、複雑な依存性が存在した場合のrequire/includeであって、速度に関しては 副次的な物だと思う。 確かに、autoloadはnewのエラーをフックしてファイルをロードするので、無駄なロードは発生しない。 しかし、数千req/secもあるようなシビアな場合ではないのであれば、autoloadあるいはrequire/includeが 一度に付きms未満の差しかないのだから、速度に関してはあまり気にする必要は無い。 クラス名やファイル名、ファイルの配置については、PSR-0に従うのが現状ではベストでは無いかと思う。 そうすれば、autoloadにも対応しやすい。
あと、include_once や require_once は結構コストかかるから出来たら使わないほうがいいんだって ラードフさんが仰ってたよ
includeの方がいいのか
あ、PSRか、ゴメヌ
>>92 きれいにPHPファイルを配置してautoload使いましょう、
で終了じゃないか
110 :
nobodyさん :2013/05/31(金) 21:08:07.40 ID:0pyQKPZl
最近phpでCLI処理を書いています 今までrubyやpythonを使ったりしてましたが、 PHPは実に使いやすい いちいち何をincludeして〜とか調べなくてもいいし、オブジェクト指向的にも問題ない web以外にもPHP使うの最高じゃないですか? なんでCLIではいまいち不人気なんでしょうか みんなかっこつけてるんですか?
便利だから使ってるし、みんな使ってるんじゃない?
113 :
nobodyさん :2013/05/31(金) 22:38:24.89 ID:TNUtMHtE
エラーハンドラで受け取ったファイル名や行数から、その部分のソースコードを取得したいのですが、 それにはファイルを読み直さないといけないですか? ソースコード自体はメモリに載っているはずなので、 ファイルを読まなくても取得する方法があるような気もするのですが…
>>111 LinuxではPerlやPythonはデフォルトで使えることがほとんどだが、PHPはそうじゃないからじゃないかな。
あと、複数のバージョンを簡単に切り替える仕組みがない。
それに、CLIなのに/etc/php.iniを見に行くのがいけてない。
スレッドが使えないとか。
サーバアプリが書きにくいとか。
コマンドラインで使うときのライブラリが充実してないとか。
DB読むツール書くのは楽なんだけどね。
>>114 -c オプションで好きなphp.ini見に行けるでしょ?
>>115 shebangで/usr/bin/env使いたいときとか、cronと相性悪い。
#!/usr/bin/env php とかできるんだ。知らんかったわ。
つか、もともとコマンドラインツール出身のperl, python, rubyと、それほどCLIに力を入れてないPHPじゃ どっちが使いやすいか明白じゃん。 まあpharがもっと流行れば、もう少しはCLIにも脚光が当たるかもだけど。
>>113 PHP自体はCで書かれてるので自由にカスタマイズすれ
発想を変えて、独自エラーハンドラ定義して、エディタのtag jump に対応した形式でエラー出力して、 エディタでtag jumpするのはどうかな。
PHPは元々の名前の由来自体が Personal Home Page Tools だからね。 それに最初は Perl で書かれてたんでしょ? PHP自体
>>121 >それに最初は Perl で書かれてたんでしょ? PHP自体
初耳だけど。ソースは?
ソースも何も、超有名な話だと思うがw ラードフさんが、サイトの作成の際に perl だと余りにも面倒くさかったんで 自分のツールとして perl でライブラリを作ったのが最初だよ
>>123 だから、そのことが書いてあるWebページplz
>>126 最近のManualのHistoryでは、最初にPerlで記述したことは省かれてるけど(経緯はわからないけど)、少なくとも2006年までは「Perlスクリプトの単純な組み合わせでした」とされてるわけね。
何をムキになってるの?
>>124 昔はいたるところで目にしたような気がしたんだが、たしかに今はあまり見かけないな
今確認できたのは Wikipedia の PHPの項目の歴史のセクションにちょこっと書いてある程度だし、
しかもPHPと名付けられた時点では既に C で書きなおされているとされている。
そもそもが曲解していたのかもしれないし、もはや perl との関係はなかったことにする流れなのかもしれないな。
132 :
nobodyさん :2013/06/01(土) 15:32:17.20 ID:Lm5yShvx
抽象クラスのstaticメソッドの中から子の具象クラスのクラス名を知るにはどうすればいいですか?
>>133 作者個人専用ツールだったんだからパーソナルで間違いない。
>>133 だったらCだってダサいだろ?
はじめてのC
(笑)
C language って見た時、Body language を思い浮かべた俺はヘンタイ?
>>132 意味が分からん。まさか、
class Parent {
static function hoge(){
// ここで Sub についてなにか知りたい
}
}
class Sub extends Parent {
}
ってことか?
>>132 言いたいことがよくわからんが、できないと思うよ。
具体例をコードで示すのが吉。
>>132 abstract class AbstractClass
{
public static function getName() {
echo static::thisName();
}
}
class concrete extends AbstractClass
{
public static function thisName(){
return __CLASS__;
}
}
$foo = new concrete();
$foo->getName();
140 :
nobodyさん :2013/06/02(日) 14:29:22.81 ID:ZugnqmP2
POSTで送信されたデータは 基本的にissetで入っているかどうか判定しないと 送信されてない初期の場合にはエラーがでるものなのでしょうか? 勉強に使っているサンプルコードは特にPOSTデータのisset判定はしていません 特定の環境だけエラーができるものなのですか?
>>140 エラーが出る出ない以前に、issetで判定するべき
142 :
nobodyさん :2013/06/02(日) 14:36:07.32 ID:ZugnqmP2
>>141 ありがとうございます
判定するようにします
143 :
nobodyさん :2013/06/02(日) 15:48:58.82 ID:3Klk3b6H
長い文章を「。」の後ろの位置で切りたいと思いますが /。/でsplitすると、。が消えてしまいます 「。」を「。|」など、句切り用文字付きに置換してから、 句切り用文字でsplitすると、望みの結果になると思いますが、 これを一度のsplitで行なう方法はありますか?
splitはそういう関数だからな pre_match_allとか使えばいいんじゃない
>>143 消えてるって分かってるんだから、切ったそれぞれの後ろで。足せよ
まあ、 preg_split('/(?<=。)/' ,$txt) とかでどうかな。
p-touchで使うlbxファイルをPHPで作成する方法は無いでしょうか? 幅固定で任意長のラベル印刷が出来れば良いので、 PDF等ほかの形式でも代替案あればご教授願いたいです。
>>149 俺はIDを出さずに質問する奴には絶対にレスをしないと硬く心に決めたんだ
してるじゃんか
152 :
nobodyさん :2013/06/03(月) 18:18:22.32 ID:LfxiG17y
PHPって暮らすとかいらなくね。 やっぱ手続き型だよな。レガシーなプロは。
大規模になってくるとそうもいかん どうもスクリプト言語の変数スコープに慣れない
クラス=オブジェクト指向だと思ってる奴www
function =オブジェクト思考と思ってますサーセン
図星かw
>>154 はクラス = オブジェクト指向だと思っていた過去でもあんのかな
俺はメソッド=オブジェクト指向だとお思ってた
160 :
nobodyさん :2013/06/03(月) 23:49:58.72 ID:R7T1Wl2x
PHPのコードが書かれた任意のファイルを読み込んで、 そのPHPのコードを「実行する」のではなく、 「アウトライン」を取得する機能はありませんか? 少なくとも満たしたいことは、任意のファイルに どのようなクラスが記述されているのかを知ることです。 繰り返しになりますが、インクルードするのではなく、単にコードを解析するだけです。 具体的には例えば、"sample.php" というファイルに <?php class A {} class B {} /* class C{} */ などと記述されていた場合、 array('A', 'B') などと取得できないかということです。 既存のライブラリなどがあればそれを使いたいので、教えて下さい。 なければ自分でパーサを書かなくてはなりません。
('A',
>>160 そんなのLLでregex使えばいいじゃん。
PHPとかいらんし。
>>160 >>162 で駄目なら、phpdocumentorの出力結果をパースするとか。
あるいはそのパーサ部分を切り出して使うとか。
164 :
nobodyさん :2013/06/04(火) 00:25:44.58 ID:3OiDWMCa
>>162 あくまでもPHPで使用するユティリティとして考えていますので
どうしてもPHPで実現したいのです。
それに、厳密なパーサがあればそれを使いたかったのです。
一からパーサを書いていたらとてつもなく大変なので。
>>163 ありがとうございます。
phpDocumentor の存在を恥ずかしながら知りませんでした。
私の求めている機能は十分に含まれているようですので、
これを使ってみたいと思います。
165 :
nobodyさん :2013/06/04(火) 02:53:15.94 ID:3OiDWMCa
せっかく教えて頂きましたが、 より相応しい別のライブラリを見つけたので それを使うことにしました。 phpDocumentor は Java でいうところの javadoc みたいなものですね。 これはこれで面白そうなので機会があれば使ってみます。
Reflection APIで出来そうな話だな
167 :
nobodyさん :2013/06/04(火) 03:14:23.78 ID:3OiDWMCa
>>166 想定しているファイルに実行可能なコードが記述されている場合、
同一の名前空間で衝突するクラス名、
パースエラーを発生させるコードなどを想定しているので、
Reflection は難しいと判断しましたが、
そのあたりは勉強不足なのでわかりません。
ひょっとしたら問題なかったのでしょうか?
回答者は想定していませんので
169 :
nobodyさん :2013/06/04(火) 22:35:03.11 ID:EWUXnsSE
僕の童貞はいつ捨てられますか?
$res1 = new m9('a')->("プギャァ~");
ほんとうだw
175 :
nobodyさん :2013/06/06(木) 23:25:37.41 ID:OEW8nkki
リンクをクリックしたらメールが飛ぶPHPを作ってますが、 これって巡回ロボットがリンクを踏んでもメールが飛ぶのでは? 防ぐにはどうしたらいいですか?
>>175 あなたは人間ですか? はい いいえ
ボタンを作る
マジレスするとロボットはjavascript実行しないからjs経由させる
178 :
175 :2013/06/07(金) 00:12:48.29 ID:lPCuSr64
>>179 質問はID出して。
ここは 下らない質問 をするスレです。
182 :
nobodyさん :2013/06/07(金) 14:21:13.97 ID:D2Zw9Gnr
MySQLでかなり重いクエリを発行すると、 Out of memory (allocated 1835008) (tried to allocate 2928480 bytes) と出ました php.iniでmemory_limitをかなり大きくしましたが、 エラーは変わらず、allocatedの数字も変わりません。 echo ini_get("memory_limit"); で確認すると、memory_limitの数値自体は変わっているのにです。 これはどういうことでしょうか?
183 :
nobodyさん :2013/06/07(金) 15:36:06.40 ID:D2Zw9Gnr
わざとout of memory起こして調べてみたところ memory limitを一定数以上にすると、逆に513Mくらいにされてしまうようです その一定数は、1500Mあたりのようです(1600M以上にすると減った) この限界は、変えられないのでしょうか? 使っているPHPは、windowsのCLI版です
よくわかんないんだけど、 > Out of memory (allocated 1835008) (tried to allocate 2928480 bytes) このエラーメッセージって、1,835,008バイト(1.8MB)allocate済みで、2,928,480バイトアロケートしようとしたら エラーになったっていう意味じゃないの? なんで、1,5GBとかそんなでかい話になってるの?
問題の原因を探ってmemory_limitの設定を変えているうちにそうなりましたw そしてやっぱりmysqlにクエリ発行すると、数値は変わらずでしたorz mysqlに割り当てている何かが少ないのか、あるいはmysql側の問題なのか・・・
もしすべてfetchしたらGBクラスになるクエリだったので、 それが悪かったようです テンポラリテーブルに結果を入れるようなクエリにしたら、エラーがなくなりました fetchする前からPHPが、 よく分からない値でout of memoryになる理由は分かりませんが イレギュラーなクエリだからイレギュラーなエラーが出たのかも
重いってデータ量が多いって意味だったのか
重いデータとは言う
189 :
nobodyさん :2013/06/07(金) 20:08:14.47 ID:rbm1q+gx
PEARのRequest2ってPOSTデータ初期化できないの?教えて
>>184 なんで一括でアロケートするのが前提になってるの?
PHPにおいて、連続領域を確保することのメリットはそこまで大きくないと思うんだけど
191 :
nobodyさん :2013/06/07(金) 23:59:41.64 ID:E7ICkWcF
てす豚テストtest
カーソル使うかLIMIT,OFFSETで絞るか
193 :
nobodyさん :2013/06/11(火) 17:22:09.11 ID:qhZ2PQ58
strtrによるテーブルを使った置換をマルチバイトでやる時はどうすればいいですか?
>テーブルを使った置換 なにこれ?
195 :
nobodyさん :2013/06/11(火) 20:59:52.06 ID:o3YW+0BJ
staticクラスの変数値は、 サイトにアクセスする全ユーザー間で共有されているのでしょうか?
197 :
195 :2013/06/11(火) 21:23:09.89 ID:o3YW+0BJ
ありますよ。 もうちょっと調べたのですが、 コンパイル言語と違ってインタプリタ言語なので ソースを毎回読んでる→毎回リセットされるのでユーザー間で共有されない という認識であってますか?
>>197 PHPのstaticクラスについてkwsk
もしくはマニュアルの該当ページ
199 :
197 :2013/06/11(火) 21:37:42.46 ID:o3YW+0BJ
ごめん、staticクラスじゃなくてstaticプロパティとメソッドでした
200 :
nobodyさん :2013/06/11(火) 21:51:48.69 ID:sCzvZ2sj
PHPを勉強しはじめた初心者です。質問させていただきます。 現在、ログイン機能を有するサイトをPHPとMySQLを使用して作成しています。 仕組みとしては、ログイン時にセッションIDとともにDBにユーザーIDと関連付けて保存するという形式をとっているのですが、 全てのページにおいてログインの状態を判別するために、ログイン判別処理用の関数を全てのページ内に含めています。 しかし、この様に全てのページにログイン判別の関数を含めると、phpの内部コードが非常に長くなり、見づらくなってしまいます。 このようなサイトの場合、include関数やrequire関数を用いて上記のような関数をライブラリ化をするのが一般的なのでしょうか? それとも、全てのphpファイルにログイン判別用の関数を書くのが一般的なのでしょうか? ログイン判別用のライブラリをそのまま公開ディレクトリに置いておくのはあまりにも危ないような気がして・・・。 他にもっと効率的な方法などがあれば、是非とも教えていただきたいです。 よろしくお願いいたします。
アプリケーションスコープならphp7.xから実装予定
>>200 みんな同じようなことで悩んで、
そういった共通処理を枠組みとして提供するのがフレームワーク
PHPならCakePHP2、Symphony2、ZendFramework2、Yii、FuelPHP、
とか有名どころがたくさんある。
いい機会だと思うので是非どれか試してみて下さい。
203 :
200 :2013/06/11(火) 23:03:58.32 ID:sCzvZ2sj
>>202 なるほど、PHPにも色々と便利なフレームワークがあるのですね。
ただ、今回はフレームワークは使用せず、自作の関数を使ってプログラムを組んでいきたいと考えています。
いずれはフレームワークの勉強もして、組み合わせていきたいですけどね。
ご教示いただき、ありがとうございました。
>>200 一般的にはどちらもせずにフレームワークを使う。
どちらが良いかってことになると普通は一ヶ所にまとめるだろjk
>>204 横だけど、初心者からすると、そのjkとなる理由が知りたい…
普通はっていう、その根拠となっている理由をおしえてください
メンドクサイことをしないのは普通でしょう。
>>205 もしもあなたが作ったプログラムが完璧で全く修正の余地がないのなら、
多少の記憶領域のコストと引き替えにしてでも、すべてのファイルに
同じソースを貼り付けて動作するようにすればいいでしょう。
なぜならファイルI/Oコストと演算コストを最小化できるからです。
しかしあなたが完璧なものを作ることが出来ない場合、
いつの日かプログラムの修正を余儀なくされるでしょう。
そしてあなたは完璧なものを作ることは恐らく出来ません。
それは歴史が証明しています。
きっとあなたが今完璧なものを作ったと信じている素晴らしいソフトウェアも、
第一線で活躍し続ける限り必ず修正を余儀なくされます。
プログラムの修正を迫る圧力は主にセキュリティ上の脅威の問題です。
そして、恐らくもっとも単純な例としてプログラム上のバグがあります。
さて未来のあなたに、今日完成したと信じて疑わないプログラムを修正する日がやってきます。
きっとそのときあなたは今の自分を恨むことでしょう。
「なんでこんなにあちこちに同じコードを張り付けてるんだ!」
と。
このように、同じコードをあちこちに貼り付けて作成したプログラムはかえって高く付くのです。
==================
という翻訳調の記事を一度ぐらい読んだことないか?
これは俺が適当に書いたやつだがw
208 :
nobodyさん :2013/06/12(水) 21:35:16.31 ID:DIs4JrHl
最近のPHPは無名関数や[]表記が出来るようになっていますが、 PHP5.2以下ってもうほとんどのサーバで使われてないんですか?
いや、そんなことはない。 バージョンアップしてないところは多いと思う。 格安にかぎらずな。
つかってるサーバーでは、あげたら動かなくなると困るので、 しかたなく現状のままなのですよ。
211 :
205 :2013/06/13(木) 00:22:58.95 ID:???
>>207 オライリーの本で見かけたような気がしますw
>>208 5.2というよりPHP自体が使われなくなってきてる
レン鯖でもPHPをインストールしないポリシーのところが増えてきている
213 :
nobodyさん :2013/06/13(木) 06:00:37.94 ID:YfwFYZMU
mysql_real_escape_stringが非推奨ってどういうことですか!? 5.5で非推奨ってあるのですが、これがないとMySQLで特殊文字がエスケープされなくて安心して眠れないよるが続きそうなんですが
オールインワンのPHPは最高なのに・・ Rubyとか言うほど綺麗でもないし、PHPでオブジェクティブに実装した方がマシ
>>213 mysqli使えって書いてんだろちゃんと読め
レン鯖()笑
219 :
nobodyさん :2013/06/13(木) 11:59:31.97 ID:d6F8arzZ
一昨日から PHP の学習を始めました ものすごく下らない質問ですが、PHPを使ったWEBサイトを作るとき そのサイトの全ての拡張子をPHP化しておいた方がよいでしょうか? 現在は一部だけしかプログラムが必要なページはありません。 html と PHPの拡張子が混在したサイトで構わないのでしょうか。
構わない。むしろ推奨。
221 :
nobodyさん :2013/06/13(木) 12:03:55.80 ID:d6F8arzZ
>>220 素早い回答ありがとうございます。
くだらないことだと思うのですがものすごく悩んでたので大感謝です!
また、くだらない質問するかもしれませんがよろしくお願いします。
222 :
nobodyさん :2013/06/13(木) 15:21:20.98 ID:3J7ktNc/
嘘を嘘と見抜けない間抜けが掲示板を有効に使うのは難しいて昔唇お化けが言ってたよな
224 :
nobodyさん :2013/06/13(木) 17:47:46.82 ID:FfDvZGBp
クロージャの中から外のスコープを見るにはどうすればいいですか?
use
use 普通に書くと、定義時の値だから、参照を渡して擬似的に見るようにするしかないかな。
ですね。
228 :
nobodyさん :2013/06/14(金) 03:38:51.82 ID:QtFKp6t4
foreach内で内部カウンターの値を参照する方法はありますか?
単純な配列ならインデックスが使えるけれど、そうじゃないなら無いです。 自分で数えてください
ありがとうございました
phpファイルにて $email = htmlspecialchrs($_REQEST{'my_name'] , ENT_QUOTES) ; を先にやっておくと、あとからhtmlspecialchrsを何回も書かないでいいみたいですが 同じページの inputの value="<?php print htmlspecialchars($email, ENT_QUOTES); ?>" /> これもhtmlspecialcharsは書かなくてもいいんでしょうか?
idが出てません
省略しました。
>>231 $emailをprintして従前と変わっているかどうか見て理解して欲しい。
ruby流行らそうと必死なksどもがPHPネガやってんのが痛すぎる
236 :
nobodyさん :2013/06/14(金) 17:23:18.92 ID:/kSo8dQA
イテレータってどんなときに使うんですか? ざっくりした質問ですみません
>>236 イテレータは、簡単に繰り返し処理を行えるようにするもの。
自分でコンテナを実装したときに、Iteratorインタフェースを実装すればforeach()とかが使えるようになる。
例えば、Queueクラスを実装したとき、Iteratorインタフェースを実装しなければforeach()などが使えない。
繰り返しといっても、配列とか要素を順に辿っていくような処理な。
239 :
nobodyさん :2013/06/14(金) 21:35:30.79 ID:D2IxfBS6
phpのfor文の中でjavascriptの関数を実行するにはどうしたら良いでしょうか? イメージとしてはこんな感じです↓ for($j=0; $j<$num; $j++){ $a = $b[$j]; print <<< END_DOC <script type="text/javascript"> var $c = <?php echo $a ?>; kansu($c); </script> END_DOC; } ↑上記で試しましたがうまくいきませんでした。
>>239 JavaScriptとPHPごっちゃになってるぞw
マジ意味わかんねえ何がしたいんだよエラー出るに決まってんだろうが!!!!!!!!!!!!!!!!!!!!!!!!!!!ふざけんなよ!!!!!!!!!!!!!!!!
>>239 var c = <?php echo $a ?>;
kansu(c);
こうじゃだめ?
こうじゃね? var c = $a;
ああ、たしかに。スマヌ
むしろこうじゃね? kansu($a);
それは省略しただけかもしれないし
確かにw
そうでないかもしれないし
PHPスレが和みムードとか天変地異か
250 :
nobodyさん :2013/06/15(土) 11:23:04.75 ID:J8J1CSeU
ini_setの影響範囲ってどこまでなのでしょうか? 1. その実行のみ →同時アクセスしている利用者は影響を受けない。 2. PHPサーバー全体 →他ユーザーは影響を受ける。 教えてください。
252 :
250 :2013/06/15(土) 18:43:48.47 ID:J8J1CSeU
【OS名】Wndows Server 2012 【PHPのバージョン】5.4.16 です。
253 :
250 :2013/06/15(土) 18:48:43.44 ID:J8J1CSeU
なお、いろいろ調べると 「php.iniを書き換えるのと同じ」 という意見が目立ちます。 同時にアクセスしている他ユーザーの影響を受けるということです。 そうした場合、例えば次のような問題が発生します。 致命的な問題のような気がします。 ・日付関数を使用するためPHPファイルの頭でini_setでタイムゾーンを指定。 しかしいざ日付関数を使用する前に、他のユーザーの別アクセスで タイムゾーンを書き換えられてしまう。 ・Webアプリケーションごとに情報をini_setで設定したいが 全Webアプリケーションで共有されているため、個別設定できない。
254 :
nobodyさん :2013/06/15(土) 18:59:20.04 ID:KOqiYb3a
255 :
250 :2013/06/15(土) 19:28:31.38 ID:J8J1CSeU
>>255 元に戻す必要があるってどこに書いてあるの?
257 :
250 :2013/06/15(土) 19:35:17.23 ID:J8J1CSeU
なぜini_setの値は処理終了後に元に戻されるのか ↓ 1. 次に自分(同一セッション)がアクセスしたときに影響を与えないため 2. 次に他人がアクセスしたときに影響を与えないため 1.の意味ならいいのですが、2.の意味だと ini_setの値がサーバー全体で共有されていると取れる文脈なのです。
258 :
250 :2013/06/15(土) 19:35:52.98 ID:J8J1CSeU
php.iniが書き換わるわけねーだろバカかお前
260 :
259 :2013/06/15(土) 19:40:20.53 ID:J8J1CSeU
>>259 ではlocal valueのスコープについてきちんと書かれた文章を
提示していただけませんか?
話聞けよ。勝手にしろボケ。
262 :
250 :2013/06/15(土) 19:46:19.09 ID:J8J1CSeU
名前欄間違えました。
>>261 あなたは(ini_setなどで)php.iniは書き換わらないとは言っていますが、
ini_setの値が他アクセスに影響を与えないことを提示していません。
罵声を浴びせるならしっかりと提示してください。
そんなに心配ならPHPのソース読めアホが
つーかそんなに人の言うこと信じられないなら試せば?
ものすごい基地外が湧いててワロタw 久しぶりに微笑ましいねw
266 :
nobodyさん :2013/06/16(日) 01:30:12.04 ID:h8ga9m06
さすがphp板だな初期化の意味もわからない馬鹿しかいない
PHP板じゃないけど
マルチバイト対応のstrtrがないのはなぜでしょうか? 代替の関数は何ですか?
269 :
nobodyさん :2013/06/16(日) 04:09:14.02 ID:uMOZ/qgp
id出し忘れました
270 :
268 :2013/06/16(日) 15:56:04.94 ID:???
ID出し忘れてましたが自己解決しました
回答は締め切ります
>>269 は誰でしょうか?
たぶん偽物だと思います
>>268 にレス書いたけど書き込み前にリロードしたら・・・
自己解決したのかよw
まぁその調子で頑張れ。
いやいや、たぶんなりすましだろw id出したら質問しなおした方がいいよw
>>262 俺259じゃなくて256なんだけど。
元に戻す必要があるってどこに書いてあるの?
書き込み前のメール欄のチェックすらできないヴァカにはどのみち回答しなくていいと思う
275 :
nobodyさん :2013/06/16(日) 23:31:03.57 ID:uMOZ/qgp
270はなりすましです ではあらためて、 マルチバイト対応のstrtrがないのはなぜでしょうか? 代替の関数は何ですか?
sjisがクソすぎたってことで。
初心者が意固地になるな。素直にベテランの意見を聞いておけ。
280 :
nobodyさん :2013/06/17(月) 14:06:00.62 ID:riij1snC
整数-1のビット列表現の求め方わかりますか?
ビットシフトや内蔵関数ではダメでした。
echo (-1
>>2 )."\n";
echo base_convert(-1, 10, 2)."\n";
decbin でどうかね
282 :
nobodyさん :2013/06/17(月) 14:34:50.18 ID:riij1snC
>>281 それでできました。
書き込み後に自作で考えたのでもできました。
echo decbin(-3)."\n";
echo bithenkan(-3)."\n";
function bithenkan($int) {
$bits = array();
$bin = pack("L*", $int);
for($i=0; $i<strlen($bin); $i++) {
$ch=ord($bin[$i]);
for($j=0; $j<8; $j++) $bits []= 1&($ch>>$j);
}
$bits=implode("", array_reverse($bits));
return $bits; }
decbinでいいじゃんw
自分で出すにしても、そんな遠回りせんでも $r=""; for($i=PHP_INT_SIZE*8-1;$i>=0;$i--) $r.=($int&(1<<$i))?1:0; 頭の0はltrimで0とかな。
285 :
nobodyさん :2013/06/19(水) 05:35:51.96 ID:kagqgSvq
286 :
nobodyさん :2013/06/19(水) 06:12:18.94 ID:N5MOdRcf
・問題の起きる関数を使わない ・短い名前でアクセスしてみる ・当該ディレクトリのファイル一覧を取得してそこから名前を抽出してみる
馬鹿には無理
どの時点で抜けるのかわかれば対応策は出るよ 具体的にどんなコードでおかしくなってんの?
>>285 Rubyならそんなつまらない所で詰まって時間を無駄にしたりしなくて済むよ
Rubyならね
ファイル名の文字コード問題まだ治ってねーのかよw だせーw
確かに何やってんだw
この間Rubyもちょっと触ってみたら思いの外使いやすかった。 開発効率重視を謳ってるだけあってサクサク作れる。 PHPは使いなれてたから迷ってたんだけど、やっぱりRubyに移行するわ。 PHPは文字コードもだけどセキュリティ関係のバグがやばいし。
294 :
nobodyさん :2013/06/20(木) 01:23:18.85 ID:5SN5hbm+
なんでphpみたいな糞スクリプトが流行っちゃったんだろ
そんなことも分からないの?と煽ってみようか。 てか、ちょっと考えれば予想できるだろ
>>294 PHPが糞だと気付かないゆとりの糞共が増えたからだよ
そしてその糞共が作ったPHP製の糞システムを保守するためにPHP使える糞を雇うようになり、
何の能力もない糞共がPHP使なら求人が多いと勘違いしてPHPを優先的に身に付けるようになった
そこまで嫉妬せんでもええやん
Windows環境 5.2系の時には "申請書.txt" ってファイルfopen()出来るのに 5.3系からは文字コード問題でfopen()出来なくなってるのが糞
>>297 お前みたいにID出して質問しろって書いてあるのにそれすらできないような間抜けしかユーザーがいない辺り。
自分のロールもわきまえられないいつまでも回答者気取りのごみ。
こういう池沼は頭の切り替えもできないから職場では常にお荷物。
存在自体が迷惑、まさにごみ。
 馬鹿には無理
303 :
nobodyさん :2013/06/20(木) 15:22:49.26 ID:EGiH7/qm
>>293 の言うセキュリティ関係のバグってなんだろ。
今も開きっぱなしの問題あったっけか。
>>300 PHPユーザでもないのに、なんでこのスレに粘着してるんだ?
PHPユーザーの民度は低い
民度が低い奴程、人数多いってのが地球の仕組み。
308 :
nobodyさん :2013/06/20(木) 21:07:06.41 ID:25lIXLd4
DBにname「猫」「犬」「鯨」「鮪」「猿」が入っています。 さらにtypeが「陸」「陸」「海」「海」「陸」に分かれているとします。 typeが陸の場合はそのまま表示。 typeが海の場合は<textarea>〜</textarea>の中に入れて、上から順番に表示したい場合どうしたら良いでしょうか? ※ここから下は読み飛ばしても結構ですが一応。 自分で考えてみたのですが下記の例だと上から順番に表示することができなくて困っています。 $body = "<textarea>"; if($type == "海"){ $body .= $name; }elseif($type == "陸"){ $body2 .= $name; } $body .= "</textarea>"; echo $body .$body2; よろしくお願いします。
>>308 上から順番にってどういうこと?
ループさせたいならfor文やwhile文を使え
310 :
nobodyさん :2013/06/20(木) 21:46:57.73 ID:25lIXLd4
>>309 言葉足らず&順番間違いですみません。
「猫」「犬」「鯨」「猿」「鮪」の順番のデータがあります。これを下記の順番で表示させたいのです。
1行目:「猫」
2行目:「犬」
3行目:<textarea>「鯨」「鮪」</textarea>
4行目:「猿」
311 :
nobodyさん :2013/06/20(木) 22:24:27.62 ID:/R4UcmEs
頭悪い奴が手間かけずにやろうとするからできないのよ
forで海が出たらbreak テキストエリアに海を全部入れて さっきの続きから陸をfor
>>310 条件分岐とループで実現できるけど
そもそもその元のデータ構造か、実現したい出力がおかしいんじゃない?
それより
>>310 の頭がおかしい
馬鹿とか以前におかしい
rss読み込み時にエラーを起こして後続処理がとまってしまうんですが回避する方法はありませんか?
ありますよ。
>>316 ありますよ、だけじゃ分かりません。
もっと具体的に例を上げて、できればコードも書いて下さい。
お願いします。
ため息が出るような質問ばっかりだw 質問者が何歳なのかも知りたいわw
>>317 お前は有望だ!
2代目社長になって会社を潰す素質があるぞ。
>>312 それ2行目で破綻してます。
>>313 条件分岐とループで実現できることはわかります。
データ構造や出力はおかしくありません。
案外難問ですよねこれ。
324 :
nobodyさん :2013/06/21(金) 00:41:39.47 ID:7FGGma6R
>>328 うん、そんなことわかってるけど、だから?
>>328 だから何?
IDってただ出してればいいの?
飾り?
だったら書き込むたびにID変えてもいいよね?
>>329 日付変わってることに気づかなかったんだろ?
恥ずかしいのはわかるが恥の上塗りだから黙って消えろ
>>330 じゃあどうしろと?
>>324 で
>>310 ですっていってんじゃん
もしなりすましなら本人が否定して質問しなおせばいい
どうでもいい話を続けるな。
質問するときは
>>1 を読んでね。
333 :
nobodyさん :2013/06/21(金) 03:29:16.44 ID:QpXaJ0lM
>>324 自分でいろいろやりもしないようなゴミに存在価値なんてないから
時間の無駄だしもうやめたほうがいいぜ
334 :
nobodyさん :2013/06/21(金) 03:55:37.48 ID:L+aksv7h
存在価値ないゴミにアドバイスとは 優しい奴だな
335 :
310 :2013/06/21(金) 04:22:41.17 ID:???
336 :
nobodyさん :2013/06/21(金) 05:48:17.18 ID:y8IaW3G3
>>299 ハードリンクつかっとけ。
別名でアスキー文字名にもできる。
337 :
nobodyさん :2013/06/21(金) 06:02:57.46 ID:QpXaJ0lM
>>334 こんなゴミでも除染とか他の領域で歯車の一部になるくらいはできるだろうからなw
同じゴミに同情してんのかと思ったぜ
339 :
310 :2013/06/21(金) 08:20:53.59 ID:+TFCXvd8
私が310です。 342は偽物です。
340 :
nobodyさん :2013/06/21(金) 08:41:42.67 ID:7xiiLaqw
IDは本人であることの目安です まあ流れでわかりますよね 一応自己解決しましたので次の質問どうぞ〜
>>330-331 日付変わってるんだからID出しても同一性確認にならないってことだろ、頭わりーなー
342 :
nobodyさん :2013/06/21(金) 14:49:51.55 ID:NYqLTWT7
初めてチンポをしゃぶる女の気持ちを知りたいです
内包する問題があまりにも大きい。 単独スレを立てていいレベル。
まぁ、日付をまたぐ可能性があって、なりすましを防ごうとする場合には
酉つけるのが2chでは当たり前のように行われる行為。
>>341 なんで
>>330 にも安価つけたんだろ。
>>344 そうすると、翌日まで話題が続くかどうかなんて誰にもわからないんだから、原則質問者は
トリップ付けろということになってしまう。
そうしたいの?
>>310 $data = [['name'=>'猫','type'=>'陸'],['name'=>'犬','type'=>'陸'],
['name'=>'鯨','type'=>'海'],['name'=>'鮪','type'=>'海'],
['name'=>'猿','type'=>'陸']];
$f=function(&$tmp){if($tmp!=""){echo "<textarea>{$tmp}</textarea>\n";$tmp='';}};
$tmp ='';
foreach($data as $r)
if ($r['type'] =='陸'){$f($tmp);echo $r['name']."\n";}
else if ($r['type'] == '海') $tmp.=$r['name'];
$f($tmp);
>>310 echo <<<'DATA'
1行目:「猫」
2行目:「犬」
3行目:<textarea>「鯨」「鮪」</textarea>
4行目:「猿」
'DATA';
>>345 半年ROMってろって言葉が良くお似合いです
どんだけ悔しかったんだよw
>>341 スレの流れ読めば同一性確認にならないのわかったうえで言ってるの
わかるだろ、頭わりーなー
発 者 同 . 。_ ____ 争 生 同 .じ . /´ | (ゝ___) い .し 士 .レ .__/'r-┴<ゝi,,ノ ro、 は、 .な で .ベ ∠ゝ (ゝ.//` ./`| }⌒j .い し .ル } ⌒ /`ヽ、_∠l,ノ ・ヽ´ .! ! か の / ´..:.} >、、___, .r、 ソ、`\ / ..:.:.} / |∨ ` ̄ / ..:.:./ | 丶 / _、 ..:.:.:.{ .{.:.:. \ { ..:Y .ゝ、 {.:.:.:.:. ヽ |、 ..:/ 丿 .:〉 >.- ⌒ . ヽ / {. ..:./ ソ ..:./ .( ..:.:.:` ..:} ./..:.:}.:.:./ ヘ、 ..:./ .\ ..:.:r_,ノ、.:.:} ./..:.:/|.:/ {.:./ X.:.:}.} X X /..:.:/ .}.:| }:/ .Y丶ヽ Y.:Y . __/.:/ { } 《.〈、 _,,__>.:》丶 Y.:\ /.:.:.:.:.::/ !.:.:ゝ ゝ.:. ̄ヾ ´:.:.:.:.:.:.:.:.:ヾゝ \.: ̄>
357 :
nobodyさん :2013/06/23(日) 06:45:12.61 ID:479YFnsB
sqlite3に書き込むバッチを走らせていたら、disk i/o errorが出ました ディスク容量に問題はないです disk i/o error sqlite3で検索すると結構ヒットします sqliteって不安定なんですか?
358 :
nobodyさん :2013/06/23(日) 06:58:19.14 ID:479YFnsB
もう一度実行してみたらエラーなく動いています タイミングでdisk i/o errorなんて出てもらったら困るんですけど・・ sqliteがいまいち使われてないのは不安定だからですかね〜
359 :
nobodyさん :2013/06/23(日) 07:02:53.82 ID:479YFnsB
と思ったらまた出た まじファック
360 :
nobodyさん :2013/06/23(日) 07:22:23.99 ID:ViWG6XTQ
チラシの裏か自分の日記でどうぞ
これはひどい
362 :
nobodyさん :2013/06/23(日) 09:07:01.44 ID:479YFnsB
普通のファイル使うように書き換えたら当たり前ですが超安定しました sqliteは糞以下ですね
これはひどい。
>>362 糞以下でもお前の頭よりはマシだからいいんじゃね
これはひどい
ビジグソ以下のsqliteって誰が使ってるんですか?
これはひどい
ちょっとさぁ。。。
無条件に自分との方向性が違うだけでクソって言うのもどうかと SQLiteはそもそも更新が激しくなく、個人とか数人で使うようなお手軽DBだから 不安定だからとかそれ以前の問題 セグウェイで道路に出て『このセグウェイ車より遅いな』って言ってるようなモン
(・ω・) 〜 (_゚T゚ ◎ニ)
1秒ごとにアクセスするだけの低負荷な作業でしたよ はじめて使ったのでコードがまずかったのかもしれませんが、 問題があるならそれに相当するエラーを出せばいいんです disk i/o errorはないわ
排他できてなくてキーがかぶったんだろ 書きこんだ場所による
mysqlでいいじゃん なんでsqliteなんて使うん
375 :
nobodyさん :2013/06/24(月) 17:37:56.91 ID:8ZPiYdIA
UrlEncodeについてなんですが 仕様によれば ?A=B&C=D...という部分は >英字 数字 "-" "_" "." はそのまま. >空白は,"+" に変換. >それ以外は %DE(DEは該当する文字の文字コードの16進数表現) という形になるらしいのですが FireFoxで実際に送ってみると*もそのまま送られているようです これはどういうことなんでしょうか
>>375 > という形になるらしいのですが
「らしい」ってだけでしょ。
377 :
nobodyさん :2013/06/24(月) 18:22:41.23 ID:8ZPiYdIA
名字に口が付く姓で口をぐちと読むのは 実は井口と野口、山口、この三つしかない まめちしきな。
そら知らんかった。 今度の話のネタに使おうっと。
せきぐちひろし
381 :
nobodyさん :2013/06/24(月) 20:05:46.17 ID:+elTENNW
'
【経済】 「日韓通貨スワップ協定30億ドル打ち切り」…財務省★2
http://uni.2ch.net/test/read.cgi/newsplus/1372063177/ 315:カミカゼ :2013/06/24(月) 17:52:07.90 ID:hkwl1JkV0
ひゃっはあああああああああああああああああああああああwwwww
コングラッチュレーションwwwwwwwwwwwww
おまいらの勝利だwwwwwwww
今回の自民への働きかけに協力してくれた人、ありがとう
これで奴らは終わった
明日の南チョンの市場が楽しみだぜwwwwwwwwwwwww
おまいら明日朝にウォン空売りすんなよ?wwwww絶対だぞwwww
夜にまた来るwwww新たな暴露と今後の戦略を用意してなwwwww
一旦失礼するぜwwwwじゃあのwwww
蝦蟇口は?はい論破
http://story.nweb.jp/page.php?no=383 9 名前:以下、名無しにかわりましてVIPがお送りします
名字に口が付く姓で口をぐちと読むのは実は井口と野口、山口、この三つしかない
まめちしきな
10 名前:以下、名無しにかわりましてVIPがお送りします
浜口
11 名前:以下、名無しにかわりましてVIPがお送りします
>>10 お前天才じゃね?
17 名前:以下、名無しにかわりましてVIPがお送りします
矢口もだな
18 名前:以下、名無しにかわりましてVIPがお送りします
田口
19 名前:以下、名無しにかわりましてVIPがお送りします
>>17-18 お前ら天才じゃね?
20 名前:以下、名無しにかわりましてVIPがお送りします
>>9 はどんなコピペなの?
23 名前:以下、名無しにかわりましてVIPがお送りします
>>20 絶対にレスがもらえるコピペ
上の奴らみたいな馬鹿が釣れる
385 :
nobodyさん :2013/06/24(月) 23:01:10.53 ID:JNtkAyhl
文字列を配列の変数として評価する方法はありますか? $aaa = "array['a']['b']" で$aaaでアクセスする、みたいな ${$aaa}だと添字は別じゃないとダメなようですし
387 :
nobodyさん :2013/06/25(火) 00:26:00.10 ID:/K6jhL9w
>>386 eval以外は無いんですかね?
foreachで何度もループさせるのをシンプルに書けないかなと思ったのですが
まあ無いなら別にいいです
なにそれ
$aaa = array['a']['b'] じゃ だめなのか?
390 :
nobodyさん :2013/06/25(火) 00:50:58.27 ID:/K6jhL9w
多次元配列だとそれぞれでforeach使わないとダメ・・・ですよね? 5重ぐらいになるとアレなんで・・・
勘違いしてるだけで、簡単な方法があるかもよ。 どんな風にやってるの?
392 :
nobodyさん :2013/06/25(火) 01:06:45.34 ID:/K6jhL9w
foreach($array as $k1 => $v1){ if(is_array($array[$k1])){ foreach($array[$k1] as $k2 => $v2){ if(is_array($array[$k1][$k2])){ って繰り返してるのですが、参照渡しとかでうまく出来るのかな?
きえええええええええええええええええええええええええ
wwwwwwwwww
再帰関数作れば? てか結局何がしたいのか分からんけど
>>392 foreach($array as &$v1)
foreach($v1 as &$v2){
$v2="";
なんだこの人w
399 :
nobodyさん :2013/06/25(火) 17:12:54.70 ID:/K6jhL9w
えっと、5次元の連想配列で、それぞれ深度がバラバラに要素と配列が入ってて、 今は全部を正しく処理するのに同じ様な記述を5回繰り返してるので、 それをシンプルに書く方法は無いかな、という疑問なんです
なんで最初からそう書かないんだよw 質問するとき情報小出しにすると構ってもらえるって!学校で習ったのか? ならそれは良い学校だ!
>>399 情報の後出しは失せろクズ人間
>>ALL
質問ではなく荒らしが目的だと判明したので以後スルーよろ
>>399 >>396 じゃだめ?
参照を使わずとも解決できる部分もあるんだけど、やっぱりまだ目的があいまいかな。
他に書かれていたように、再帰が適している場面かもしれない
403 :
nobodyさん :2013/06/25(火) 17:48:11.75 ID:o9hRuQfM
PHPの本で最強の奴を教えてください
voice?ほんとに? なんだかんだ月刊と歴史街道が強いかと思ってた。
>>402 ああ、すいません。これで出来ました。
func(&$array)
foreach($array as $pk => $pv){
if(is_array($array[$pk])){
func_3($array[$pk]);
}else{
$set_data .= $pv;
} }
ややこしい事言ってすいません。ありがとうございました。
408 :
nobodyさん :2013/06/25(火) 20:14:09.01 ID:IpAjOvyE
その要件がどうして >文字列を配列の変数として評価する方法はありますか? になるのか。斜め上すぎる。 次回からは質問の仕方に気を付けてな。 あとIDもな。
Eclipseのエラー補完?(コード補完)は優秀ですが、もっと手軽に使えるエディタを探しています。 他におすすめありますか?
412 :
410 :2013/06/26(水) 12:52:42.39 ID:???
自己解決しました。 以後僕の番号で書き込みがあっても本物ではないのでスルーお願いします。
413 :
410 :2013/06/26(水) 13:57:23.56 ID:???
>>412 解決してない
自演やめてくださいね。
ま、この件はもういいですが。
414 :
410 :2013/06/26(水) 15:08:37.55 ID:???
>>412-413 自演やめてください
とても迷惑しています。
いくらインターネットといえども
人として守るべきルールは守って下さい。
415 :
410 :2013/06/26(水) 15:10:07.77 ID:???
え
び
て
初心者じゃ、何が解決に必要なのかもわからんことあるだろうから
あとだしはしょうがないて。注意だけしとけばいいじゃん。
>>410 には、sublime 2 text editorを勧めておく。
しょうがないで片付けるゴミが出現 こういうゴミがコミュニティの質を低下させる
まだ低下する余地があったことに驚いた。 もっと下げないと。
>419=majikichi
ケツにでも入れてろ。
>>425 PHPごときがWeb開発のデファクトであるPerlを馬鹿にしてんのか?
っつうか数年もしたらPerlしか残ってないっしょ
PHPスクリプトの実行内容を読み取れるコマンドやソフトってありますかね? straceみたいな感じで実行された内容のみ抜き出したいんですが・・ たとえば <? $attach = 10; if($attach){echo $attach;} ?> だと、echo 10;のように表示されるものを探してます。
すみません。ID出し忘れてました。
429 :
nobodyさん :2013/06/28(金) 01:49:07.13 ID:OgDk+Wqu
再度スレ汚しすみません。
XDebug を知った上での質問ですかな? あれで大抵のことは出来る気がするが
>>424-426 時代はRubyだよ
そんなことも分からないガキは帰ってママのチンチンでもしゃぶってろ
指輪にでも加工されろ。 くもりガラスの向こうは 風の街だぜ。
↑とわっずがったりのこっとばが切ない例
Ruby,Perlな方々は本当に暇だなぁ…。
PHP狆のほうが暇だろ。 RubyユーザーPerlユーザーはメインでは各々のまともな言語に時間を費やす一方で、ゴミにちょっかいを出す暇がある程度。 PHP狆はメインでゴミに時間を費やしている、つまり完全に暇。 分かりやすく時間をベースに例を示すと、 Rubyユーザーは、毎日Rubyに6時間、PHP狆を煽るのに2時間使っているとする→Rubyユーザーの暇度=2h/day PHP狆は、毎日PHPに8時間使っているとする→PHP狆の暇度=8h/day そもそもプログラミングに費やせる時間には個人差があるが、 このモデルでは比較のために合計時間が同じになるようにした。
436 :
nobodyさん :2013/06/28(金) 19:52:53.27 ID:ITHNJqdP
strposって、見つからなかった時は-1を返す仕様だった気がしたのですが、 falseを返すようになってました 前からこうでした?
437 :
nobodyさん :2013/06/28(金) 19:56:21.92 ID:ITHNJqdP
何か他のことと勘違いしてるのかも 勘違いしてるとしたら何だと思うかも募集中
439 :
nobodyさん :2013/06/28(金) 20:00:50.55 ID:ITHNJqdP
あ、JavaScriptのindexOfでした〜 見つからないと-1返すって仕様おかしいだろ なめてんのか
じゃあ使うな
441 :
nobodyさん :2013/06/28(金) 20:11:11.66 ID:ITHNJqdP
は?お前JavaScriptの何なんだよ
もう最近はキチガイしか質問に来ないな
0とfalseを区別するほうがタイプ数多くなって堪らんわ
444 :
nobodyさん :2013/06/29(土) 13:40:43.46 ID:5nm6m01W
(´・o・)
うっさいハゲ
ハゲはキモいから全員死ね
はい 次の質問をお待ちしています♪
絵マン毛リオン
451 :
nobodyさん :2013/06/30(日) 15:47:19.02 ID:Y2w7UUzy BE:2125592238-2BP(0)
いきなりのご質問で失礼します。 下記のような内容のcsvをphpで配列としたいと考えております。 ================================ 商品名,内容,色,価格 "鉛筆","字を書く","赤,青",100 ================================ そこで、$○○=explode(',',$○○)といった関数を使用したのですが、 ダブルクォーテーションでの囲みが無視され、 色の部分が青と赤の2つに別れてしまいました。 $○○[0]="鉛筆"、$○○[1]="字を書く"、$○○[2]="赤、$○○[3]=青"、$○○[4]=100 上記のデータを $○○[0]=鉛筆、$○○[1]=字を書く、$○○[2]=赤,青、$○○[3]=100 とするにはどのようにすれば良いかどなたかご教示いただけませんか? よろしくお願いします。
453 :
451 :2013/06/30(日) 16:30:56.42 ID:Y2w7UUzy BE:2125592238-2BP(0)
>>452 返答ありがとうございます。
fgetcsvにて、希望の形式の読み込みができました!
いいってことよ
配列のキーに日本語はありだと思う?
458 :
nobodyさん :2013/07/01(月) 20:44:35.27 ID:Kji7A4hl
windows限定かもしれないが。 stream_set_write_bufferの書込みバッファは効果ない。 file_put_contents( *, *, FILE_APPEND ) はfwriteより20倍は遅かった。
そうなんだ。今後の参考にさせてもらう。
460 :
nobodyさん :2013/07/02(火) 19:25:25.08 ID:rRFX7w31
{ "bigArr": [ { "params": { "p1": true }, "title": "ttl1" }, { "params": { "p1": false, "p2": true, "smallArr": [ "sml" ] }, "title": "ttl2" } ], "id": "id" } 以上のような文字列をdecode_jsonでデコードしたいのですが、resultがnullになってしまいます (改行は含みません) 多次元の連想配列としてデコードする方法を教えてください よろしくお願いします
>>460 decode_jsonなんて関数ないが
462 :
nobodyさん :2013/07/02(火) 19:39:56.63 ID:rRFX7w31
>>461 json_decodeの間違いでした。すみません
よろしくお願いします
>>460 君が想定する連想配列をJSONエンコードしてみたらいいんじゃね
464 :
nobodyさん :2013/07/02(火) 21:23:35.81 ID:Q5mgJSDQ
【OS名】CentOS 【PHPのバージョン】6.3 【連携ソフトウェア】MySQL ImageMagick 【質問内容】 メモリーの消費について質問なんですが sessionなどで $_SESSION['username'] = "hogehgoe"; と入れた場合一人あたり単純に8byteのメモリー消費となってこれが1万人になると8byte * 10,000 = 80kbyteのメモリーが消費されるという認識で良いのでしょうか?
466 :
nobodyさん :2013/07/02(火) 21:51:24.83 ID:Q5mgJSDQ
すいません 打ち間違えました。 PHPは5.3です
OSのバージョンと間違えたんだろうな
>>466 【連携ソフトウェア】MySQL ImageMagick って?
471 :
460 :2013/07/03(水) 01:30:56.00 ID:/WzHO7Hb
>>463 $params1 = new stdClass();
$params1->p1 = true;
$title1 = new stdClass();
$title1 = "ttl1";
$params2 = new stdClass();
$params2->p1 = false;
$params2->p2 = true;
$title2 = new stdClass();
$title2->title = "ttl2";
$params2->smallArr = array();
$params2->smallArr[0] = "sml";
$noname1 = new stdClass();
$noname1->params = $params1;
$noname1->title = $title1;
$noname2 = new stdClass();
$noname2->params = $params2;
$noname2->title = $title2;
$bigArr= array();
$bigArr[0] = $noname1;
$bigArr[1] = $noname2;
$obj = new stdClass();
$obj->bigArr = $bigArr;
$obj->id = "id";
$json = json_encode($obj);
この$jsonは
>>460 で例として挙げた文字列と同じものになりますが、
そこで
$obj = json_decode($json);
としても原因不明のエラーが出てしまいます。phpのバージョンは5.4.8です。
どなたか解決策を教えてください。よろしくお願いします。
>>472 質問するときはID出せ春日
消えろよ知能障害
小春日和の略だろ お前日本人か?
477 :
460 :2013/07/03(水) 03:42:10.29 ID:/WzHO7Hb
>>472 文字コードを調べてもutf-8です
json_decodeの後にjson_last_errorを実行してみたら結果は0でした
>>473 ありがとうございます
codepadだと実行するんですね…ということは普通ならデコードできる文字列だということですね
さっぱりわからなくなりました
478 :
460 :2013/07/03(水) 03:50:15.51 ID:/WzHO7Hb
>>471 > としても原因不明のエラーが出てしまいます。phpのバージョンは5.4.8です。
エラーの内容を貼れ。
481 :
460 :2013/07/03(水) 13:18:36.09 ID:/WzHO7Hb
>>480 ありがとうございます。エラーコードは500です
全文貼れよ脳みそあんのか
Internal Server Error の全文貼ってきたりしてw
>>481 CLIで動かして、表示されたエラーメッセージ貼れ
485 :
460 :2013/07/03(水) 15:19:09.46 ID:/WzHO7Hb
納期まであと40分しかありません 死ぬことにします。ありがとうございました
エラーの詳細わかれば5分で解決するのにな
まあ、いずれにしてもエラー詳細の見方もわからないんじゃ、今回助かっても次駄目だろ
安い命だったな
成り済ましかと思ったらID同じだったwwwww
はかないのう
みなさん、こんばんは。
FME?
494 :
nobodyさん :2013/07/05(金) 08:05:26.43 ID:R8MDMfej
PHPTALに関する質問は何処ですれば良いでしょうか?
495 :
nobodyさん :2013/07/05(金) 12:52:08.53 ID:a6le42l8
【質問内容】オンライン対戦ゲームの作り方 現在、PHPで会員制の簡易対戦ゲームを作成中です。 その「対戦開始までの基本的な流れ」は、どう設計したら良いでしょうか? チャットシステムを応用して、一応、対戦を実現できているのですが、 独学のため設計に不安があります。アドバイスお願いします。 (自分が作った対戦開始までの流れ) 1. 会員Xから会員Yに対戦を申込 (POSTにて「申込フラグ」をDBに登録) 2. 会員Yが「申込フラグ」を取得 (Ajaxで定期的にDBから取得) 3. 会員Yが対戦を承諾 (POSTにて「承諾フラグ」をDBに登録) 4. 会員Yが対戦を開始 5. 会員Xが「承諾フラグ」を取得 (Ajaxで定期的にDBから取得) 6. 会員Xが対戦を開始 なお、ゲームの内容は、一定時間内で同一クイズに対する総得点を競うものです。 よろしくお願いします。
>>495 基本的にはいいと思うけど、人が増えたときのサーバー負荷が高くなりそう。
もしアパッチでやってるなら
アパッチよりもnodejs等でリアルタイムWEBな方式を検討してみてる価値はあると思う。
497 :
495 :2013/07/05(金) 13:48:09.69 ID:a6le42l8
>>496 アドバイスありがとうございます。
AjaxやCometよりも、リアルタイムWEBとしては、node.jsを利用した
WebSocketに優位性があるようですね。勉強してみます。
なお、実際、以下のようなジレンマが悩ましいです。
Ajax、Cometについての言及。
http://www.atmarkit.co.jp/ait/articles/1010/05/news133_2.html 「1リクエスト/レスポンスヘッダー自体は数KBと、そう大きくありませんが、
リクエストの更新頻度が密になってくると、毎回のリクエスト量は馬鹿になりません。
更新頻度を遅くすると、欲しい情報がすぐに手に入らないし、更新頻度を上げると
サーバへのリソース要求が高くなる、というジレンマを抱えることになります。」
node.jsを使えば、そのようなジレンマは無い
>>497 Ajax、Cometについてはそういった問題があるけど、WebSocketにはないんだろ?
じゃあWebSocketでいいじゃん
なに使ったところでc10kに対応しないとダメなんじゃないの。
501 :
495 :2013/07/05(金) 21:03:22.28 ID:wXQJTLAZ
>>499 レスありがとうございます。
WebSocketについては今日知ったばかりなので、検討中です。
学習コストが高そうなのと、ブラウザの一部が未対応との情報が気になります。
なお、質問の主旨は、
>>495 のとおり「対戦開始までの基本的な流れ」は、
どう設計したら良いかです。 PHP側での注意点など、ご指摘してくださると
有り難いです。
>>501 何を心配しているのか具体的に書いてくれないと具体的に答えようがない
データの矛盾?パフォーマンス?不正操作の穴?ユーザビリティ?
503 :
nobodyさん :2013/07/05(金) 21:18:42.01 ID:HeBuTBQC
対戦ゲームの設計なんて言語と関係ない。
504 :
495 :2013/07/05(金) 21:24:34.84 ID:wXQJTLAZ
>>502 対戦ゲームの設計についてです。
対戦システムを作りたい。
例えば、オンライン将棋やオセロなどは、どのように対戦成立を実現しているのだろう。
チャットシステムを応用すればよいのかな?
とりあえず、
>>495 の設計の流れで出来た。でも、これで本当にいいの?
こういった疑問です。
PHPで作る対戦システムの設計やロジックを知りたいです。
>>504 他の対戦システムの設計が君の対戦システムにマッチするの?
508 :
495 :2013/07/05(金) 22:09:30.25 ID:wXQJTLAZ
あ、ここってスレ違いの話題OKになったんだっけ? ではこれから遠慮なくRubyの布教をさせてもらう
510 :
nobodyさん :2013/07/06(土) 09:13:16.29 ID:CYENJL3T
リアルタイム通信ゲームは、PHP外とは限らない、PHPとも限らない。 速度さえでるならサーバーはPHPで設計していい。 しかしユーザー側はPHPが動作する環境にないから、 JavaとかJavascriptとかflashとかC++とかC#とか別に作らないとダメだろ。 ブラウザでHTMLだけを表示してたらリアルタイムにならない。
511 :
495 :2013/07/06(土) 10:16:04.38 ID:Jrzu0zyx
すみません。誤解が生じたようなのでお詫びします。 リアルタイム通信については、質問の主旨ではありません。 質問の主旨は、「PHPで作る対戦システムの設計」です。 特に、対戦開始成立までの流れです。ただ、付随的にAjaxを利用しています。 ですから、PHPに関連する範囲でアドバイスをお願いしています。
設計ってPHP関係あるの?
それが許されるのならPHPで作る今夜の献立でも質問しようかな
Perlなどと一緒でPHPはおもにサーバーでテキスト処理する言語。 ネットワーク機能もあるがサーバーが外部とのやりとりするためでユーザー側を操れるわけでない。 ユーザー側の通信を制御するのはPHP以外の技術。
515 :
495 :2013/07/06(土) 11:32:03.73 ID:cPOigFzJ
>>495 の1.〜6.までの流れで良いのか?悪いのか?を聞きたかったです。
悪いなら、どこが悪くて、どう直せばよいのか、
良いなら、他に改良点があるかです。
518 :
495 :2013/07/06(土) 12:12:39.60 ID:cPOigFzJ
>>516 なるべく対戦開始時間が近い方が良いですが、
数秒のズレがあっても良いと考えてます。
>>515 そもそもnode.jsとかを使うなら全然違う処理になるんだから、まずnode.js勉強しろ
520 :
nobodyさん :2013/07/07(日) 10:30:07.30 ID:UBLgc+ap
521 :
nobodyさん :2013/07/07(日) 10:31:14.83 ID:UBLgc+ap
>>520 です
続きです
function is_img($img_path){
if (!(file_exists($img_path) and $type=exif_imagetype($img_path))) return false;
if (IMAGETYPE_GIF == $type) return 'gif';
else if (IMAGETYPE_JPEG == $type) return 'jpg';
else if (IMAGETYPE_PNG == $type) return 'png';
return false;
}
522 :
nobodyさん :2013/07/07(日) 10:31:57.30 ID:UBLgc+ap
>>521 です
続きです
$data = $_POST['files'];
$www_dir = "/img/upload_images/";
$file_path = $_SERVER['DOCUMENT_ROOT'] . $www_dir;
$file_name = "test";
if (touch($file_path . $file_name)) {
$fp = fopen($file_path . $file_name, 'w');
$data = base64_decode(str_replace(' ', '+', $data));
fwrite($fp, $data);
fclose($fp);
} else {
echo 'No Writeing';
}
if ($ext = is_img($file_path . $file_name)) {
if (rename($file_path . $file_name , $file_path . $file_name . ".org.$ext")) {
echo "not rename exit";
exit(0);
}
} else {
// ここが実行される!!
echo 'image only';
exit(0);
}
echo $file_path . $file_name . ".$ext";
なんかよくわからんけど、POSTされたファイルをうpしないと検証できないんじゃないの?
524 :
nobodyさん :2013/07/07(日) 11:24:43.82 ID:UBLgc+ap
画像見れないし。 それと、エンコードデコードしたやつじゃなくて、POSTされたファイルそのものが 検証には必要なんじゃないかと思うけど。
あ、元画像じゃなくて、サーバに保存されたファイルをPOSTされたファイルって言ってるからね。
527 :
>>520-522です :2013/07/07(日) 15:15:41.14 ID:UBLgc+ap
試しに
>>522 のfopenからfwriteまで抜き出して
その例のbase64食わしてみたらちゃんとデコードされたぞ
デコードするまえのbase64 のデータのまま保存したらどうなってる?
529 :
>>520-522です :2013/07/07(日) 15:59:57.74 ID:UBLgc+ap
>>528 >デコードするまえのbase64 のデータのまま保存したらどうなってる?
エンコード状態で保存しても画像としては見れないままです・・。
新たな発見がありました
下記のコードを実行すると
--------------------------------------------
$data = $_POST['files'];
$data = str_replace(' ', '+', $data);
echo '<img src="' .$data.'">'; // ←ちゃんと表示される
$decode_data = base64_decode($data);
$encode_data = base64_encode($decode_data);
if ($decode_data === $encode_data) {
echo '一致';
} else {
echo 'なぜか不一致';
}
--------------------------------------------
「なぜか不一致」が出力されてしまいました・・・orz
こんなことってあるんですか・・・?
>>529 画像として見るんじゃなくて、base64の文字が最初のほうだけでも目視でチェックできるだろう
つーかなんとなく想像ついたよ、ちと待ってなw
base64に食わす時に、 >data:image/png;base64, この文字まで食わせてるだろう、それが原因だよ。
533 :
>>520-522です :2013/07/07(日) 16:22:53.03 ID:UBLgc+ap
直前のレスでわかったと思うけど、 base64_decode するときは base64,の次の iVBO〜から渡さないとダメだよ
535 :
nobodyさん :2013/07/07(日) 16:28:05.91 ID:UBLgc+ap
>>532 ああ……そういうことですか…
お騒がせしてしまってもうしわけない
MIMEとかなんやらのファイルに関しての知識がまったくなかったもので…
なんだそりゃ
537 :
nobodyさん :2013/07/07(日) 16:50:02.91 ID:UBLgc+ap
ここにいる方の言うとおりにヘッダ部分を省いてデコードすると無事表示できました。 PHPの関数の不具合かと思い込んでいたので危うくいつまで経っても解決できないところでした ありがとうこざいました
うわぁ・・・
なんで無知ほど、バグや仕様の不具合のせいにしたがるんだろうね?
無知だからさ
>>539 >>520 だけど、無知だからだよ。
「php base64_decode」や「php
base64_decode ファイル保存」ググって5ページくらいリンクを紫色で塗りつぶしたけど、ファイルのヘッダ部分を削除してファイルに保存してくれるコードには出会わなかったしどうすりゃいいんだよ
そういう意味の無知じゃない 知識がないことじゃなくて、行為と判断に対して言っている
$_FILES 使えよ
>>542 じゃあその行動と判断の模範解答例をお願いします。多分それが解決しないと何の意味もないし、今後の参考にしたいので。
546 :
nobodyさん :2013/07/07(日) 18:55:42.52 ID:zB7I9fCC
まともな頭持ってたら各段階でデータがどうなってるか確認する つまりここに書き込むまでもなくわかるということ 一言で言うと 馬鹿には無理
質問者になりすまして煽るパターンは、もうおなか一杯です。
548 :
nobodyさん :2013/07/07(日) 22:29:14.71 ID:UBLgc+ap
>>546 めちゃくちゃ荒らしてあとで申し訳ないないけど、 データがどうなってるかは最初からわかってるし、データどうなってるかがわかったところで根本的解決にはならない。そもそもヘッダを含めちゃいけないってしらなかったんだから。
549 :
nobodyさん :2013/07/07(日) 23:59:44.98 ID:zB7I9fCC
自称わかってる(笑)の本質なんてこの程度のもんだということを馬鹿がさらに宣伝してるだけだな 元本と比べれば小学生でも違いはわかるんだからさ(笑)
550 :
nobodyさん :2013/07/08(月) 00:13:08.66 ID:Ut6Bx/oC
>>549 君はバイナリデータがよめるのか
へーすごいね
551 :
nobodyさん :2013/07/08(月) 01:30:40.63 ID:JakHMzbX
【OS名】Windows7 【PHPのバージョン】5.3.8 【連携ソフトウェア】Xampp , Twitter BootStrap PHPとMYSQLを用いてテーブルの表示し、表示されたページからボタンを押下して ステータスを0⇒1⇒0⇒1と更新したいと考えてます。 現在、テーブルを表示させることはできてますがボタンを押下した際に対象となる列を指定して更新することができません。 対処法をご教示頂ければと思います。 $row[0]にはコードが、$row[1]にはステータスが挿入されてます。以下ソース抜粋となります。 while ($row = mysql_fetch_row($list_result)){ switch ($row[1]){ case '0': $aaa = row[0]; $status = '<button name=test class="btn btn-small btn-primary">Statu0</button>'; break; case '1': $status = '<button name=test class="btn btn-small btn-danger">Status1</button>'; break; } echo <<<list2 <tr align="center" > <td>$row[0]</td><td>$status</td> </tr > </form> list2; } if (isset($_POST['test'])) { echo $aaa; }
>>551 >テーブルの表示し、
日本語すらまともに使えないゴミは消えろ
出力コードだけで更新系のコードが一切記述されてない状況で何を判断しろとw そもそもボタン押下時のスクリプトは成功してるんかね?
>>548 知らなかったことを責める馬鹿は気にするな。
知って学んで二度目は自力で解決できることが大切。
555 :
nobodyさん :2013/07/08(月) 04:07:07.17 ID:TuBZgbNe
テキストエディタででも画像ファイル開いてみてから言えよ馬鹿
556 :
nobodyさん :2013/07/08(月) 04:09:09.42 ID:TuBZgbNe
解決手法を学習しない548みたいなのは迷惑にしかならないから 早いトコやめた方がいいよ
>>551 も大概にしろよ。
お前みたいな知恵遅れが使うからPHPのイメージが悪くなるんだ。
558 :
nobodyさん :2013/07/08(月) 08:26:24.69 ID:Ut6Bx/oC
>>555 さすがにそれはやったよ。ただそれで解決できるなら質問なんかしない。
壊れたバイナリをみてどんな行動をとればいいのかと聞いているんだが。バイナリデータ意味わかってる?
まず、base64のデータを普通にでコードしたら正常なpngができたこと、 異常な方と正常なpngで最初の100バイトほどダンプしたらあきらかに全然違っていたのと ファイルのサイズが異常な方は数バイト大きかったので、 この大きくなった分がどこから来たか推測して(先頭から違うんだから最初がおかしいと推測できる) 試しにヘッダごとデコードしてみたら、問題のデータと全く同じものができた。 という手順で検証した。 $_FILES使えって
PDOで書く時、$dbhとか$stmtとかの変数で書く人が多いんだけど これはどういう意味? データベースヘッダー?
DataBaseHandler STateMenT
俺は$dbhじゃなくて$pdo $stmtじゃなくて$psとかにするかもな
>>558 主題と逸れてるのは理解したうえで言うけど、
適当な画像ファイルをテキストエディタで開いてみるといいよ。
読める文字が先頭についてるから。
マジックナンバーね。
まあpngはすぐわかるなw
567 :
nobodyさん :2013/07/08(月) 20:38:11.53 ID:Ut6Bx/oC
>>564 エディタで開いたんだからさすがに気づいてたけど、それが解決にはならん気がする。
>>559 >base64のデータを普通にでコードしたら正常なpngができた
→「普通にデコード」の意味がわからんけど、img src=base64データ で表示はできたんだからデータが間違ってないのはわかってるよ
>この大きくなった分がどこから来たか推測して(先頭から違うんだから最初がおかしいと推測できる)
→それならヘッダ以外の後のほうは、元データもヘッダ付きデータも同じなんだから後の方が違うのはおかしいと思っちゃう
>$_FILES使えって
→ドラッグアンドドロップで画像をアップロードするものを作っていて、一番自分でカスタマイズできそうなサンプルを探し、それが結果的にbase64で送るものだったんです
普段は勿論 $_FILES使います。
「推測すればいい」 というけれどもちろん私はエスパーでもなければ感のいいほうではありません。今回は完全にバイナリファイルの扱いが初めてだったことと、質問時にそれを伝え損ねた事が原因だと思うので今後は気をつけていこうと思います。
>>567 今後は?
コイツ社会経験のないksニートか?w
二度目はねーんだよ二度と来るな恥知らずwww
>>567 まぁ、いらいらすることもあるさ。
次は、base64エンコードされるというのはどういうことかって言うのを調べておけばいいんじゃない?
意味もわからず使うからそうなるわけで、それすらも省略される近道を求めちゃいけないと思う。
よっぽど暇なんだな
571 :
nobodyさん :2013/07/09(火) 00:34:06.56 ID:k7B6tgkb
あーいえば上祐(笑) 全力で言い訳する暇があったら一言礼だけ言って次に進めよ 全力で言い訳してる時点でもうだめだわ
>>567 お前のできない理由なんて誰も興味ないのもわからんのか
573 :
nobodyさん :2013/07/09(火) 12:08:16.33 ID:k7B6tgkb
馬鹿しかいないこの板でも桁外れに頭が悪いんだよそいつは
>>567 キミの問題は、結果がおかしい時に何も調べずに
phpの仕様のせいにして先に進めなかったtことと
結果がわかっても自分のせいにしたくなくて
今後のやり方をあらめようともしないところ
今後人に聞くのはやめろよな、環境作っていろいろ調べて結果を出したのに後味悪すぎる
>>567 みたいなクズが今後中学高校大学と進学して社会に出てくると思うと絶望的だな
うわうぜぇ。また回答者にも質問者にもなれない人が増えた。夏休みってもう始まったの?
579 :
nobodyさん :2013/07/09(火) 20:33:18.30 ID:k7B6tgkb
576=567
567叩いてるおれカッケーwwww
582 :
nobodyさん :2013/07/09(火) 23:32:29.01 ID:eZcG40Bc
>>578 はい。
でももっかい彼が書かないことにはどうにもならんなこれ
583 :
nobodyさん :2013/07/09(火) 23:34:41.62 ID:IrNQ7IWS
>>578 はい。
でももっかい彼が書かないことにはどうにもならんなこれ
584 :
nobodyさん :2013/07/09(火) 23:43:38.47 ID:eZcG40Bc
さすがだわw
585 :
nobodyさん :2013/07/09(火) 23:55:05.15 ID:7W64c/4q
>>578 はい。
でももっかい彼が書かないことにはどうにもならんなこれ
驚異の糞スレ
587 :
nobodyさん :2013/07/10(水) 01:02:31.39 ID:CN5V3Wu/
そもそも最底辺が集まる板だし
少し前の状況に戻っただけだな。最近マシになりすぎてた感すらある。
589 :
nobodyさん :2013/07/10(水) 08:49:43.91 ID:BysYyNl3
よんだ?
590 :
nobodyさん :2013/07/10(水) 09:53:23.36 ID:hhzOdqYq
PHPの3項演算子について質問です。 コロンの後に、exit()を用いても大丈夫ですか? 以下の文は、期待通りに動くのですが、後々、問題になるのを避けたいです。 $val = !empty($arg) ? $arg : exit('error');
592 :
590 :2013/07/10(水) 11:40:26.12 ID:E8EpK5eU
なるほど。 と思いましたが、次のようにするとTRUEかFALSEが代入されてしまいます。 どのように or die を使えば良いのでしょうか。 $val = !empty($arg) or die('error');
594 :
590 :2013/07/10(水) 12:08:45.87 ID:E8EpK5eU
>>593 <?php
$arg = 1;
$val = !empty($arg) or die('error');
echo $val, PHP_EOL;
結果 1
これは確かに1を出力します。
なぜなら、!empty($arg) の返り値がTRUEであり、出力すると1になるから。
しかし、$arg = 5;にしても1になってしまいます。
この点は不具合です。
<?php
$arg = 5;
$val = !empty($arg) or die('error');
echo $val, PHP_EOL;
結果 1
595 :
nobodyさん :2013/07/10(水) 12:22:00.97 ID:85QoHIBq
>>594 1じゃなく、何になって欲しいの?
不具合というなら、期待していた結果もお願いします
596 :
590 :2013/07/10(水) 12:28:26.21 ID:E8EpK5eU
>>595 $arg = 5;
$val = !empty($arg) ? $arg : exit('error');
結果 5
これと同じ結果になるように or die を使う例を教えてください。
というか最初の質問とずれてきていますが。。
>>590 そもそも三項演算子があまりお勧めではないし、
> $val = !empty($arg) ? $arg : exit('error');
のような書き方もまあ普通はしないから、そういう書き方はあまりしない方が良いとしか言えない。
$val = !empty($arg) ? $arg : null; if ($val === null) exit('error');
>>595 スレを荒らすつもりがないならゴミの相手はするな
if (empty($arg))exit('error'); $val = $arg; でいいじゃん。 emptyが値を受ける5.5以降なら empty($val=$arg) or die('error'); って書けるけどさ、 素直に書くのがいいよ。
601 :
nobodyさん :2013/07/10(水) 17:45:00.68 ID:85QoHIBq
602 :
nobodyさん :2013/07/10(水) 17:45:47.76 ID:85QoHIBq
>>600 unset($arg) 状態で動かすとnotice出るんじゃないの。
empty使うメリットが失われてるかと。たぶん。
そだね
604 :
590 :2013/07/10(水) 20:39:33.46 ID:65tBLdRF
>>597 : exit() は、確かに、行儀の悪いコードですよね。
>>601 or die の使うやり方、理解できました。
コードを載せて頂き、有難うございます。
やはり、: exit()は、推奨される書き方ではないようですね。
if(){} else{} を使うと4行ほどになったり、インデントでコード量が
多く感じるので、1行にまとめたいと思った次第です。
有難うございました。
4行になると何が困るの?
606 :
590 :2013/07/10(水) 21:19:56.54 ID:65tBLdRF
>>605 コードが4倍になります。
たとえば、if else のコードが合計1000個ある場合、
1000行のコードが、4000行になり管理が大変です。
そんなに同じコードが出てくるのかよ? そうなったらコードを生成するコードのほうを管理するか、 バイナリにしてしまうとか。
行数増えても管理はかわんねーよ
1000個wwww どんなコード書いてるのか見てみたい
610 :
nobodyさん :2013/07/11(木) 00:27:55.00 ID:9TxHvupT
>>606 もし読んでいないならマーチンファウラーのリファクタリングを読んでみて。
>>607 > そうなったらコードを生成するコードのほうを管理する
大抵の場合、それは悪。
そうする場合は最大限の注意を払わなければ代償は信じられないほど大きい。
1000個を連想配列にしてループを使えよ。実質的には $arg1、$arg2、$arg3、でも $arg[1]、$arg[2]、$arg[3]、でも同じ用途に使えるだろ。
行数よりも可読性の高さのほうが大事
>>611 は遅いし
>>612 はメモリがだめ
なんの書き方してもメリットデメリットあるし好きにすればいいよ
関数化が遅いって謎すぎるw
呼び出しコストを知らないらしい
>>606 は管理が大変になるって言ってるんだけどwww
しかも1000個は例示だしw
でお前は何が言いたいんだ? 自分の手法を突っ込まれて悔しかったのか?
619 :
nobodyさん :2013/07/11(木) 15:41:38.46 ID:rFR/PQIZ
APCの質問です phpのファイル名が同じだと、別のディレクトリにあっても、同じキャッシュが適用されて同じコードが実行されてしまうことを確認 これ大変困ってるんですけど解決策ないでしょうか? APCをオフにする以外で
同じって、、、相対指定してんの? apc.stat をオンでいいんじゃないかな
621 :
nobodyさん :2013/07/11(木) 16:07:19.89 ID:rFR/PQIZ
少なくともうちでは同じファイル名が結構あるけど、chache entryを見たら別ものと認識してたよ
623 :
nobodyさん :2013/07/11(木) 17:17:31.33 ID:rFR/PQIZ
apc.statはONになってました 他にそれっぽい設定項目が見つからない…キャッシュエントリ見てみます
>>623 ローカルで試してみたけど、ちゃんと別ものとして認識してくれたよ。
$ mkdir /var/www/html/user_a
$ mkdir /var/www/html/user_b
$ vi /var/www/html/user_a/abc.php
--
<?php echo 'abc'; ?>
--
$ cp /var/www/html/user_a/abc.php /var/www/html/user_b
--
ここでuser_a/abc.phpとuser_b/abc.phpにアクセスしてみると、それぞれ別にcacheされた
--
$ vi /var/www/html/user_a/abc.php
--
<?php echo 'ABC'; ?>
--
user_a/abc.phpにアクセスするとABCと表示され、user_b/abc.phpにアクセスするとabcと表示される。
user_a/abc.phpは再chacheされていた。
--
APC Version 3.1.15-dev
時間が古いファイルを上書きしてキャッシュが更新されないのをフォルダのせいだと勘違いしてんだろ。
626 :
nobodyさん :2013/07/11(木) 18:28:21.59 ID:9TxHvupT
>>625 更新していないはずのbが、新しくなったaの動きをするって話じゃ
include で ../abc.php とかやってると怪しいw
でもそれも stat onなら問題出ないはずだけどな
今日も馬鹿ばっか 正しい情報調べれば解決なのに 中途半端な知識で意見交換ごっこ
目くそ鼻くそを笑う
631 :
nobodyさん :2013/07/11(木) 22:11:16.80 ID:rFR/PQIZ
>>624 さん他ありがとござます
どうも全てのファイルがそうなるわけではなく、何か発生する条件があるようです
厄介な問題ですねこれ…更に調べてみます
632 :
nobodyさん :2013/07/11(木) 23:44:45.19 ID:u2co9nyd
ブラウザの挙動すらわからないならwgetなり適切なものを適切に使って確認しろよ馬鹿共
何の話なんだろう
634 :
nobodyさん :2013/07/11(木) 23:50:42.02 ID:9TxHvupT
…なぜwget? わからないなら口出すなという定番のレスをもらうかもしれないけど、それが適切な場面とは思えないんだよなぁ
635 :
nobodyさん :2013/07/12(金) 11:51:40.41 ID:iv8k8+L5
馬鹿が適切だと思ってやることは間違いなんだから仕方ないな 適切なことを適切なことだと判断できるのなら その時点でこの馬鹿板の住民より上だからな
636 :
nobodyさん :2013/07/12(金) 11:53:44.17 ID:jzIu4enx
>>621 の件、この例のabc.phpみたいな単純な形だと起きないようで、
abc.phpがclass.phpみたいな他ファイル内の親クラスを継承していて
ユーザーAがclass.phpを書き換えてUPし、apc.phpを実行したら
ユーザーBのabc.phpがユーザーAのものと同じ挙動になってしまう
ということが起きているようです
が、これが必要十分条件かわからないので、更に調べてみます
637 :
nobodyさん :2013/07/12(金) 13:04:04.59 ID:GnfS9HXK
URLがディレクトリを指しているのに、phpで処理しているって いうのは、どうやっているんですか?
具体例をだしてみ
>>636 俺も似たような経験あるわー
apcやめて、eaccerareterに戻ったわー
は??? PHPじゃなくてHTMLの質問じゃねーか アンカーテキストのURLとリンク先が一致してないだけだろ
>>640 PHP=脆弱性の塊。
安全なウェブサイトを作る方法の一番最初に「PHPは使わない」
と書いてあった時代に流行った、
apacheの設定を変更して、拡張子を偽装するという手口の名残りだろう。
>>644 PHPを忌み嫌ってるのにもかかわらずPHPスレに顔出してるだけあって、池沼級の馬鹿なんだなと思った
転送先URLをパラメータとして、受け取って加工して表示してるだけだ。 PHPが使われてるかどうかも不明だし 静的に生成しているんだったらHTMLだけで実現できる。
647 :
nobodyさん :2013/07/12(金) 14:48:40.74 ID:jzIu4enx
>>645 初心者が騙されて産廃を使って人生の何時間かを無駄にしないようにしてやるのも
ITに関わる者の務めの一つだと心得ている
自分さえよければそれでいい、信者増えて楽しければそれでいい、
そういった公共の福利を無視したPHP偸とは違うんたよ
649 :
nobodyさん :2013/07/12(金) 15:44:54.64 ID:sxqmWfDI
>>636 ユーザA、Bは同一のclass.phpを参照しているの?
それとも、ユーザごとに分かれている?
>>637 みんなが書いてるように、mod_rewriteとかで実現してる。
ただ、HTMLの問題だとか、HTMLで実現してるという言葉はうそなので信用しないように。
650 :
nobodyさん :2013/07/12(金) 17:36:50.02 ID:iv8k8+L5
引数で出力変える程度PHPみたいなごみ使う必要もない
651 :
きら 忍法帖【Lv=40,xxxPT】(1+0:8) ◆Kira.u9zNc :2013/07/13(土) 17:24:58.00 ID:9o8w/POD
653 :
nobodyさん :2013/07/13(土) 17:53:50.61 ID:I87hYon8
>>651 それもapacheならmod_rewriteでできる。
自分でやるのが面倒なら、フレームワーク使うなど。
PHP関係ない。 それはサーバーソフト依存。
655 :
nobodyさん :2013/07/13(土) 19:26:46.75 ID:MyVXWbK4
$js = $_POST[ "js" ]; $replacing = preg_replace("/\x5c\x5c\x22/", "\x22",$js); // 【\"】 を 【"】 にする $replaced = preg_replace("/\x5c\x5c\x27/", "\x27",$replacing); // 【\'】 を 【'】 にする $post_Data = json_decode($replaced, true); このとき、送られてきた文字列にマルチバイト文字があると、 jsonエンコードをかけてクライアントに返すとクライアント側(jQuery)で 日本語が文字化けします(/uxxxx/uxxxxの/が消える) デコードとエンコードは必須です 何か良い対応策があれば教えてください
SEOのイタチごっこを戦い抜く戦力の人件費と 広告代はどっちが得なんだろう
658 :
nobodyさん :2013/07/13(土) 19:54:52.81 ID:MyVXWbK4
>>656 ありがとうございます。
送り手も受けても間違いなくUTF-8に設定されています。
JSONを使うのは仕様なので、変更できないんです…。
>>658 文字化けが発生する最低限のコードを、何も省略せずに書いてみて
EUCかSJISとかになってるんだろ。 PHPの設定と、扱える文字コードは同じではない。
三連休にPHPかよw 本当にお前らって時間をドブに捨てるのが好きだよなw
>>661 おやおや、こんな夜中にドブさらいですか? ご苦労様。
米青 ネ申 禾斗 ιこ 彳テ ιナ !!
本当にここはゴミの掃き溜めだよね
彳って何て読むの?
>>665 米青 ネ申 禾斗 ιこ 彳テ ιナ !!
667 :
nobodyさん :2013/07/14(日) 21:09:09.82 ID:XtTloFXy
dbでの検索をより高速にするために[a-zA-Z0-9]の文字列を数値化してるんですが ハッシュ→10進数って変換する以外にいい方法無いでしょうか?
バイナリ文字列を4バイトずつ整数として扱えばいい。
dbでの検索をより高速にするために?
>>669 質問するのにID出さない糞は二度とくるな
なんでそんなことしようと思ったんだろうね
672 :
nobodyさん :2013/07/14(日) 22:28:15.86 ID:XtTloFXy
本当に申し訳ないんですが具体的なコードはどうなるんでしょうか?ヒントや流れだけでも phpでバイナリって単語自体初めてなんで
バイナリ文字列 = PHPで扱える文字列。特に日本語やアルファベットに限らない物。 バイナリ文字列と整数の変換はpack unpackなど。
しかしハッシュの方が計算も検索はやいだろう。同じハッシュになって衝突する可能性はあるが。 文字列全体を、複数個の整数に変換したら、検索複数回と整数変換のコストがかかる。まだ文字列そのまま検索したほうがマシ。
62進数とみなして計算する方法もあるけど、 文字数が長いとき計算があふれたりするので1文字づつ10進数2桁に置き換えてしまえ。 DB早くならんけどな。 index張れば済むんじゃねーの?
Googleだったか?がこの世のすべての情報を数値化して記録するって話でindexは数値ッショとか言ってたな メリットはよくわかんね
文字列だって内部では数値だろ 何のために変換するのかイミフ
>>677 しかしデータベースの検索速度や格納サイズは違ってくる。
sqlite3で実験してみたところ、4バイト整数×4つ (=英数字16文字)を
そのまま英数字で登録すると、5.08Mだったのに対し
整数4つ(個別index)だと8.20 MB、整数4つ(一括index)だと5.68 MB。
検索速度は大差なし。
679 :
nobodyさん :2013/07/15(月) 00:55:59.73 ID:yIQbPTaI
>>678 > しかしデータベースの検索速度や格納サイズは違ってくる。
> (snip)
> 検索速度は大差なし。
おちつこ?
おつちこ?
おちんこ!
682 :
nobodyさん :2013/07/15(月) 11:53:19.78 ID:Ggbz4wTp
コマンドラインからpharをincludeしているスクリプトを実行すると そのpharのヘルプが表示されてしまうんだが なにかphp側で設定が必要なんでしょうか。 例えばこんなスクリプト include 'phpunit.phar'; echo "hello!!"; 実行するとphpunitのヘルプが表示され、helloは出力されない
685 :
nobodyさん :2013/07/15(月) 14:05:01.97 ID:Ggbz4wTp
いや、どうすれば普通に読み込めるのかを聞きたかったんだがw
>>685 いや→×
だが→ですが、教えてください
688 :
nobodyさん :2013/07/15(月) 15:15:11.81 ID:xqHvQ6Ob
>>685 知能がさほど低くない奴がコードを書けば読み込める
知能の低すぎる奴には無理
諦めろ
690 :
nobodyさん :2013/07/15(月) 17:40:59.46 ID:Ggbz4wTp
ごちゃごちゃうるせえな まあいいけどw
692 :
きら/ 忍法帖【Lv=40,xxxPT】(1+0:8) ◆Kira.u9zNc :2013/07/15(月) 19:31:33.71 ID:OdmwjCT+
>>653 をヒントに.htaccessで出来ました。
ありがとうございました!
でももう一つ質問が出来ました。
hoge.phpの内容を
<?php echo $_SERVER['QUERY_STRING']; ?>
にし、
hoge.php?fuga?piyoにアクセスすると、
fugaしか表示できません。
URLエンコード等をせずにこのURLのままアクセスしたいのですが、
何とかなりませんか?
hoge使ってる奴って何でこう例外なくクズなんだろう
694 :
nobodyさん :2013/07/16(火) 01:05:39.46 ID:GRbiH6Vd
> hoge.php?fuga?piyoにアクセスすると、
そういうアクセスをさせたくないがための、
>>651 だったんじゃないの?
何をしたいか書いてくれないと返事できんわ
hoge使ってる奴は説明能力の欠落してる奴が大半。 プログラム以前の問題なのにそれに気づかない。
PATH_INFO知らんのかいな
697 :
nobodyさん :2013/07/16(火) 13:17:39.26 ID:XxdQ/HjM
いろんなサイトで使ってもらうようなパーツを想定しています。 その際、クッキー名をリファラにしたいのですが (つまり毎度リファラURLがそのままクッキー名に) そのクッキーが前回と同じかどうか(前回と同じサイトで利用された場合) を判定するif(isset($_COOKIE[])){ } この条件判定の際に、リファラをクッキー名として入れ込むことが出来ません。 動きませんが、感覚としては下記のようなことがしたいです。 $referer = $_SERVER['HTTP_REFERER']; setcookie($referer, value); //ここまでは出来ます if( isset ($_COOKIE[$referer])){ } ↑この$_COOKIE[$referer]というのがどうもいけてないようです。 クッキーで前回と同じサイトの同じURLで利用されたかどうかを判定するのは不可能でしょうか? どなたかご教授お願いします。
>>697 > setcookie($referer, value);
valueって何だよ。
> どうもいけてないようです。
なにがどうなのかさっぱりわからないが、最初のアクセスでリファラをcookieにsetしといて、
次回はそれを元にチェックすればいいんじゃないの?
699 :
nobodyさん :2013/07/16(火) 13:55:15.80 ID:XxdQ/HjM
>>698 返信ありがとうございます。
valueは適当な文字列ということでなんでもいいです
数字が入る予定です
>なにがどうなのかさっぱりわからないが、最初のアクセスでリファラをcookieにsetしといて、
リファラのURLをそのままクッキーにセットするというのは出来ました。
>次回はそれを元にチェックすればいいんじゃないの?
これが出来ません。
$_COOKIE[$referer]もしくは$_COOKIE[$_SERVER['HTTP_REFERER']]という記述が通るなら
出来るような気がするんですが、これが通りません。
キー名に . があった場合は、 _ になります。
701 :
nobodyさん :2013/07/16(火) 14:15:00.60 ID:XxdQ/HjM
>>700 つまりURLをキー名にすると
http://example.comが http://example_comになるってことですか ?
すいません、そもそもsetcookieも出来てなかったかもしれません。
簡単なテストが以下です
$referer = $_SERVER['HTTP_REFERER'];
setcookie($_COOKIE[$referer], 1, time()+60*60*24*7);
echo var_dump($_COOKIE[$referer]);
表示結果はNULLです。
1、となって欲しいのですが…どこか間違ってるでしょうか?
>>701 var_dump( $_COOKIE );
まずはリファも固定文字列でチェックしては
704 :
nobodyさん :2013/07/16(火) 14:54:42.94 ID:XxdQ/HjM
>>702 それやるとarray(23)となって自分のサイトで使ってる今回のテストと関係ないクッキーも
合わせて24個全部出てきました。
>>703 echo $referer;はちゃんと出ますよ。
自分でデバッグできねーならやめてしまえ
>>701 マニュアルで$_COOKIEを調べろ。
あと、ブラウザのデバッグツール(またはそれ系の拡張)入れて、cookieの様子を確認しろ。
707 :
nobodyさん :2013/07/16(火) 15:36:40.21 ID:XxdQ/HjM
swfからPOSTすると500 Internal Server Errorが発生します。 なぜでしょうか
710 :
nobodyさん :2013/07/16(火) 20:44:43.03 ID:GRbiH6Vd
>>710 すみません、swf関係ありませんでした
失礼しました。
>>710 ID出してないクズにレスしてんな知能障害
失せろ
714 :
nobodyさん :2013/07/17(水) 03:56:43.33 ID:H2iNBEZT
さすがですね?
さすがです
719 :
nobodyさん :2013/07/17(水) 19:37:59.94 ID:LitNIdVr
こんな頭の血管細いやつらがなんでこんなタイトルのスレにはりついてんだよw 自分で寿命縮めにきてるドMかよ
ちょっと
>>678 について考えてたが
文字列と数値型の検索速度はインデックス化してなかったら差が出ると言いたかったのか?
723 :
nobodyさん :2013/07/18(木) 18:45:54.37 ID:6pVpjJwr
$ipAddress = $_SERVER["REMOTE_ADDR"]; print "$ipAddress"; でipアドレスを表示させようとすると ::1 と表示されてしまいます。 何が原因なのでしょうか? お分かりの方いましたらご教授願います。
IPv6やねー
基礎からやってないゴミが言語だけ習得してやろうとした結果がこれ ゴミすぎて色々終わってるけど本人は気づいてないんだろうな
727 :
nobodyさん :2013/07/18(木) 19:33:34.18 ID:EdDxyS9V
単にIPv6のループバックアドレスだって気づかなかっただけじゃないかな。 基礎の範囲がどこまで含むのかわかんないけども。
基礎の範囲ではないと思うけど ぐぐればすぐ出てくるようなことを聞くなとは思う
729 :
nobodyさん :2013/07/18(木) 21:06:02.55 ID:EdDxyS9V
その気持ちもわからんではないが、そうすると下らなくない質問になるジレンマ
検索サイトすらまともに使えない白痴の使う言語PHP
731 :
723 :2013/07/19(金) 01:19:36.31 ID:wJN3xvbD
>>725 >>727 返答ありがとうございます。
簡単なアクセスカウンタを作っていて、同じIPアドレスでは何度もカウントしない
ようにする為にIPアドレスから判定したいのですが、IPv6だと結果として::1 が出てしまいます。
IPv6の場合はどうすればいいのでしょうか?
同一IPアドレスかどうかだけ分かれば良いです。ご存知でしたら教えていただけないでしょうか?
::1 と ::1 を比較すれば同一IPアドレスだってわかるよ
733 :
nobodyさん :2013/07/19(金) 05:04:37.71 ID:eqXiA8JH
>>731 ええっと、外部からのアクセス時に ::1 が表示されるということでいいのか?
>>724 はスルーなのか
簡単な英語も読めないやつはプログラムやめたほうがいいよ
ループバックアドレスの意味わかってないんだろ
736 :
nobodyさん :2013/07/19(金) 13:36:18.38 ID:fYJiONHF
【OS名】CentOS 【PHPのバージョン】6.3 【連携ソフトウェア】SQLite WordPress 【質問内容】 検索について質問です。 検索する際に複数のキーワードを指定しますが 例:東京 おみやげ おいしい この場合の検索というのは 東京 and おみやげ and おいしい 東京 or おみやげ or おいしい どちらになるのでしょうか? 検索エンジンでは特にそういったオプションは見なかったのですが どちらが一般的なのか教えていただけないでしょうか。
すきにしろ
いっぺん試せよ 99%andだろうけどそんなCMSの仕様まで知らんソースヨメ
739 :
nobodyさん :2013/07/19(金) 14:22:55.18 ID:eqXiA8JH
>>736 スレ違いだけど、一般にそれらは複合された上で、優先度がつけられる。
>>738 CMSの仕様を知りたいわけじゃなさそうだが
>>786 WordPressはAND検索。
一般的にもスペースで単語を区切って検索するのは、AND検索。
下らねぇレスばっかだな 答えられないのなら黙っときゃいいのに
743 :
nobodyさん :2013/07/19(金) 17:38:31.70 ID:9KDx1fUs
PHPの配列の型について質問です。 クッキーを配列にしているのですが for($i=0;$i<2;$i++){ setcookie("cookie[cookie.$i]", 0, time()+60); } 実際とは違うので↑が合ってるか分かりませんがこんな感じに書いてます。 この後セットしたものを echo var_dump($_COOKIE["cookie"]); で見ると、 array(6) { ["cookie0"]=> string(1) "0" ["cookie1"]=> string(1) "0" ["cookie2"]=> string(1) "0" } と、string型になってしまいます。これをintにしたいのですが 例えばsetcookie("cookie[cookie.$i]", (int)0, time()+60); としてもstring(1) "0"と出ます。これは仕様ですか?
744 :
nobodyさん :2013/07/19(金) 17:40:16.99 ID:9KDx1fUs
array(6)っていうのはコピペミスでした、この場合array(3)です。 どなたか宜しく御願いします。
>>743 cookieってテキストファイルに保存されるから、文字列として扱いましょう。
>>745 ありがとうございます。
stringになるものとして扱っていきます。
>>742 で、でた〜wこれで返した気奴〜wwwww
748 :
nobodyさん :2013/07/20(土) 11:15:43.04 ID:0pH7e+ys
PDOでsqlite3使ってるんですが、1万件程度のorder byがやたら遅いです Windowsのローカル環境なら一瞬なんですが、サーバでやると何も返ってこなくなります ローカルはsqlite3.7、サーバは3.6で差はありますが、そんなもんでしょうか? サーバはubuntuです 全く同じDBファイルで速度がこうも違うのはどうも・・・
750 :
nobodyさん :2013/07/20(土) 18:02:23.18 ID:J6XcTNYz
ID出してなかったので連投。 PDOでsqlite3使ってるんですが、1万件程度のorder byがやたら遅いです Windowsのローカル環境なら一瞬なんですが、サーバでやると何も返ってこなくなります ローカルはsqlite3.7、サーバは3.6で差はありますが、そんなもんでしょうか? サーバはubuntuです 全く同じDBファイルで速度がこうも違うのはどうも・・・ 何かわかる方よろしくお願いします。
ハードの性能が悪いんだろ とくにハードディスクとか
サーバーが共用で処理を分けあってるんだろ。
sqlitewwwww
>>749-750 投稿前にメール欄の確認すらできないゴミがプログラミングやってんの?
マジで頭悪そう
ちゃんとインデックス張ってんの?
sqliteは導入の手軽さが売りってだけで 導入が手軽だからって初心者は使ってはいけないDB
メモリとCPUのリソースの差だ。 家PCだと100メガメモリ確保してソート可能だろうが。 共用サーバーでは一ユーザーにそんなに使わせてくれない可能性。 例えばメモリが1Mとか3Mでも瞬時に返るように設計する。
760 :
750 :2013/07/20(土) 21:12:18.63 ID:J6XcTNYz
>>757 ありがとうございます。
Windowsでは早かったので張ってませんでしたが、張ってみても変わらないですね。
検索、ソートにつかう項目はindex必須。
762 :
750 :2013/07/20(土) 21:16:15.88 ID:J6XcTNYz
>>758 初心者というわけでも無いので・・・
MySQLは普通に使いますが、今回はsqliteでも十分かと思っていました。
基本Selectするだけなので。
sqliteでもファイルの上限は100TくらいOKの仕様だし、速度的にはMySQLと遜色ないという報告もありましたし・・・。
>>759 一応バーチャルホストなので、100Mくらいは使えます。
order byしなければ速いんですけどね・・・。
やはりHDDですかね?
>>762 初心者じゃないならくだらない質問やめれば?
お前こなくていいから。
ひでえw
端から見てると
>>762 は初心者じゃないと思う
ただ心にかなり重い病気を抱えていると思う
767 :
nobodyさん :2013/07/21(日) 00:18:58.92 ID:g8Cbs23W
>>750 > サーバでやると何も返ってこなくなります
数値。
あと、そもそもスレ違い
>>750 =ゴミw
リアルでもゴミ扱いなんだろうなw
本人が気づいてないだけでw
ここ、初めてみたけどレベル低いな phpやってる人ってこんなもんなん?
>>770 くだらなくない質問ならIDいらないだろうがヴォケ
772 :
nobodyさん :2013/07/21(日) 02:01:19.82 ID:g8Cbs23W
>>769 何のレベル?煽りレベルは確かに低いと思う
最近このスレで解決した質問て無いよなw まぁ質問者がゴミばっかりだけどw
775 :
nobodyさん :2013/07/21(日) 04:01:16.13 ID:g8Cbs23W
最近ってここ数時間の話かな
解決してもググったほうが早い糞みたいな質問ばっか
ボキャブラリーがゴミしかない煽り屋さんとか?
触るな
うるさいゴミ
781 :
nobodyさん :2013/07/22(月) 00:19:38.43 ID:iCQBXrZJ
>>776 ググったほうが早くない質問ってPHPみたいな
Webに情報がたくさんある言語だと難しいんじゃないのかなぁ?
782 :
nobodyさん :2013/07/22(月) 10:14:23.51 ID:40jG2XTL
質問です。 PDOのlastInsertId() メソッドを使いたいのですが、これは、トランザクションを 使わなくとも、確実に直近のIDを返してくれるのでしょうか? lastInsertId() をトランザクションと併用するべきか迷ってます。 よろしくお願いします。
>>782 トランザクションは、まったく関係ありません。
確実に最後のIDが取得できます。
トランザクションは、まったく関係ありません。
784 :
782 :2013/07/22(月) 12:09:48.23 ID:W+cK0ECS
むしろトランザクション使ってたら、閉じるまで0しか返ってこねーよ? ということが書いてあるな
786 :
782 :2013/07/22(月) 13:08:31.47 ID:ONOFBZC7
>>785 それだと、解釈が逆じゃないですか。
if lastInsertId is called before calling commit, the right id is returned.
意訳:コミットする前にlastInsertIdを実行するなら、正しい結果のidがリターンされます。
つまり、マニュアル下の例文は、”コミットした後だと0を返す”ということを
注意したいのではないかと思います。
いつまでも引っ張る奴うざい
788 :
nobodyさん :2013/07/22(月) 18:09:19.66 ID:iCQBXrZJ
>>786 mysqlだとって書いてるんだけど、それは一致してんの?
789 :
782 :2013/07/22(月) 19:32:49.41 ID:BFmXtu3i
790 :
nobodyさん :2013/07/22(月) 19:48:41.49 ID:iCQBXrZJ
791 :
782 :2013/07/22(月) 19:59:56.15 ID:BFmXtu3i
>>790 完璧な解答ありがとうございます。
納得できました。こういうことだったんですね。
『この動作は、各クライアントが他のクライアントの動向を気にせず、
ロックやトランザクションなしで、独自の ID を呼び出せるようにします。 』
792 :
nobodyさん :2013/07/22(月) 21:07:24.19 ID:SyWIm22p
変数名の一部に変数名を使う場合の質問です。 $data_1 = "10"; $data_2 = "20"; $data_3 = "30"; for($a = 1;$a <= 3;$a++){ $data_{$a} = "0"; } これで$data_1,$data_2,$data_3の値には全て0が入ると思うのですがうまくいきません。 どこが間違っていますか?
>>792 $data_1 = "10";
$data_2 = "20";
$data_3 = "30";
for($a = 1;$a <= 3;$a++){
${data.'_'.$a} = "0";
}
${'data_'.$a} = "0"; です。
795 :
nobodyさん :2013/07/22(月) 21:44:25.64 ID:SyWIm22p
>>792 そういうのは普通配列を使うんだけど、配列じゃ駄目なの?
namespace使ってる? 入れ子を\で区切るとか、ファイルで宣言した名前空間外のクラスを使うとき わざわざ先頭に\をつけるあの変な感じ、どうよ? 慣れるしかないとはいえ、導入を迷うw
801 :
nobodyさん :2013/07/22(月) 23:58:54.48 ID:e0dCeDVf
なんか他に楽しいことないのかしら
ID出せっていちいちうるさいな 嫌なら無視しておけよ
ここで自治精神を発揮するくらいしか、自己承認欲求を満たす場が無いんだろ。 ほっとけよ。
回答者から質問者に対する、回答に必要な質問にまで、 ID出せというのは行き過ぎだよね。
>>808 このスレの方針に反対ならさっさと出ていけゴミが
810 :
nobodyさん :2013/07/23(火) 12:41:28.22 ID:j5IjTUb1
>>809 回答者による質問者に対する質問はIDを出す必要はないでしょ。
このスレの方針とやらを考えるなら、なおさら。
>>809 IDが必要なのは最初の質問者だけで、その回答に絡んだ疑問はID不要。
入れたければ入れてもいいが。
814 :
nobodyさん :2013/07/23(火) 15:21:57.57 ID:0dqisodV
eccubeっていうecサイトのフレームワークありますよね それのsmartyファイルのフォーム名がほとんどform1なんですけど、なぜなんですか? jsの処理でform名を固定しているからですかね
これはひどい。
817 :
nobodyさん :2013/07/23(火) 17:10:58.16 ID:0dqisodV
>>815 まともに答えられないならむりに返信しなくていいぞ
818 :
nobodyさん :2013/07/23(火) 17:46:15.32 ID:j5IjTUb1
>>814 ほんとにjsの処理にform名が出てきてるの?
いまやform名に依存する処理なんてめったなことじゃ書かないし、適当につけてるだけだと思うんだけど。
>>818 ソースをダウンロードして展開しgrepすればすぐにわかるが、やる気しない。
>>818 ここはお前の思ったことを垂れ流すスレではない。
821 :
nobodyさん :2013/07/23(火) 18:04:07.75 ID:j5IjTUb1
>>820 そうなんですか?回答者は何をすればよいのでしょうか。
>>821 自分の考えではなく
確実な情報をソース付きで書き込めばよい
ここは質問者はIDさえ出せば良い。 IDを付けさせすれば、最小限の質問内容でも 回答者が全ての可能性を精査し、 その中で質問者に最も相応しいと思われるものを ありがたく返答させていただく、そういうスレッドだ。 質問者はIDさえ出せばあとは王様として何をしても許される、 そういうところであると知れ、皆の者!
824 :
nobodyさん :2013/07/24(水) 00:20:11.79 ID:eh4z8est
825 :
nobodyさん :2013/07/24(水) 00:32:15.39 ID:kUBhaFmK
>>822 ほんとに?
今回の場合、スレ違いと回答すべきだったんじゃないですか?
ここは質問スレとは名ばかりだな ただの2ちゃんねる
ここは2ちゃんねるじゃなかったのか
828 :
814 :2013/07/24(水) 09:10:19.11 ID:RTSfazD+
で、どっちなんでしょうか 知ってる人教えてください
>>828 いちいち固有の名前を付けるのがめんどくさかっただけだろ
フォーム名を指定してある。 site.js辺りを見たらわかるよ
EC-CUBEって全然コーディング進化してないのな。。。 あんなんで海外進出って、無理やろ
832 :
nobodyさん :2013/07/24(水) 13:56:10.97 ID:RTSfazD+
>>831 eccubeのコーディングってレベル低いんでしょうか
自分phpの大規模アプリケーションはeccubeしかしらないので
PHPで大規模開発するのが間違い 他人がソースを読める言語じゃない
834 :
nobodyさん :2013/07/24(水) 15:05:38.65 ID:r13N69WF
今回はじめてPDF出力させたくなって調べています。 スタンダードなものがあると思ってたらそうでもないのですね。 ざっと見た感じ、 PHP::PDF PHP::Haru FPDF などがありました。 それぞれの特徴を比較したような記事を探しているのですが、 何かありませんか?
835 :
nobodyさん :2013/07/24(水) 15:13:07.58 ID:ggp4C653
HTMLからフォームがPOSTされたとき PHP側で$_SERVER['HTTP_REFERER']と$_SRVER
836 :
nobodyさん :2013/07/24(水) 15:21:33.77 ID:ggp4C653
途中でした。 PHPかMySQL側の問題か分からなかったのでこちらで質問させてもらいます。 HTMLからフォームがPOSTされたときPHP側で $_SERVER['HTTP_REFERER']と$_SRVER['REMOTE_ADDR']を取得し DBに保存しています。 そのときリファラを$ref、IPを$ipに入れて IPは$ip2long = ip2long($ip);として変換しています。 そしてMySQLの"URL_ip2long"と"ip2long"というカラムを用意し $sql = "INSERT INTO tbl1 VALUES (\"${r}_$ip2long\", ip2long);"; というSQL文で送っています。 するとMySQLのほうの「URL_ip2long」と「ip2long」の二つのip2longの数値がバラバラになることがあります。 同じときもあるのですが、なぜ同じ変数でsql文を作っているのにバラバラになるのでしょうか?
MySQL の型は? 桁数足りてないんだよきっと
838 :
nobodyさん :2013/07/24(水) 15:41:10.71 ID:ggp4C653
>>837 はっ!それは盲点でしたURL_ip2longはvarchar(255)で
ipはint(11)でした。
intが短すぎるのですね最大の15桁くらいで問題ないでしょうか?
mysqlの int(11)の 11の意味は 格納できる数値の桁数とかではありません。 ゼロ埋め設定したときの桁出しかありません。 intでは足りません。
840 :
nobodyさん :2013/07/24(水) 16:26:04.65 ID:kUBhaFmK
> intでは足りません。 そうなの?
IPアドレスなら32ビットだから、intが32ビット整数なら符号付いてるだろうし 足りないだろうな。BIGINT (64bit)にするとか?
842 :
nobodyさん :2013/07/24(水) 16:53:05.86 ID:kUBhaFmK
int(10) unsigned でこと足りると思うんだけどなぁ。 11なのは符号を考慮してなのかな。
843 :
nobodyさん :2013/07/24(水) 17:11:58.65 ID:mtAWVzwD
|| ←キーボードでどうやって出すの?
JISキーボードなら、。シフト+\ を2回
>>834 他人の比較記事だと着眼点が求めるものかわからない。
それぞれの紹介記事やサンプルコード、APIを眺めるのが早いと思うけど。
>>845 ありがとう。
まぁ、そうですよね。
とりあえず Haru っていうので試してみます。
パソコン初心者スレじゃねーんだぞ
phpにhtmlを書く場合 ◆ケース1 <html> <head>title</head> <body> <?php 処理 ?> </body> </html> ◆ケース2 <?php echo "<html>\n"; echo "<head>title</head>\n"; echo "<body>\n"; 処理 echo "</body>\n"; echo "</html>\n"; ◆ケース3 <?php setHeader( 'title' ); 処理 setFooter(); 関数は別ファイルで定義してあるとして、私は使い回しができるケース3が好きだし、大学の講師もケース1を使っていたのですが、javascriptやcssの記述がめんどうになります。 しかも友達がケース1を使っていたりして一緒に何かを作るってなったときやりにくいです。 一般的に作法が良いといえるのはどれでしょうか?プロの世界ではどれが正しいのですか?
smarty
850 :
nobodyさん :2013/07/24(水) 21:09:40.55 ID:kUBhaFmK
正解なんて状況によって変わる。 ただ2はひどい、せめてヒアドキュメントかnowdocをすすめる。 メジャーなフレームワークでも試してみたら?
>>848 ケース1でhead内もphpで記述すりゃいいんじゃない?
2ちゃんねるだけでも莫大な数のスレッドがあるけど ここは底辺1%にランクインするくらいの糞スレだな
854 :
nobodyさん :2013/07/24(水) 22:51:39.06 ID:3RFLgY0N
>>849-850 ありがとうございます
どれが正解とかはないのですね
smartyやフレームワークを試してみます
>>854 ロジックを書くPHPとテンプレートを書くPHPに分ける
856 :
nobodyさん :2013/07/25(木) 00:49:50.07 ID:2TH+2Iiw
"ver.2 test.Test"という文字列を"ver.2 test. Test"のように ピリオドの次の文字が大文字のときに限り半角スペースを挿入したいのですが 良い方法はないでしょうか?
857 :
856 :2013/07/25(木) 00:52:35.37 ID:???
正規表現に関する質問になるため、当該スレにて質問させていただきます。 スレ汚し申し訳ございません。
858 :
nobodyさん :2013/07/25(木) 02:50:34.31 ID:miApmhUP
>>852 1%じゃ多すぎる。せめて0.1%ぐらいを目指さないとな。
>>856 後方参照というキーワードだけで大丈夫かなぁ。
>>856 $str = "ver.2 test.Test";
echo str_replace(array_map(function($v){return".$v";},range('A','Z')),array_map(function($v){return". $v";},range('A','Z')),$str);
860 :
nobodyさん :2013/07/25(木) 17:34:59.87 ID:3t1Hdtr4
オブジェクトのプロパティに対して配列形式で呼び出せるような マジックメソッドはないよね。 ArrayObjectの継承で対応するしかないのかな? $obj->name; // publicなnameプロパティの呼び出し $obj['name']; // 配列形式でも呼び出したい
861 :
nobodyさん :2013/07/25(木) 22:46:44.26 ID:3t1Hdtr4
862 :
nobodyさん :2013/07/25(木) 22:55:09.09 ID:3t1Hdtr4
>>861 ×ArrayAccessの実装で
○ArrayAccessを実装するだけでも
ArrayObjectはArrayAccessをimplementしている。
・・・と書いてから思ったけど、せっかくArrayObjectがあるんだから
ArrayObjectの各実装部分を必要な範囲で拡張すればいいってことか。
了解。
そんなただの配列と見分けがつかないコードを読まされる身にもなれよ
>>863 みたいに実際読むわけでもない他人のやり方にケチつけるゴミは排除できないの?
865 :
nobodyさん :2013/07/26(金) 00:18:24.02 ID:J0GaH00B
mb_send_mailで送ったメールって、 同じメアドに送ったメールでも、届く時と届かないときがある。 以前はこんなことなかったんだけど。
>>865 日記帳に書いてろクズ
スレ違いの内容を平気で書き込むてめーみたいなクズはこの世にいらねーんだよ
糞みたいなコード書いてる暇があったらさっさとプロバイダ解約しろ
>>863 >>866 ダックタイピングって考え方があるじゃん。
データを保持するだけのHashライクはオブジェクトをしょっちゅう書くと思うけど、
配列(ハッシュ)を受け取る前提のコードに対して
その都度変換して渡さなきゃいけないんじゃしょうもないわけだから。
PHPではともかく、オブジェクトが[]に応答するとか
ハッシュと区別なくループに渡せるよう設計するのはありふれてるし
データの出し入れは[]のみにして他の機能(メソッド呼び出し)と区別するような設計も珍しくない。
だからこそPHPもそのためのライブラリを標準で用意してるはずだし。
>>860 そもそもなんで
> $obj->name; // publicなnameプロパティの呼び出し
> $obj['name']; // 配列形式でも呼び出したい
こんなことしたいの?
>>868 > データを保持するだけのHashライクはオブジェクトをしょっちゅう書くと思うけど、
> 配列(ハッシュ)を受け取る前提のコードに対して
> その都度変換して渡さなきゃいけないんじゃしょうもないわけだから。
どういう意味?
>>870 分からないなら答えなくていいから引っ込んでて
邪魔
873 :
nobodyさん :2013/07/26(金) 14:43:43.28 ID:uVKddw2H
クラス名を小文字にしてから名前空間取り除いて、アンダースコアが含まれていたら 最後のアンダースコアより右の部分を返すメソッドをこんな風に書きました。 $class = new \ReflectionClass(get_called_class()); $screen_name = strtolower($class->getShortName()); $screen_name = explode('_', $screen_name); $screen_name = array_pop($screen_name); return $screen_name; 自分で書いといてあれですが、途中「$screen_name =」が連続していて なんだか気持ち悪いです。スマートな書き方はないでしょうか
875 :
873 :2013/07/26(金) 14:48:05.51 ID:uVKddw2H
なぜ思いつかなかったのか… $screen_name = strtolower(array_pop(explode('_', $class->get_ShortName()))); こういうことですよね。1行で済んですっきりしました。ありがとうございました!
876 :
873 :2013/07/26(金) 14:58:36.01 ID:uVKddw2H
すみません試さずにレスしちゃいました。上記の書きかただと Only variables should be passed by reference と怒られてしまいました。array_popは分けないとだめみたいですね。 $screen_name = explode('_', strtolower($class->getShortName())); $screen_name = array_pop($screen_name); これで妥協しました。
>>859 のやり方とpreg_replace使ったやり方だったらどっちが早いの?
気になって試してみました。せっかく調べたので貼ります。
http://codepad.org/wGAI38rK >>859 のままだと遅かったのでarray_mapとrangeを使っていたところを
preg_match_allとforeachにしてみたところ
str_replace => 0.10132193565369
preg_replace => 0.14550995826721
となりました。preg_replaceの方が早そうに思えたのですが
str_replaceのほうが早いという結果に。
881 :
nobodyさん :2013/07/26(金) 17:31:30.85 ID:CaK9dws1
お前らが今まで実際に付けた変数名で一番恥ずかしい変数名を教えろくれ
正規表現のほうが早いと思ってたの?
なんでそんな変なもので比べてるのさ。 比べるなら function testPregReplace($str) { return preg_replace('/\.(?=[A-Z])/','. ',$str); }; だろ。
2^0 が2になってしまうのはなぜ?
>>882 思ってましたorz
>>883 こう書けばよかったんですね。
0.039562940597534に縮まりました。早い!
勉強になります。ありがとうございました。
886 :
nobodyさん :2013/07/26(金) 22:16:58.91 ID:IuXn2I5X
PHPとMySQLの勉強をしたいんですが、 参考書はPHPとMySQLのものを1冊づつ買うのと、 まとめて解説しているものを1冊買うのとではどちらのほうがいいですか? また、おすすめの参考書などはありますか? wordpressで簡単なテーマを作るくらいはできるので、 PHPとMySQLの基礎はなんとなくわかります
888 :
nobodyさん :2013/07/26(金) 22:29:50.57 ID:IuXn2I5X
>>887 どうしてでしょうか?
基本的に、ネットで勉強するよりも参考書で勉強するのが好きなので、
参考書を使いたいです
特に今のような初級者レベルの時にはです
じゃあどうぞ
どのレベルを目指してるのかわからないけど、本をすすめる。 初心者がやゃっちゃいけないのは全体を見渡せないうちにブログなどで適当な知識をつまみ食いすること。 これは網羅性の無さと一貫性の無さとで初心者には害以外の何物でもない。 唯一の例外は公式ドキュメント「のみ」を片っ端から読んでいくことだけど、 きっと無理。それが出来たら凄い。 ある程度の知識があってじっくり勉強する気があるんならPHPはパーフェクトPHP、MySQLは徹底入門。 これ以外ない。
891 :
nobodyさん :2013/07/27(土) 00:56:41.49 ID:vfwlgbY0
>>889 >>890 ありがとうございます。
レベルはweb系の仕事で使えるくらいを目指しています。
パーフェクトPHPは評判を聞いてパラパラと読んだことがあります。
ですがまだこれを読むのは早いと感じたので、もう少しかんたんな参考書を探しています。
もしご存知でしたらよろしくおねがいします。
>>891 PHPのもっとも簡単な参考書は公式ドキュメントだと思う。
本は、より分かりにくく説明するのがかっこいいみたいなものが多く、
こんなに簡単なことをあそこまで回りくどく書くのはすごいと思ったりした。
>>891 あとはオライリーの初めての〜が体系的で網羅されてるんで良かったんだけど、
いかんせんもう古い。
確かにPHPはマニュアルの出来が他に比べて段違いに良く出来てるから
脇目もふらずマニュアルだけっていうのも良いかもしれない。
あとは実は読んだことないんだけど、
シリーズの他の内容からして独習PHPかなぁ。
894 :
nobodyさん :2013/07/27(土) 02:58:24.62 ID:5jmrFCTn
oauthによるログインの実装はサービスプロバイダによって変えなきゃいけないと思いますが pecl oauthなどのライブラリは何のためにあるのでしょうか?
895 :
890 :2013/07/27(土) 05:43:53.91 ID:???
「ブログなど」と書いたが、この「など」には当然ながら2ちゃんねるの質問スレッドも含む。 自己顕示欲を満たしたいがために書きこまれた内容が多く、情報の信頼性はWEB上の文書としては最低ランク。 いつ返事がもらえるか分からないといった点も憂慮すると、少なくとも最初に選択肢から消える。 分かってない馬鹿がいると困るから念のために追記しておく。
>>895 「追記しておく。」じぇねーよバカw
自分が理解力無いって事を長々と自慢すんなw
>>895 ここ最近の書き込みでは、こいつが一番自己顕示欲が強いな。
PHPの本てなぜだか他言語に比べていい本が少ない感じがするな。 同じような入門者向けの本ばかりな感じで。 執筆者がマニアックな研究成果を書籍化する情熱を持ちにくいとか、 PHPの本なんか出したら馬鹿にされるとでも思ってるのかもしれないが 今くらい言語が成長してきたら、なんかあってもいいハズw 言語をマニアックに探求したようなボリュームのある本が読みたいー。 目からウロコ的な体験したいー。
マニアックなの知ってもつかわねーけどな。 while () : endwhile; とか、 declareとか
>>898 まともな人間はゴミ言語をネタに執筆するくらいなら他の本を書くよ
>>899 declare って初めて知ったわ
コロン〜セミコロンブロックはビューの作成のときに使うと便利だ
>>898 作者のラードフ自身がめちゃ冷めてるからな
読み応えのあるPHP本はパーフェクトぐらいだ
PHPの作者は文字通り末代までの恥だなw
事故解決した・・・ pecl oauthは2.0対応してないのかな・・・たぶん
905 :
nobodyさん :2013/07/29(月) 20:53:57.49 ID:L7NTB0j9
オブジェクト指向エクササイズを始めてみたんですが ・すべての文字列、プリミティブ型をラップ ・getter/setterを使わない この2つでつまずきました。ツイッターボットを作ってるんですが ツイート内容$messageを管理するMessageをつくりました。 class Message { private $message; public function __construct($mesage) { $this->validate($message); // 文字数140文字以上で例外投げる $this->message = $message; } } ここまで書いて思ったんですけど、$messageがほしいとき 絶対getter必要ですよね?getter使わないうまい方法あるんでしょうか? 教えていただきたいです。
なんでgetter/setter使わないの?
907 :
nobodyさん :2013/07/29(月) 21:23:28.16 ID:L7NTB0j9
>>907 書いてあるようなDTO戦略、ダブルディスパッチ戦略じゃだめなの?
>>905 Getter, Setter, プロパティを使用しないって、無理だろw
プリミティブラッパの Money の int をどうやってフロントエンドで扱うんだよw
とは言え、なんとなく、Messageのもう一個抽象度の高いクラスがスライドで言わんとする
プリミティブラッパなんじゃないかという気がするが。
プログラム全体で使用する文字列をまとめたようなものとか。
クラス名がMessage で 文字列がmessageなのがいかんのだよ。
ウゼエ
912 :
nobodyさん :2013/07/30(火) 23:14:30.42 ID:WU4kZdo7
Apacheの.htaccessでセットした環境変数をPHPで取得する際、 $_SERVERからはとれるけど$_ENVには含まれてない。 直感的には$_ENVにセットされそうなもんだけど、 webアクセス(webサーバ)だから$_SERVER?
$_ENVは環境変数なんだから、そこに入るのほうが違和感
どなたか今流行りのD・V・D!のAA(女の子が責任とって脱ぐはめになるやつ)を「C・G・I!」で作り直してもらえませんか? これは依頼であり質問ではないのでIDは出しません。
915 :
nobodyさん :2013/07/31(水) 08:15:42.65 ID:XTaQ3zxY
functionについて質問です いままで使ってきた便利なものを詰め込んだfunction集があって 面倒なのでincludeしてそのまま使っています。 すべて使うわけじゃないんですが、使わない関数であっても読み込み時間以外の部分で 重くなっていくのでしょうか?
>>915 ベンチとる前に質問するゴミは向いてないから今すぐプログラミングやめろ
>>913 Apacheが設定した環境変数やユーザ定義の環境変数が
環境変数じゃないなら何なんだよ?
普通はENVなどのグローバル変数にセットされたりして、全部そこからとるだろ。
PHPが親切にも独自に区別してくださってるわけで。
けどまあ.htaccessに記述してる以上、ユーザがサーバ(Apache)に定義した環境変数って扱いで
$_SERVERに入るってことで間違いはないか。
918 :
nobodyさん :2013/07/31(水) 17:23:43.73 ID:Q2Qu8age
>>917 あるアプリケーションからみて、ある環境変数がどの種類の環境変数であるかを区別することはできない。
つまり、これはなんか変。
>PHPが親切にも独自に区別してくださってるわけで。
>>917 お前の普通が世界の普通だとは思うなってことだな
そもそも、今$_ENVって何か設定されるのか?
httpサーバプロセスと別プロセスで動作したり、動的モジュールで動作したり、コマンドラインで動作したり、 httpサーバもApacheやIISやnginxとかいろいろあるし、全部ひっくるめて「環境変数」ってやるよりなんか 分けといた方が良くね?って感じじゃないかと想像。
$_ENV はOSの環境変数と違うのけ? サーバーがOSの環境変数を書き換えたり、 逆にその値をコピーしたものをサーバーの設定値に 使ってるとかなら同じ値ってだけやろ
>>922 あほらし。「世界の普通」なんて大雑把にスケールでかくしゃべったって
てめえで収拾できねえだろってゆうね
$_ENV はOSの環境変数と違いまっせ サーバーがOSの環境変数を書き換えたり、 逆にその値をコピーしたものをサーバーの設定値に 使ってるとかなら同じ値ってだけでっせ
ENVって書き換えちゃうと、マルチプロセッシングモジュールが マルチプロセスではなくマルチスレッドのものだったときに 同じプロセス上の別のスレッドで処理されてるリクエストにまで 影響が出るから使わないでしょ?
929 :
nobodyさん :2013/07/31(水) 19:40:31.09 ID:CpeXHPN6
ド初心者です 大文字小文字の区別を含む英数字、アンダーバーから成る 1桁から4桁までの順列の文字列について、 逐一調べていくプログラムをおしえてください(´・ω・`) for ($i = 97; $i < 122; $i++) { for ($j = 0; $j < 100; $j++) { $check = chr($i) . strval($j); 以下略 でa0〜z99 までの英字小文字+数字2桁までチェックするのはできましたが 作りたいのはこれじゃありません。 全部で(27+27+10+1)P4 種類あるとおもいますが、全部を書き出すにはどうすればいいのでしょうか。
930 :
nobodyさん :2013/07/31(水) 20:05:38.71 ID:Q2Qu8age
全部を書き出すことが本題じゃないように思う。 その辺を気にせず適当にやるならこんな。 $characters = array_merge(range('a', 'z'), range('A', 'Z'), range('0', '9'), array('_')); foreach ($characters as $c1) { echo $c1, PHP_EOL; foreach ($characters as $c2) { echo $c1, $c2, PHP_EOL; foreach ($characters as $c3) { echo $c1, $c2, $c3, PHP_EOL; foreach ($characters as $c4) { echo $c1, $c2, $c3, $c4, PHP_EOL; } } } } チェックとやらを1箇所にしたいならジェネレータ使えばいいかな
931 :
nobodyさん :2013/07/31(水) 20:07:32.97 ID:Q2Qu8age
どっかのウェブサイトにブルートフォースアタックしようとしてるなら萎えるが
933 :
nobodyさん :2013/07/31(水) 20:21:44.96 ID:Q2Qu8age
> 1桁から4桁まで らしいので
Pって書いてあるけど、それ順列じゃないよ
935 :
nobodyさん :2013/07/31(水) 23:08:47.07 ID:CpeXHPN6
>>930 ありがとうございます
大変勉強になりました m(._.)m
array_rangeもrangeもforeachもはじめてしりました。
無事やりたい事ができました。
しかし、レンサバに置いてChromeから確認してるんですが、処理の途中で止まってしまいました。
色々調べて
ignore_user_abort(1); //
set_time_limit(86400); // 24時間継続
の2行を追加したら、処理時間は大幅に伸びたんですが、
さっきよりましになったものの、1665個調べたところで所要時間にしてせいぜい1時間くらいでとまってしまいました。
set_time_limitの設定で上限が伸びたとおもいきや、set_time_limitの24時間より先に終わってしまいました。
これはサーバーの都合でしょうか?
もう処理を途中で止めないための手立てはないんでしょうか・・・
もういろいろおかしい
65種類が4桁なので 17850625通り 1665個で1時間だとしたら、446日掛かりますが。
938 :
nobodyさん :2013/07/31(水) 23:49:17.05 ID:CpeXHPN6
>>937 おっしゃる通りです。m( __ __ )m
いまもう一度試しましたが、やはり1700個でとまってしまいました。
制限時間が限度になってしまったんでしょうか。
phpを置いているサーバーの都合と思われます。
プログラムの内容は
しらみつぶしに1種類ずつよそのサイトに問い合わせて、その結果を評価していくというものです。
むこうのサイトでエラーが出たのではなく、こっちの都合で止まってるように思えるので
ローカルで手間暇かけて実行してみます。
あるいは今回の作業は特にWEBで公開したいものではないので、phpは向いていないのかも知れません。
940 :
nobodyさん :2013/08/01(木) 00:48:00.20 ID:8K5rz99y
>>940 Librahack事件知らないのか?
無邪気にもほどがあるぞ。
どんなサーバー借りてるのか知らんが、 共用ならあっという間に追い出されるぞ
944 :
nobodyさん :2013/08/01(木) 02:16:21.58 ID:8K5rz99y
ゲゲっ!直ちに中止します m( __ __ )m 無事リスト化されたところから、空いてるアカウントは見つかったし、勉強にもなりました Librahack事件も知りませんでした
945 :
931 :2013/08/01(木) 03:04:24.87 ID:wB1Xy7gX
やな予感が当たったか。 なんか、こういう使い道がよくない質問って多いよね。 正規表現スレも似たような出来事多いし。。 桁数の少ないIDとって売買しようとしてんのかなぁ。ドメイン転売みたいに。
いちいち忠告してやる必要はないだろ いきなりコーディングから入る知能障害は一度痛い目に合うべき とはいえ思考回路が変わったわけじゃないから いつか忠告する人のいない場面でやらかすだろうね さすがは犯罪者予備軍のPHPスレ
馬鹿の癖にプログラミングから手は引かないだろうから結局いつか逮捕されるだろうなw 親御さんもさぞ楽しみにしてるだろうなw
図書館問題よく分かってない馬鹿がいるな
図書館問題って何? まさか、「1秒に1回のアクセスで落ちる図書館側のシステムガー」とかPCヲタが寝言を言ってるだけで 現実には逮捕者が出てしかも冤罪や無罪ではなく不起訴処分になったやつのこと?
こちら側にはなんの落ち度がなくても、「被害者」が警察に通報すれば警察は動かざるを得なく、 逮捕されることもあり、実名報道されたり、最悪は裁判で有罪になる可能性もある。 という恐怖を教えてくれたのが、Librahack事件。
>>949 >寝言を言ってるだけで
ワロタ
お前、Web系のプログラム書くんじゃねーぞ、迷惑だから
>>951 それで幅広く仕事やってるお陰で年収800万超えだ
今さら書くなってのは無理な話だw
有名所が外注してるやつもいくつか請け負ってる
もしかしたら俺の書いたWebサービスをお前が週一とかで使ってるかもなw
人に書くなとか言ってるお前はそれよりさらに素晴らしいサービスでも提供してるんだろうw
赤の他人でも、なんかこうやるせなくなるな・・・
954 :
nobodyさん :2013/08/02(金) 01:17:07.28 ID:ine4VESW
小数点を指定して切り上げるにはどうすれば良いですか? 例えば11.123を11.13となるようにしたいのですが、roundやceilではできません。
956 :
nobodyさん :2013/08/02(金) 08:48:25.16 ID:QtaYr1al
var num=11.123 var nod=2; nod=pow(10 ,nod); num=num*nod; return ((num-fmod(num,nod))/nod);
外注ってことは書き逃げか 現場は苦労してるだろうな、同じところから仕事の依頼がこないのを おかしいと思わんのかねえ
>>957 そう思い込まないと自己を保てないのか
可哀想に
まぁそれで自己が保てるんならそれもいいんじゃない?
>>976 同じところから注文来ないって言ったっけ?
言ってたらごめん、実際は何回か来てるよ
それに加えて仕事請け負ったところが他にも紹介してくれることがあるからありがたい
これにはマジ感謝
日々感謝の気持ちを忘れないように仕事に取り組んでる
960 :
nobodyさん :2013/08/02(金) 18:09:07.04 ID:QtaYr1al
962 :
nobodyさん :2013/08/03(土) 00:34:21.75 ID:pP7hW5m1
匿名掲示板でなんで自己主張してんだワロタ
963 :
nobodyさん :2013/08/03(土) 02:50:47.94 ID:nHQMtDT/
964 :
nobodyさん :2013/08/03(土) 15:00:12.21 ID:NU5YG7yP
【OS名】不明 【PHPのバージョン】5.3 【連携ソフトウェア】無し 【質問内容】 レンタルサーバーに掲載しているサイト用に簡易カウンターを自作して使っています。 しばらく放置プレーしていたらどうやらログ等でレンタルサーバーの容量上限に達したようで カウンターが回らなくなっていました。 単に回らないだけだったらまだ良かったんですが、悪いことにアクセス人数を記録したログファイルが 破損して容量0になっていました。それまで何人がアクセスしてくれたかを記録してある重要なログファイルが 容量0になってしまったのは残念としかいいようがありません。 そこでレンタルサーバーの容量が上限に達したときにログファイルをいじってカウンターを回そうとしても 今まで記載したカウンター数は消えないようにしたいと思っています。 どういう仕掛けをすればいいでしょうか。 お知恵を拝借させてください。
そんな特殊な環境での話されてもなあ 簡易カウンターとか言われてもどんな形式で保存してんのかすら書かれてないし エスパー呼んでこい
966 :
nobodyさん :2013/08/03(土) 15:12:00.37 ID:pP7hW5m1
>>964 その最大容量がわかってんなら、ログを書き込む前に現状のファイルサイズを見ればいいだけでしょ
967 :
nobodyさん :2013/08/03(土) 15:36:32.61 ID:tqbxpW5u
すげえ負荷高そうだなそれ
ログファイルが重要なんだったら、VPSで運用すればいいいよ。 自由に何でもできる。
969 :
964 :2013/08/03(土) 17:12:53.64 ID:NU5YG7yP
もう少し補足説明すべきでしたか(´Д`lli)ゞ レンタルサーバーはxreaです。容量は上限が150MBです。 カウンターはテキスト形式のログファイルに保存しています。 総訪問者数・今日来た人・昨日来た人の3つを"|"で区切ってテキストで保存しています。 放置して気付かないうちに容量が150MBを突破しているとこのログファイルがいつのまにやら ファイルサイズ0バイトの中身がもぬけの殻状態になってしまって今まで何人の人が来てくれたのか の重要な記録を飛ばしてしまうということをしばしば繰り返してきました。 おそらくですが容量上限に達した状態でログファイルにアクセスしたのが原因ではと踏んでいます(´・ω・`)
カウンターなのかアクセスログなのかどっちよ? 3つの数字を記録してるだけなら20バイト程度にしかならんでしょ
971 :
964 :2013/08/03(土) 18:05:16.80 ID:NU5YG7yP
カウンターでつ 容量もテキスト一行なのでほとんど取りません
でつって何?スヌーピー?
973 :
nobodyさん :2013/08/03(土) 18:53:08.59 ID:tqbxpW5u
>>969 上限に達したらそれ以上は書き込めないという仕掛けを用意したそうに見えるけど、
それで何の解決になるのかさっぱりだ。
ローテーションして圧縮して古いものを他のところに送ればいいと思うよ
974 :
964 :2013/08/03(土) 19:05:49.47 ID:NU5YG7yP
>>973 あくまでも「簡易」カウンターなんでそこまでたいそうなことはしなくても(^-^;)・・・
とりあえず容量が上限に達したときにログファイルを更新しようとしたときに
情報(総アクセス数)を誤って消さないような仕組みが構築出来れば満足です
975 :
nobodyさん :2013/08/03(土) 19:07:28.05 ID:tqbxpW5u
読み間違えてたっぽい。 そういうことなら、カウンター用のファイルと更新用のファイルを分ければいいんじゃない? たとえば、counter.dat <- 本命 counter.tmp <- 書き込むファイルのように。 今排他制御してるだろうからその辺も変更して、書き込みが終わったらmv 何より容量の上限に達さないことが一番だと思うけど。
976 :
nobodyさん :2013/08/03(土) 19:15:23.20 ID:tqbxpW5u
あ、ファイルをr+で開いてるか確認してみた?
977 :
964 :2013/08/03(土) 20:02:14.98 ID:NU5YG7yP
顔文字ウザいさっさと消えろ 何で他人に情報をタダでもらおうとするゴミ乞食に限って顔文字とかいらんものつけるのかね そんなくだらないものを覚える暇があるなら検索の一つもすればいいのに
>>978 そういうレスが一番うざがられてるなんて思いもしないんだろうなあ
しかしリアルでも、シリアスなシーンで場を和ませようとしているのか、単に癖なのか 常に半笑いのやつとかたまにいるよな。語尾が全部息抜き系の笑いになるぅww、というかぁはぁwww。
良スレの予感
988キモ杉
質問です PHP厨はプログラミング以外の面においても程度が低いようですが これはなぜですか?
>971の「でつ」とか明らかに他人をナメてるだろ もしナメてなくて自然と出てきたなら本物の精神障害
996 :
992 :2013/08/04(日) 21:02:39.08 ID:???
質問スレなんだろ? 早く答えろや
答えたいんだけど、id出てないからごめんな
>>997 いつもID出てなくてもせっせと回答してるゴミがいるだろうが
自分の都合でIDがどうのと言い出すんじゃねーよ
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。