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

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 126
http://kohada.2ch.net/test/read.cgi/php/1359808868/

◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2013/03/19(火) 22:14:04.53 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/
■Smartyマニュアル  http://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
3nobodyさん:2013/03/19(火) 22:14:29.62 ID:???
【簡易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)、起動&再起動あたり
4nobodyさん:2013/03/19(火) 22:14:47.32 ID:???
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に保存?
 → 好きにしてください
5nobodyさん:2013/03/19(火) 22:15:21.05 ID:???
テンプレここまで。過去ログリストはどうせ誰も使わんだろうから消した。
6nobodyさん:2013/03/19(火) 22:15:30.63 ID:???
☆初心者必読☆

ttp://ameblo.jp/nikko-inma/entry-11122429825.html
>数々の糞仕様の発見で驚きを提供してくれる人気プログラム言語PHP

ttp://usamimi.info/~mirrorhenkan/2ch/ruby/other/read.php/1181304333/
>「初心者にもWebアプリケーションが書ける」という幻想を与えることで、 バグだらけで、メンテナンス性が低く、
>セキュリティ問題を抱えた Webアプリケーションを乱造することになっているのではないだろうか。

ttp://qarc.info/qa/show-9478-909.html
>PHPとか言語仕様が糞なうえにセキュリティホール付でリリースするからマジないわ。

ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
PHPは順位を維持しているものの-0.16%、
一方のRubyはというとPHPより順位は低いものの+0.34%、
このままいけば必ず逆転する

ttp://www.anlyznews.com/2011/03/phper13.html
>5. PHPなどのスクリプト言語しか知らないのに、プログラミング言語の優劣を語る。
>6. PHPの遅さを知らないのに「最近のマシンは速いからプログラミング言語に速度は求められていない」と言い切る。
>11. 仕様が曖昧で急激に変化するPHPで、テストファーストとか言い出す。
>13. ブログで自らの無知をさらけ出す。

ttp://creeper.no-ip.info/adiary/adiary.php?20111122
>■ 変数名を間違えると新しい変数が作られる
>■ 文字列の変数展開がクソ
7nobodyさん:2013/03/19(火) 22:16:40.50 ID:???
☆初心者必読☆

ttp://ameblo.jp/nikko-inma/entry-11122429825.html
>数々の糞仕様の発見で驚きを提供してくれる人気プログラム言語PHP

ttp://usamimi.info/~mirrorhenkan/2ch/ruby/other/read.php/1181304333/
>「初心者にもWebアプリケーションが書ける」という幻想を与えることで、 バグだらけで、メンテナンス性が低く、
>セキュリティ問題を抱えた Webアプリケーションを乱造することになっているのではないだろうか。

ttp://qarc.info/qa/show-9478-909.html
>PHPとか言語仕様が糞なうえにセキュリティホール付でリリースするからマジないわ。

ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
PHPは順位を維持しているものの-0.16%、
一方のRubyはというとPHPより順位は低いものの+0.34%、
このままいけば必ず逆転する

ttp://www.anlyznews.com/2011/03/phper13.html
>5. PHPなどのスクリプト言語しか知らないのに、プログラミング言語の優劣を語る。
>6. PHPの遅さを知らないのに「最近のマシンは速いからプログラミング言語に速度は求められていない」と言い切る。
>11. 仕様が曖昧で急激に変化するPHPで、テストファーストとか言い出す。
>13. ブログで自らの無知をさらけ出す。

ttp://creeper.no-ip.info/adiary/adiary.php?20111122
>■ 変数名を間違えると新しい変数が作られる
>■ 文字列の変数展開がクソ
8nobodyさん:2013/03/19(火) 22:17:38.28 ID:???
前スレのキチガイ>>973は湧いてもスルーでよろ
9nobodyさん:2013/03/19(火) 22:21:04.96 ID:???
>>6-7
被ってるw
10nobodyさん:2013/03/19(火) 22:21:07.76 ID:???
独学でも真面目にPHPを極めようと思っているのにこのような仕打ちをされるとは思いませんでした。
もう二度と来ません。
11前スレ970:2013/03/19(火) 22:21:55.02 ID:8jYhxyUG
前スレの972さん、ありがとうございます。。。
cURLを使って書き換えるとこれで正解でしょうか?

$postdata =
"<?xml version=\"1.0\" encoding=\"Shift_JIS\"?>" .
"<api-request id=\"XXXX-XXXXX-XXX\">" .
"<a_id>" . $a_id . "</a_id>" .
"<b_id>" . $b_id . "</b_id>" .
"<t_id>" . $t_id . "</t_id>" .
"</api-request>";

$url = "https://example.com/api/xmlapi.do";

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_USERPWD, $id . ':' . $pass);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: text/xml'));
curl_setopt($ch, CURLOPT_POSTFIELDS, "$xml_data");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$response = curl_exec($ch);
curl_close($ch);
12nobodyさん:2013/03/19(火) 22:24:51.73 ID:???
いやマジで初心者は1回これ読んだほうがいいな
読まずに初めから無視してるのは現実から目を反らしてるのと同じ
これを読んでもまだ使いたいなら使えばいいじゃない

☆初心者必読☆

ttp://ameblo.jp/nikko-inma/entry-11122429825.html
>数々の糞仕様の発見で驚きを提供してくれる人気プログラム言語PHP

ttp://usamimi.info/~mirrorhenkan/2ch/ruby/other/read.php/1181304333/
>「初心者にもWebアプリケーションが書ける」という幻想を与えることで、 バグだらけで、メンテナンス性が低く、
>セキュリティ問題を抱えた Webアプリケーションを乱造することになっているのではないだろうか。

ttp://qarc.info/qa/show-9478-909.html
>PHPとか言語仕様が糞なうえにセキュリティホール付でリリースするからマジないわ。

ttp://www.tiobe.com/index.php/content/paperinfo/tpci/index.html
PHPは順位を維持しているものの-0.16%、
一方のRubyはというとPHPより順位は低いものの+0.34%、
このままいけば必ず逆転する

ttp://www.anlyznews.com/2011/03/phper13.html
>5. PHPなどのスクリプト言語しか知らないのに、プログラミング言語の優劣を語る。
>6. PHPの遅さを知らないのに「最近のマシンは速いからプログラミング言語に速度は求められていない」と言い切る。
>11. 仕様が曖昧で急激に変化するPHPで、テストファーストとか言い出す。
>13. ブログで自らの無知をさらけ出す。

ttp://creeper.no-ip.info/adiary/adiary.php?20111122
>■ 変数名を間違えると新しい変数が作られる
>■ 文字列の変数展開がクソ
13nobodyさん:2013/03/19(火) 22:28:18.72 ID:???
>>1おつ
14nobodyさん:2013/03/19(火) 22:41:42.79 ID:???
煽りさんスレ立て乙
15nobodyさん:2013/03/19(火) 22:56:58.81 ID:???
PHPでファイルをダウンロードすることって可能ですか?
ググったりしてみると「ダウンロードさせる」方法ばかりが出てダウンロードする方法がわかりません。
ご教授お願いします。
16nobodyさん:2013/03/19(火) 22:57:24.29 ID:8eU3/8tb
すみません。
age忘れました。
改めて質問させてもらいます。

PHPでファイルをダウンロードすることって可能ですか?
ググったりしてみると「ダウンロードさせる」方法ばかりが出てダウンロードする方法がわかりません。
ご教授お願いします。
17nobodyさん:2013/03/19(火) 22:58:10.36 ID:???
>>16
file_get_contents($url)
18nobodyさん:2013/03/19(火) 23:00:18.25 ID:???
>>17
すみません。
説明不足でした。
ダウンロードしたいファイルはzipファイルなんです。
19nobodyさん:2013/03/19(火) 23:01:20.53 ID:???
>>18
ID
20nobodyさん:2013/03/19(火) 23:05:04.66 ID:8eU3/8tb
何度もすみません(-_-;)

>>17
すみません。
説明不足でした。
ダウンロードしたいファイルはzipファイルなんです。
21nobodyさん:2013/03/19(火) 23:10:54.33 ID:???
>>20
zipファイルだから?
22nobodyさん:2013/03/19(火) 23:12:02.43 ID:8eU3/8tb
>>21
ありがとうございました。
zipファイルでもいけるみたいですね。
自分の勉強部族でした……
23nobodyさん:2013/03/19(火) 23:14:14.31 ID:???
いいってことよ
24nobodyさん:2013/03/19(火) 23:36:46.17 ID:???
>>18
ID出さないゴミは二度と来るな
お前自分がどれだけ迷惑か自覚ないだろ
クズすぎる
25nobodyさん:2013/03/19(火) 23:42:39.35 ID:8eU3/8tb
連投すみません。
以下のようにコードを組んでみました。

file_put_contents($file_path, file_get_contents($url));

URLはzip直リンクです。
このようにしてみたのですが、ダウンロードしたファイルをみたところ0バイトの無容量ファイルとなっていました。
何故このようなことになってしまうんでしょうか?
26nobodyさん:2013/03/19(火) 23:43:51.03 ID:???
少しは自分で考えろ
27nobodyさん:2013/03/19(火) 23:50:43.82 ID:???
サーバが対応してないんだろ
あきらめろん
28nobodyさん:2013/03/19(火) 23:53:26.17 ID:???
putしちゃダメだろ
29nobodyさん:2013/03/20(水) 00:13:32.68 ID:???
>>25
回答したら勉強不足でしたって言われそうな気がするので、勉強部族らしく勉強してきてください
30nobodyさん:2013/03/20(水) 00:14:50.76 ID:???
$ch = curl_init("https://github.com/foo/bar/archive/master.zip");
$fp = fopen('unko.zip', 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_exec($ch);
curl_close($ch);
fclose($fp);


このようにしてみましたが同じく0バイトzipでした。
お願いします。誰か助けてください。
31nobodyさん:2013/03/20(水) 00:15:08.45 ID:vtosDUC4
またID出し忘れた……

$ch = curl_init("https://github.com/foo/bar/archive/master.zip");
$fp = fopen('unko.zip', 'w');
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_exec($ch);
curl_close($ch);
fclose($fp);


このようにしてみましたが同じく0バイトzipでした。
お願いします。誰か助けてください。
32nobodyさん:2013/03/20(水) 00:18:52.42 ID:???
丸投げにはスクリプト作成料金がかかります。
おいくら支払えますか?
33nobodyさん:2013/03/20(水) 00:23:48.50 ID:???
ブラウザで直接そのURL叩いたときのヘッダ見てみろよ
34nobodyさん:2013/03/20(水) 00:30:36.74 ID:H3JypdK8
>>32
100円
35nobodyさん:2013/03/20(水) 00:31:38.74 ID:???
100円じゃ動けないのでヒントだけあげましょう。
ダウンロード前にログインして下さい。
ていうかちゃんと相手サイトの仕様を把握して下さい。
36nobodyさん:2013/03/20(水) 00:35:25.01 ID:???
ていうか教えてもらおうとしてる立場で情報省略するなよ
foo/bar/なんてあるわけねえだろ
ちゃんとしたURLも出さないならとっととカエレ
37nobodyさん:2013/03/20(水) 00:36:32.01 ID:p05jljgI
>>31
俺の糞コードあげる

$url = "https://packages.zendframework.com/releases/ZendFramework-2.1.4/ZendFramework-2.1.4.zip";
$file = file_get_contents($url);
$fp = fopen("/tmp/" . basename($url), "w+");
fwrite($fp, $file);
fclose($fp);
38nobodyさん:2013/03/20(水) 00:40:32.97 ID:???
俺のクソコードはresume対応だがクソだしあげない
39nobodyさん:2013/03/20(水) 00:41:38.45 ID:???
俺のクソコードはメモリに考慮して巨大ファイルでもいけるがクソだしあげない
40nobodyさん:2013/03/20(水) 00:43:40.30 ID:???
うおおおおおおおおおおおおおおおおおおおお
41nobodyさん:2013/03/20(水) 00:45:36.31 ID:???
$sql = "SELECT " $_GET['aaa'];


このコードでSELECT以外を実行することって可能?
42nobodyさん:2013/03/20(水) 00:49:07.59 ID:???
そもそも動かない
43nobodyさん:2013/03/20(水) 00:49:35.89 ID:???
>>37
ありがとうございます。
でもダウンロードすらできませんでした……
44nobodyさん:2013/03/20(水) 01:00:33.49 ID:???
>>43
低知能が一般人と同じ努力と時間でできるわけねーだろ
自分が一般人レベルだと無意識に自惚れるんだろお前
低知能は低知能らしく泥水すすってろ
45nobodyさん:2013/03/20(水) 01:01:36.62 ID:???
>>37
あ、勘違いでした、いけました。
ありがとうございました。
4641:2013/03/20(水) 01:14:58.28 ID:???
事故解決しました
47nobodyさん:2013/03/20(水) 01:20:36.47 ID:???
>>46
うぜえ

最初からブログにでも書けや池沼
48nobodyさん:2013/03/21(木) 09:19:09.52 ID:???
>>41
.がないので動かない。まぁ揚げ足取りはいいとして、
コロンはさんでDELETEなんかを追加するのは可能。
49nobodyさん:2013/03/21(木) 13:46:01.78 ID:???
セミコロンな
50nobodyさん:2013/03/21(木) 13:55:44.02 ID:H+c6ch+k
【PHPのバージョン】 5.1以降
【質問内容】 タイプヒンティングについて

PHP 5.1以降でタイプヒンティングが使えるようになりました。
マニュアルを見ると、
> タイプヒントは int や string といったスカラー型には使えません。 また、トレイト も使えません。
とあります。

スカラー型でタイプヒントができないのは、何か理由があるのでしょうか?
51nobodyさん:2013/03/21(木) 14:02:25.58 ID:???
>>49
ピリオドじゃないの?
5250:2013/03/21(木) 14:03:55.57 ID:???
すみません。すぐに自己解決しました。

Scalar type hinting is harder than you think
http://nikic.github.com/2012/03/06/Scalar-type-hinting-is-harder-than-you-think.html

後方互換性を鑑みたとき、PHPの暗黙の型変換とScalar type hintingの食い合わせが良くないというのが
主な原因の一つだと、このページの筆者は考えているようです。
53nobodyさん:2013/03/21(木) 16:07:55.75 ID:???
phpってさ?
54nobodyさん:2013/03/21(木) 18:12:01.70 ID:???
>>52
ありがとう。面白い。
55nobodyさん:2013/03/21(木) 19:40:39.73 ID:vaqS6iye
【OS名】Windows7
【PHPのバージョン】5.4.13
【連携ソフトウェア】Memcached
【質問内容】
memcachedをwindows環境で利用したいのですが、php_memcached.dllが見つからず詰まっております。(memcacheの方ならありましたが…)
memcachedサーバは別途用意済みです。
前に働いていた職場では利用できていたので簡単にできると思っていたのですが浅はかでした…。
導入方法をご教授いただけると幸いです。
56nobodyさん:2013/03/21(木) 19:41:56.00 ID:???
自分で作れば?
57nobodyさん:2013/03/21(木) 19:50:40.93 ID:???
58nobodyさん:2013/03/21(木) 19:57:43.77 ID:???
memcachedのマニュアルのとこの導入からインストールまで読んでいけば
ソースコードが入手できるリンクがあるから
そこからソースコードを入手して自分でコンパイルする
たぶんC言語だからCのコンパイラを探しなさい
59nobodyさん:2013/03/21(木) 20:01:25.53 ID:???
>>56
いろいろサイトをみつつ格闘していますが、そもそもコンパイルする環境が…という状態なので
まずVisualStudioをインストールしています。

>>57
memcacheのほうでした…。

>>58
一度辿っていって挑戦してみます。
無理そうならWindowsではmemcacheのほうを使用するように振り分けたいと思います。
60nobodyさん:2013/03/21(木) 20:04:35.56 ID:???
http://pecl.php.net/package/memcached
これじゃね?
php_memcached.cってファイルあるし
61nobodyさん:2013/03/21(木) 21:01:20.60 ID:???
そんな雑な誘導したら今度はlibmemcachedがないですってならないか?
6259:2013/03/21(木) 23:34:01.37 ID:vaqS6iye
なんとかlibmemcachedはできたみたいなのですが、
php_memcachedのコンパイルがうまくいかず(nmakeでエラーが出るもどう修正していいか分からず…)
適当に変更しつつ無理やり進めていくももう限界な感じなので諦めます…
63nobodyさん:2013/03/22(金) 00:50:03.31 ID:ZypSZ1+e
PHPで複数のブログを一括更新するプログラムをつくりたいのですが
初心者で何をどうしていいかわかりません。
勉強できるところ教えてください。
64nobodyさん:2013/03/22(金) 03:14:00.18 ID:???
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

■本家マニュアル   http://www.php.net/manual/ja/
65nobodyさん:2013/03/22(金) 03:19:20.53 ID:???
>>63
情報系の専門学校

PHPそのものは教えてもらえないと思うが
卒業時にはPHP使ってそれを組めるレベルにはなってるはず
66nobodyさん:2013/03/22(金) 12:00:48.07 ID:M7ldJLa/
ソースコードから5.4.13をビルドして~/php にphpをおいてます。
まず、私のUbuntuに入っているphp 5.3を使って
php src.php
のようにやるとすぐに実行されます。
しかし、この自分でビルドしたPHPを使って
~/php/bin/php src.php
のようにやると実行されるのに10分くらいかかってしまいます。
どうしたらいい?

そして何故かインターネットにつながってないときだと
~/php/bin/php src.php
のようにやるとすぐに実行できます。
67nobodyさん:2013/03/22(金) 13:52:52.12 ID:f80zdUg/
ボタン押下 → サーバー0 → サーバー1
              → サーバー2
              → サーバー3

という流れでサーバー0から他のサーバーに分散処理を行っています。

20件以上のデータを3件ずつ処理→レスポンスが返る
5件のデータを3件ずつ処理→レスポンスが返る

tcpdumpを確認しているとサーバー1,2,3は処理が終わってレスポンス
を返す通知をしているようにみえます。
サーバー0のほうがレスポンスを取得できない状態のようです。

考えられる原因は何がありますか
68nobodyさん:2013/03/22(金) 13:53:23.06 ID:f80zdUg/
訂正
20件以上のデータを3件ずつ処理→レスポンスが返らない
69nobodyさん:2013/03/22(金) 14:29:36.96 ID:???
includeしまくりのphpファイル読むのすごい大変なんだけどどうすればいいの?(WordPressです)
70nobodyさん:2013/03/22(金) 14:46:18.71 ID:mJIp3k85
【OS名】FreeBSD 6
【PHPのバージョン】5.3.8
【連携ソフトウェア】MySQL
【質問内容】
質問失礼します。
phpで動的に生成したhtml(js含む)を暗号化するライブラリを探しています。
「サーバサイドSHTML for PHP」というツールを見つけました。
やりたい事はまさにコレなのですが、とある事情により組み込めませんでした。
他にライブラリは無いでしょうか?
よろしくお願いします。
71nobodyさん:2013/03/22(金) 17:06:26.09 ID:???
当たり前だけど、
ブラウザのデベロッパツールで複合後のhtmlが見えるけどな
72nobodyさん:2013/03/22(金) 18:30:37.87 ID:???
>>69
index.phpから順番に全部。
73nobodyさん:2013/03/22(金) 18:34:46.23 ID:???
完全に隠蔽するのは無理
右クリで見られなくするだけならjavascriptで動的に生成すれば
74nobodyさん:2013/03/22(金) 18:38:25.64 ID:jSNpdJza
仕事でPHPをやることになったんですけど、全然わかりません
おうちで読めるおすすめの本を教えてください。
自宅でPHPは出来ないので、リファレンスとかじゃなく読むだけでなぜかメキメキ上達する本を教えてください。
75nobodyさん:2013/03/22(金) 18:46:02.95 ID:???
まずは自宅でPCを使えるようにするといいかな
76nobodyさん:2013/03/22(金) 18:47:08.54 ID:???
とりあえずxampp使えるようになろうか
77nobodyさん:2013/03/22(金) 18:52:01.91 ID:???
print 自宅のPCじゃ"やりたくない"です。。。
78nobodyさん:2013/03/22(金) 18:52:29.64 ID:???
理由は3行
79nobodyさん:2013/03/22(金) 18:57:22.94 ID:jSNpdJza
echo<<<EOF
面倒でうs
EOF;
80nobodyさん:2013/03/22(金) 19:15:00.55 ID:???
公式通読がいちばん簡単な気がするけど……
用例もあるし
81nobodyさん:2013/03/22(金) 19:47:28.11 ID:???
こんなとこでそんな下らない質問してる暇があったらさっさと勉強始めろ
お前にはただやる気がないだけだ
82nobodyさん:2013/03/22(金) 19:51:30.29 ID:???
>>74
できもしないことを引き受けるなゴミクズ
お前みたいなゴミは納期直前になってからできませんとか言い出すからマジで迷惑
社会に出てくるなクズ
83nobodyさん:2013/03/22(金) 20:07:14.76 ID:???
そもそもスレタイ通り下らねぇ質問なんだから、
スルーするか答えてやったらどやろか?
84nobodyさん:2013/03/23(土) 00:53:29.82 ID:???
>>79
XAMPP 面倒とか言い出したら、PHP覚えるのは無理だと思うぞ。
俺、PHPはこれっぽっちも判らないけど(言ってて悲しい…)
自前のPC に XAMPP 入れて rep2 を使えるように動かすまで、
30分かかってないぞ。

本当は、XAMPPや rep2 のドキュメント読んで、
やっとけって書いてあったセキュリティ上の設定とか動作上調整した方が良さそうな設定を
読んだりいじったりして、1時間ちょっと掛かってると思うけど。

まぁ、それでもそんなもんだ。

>>81
スレの存在否定しとるがな。
85nobodyさん:2013/03/23(土) 02:02:00.73 ID:???
初心者はXAMPP使うな
86nobodyさん:2013/03/23(土) 02:27:48.20 ID:???
>>85
>初心者はXAMPP使うな

駄目だしして理由も代案出さないのは下の下。
別に XAMPPがベストとか最高だからお勧めとか言ってないし。
テスト用、学習用には困らんだろ。

「面倒でうs 」って言ってる >>79 に返答してみやがれ。
87nobodyさん:2013/03/23(土) 02:28:59.29 ID:???
XAMPP否定されると自分が否定されたように感じるくらいの技術力って真面目にやばいと思うぞ
88nobodyさん:2013/03/23(土) 03:24:58.10 ID:???
否定じゃなくて駄目だしするなら代わりの答え出してやれって。
そもそも、技術力以前に「これっぽっちも判らない」って言ってる訳だから、
やばいもなにも戦闘力0なんだけど。
89nobodyさん:2013/03/23(土) 03:44:59.83 ID:???
初心者にはXAMPPは難しいだろ。
本家からビルド済みバイナリを取ってきて解凍して、php.exeなどにスクリプトを渡したら実行できるぞ。
90nobodyさん:2013/03/23(土) 03:49:36.35 ID:???
xamppはapache,php,mysqlと煩わしい設定が一通りすんである
本家のバイナリは無効なものが多く設定をいじる必要があり開発するだけならxamppのほうがよい
有効にしてるものが多いほどセキュリティリスクが高まるが
ポートも閉じてサーバを運営するわけではないので問題ない
91nobodyさん:2013/03/23(土) 03:57:50.45 ID:???
phpはサーバーサイドで使われることが多いが、サーバーから呼び出す事は必須でない。
apacheとか初心者には不要。余分なものがあると複雑になり混乱する。
92nobodyさん:2013/03/23(土) 06:44:53.94 ID:???
xamppみたいなスーパーハカー用の環境を素人に勧めるのは鬼w
PCが複数台あるなら、どれか一台にインストールと設定が簡単なUbuntuとかCentOSとかを入れる。
一台しかないなら仮想環境に入れる。
インストール時にLAMP環境をまるごと入れられるから、猿でもPHPの練習環境が作れる。
VirtualBoxにCentOSを入れて、あっさりPHPが使えるようになったときは
xamppを勧めた鬼を恨んだw
93nobodyさん:2013/03/23(土) 08:04:54.35 ID:???
不具合について調べて対処できないようでは、どんな言語でも無理だな。

Web Platform Installer
でも使え
94nobodyさん:2013/03/23(土) 08:16:30.00 ID:???
初心者はXAMPP使うな
95nobodyさん:2013/03/23(土) 10:56:30.28 ID:???
>>74 で「PHPをやることになった」って言ってるから、
php の zip なり、Installer 入れて PHPすればいいんじゃね。

>>94
それをいうなら、「初心者は PHP使うな」も真になったり…
96nobodyさん:2013/03/23(土) 11:33:38.16 ID:???
>>95
なんで?
97nobodyさん:2013/03/23(土) 16:50:44.12 ID:???
お前らはプログラムがしたいの?サーバの設定をしたいの?
98nobodyさん:2013/03/23(土) 18:20:03.41 ID:???
Webアプリケーションを作るのであればサーバーの設定もできないとダメだな
99nobodyさん:2013/03/23(土) 18:37:17.32 ID:???
プログラムがしたいからサーバはことは知らなくていいって考えなんだ
100nobodyさん:2013/03/23(土) 18:54:42.18 ID:???
知る必要がない
プログラマーの仕事じゃないから
101nobodyさん:2013/03/23(土) 19:03:28.78 ID:???
知らないと鯖の設定なのか自分の書いたPHPコードのバグか分からない場合もある
ここの質問見てたらパーミッションすら分かってないゴミがいる
102nobodyさん:2013/03/23(土) 19:15:03.81 ID:???
んなあほな
warning出すのに
103nobodyさん:2013/03/23(土) 19:50:19.60 ID:???
鯖はプログラムで動いてるんだけどね
104nobodyさん:2013/03/23(土) 20:57:48.56 ID:???
だからXAMPPは使うなと言っただろう
105EM114-49-35-242.pool.e-mobile.ne.jp:2013/03/23(土) 20:59:51.52 ID:???
XAMPPは使うなっ!!!!!!!!!!!!!!!
106nobodyさん:2013/03/24(日) 01:49:58.74 ID:???
やっぱ荒らしてるのはチンピラだったんだな
107nobodyさん:2013/03/24(日) 02:46:07.29 ID:MVB0e/DS
curlで重いファイルをpost、アップロードする時に途中経過を取得するにはどうしたらよいでしょうか
ダウンロードする時は分かったのですが。
108nobodyさん:2013/03/24(日) 04:00:14.39 ID:???
>>107
お前がしなきゃならないのはファイルアップロードの途中経過を取得することではなく
今すぐに回線を切ってネット社会に迷惑をかけないことだ
分かったかゴミ
109nobodyさん:2013/03/24(日) 05:01:13.47 ID:???
>>107
Ajaxでサーバに定期問い合わせする
それがいやならPHPはあきらめろん

ttp://p2b.jp/2010/04/30/multiple-file-upload-by-HTML5
session.upload_progress.enabledを有効にすれば
ttp://php.net/manual/ja/session.upload-progress.php
も使えるだろう(やったことないが)
110nobodyさん:2013/03/24(日) 05:39:24.59 ID:MVB0e/DS
>>109
分かりにくくて申し訳ありません。
ブラウザ→サーバー にアップロードする時の途中経過ではなく
サーバー→別のサーバー にcurlを使ってアップロードする時の途中経過の事です。
111nobodyさん:2013/03/24(日) 10:02:38.72 ID:???
>>107
ダウンロードするときのコードを教えてくれ
そしたら直してやる
112nobodyさん:2013/03/24(日) 12:32:00.53 ID:???
>>106
うるせーザコ
113nobodyさん:2013/03/24(日) 13:45:27.68 ID:MVB0e/DS
>>111
ダウンロードはこれで現状動いています。

$curl = curl_init();
$options=[];
$options[CURLOPT_URL] ="http://〜〜"
$options[CURLOPT_FOLLOWLOCATION] = true;
$options[CURLOPT_WRITEFUNCTION]=function($a,$b){
 $currentByte=curl_getinfo($a)["size_download"];
 printf("\r%2.2f/%2.2fMB",$currentByte/1024/1024,$contentLength/1024/1024);
};
$options[CURLOPT_HEADERFUNCTION]=function($a,$b){
 if(preg_match('{Content-Length:(\d+)}',$b,$match)){$contentLength=$match[1];}
};
curl_setopt_array($curl,$options);
$response = curl_exec($curl);
curl_close($curl);
114nobodyさん:2013/03/24(日) 18:14:59.12 ID:+46FugGl
終了タグ?>って基本使わないんですか?
115nobodyさん:2013/03/24(日) 18:16:00.78 ID:???
>>114
付けたいなら付けても全然構わない
116nobodyさん:2013/03/24(日) 19:09:13.56 ID:???
むしろつけなくても動くことに驚きなんだけど
117nobodyさん:2013/03/24(日) 19:33:05.87 ID:???
>>116
閉じタグは、HTMLが混在する時に使う区切りの扱い。
PHPだけのファイルでは、変なキャラクタが出力されたりしないように
省略するのが昨今の流行り。
118nobodyさん:2013/03/24(日) 20:44:25.82 ID:???
コードの書き方が流行りで変化するPHP(笑)
119nobodyさん:2013/03/24(日) 20:46:50.37 ID:???
>>113←うわw冗談を真に受けて本当にコード晒したゴ#ミがいるよwwww
120nobodyさん:2013/03/24(日) 21:56:30.10 ID:???
>>114
htmlに埋め込むときは使う
phpだけの場合は使わない
121nobodyさん:2013/03/24(日) 23:17:36.26 ID:???
>>113みたいな恥さらしは一体何がしたいんだろうか。
122nobodyさん:2013/03/25(月) 01:12:25.22 ID:Ox4syU6B
アクセスしてくる携帯を識別してそれぞれに同じ動作をさせる事は可能でしょうか

具体的には文化祭でそこら中にQRコードをはって、それでスタンプラリーをしようかと思っているのですが
123nobodyさん:2013/03/25(月) 01:14:34.95 ID:ISkubUPD
こんばんわぁ〜

PHPぷろぐらまぁ〜の おねぇ〜さんだよぉ〜

今日はどんな質問が あるのかな?
124nobodyさん:2013/03/25(月) 01:44:00.51 ID:???
>>117
書かないことが気持ち悪いって人は沢山いるんだけど、
書くことによって起こる面倒なやり取りを避けるために、気持ち悪いことを承知の上で
書かないようにしようって判断した感じだよね。

「最後に空行がひとつあるんですがこれは?」とかまじでうっとうしいから
125nobodyさん:2013/03/25(月) 01:47:30.00 ID:???
気持ち悪いとかじゃなくて実益で判断しろよ
気持ちいいコードしか書かんのかお前は
126nobodyさん:2013/03/25(月) 02:07:03.84 ID:???
>>122みたいに質問すらロクにできないクズは何なの?
127nobodyさん:2013/03/25(月) 03:30:36.57 ID:zKokAmn+
>>119
ダウンロードする時のコードからアップロードする時のコードに直すことが出来ないのですか?
128nobodyさん:2013/03/25(月) 04:10:17.81 ID:???
ダウンロードとあっぷろ
129nobodyさん:2013/03/25(月) 09:05:07.55 ID:???
>>122
前回回答済
130nobodyさん:2013/03/25(月) 12:43:29.77 ID:???
>>127
ダウンロードするときには受け取った分から量がわかるけど
アップロードで丸ごと渡したらどこまで送信したかは、送った場所からはわからんだろ。
131nobodyさん:2013/03/25(月) 13:33:37.72 ID:???
>130:nobodyさん :2013/03/25(月) 12:43:29.77 ID:??? [sage]
>>127
ダウンロードするときには受け取った分から量がわかるけど
>アップロードで丸ごと渡したらどこまで送信したかは、送った場所からはわからんだろ。

はい、本日最高のヴァカ入りました
132nobodyさん:2013/03/25(月) 14:04:49.74 ID:???
そんなこと言ってコード出させようとしても無駄w
133nobodyさん:2013/03/25(月) 17:17:47.63 ID:wVRiuIe8
サニタイズ(無害化)について質問です。
次の変数$hostnameをDBに登録する場合、サニタイズは必要でしょうか?
よろしくお願いします。

$hostname = gethostbyaddr($_SERVER['REMOTE_ADDR']);
134nobodyさん:2013/03/25(月) 17:48:59.31 ID:???
>>133
DBにはそのまま入れなよ
135nobodyさん:2013/03/25(月) 17:55:08.36 ID:Xg0aZ+mi
Aサーバー→Bサーバー(長時間処理)

Bサーバーの処理終了もAサーバーがレスポンスを受け取らない。

Aサーバーがタイムアウトしてるとしか考えられないのですが
httpd.confのTimeoutとphpのタイムアウト設定以外に何処かいじるところ
ありますか?
136nobodyさん:2013/03/25(月) 17:57:54.37 ID:???
>>135
> タイムアウトしてるとしか考えられない
で、タイムアウト「してた」の?
137135:2013/03/25(月) 18:04:26.97 ID:???
>>136

いえ、Bサーバー側ですべての処理が終わっても、クライアント側のPHP
はずっと動作したままブラウザは接続中になっています。

Bサーバーのtcpdumpではackをずっと飛ばしてるのですが、Aサーバーの
tcpdumpログに動きがないので、Bサーバーは強制切断になってます。
138nobodyさん:2013/03/25(月) 18:06:56.69 ID:???
>>1も読めない>>137は以後スルーで
139nobodyさん:2013/03/25(月) 18:09:03.98 ID:Xg0aZ+mi
>>138

間違えてsage入れてました。
この質問は取り下げます。
140nobodyさん:2013/03/25(月) 18:21:17.35 ID:zKokAmn+
>>130
ブラウザやFTPクライアントはアップロードする時も%表示やプログレスバーが表示されますけど
phpでは表示出来ないという何か事情があるのでしょうか
141nobodyさん:2013/03/25(月) 18:25:56.14 ID:???
>>140
curlで送ってるんじゃないの?
phpでcurlの関数に渡してはいおしまい、だと取れないだろって言ってるの
ダウンロードのコード晒してたから、そのまま使ったんじゃそうなるって話。
コールバックとか調べてみ。
142nobodyさん:2013/03/25(月) 19:09:28.56 ID:???
A→Bへのコネクションだと思うんだけど、Aのログには別にRSTもFINも飛ばしてないんだよね?
コネクション張れてるならB→AへのACKがAに到達しないのはおかしいなぁとおもう。
nagleが絡んでるわけでもないんだよね
143nobodyさん:2013/03/25(月) 19:13:45.73 ID:???
144133:2013/03/25(月) 19:48:46.69 ID:CCFS7U7g
>>134
ありがとうございました。
$_SERVER['REMOTE_ADDR'] の値が改竄される危険性については、
あまり心配しなくて良さそうですね。
145nobodyさん:2013/03/25(月) 22:22:50.37 ID:???
取り下げられた質問にいつまでも絡んでる自己顕示欲くんウザ
146nobodyさん:2013/03/25(月) 22:39:40.23 ID:???
自己顕示欲に見えるのはちょっと頭がおかしい
147nobodyさん:2013/03/25(月) 22:40:28.08 ID:???
ごめん間違えた。ちょっとじゃなくてかなり。
148nobodyさん:2013/03/26(火) 00:08:15.71 ID:???
>>146-147
自己紹介乙
149nobodyさん:2013/03/26(火) 03:29:34.65 ID:???
どういたしまして
150nobodyさん:2013/03/26(火) 04:44:42.31 ID:???
さすが底辺言語のスレ
常に煽りあってるよな
151nobodyさん:2013/03/26(火) 04:59:50.77 ID:???
あおってるのが質問者でも回答者でもない人ってのが面白いところだよ
152nobodyさん:2013/03/26(火) 05:05:58.04 ID:???
基本的な知識が足りないと判断されて回答してもらえなかった質問者やID出し忘れて叩かれた質問者が逆ギレして暴れているだけだろう。
153nobodyさん:2013/03/26(火) 05:13:23.28 ID:???
この板のPerlスレ見てみろ
たまに煽り合いもあるけど基本平和そのものだぞ
言語使用者の民度は2chのスレッドにも表れる
154nobodyさん:2013/03/26(火) 09:03:11.23 ID:???
ここしばらくおとなしかったのに春休みになったら荒れだしたな
155nobodyさん:2013/03/26(火) 10:20:58.89 ID:???
お前ら全員Ruby使えは荒れることもないだろうよ
156135:2013/03/26(火) 11:09:54.49 ID:mRDPS0mY
>>142

返信ありがとうございます。

RSTはBサーバーではやってますが、Aのほうでは全く反応ない状態で
ackも送ってません。

nagleはちょっと調べてみないとわかりません。
157135:2013/03/26(火) 12:16:11.31 ID:mRDPS0mY
>>142

curlの
CURLOPT_TCP_NODELAYで無効にして試してみます。
ヒントありがとうございました。
158nobodyさん:2013/03/26(火) 15:23:43.17 ID:???
質問取り下げたんじゃねーのかよ
嘘つきは消えろ
159nobodyさん:2013/03/26(火) 16:05:01.31 ID:???
ループが分からないので教えてください
単純に文字を100回だすとかならまあ分かるんですけど
データベースとか絡んでくるとわけわからなくなってきます
160nobodyさん:2013/03/26(火) 16:47:05.53 ID:???
嘘つきは泥棒の始まり

本当にここは犯罪者予備軍のスレだな
161nobodyさん:2013/03/26(火) 17:20:11.44 ID:???
>>135がリアルキチガイなだけでしょ。
162nobodyさん:2013/03/26(火) 18:17:40.52 ID:???
IDでてないよ
163nobodyさん:2013/03/26(火) 18:20:51.69 ID:???
出てないから俺も静観してるとこ。
164nobodyさん:2013/03/26(火) 18:55:08.33 ID:p9pFyvrs
ループ教えてください
165135:2013/03/26(火) 19:00:48.07 ID:???
嘘つきでもシステムが出来ればいいのです。
だってプログラマーでしょ
166nobodyさん:2013/03/26(火) 19:32:24.58 ID:???
>>164
for(int i =0; i < 10; i++){
for(int j = 0; j < 10; i++){
}
}
167nobodyさん:2013/03/26(火) 19:41:13.66 ID:p9pFyvrs
>>166
ループとイフの組み合わせを教えてください
168nobodyさん:2013/03/26(火) 20:28:52.75 ID:???
この質問になんの意味があるんだろう?
その程度のこと知った所で何もプログラム組めないぞ
初心者向けのサイトでも見て学べ
169nobodyさん:2013/03/26(火) 20:33:08.47 ID:???
>>166
ルールを守れない屑に回答してんじゃねーぞ精神異常
お前そこまでして自己顕示欲を満たしたいのか
170nobodyさん:2013/03/26(火) 20:43:01.27 ID:???
>>166
ID出さない奴に回答するなゴミ。
171nobodyさん:2013/03/26(火) 20:55:12.54 ID:???
>>170
IDは出てるじゃん
172nobodyさん:2013/03/26(火) 20:55:37.72 ID:???
>>166
よくみたら無限ループでワロタ
173nobodyさん:2013/03/26(火) 21:07:53.64 ID:???
>>171
はぁ?なにこいつ
最初出てなかっただろうが

万引きで捕まってから
お金払えばいいんでしょ!とか逆ギレするDQNと同じ精神構造
>>166共々消えろ
174nobodyさん:2013/03/26(火) 21:18:50.60 ID:???
>>166はどう見てもマジレスじゃない
お前らアホか
175nobodyさん:2013/03/26(火) 21:23:41.80 ID:???
>>174
いったじゃん。回答者でも質問者でもない人が馬鹿だって
176nobodyさん:2013/03/26(火) 21:26:02.46 ID:???
>>166
PHPじゃないじゃん
177nobodyさん:2013/03/26(火) 21:36:48.57 ID:???
>>169
ネタにマジレス…恥かしいよ…
178nobodyさん:2013/03/26(火) 21:41:24.07 ID:p9pFyvrs
ぼくのために争わないで
みんなで仲良くPHPしましょう
179nobodyさん:2013/03/26(火) 21:44:07.30 ID:???
なんでこんなに人気なの?
180nobodyさん:2013/03/26(火) 21:52:43.45 ID:kZMtE//2
>>179
初めてやったのがphpで、それで事足りてるからほかの言語をやるきになれない...
サーバサイドで使ってるのはPHPだけだと思う。
MySQLとの連携とかはあるけど。
181nobodyさん:2013/03/26(火) 21:59:36.70 ID:???
182nobodyさん:2013/03/26(火) 22:09:43.32 ID:???
>>179
お手軽にイオナズン唱えられるかんじ
183nobodyさん:2013/03/26(火) 22:15:55.27 ID:kZMtE//2
>>182
フレームワークあれば開発速度ものすごい上がるしな。
184nobodyさん:2013/03/27(水) 04:49:18.79 ID:???
<?php
echo "こんにちは";
?>

として、test.phpを保存しても、
ブラウザで読み込むとそのまま出てしまうんですが、コンパイル的なのが必要なんですか?
185nobodyさん:2013/03/27(水) 05:07:28.83 ID:???
サーバー=PHPとHTMを解釈する環境。
186nobodyさん:2013/03/27(水) 07:44:23.93 ID:???
>>184
その test.php はどこに保存されてて、ブラウザはどうやって開いているのかな?

ローカルに保存してローカルで開いたらそうなるけど。
ブラウザは PHP解釈しないから。

php解釈するモジュールを組み込める Apache などの Webサーバーにアップロードしておくか、
phpをcgiで実行できるようにWebサーバーに設定して同じくアップロードする。

そんでブラウザから Webサーバーを通じてアップロードしたしたファイルにアクセス。

というのがニワカの俺の知識。
187nobodyさん:2013/03/27(水) 09:02:47.30 ID:???
test.php.txtになってるってオチだろ
188nobodyさん:2013/03/27(水) 10:09:51.76 ID:???
>>187
そんなミスするのはお前だけだ
189nobodyさん:2013/03/27(水) 10:16:02.44 ID:KYdi+aYH
PHPファイルのincludeができる範囲ってどんなもんなんでしょうか?
ドメインが違っても出来てしまいますか?
190nobodyさん:2013/03/27(水) 10:17:53.52 ID:???
file:///C:/test.php なんだろ。
191nobodyさん:2013/03/27(水) 10:27:17.15 ID:???
>>190
これだろうな
192nobodyさん:2013/03/27(水) 11:00:25.32 ID:???
>>189
phpとして読めるならね。
普通、httpでphp読むと実行結果が返ってくるよね?
193nobodyさん:2013/03/27(水) 11:04:48.30 ID:KYdi+aYH
>>192
つまり相対パスで呼び出さない限りincludeは出来ないということで良いのですね
安心しましたありがとうございます
194nobodyさん:2013/03/27(水) 11:22:45.13 ID:o3YcYIdi
dataCheck($a,"txtA");
dataCheck($b,"txtB");

function dataCheck($str,$name){
if(strlen($str) == 0 || !preg_match('/^[0-9]$/',$str)){
print("<html><head><title>入力エラー</title></head><body>");
print($name." は半角数字を入力してください。<br /><br />\n");
print("<a href=\"#\" onClick=\"history.back(); return false;\">再入力</a>\n");
print("</body></html>");
exit;
}
}

txtAとtxtBの両方がfalseの場合、両方のエラーを表示させたいのですが
この場合だとどちらか片方しか表示されません。

両方表示できる方法をお願いします。
195nobodyさん:2013/03/27(水) 13:39:50.07 ID:???
>>194
exitをなくせばいいと思うよ。
それとhead、bodyタグ等は関数の外で出力。
196nobodyさん:2013/03/27(水) 13:50:15.93 ID:???
>>114
PHPだけのファイルの場合は付けない方が良く、その理由は明確。

PHPだけのファイルはrequireされるが、そのときそのファイルに?>に続くスペースなどがあると、
それが出力に影響を及ぼす場合がある。
また、PHPのコードでHTTPヘッダを出力するとき、requireしたファイルに?>に続く余分なスペース
や改行などがあると、もうHTTPヘッダは出力できなくなる。
そのため、?>は省略した方が良い。

ちなみに、PSR-2というコーディングガイド(PSRが何者かは要google)では、?>は省略が必須と
なっており、( http://www.infiniteloop.co.jp/docs/psr/psr-2-coding-style-guide.html )、
コーディングルールを静的にチェックするツールでは、エラーとして報告されるだろう。
197nobodyさん:2013/03/27(水) 14:00:57.53 ID:???
dataCheck($a,"txtA");
dataCheck2($b,"txtB");

print("<html><head><title>入力エラー</title></head><body>");
print("</body></html>");

function dataCheck($str,$name){
if(strlen($str) == 0 || !preg_match('/^[0-9]$/',$str)){
print($name." は半角数字を入力してください。<br /><br />\n");
print("<a href=\"#\" onClick=\"history.back(); return false;\">再入力</a>\n");
}
}

function dataCheck2($str,$name){
if(strlen($str) == 0 || !preg_match('/^[0-9]$/',$str)){
print($name." は半角数字を入力してください。<br /><br />\n");
print("<a href=\"#\" onClick=\"history.back(); return false;\">再入力</a>\n");
}
}

適当にやったらなんとなく目的の動作に使づきましたが、「再入力」というのが2つ表示されたりと
なんとなくもっと簡単にできると思うんだが・・・

もし両方入力が不正の場合は、

「txtA txtBは半角数字を入力してください。」

と表示されるのが理想。$nameにtxtA txtBが代入されてるんだけど
それを配列で取り出す方法がわかりません。
198nobodyさん:2013/03/27(水) 14:06:09.03 ID:GIbhyuNj
質問です。よろしくお願いします。
データベースから100件のデータを取得して、PHP側にて、whileで処理する場合、
そのwhileループ内で、更に、5回ずつデータベースに問い合わせると、
合計500回データベースにアクセスすることになってしまいます。

こういう場合には、どうするのがベストですか?
テーブルを結合して取得すればよいかとも思うのですが、
問い合わせが、5回、10回と多くなるとテーブルの結合も難しいです。
199nobodyさん:2013/03/27(水) 14:11:15.14 ID:???
>>197
PHP以前の問題だ。

function validate($str){
 // 妥当なデータならtrueを、そうでない場合はfalseを戻す
 return strlen($str) !== 0 && preg_match('/^[0-9]$/', $str);
}

$buf = '';
if (!validate($a)) {
 $buf = "txtA,";
}
if (!validate($b)) {
 $buf .= "txtB";
}
if (strlen($msg) > 0) {
 $html = <<<EOB
<html><head><title>入力エラー</title></head><body>
$buf は半角数字を入力してください。<br /><br />
<a href="#" onClick="history.back(); return false;">再入力</a>
</body></html>
EOB;
}
200nobodyさん:2013/03/27(水) 14:12:42.17 ID:???
>>198
> こういう場合には、どうするのがベストですか?
> テーブルを結合して取得すればよいかとも思うのですが、
それしかない。

> 問い合わせが、5回、10回と多くなるとテーブルの結合も難しいです。
難しくてもやれ。
201nobodyさん:2013/03/27(水) 14:13:28.39 ID:???
>>199
誤:if (strlen($msg) > 0) {
正:if (strlen($buf) > 0) {
202198:2013/03/27(水) 18:47:39.02 ID:MD7cwBMv
>>200
なにか、他にテクニックがあるかとも思ったのですが、
やはり、テーブルの結合をするしかないようですね。
有難うございました。
203nobodyさん:2013/03/27(水) 19:02:19.68 ID:???
テーブルの構造もやりたい内容も詳しくわからないのにテクニックとか
出しようが無いだろw
必要な呼び出しなら何回だろうが必要なだけ呼ぶしかないと言うだけのこと。
204nobodyさん:2013/03/27(水) 19:12:48.33 ID:???
結合すると
> そのwhileループ内で、更に、5回ずつデータベースに問い合わせる
これがそもそもなくなるんじゃないかっていうのが回答者の意見だと思う

でも
> テーブルを結合して取得すればよいかとも思うのですが、
> 問い合わせが、5回、10回と多くなるとテーブルの結合も難しいです。
これがわからない

もうちょっと詳しく頼むわ
205198:2013/03/27(水) 19:26:24.23 ID:MD7cwBMv
>>204
不明瞭な点が有り、すみません。
意図していることは、結合するテーブルが5個、10個と多くなると、
SQLが複雑化するということです。
また、DBの設計上、結合が無理な場合も有り得るということです。
206nobodyさん:2013/03/27(水) 19:28:37.44 ID:???
PHP関係なくね?
207nobodyさん:2013/03/27(水) 19:34:59.92 ID:???
自分はデータベースを使うとき、内部は単一のテーブルしか使わん。
Sqliteメインからかもしれないが、分けるなら別ファイルにする。
208nobodyさん:2013/03/27(水) 20:19:03.85 ID:r73Jwrfn
>>205
そうなってくると、DB設計見直してもいい気がします。
209nobodyさん:2013/03/27(水) 20:36:36.55 ID:???
>>205
今スマホなんでURLは示せないけど、Oracle SQLパズルってサイト検索してみて。
一個のクエリで驚くほどいろんなことできるから。
ループ内のクエリは絶対だめ。
210nobodyさん:2013/03/27(水) 20:38:31.67 ID:2iOdM1fp
PHPの練習問題などを公開しているサイトは無いですか?
イマイチ練習法がわかんなくて
211198:2013/03/27(水) 20:55:59.05 ID:I26BQZQ8
>>208
DB設計についても再考してみます。

>>209
http://www.geocities.jp/oraclesqlpuzzle/
これですね。かなり高度のようですが勉強してみます。

>ループ内のクエリは絶対だめ。
肝に銘じます。有難うございました。
212nobodyさん:2013/03/27(水) 21:39:21.74 ID:???
Perlスレ荒らすのやめてもらえませんかね
昨日まで平和に進行してたスレが1日で50レス近く荒れてるんですよ
かなり迷惑なので他のスレにお願いします
213nobodyさん:2013/03/27(水) 21:49:56.92 ID:???
被害妄想乙
214nobodyさん:2013/03/28(木) 00:27:58.07 ID:???
215nobodyさん:2013/03/28(木) 09:21:24.03 ID:???
ストアド使えよ
216nobodyさん:2013/03/28(木) 11:43:28.74 ID:???
>>209
>ループ内のクエリは絶対だめ。
これなんでダメなん? PDOなんかだとループ前提の仕組みもあるよね
217nobodyさん:2013/03/28(木) 12:53:36.30 ID:???
>>216
> これなんでダメなん?
実行時間が長くなり、サーバにも負担がかかるので。

例えば1000行戻ってくるクエリをループして、それぞれの行で5回検索をしたとすると、
ループ内では合計5000回のクエリ実行が必要。

対ローカルでもクエリの実行は数ms程度かかる。
1回のクエリにつき1msかかるとすると、このループの実行時間は5秒。
ネットワーク経由だと、10ms以上かかったりするので、数十秒〜数分のオーダーになるかもしれない。

一方、全部JOINして1回のクエリで終わらせられれば、数十〜数百msくらいで終わる。

> PDOなんかだとループ前提の仕組みもあるよね。
MDB2しか使ったことないんだけど、PDOのその仕組みってどういう奴なの?
218nobodyさん:2013/03/28(木) 12:55:27.85 ID:???
マスターテーブルなんかを事前にhashで持っておき、ループ内ではクエリの実行を行わず、
hashを参照する方法もある。

が、大抵はJOINした1回のクエリより遅い。
219nobodyさん:2013/03/28(木) 13:33:51.38 ID:Cp6GJ5bL
【OS名】Linux
【PHPのバージョン】5.3.10
【連携ソフトウェア】MySQL

phpでPDO使ってMySQLいじってる初心者です

指定の行の取得ってどうやるんでしょうか

$stmt = $dbh->prepare('select xxx from xx', array(PDO::ATTR_CURSOR => PDO::CURSOR_SCROLL));
$stmt->execute();
$row = $stmt->fetch(PDO::FETCH_ASSOC, PDO::FETCH_ORI_ABS, $num);
ってやっても最初の行しか取れなくて困ってます
220nobodyさん:2013/03/28(木) 13:42:08.01 ID:???
ループで回すか、フェッチAllとか
221nobodyさん:2013/03/28(木) 13:50:16.41 ID:???
ありがとうございます
fetchAll使って解決しました
222nobodyさん:2013/03/28(木) 13:51:36.21 ID:???
223nobodyさん:2013/03/28(木) 13:54:46.08 ID:???
>>219
これでいけないか?

PDO limit句
http://phpgo.info/?PDO%20limit%E5%8F%A5
224nobodyさん:2013/03/28(木) 14:09:19.06 ID:???
何でマルチポストに回答してんの?
そこまでして自己顕示欲を満たしたいの?
225nobodyさん:2013/03/28(木) 14:16:34.23 ID:???
いいチャンスだったしただサイトの宣伝したかっただけだよ
226nobodyさん:2013/03/28(木) 14:17:01.51 ID:???
匿名でIDも出さずに回答してるのに、自己顕示欲とかwww
227nobodyさん:2013/03/28(木) 14:21:40.28 ID:???
>>224
俺がマ板からこの板に誘導したから。
が、よく>>222をみたらム板にもマルチしてたのか。どうでもいいけど。
228nobodyさん:2013/03/28(木) 14:27:57.85 ID:???
そういえばPDOのLIMIT句バグはもう直ったのかな
229nobodyさん:2013/03/28(木) 15:18:25.70 ID:???
>>228
質問ならID出てるはずだから質問じゃないな
独り言はTwitterでやれ精神障害
230nobodyさん:2013/03/28(木) 15:26:20.01 ID:???
>>229
君も心に何かの問題を抱えてるようだよ。
231nobodyさん:2013/03/28(木) 16:33:27.95 ID:???
夫婦喧嘩ってこういう感じなのだろうか。

言い合えるってだけで羨ましいス…
別に何も無いヨ…
232nobodyさん:2013/03/28(木) 22:53:42.51 ID:???
>>216 >>217
> PDOなんかだとループ前提の仕組みもあるよね。

PDOでそういう仕組みは見たことないけど。
これと勘違いしてるんじゃない。

http://www.php.net/manual/ja/pdo.prepared-statements.php
プリペアドステートメントを使用して、繰り返し挿入処理を行う
233nobodyさん:2013/03/29(金) 00:31:56.83 ID:???
strposで文字カウントすると ">" が4文字もカウントする
使えないんですけど何でですか?
234nobodyさん:2013/03/29(金) 00:53:54.84 ID:G7mP7j2C
>>233
htmlspecialchars()とか前に使ってない?
'>' (大なり) は '&amp;gt;' になります。
235nobodyさん:2013/03/29(金) 00:58:12.47 ID:???
>>234
ありがとーーー!!!
htmlspecialcharsを甘くみてたよ、ほんと助かった
236nobodyさん:2013/03/29(金) 01:09:24.93 ID:???
&gt;で4じゃねーの
237nobodyさん:2013/03/29(金) 01:09:49.75 ID:???
更新してなかった・・・死のう
238nobodyさん:2013/03/29(金) 09:05:45.51 ID:???
>>232
それをループ内で使う
239nobodyさん:2013/03/29(金) 10:29:21.35 ID:???
>>232
やっては駄目だといわれているのは、検索クエリ。
240nobodyさん:2013/03/29(金) 11:16:19.88 ID:???
DBをキュー代わりに使ってるときは検索でもループ内で使うお
241nobodyさん:2013/03/29(金) 11:31:22.70 ID:???
ループで検索クエリを流すかどうかは状況によるよ
一概にダメとは決めつけられない、というか決めつけるのは大抵の場合よくない
242nobodyさん:2013/03/29(金) 11:51:07.51 ID:???
JOINできるんだったら、一回で済ませた方がいいだろ
243nobodyさん:2013/03/29(金) 11:55:25.73 ID:???
>>242
何の話をしているんだ?
244nobodyさん:2013/03/29(金) 11:58:48.24 ID:???
>>237
それをループさせる(爆)
245nobodyさん:2013/03/29(金) 12:53:54.89 ID:???
>>198の話だけど?
246nobodyさん:2013/03/29(金) 13:44:23.45 ID:???
とっくにそんな話は終わってんだろ
247nobodyさん:2013/03/29(金) 13:56:24.60 ID:???
>>246
そう思うんならほっとけよ
248nobodyさん:2013/03/29(金) 14:02:33.34 ID:???
ループしないといけない場合でも、ストアドで実装できるならストアドの方がいいね。
249nobodyさん:2013/03/29(金) 17:04:23.71 ID:???
>>243
質問はID出せゴミ
250nobodyさん:2013/03/29(金) 19:01:31.30 ID:YTM0Vtw2
【OS名】FreeBSD
【PHPのバージョン】5.4
【質問内容】
サブクラスに定義していない(スーパークラスの)関数
の中でサブクラスの変数は利用できないのでしょうか

これができればサブクラスの関数をスーパークラスに
引き上げることができて少しエレガントになるのですが
251nobodyさん:2013/03/29(金) 19:29:51.89 ID:???
>>250
引数にすれば利用できる
252nobodyさん:2013/03/29(金) 20:05:29.23 ID:???
その変数も基底クラスにもってけば?
253nobodyさん:2013/03/30(土) 13:44:04.73 ID:???
【OS名】UbuntuServer12.04
【PHPのバージョン】5.3.10
【連携ソフトウェア】MySQL
データが1行のテーブルに記録された情報をmysql_fetch_assocなどの取得系で求めると必ずfalseが帰ってきます。
ただ2行以上ある場合はしっかりと帰ってくるのですが、肝心の1行目の情報がスルーされて2行目以降のデータが帰ってきます。
例)AAAのみ : bool(false) 、 AAA BBB CCCの三行 : BBBとCCCのみ帰ってくる

この場合ってどうしたらいいんでしょうか。SQL側の問題になるのでしょうか?
254nobodyさん:2013/03/30(土) 13:50:33.39 ID:???
phpmyadminかコンソールからSQL実行したらどうなるの?
255nobodyさん:2013/03/30(土) 13:55:28.58 ID:???
>>254
一行の場合でも結果がしっかり返ってきます。
書き忘れてましたがこのケース、whileで回すときだけ発生するのです。
256nobodyさん:2013/03/30(土) 14:12:46.69 ID:???
>>1
257nobodyさん:2013/03/30(土) 14:53:57.28 ID:???
>>255
ルールより自己の利益を優先するクズ野郎は消えろ
258nobodyさん:2013/03/30(土) 16:38:18.23 ID:???
>>255人間のクズ
259nobodyさん:2013/03/30(土) 16:54:59.61 ID:???
>>255の特徴

IDを隠す池沼
情報を後出しする糞
260nobodyさん:2013/03/30(土) 21:59:35.99 ID:OzKgLCO2
PHPの配列で存在しない値を変数に代入したときどうなるの?
例えば

$a = $hairetsu['unko'];

unkoに対応する値はない。
このとき$aにはなにがはいるの?
こうしたとき、

isset($a)

ってしたときfalseかえってくる?
261nobodyさん:2013/03/30(土) 22:16:16.60 ID:???
>>260
>◆質問する時の注意
>・ 質問者として、態度をわきまえること。
262nobodyさん:2013/03/30(土) 23:15:19.20 ID:???
試してから質問してはいかがでしょうか
263nobodyさん:2013/03/31(日) 00:35:53.39 ID:???
>>260
だれもテメーみたいなksに期待なんかしてないんだからfalseが返ってこようがこまいが関係ないだろ
一生電子ゴミを生産してろ
264nobodyさん:2013/03/31(日) 02:21:28.12 ID:???
これは < 3 で真のはずなのに結果が 34 22 76となり
3回繰り返されず1回出力されるだけなんですがどうしてでしょうか?

<?php
$result[0] = 34;
$result[1] = 22;
$result[2] = 76;

for ($i = 0; $i < 3; $i++){
print $result[$i].'<br />';
}
?>
265nobodyさん:2013/03/31(日) 02:30:52.73 ID:???
>>264
ルール無視のゴミは消えろ
266nobodyさん:2013/03/31(日) 07:47:45.45 ID:???
http://ideone.com/tOT1Ek

3回出るけど
267264:2013/03/31(日) 12:16:43.33 ID:???
>>266
出ない理由を聞いているのであってあなたが試した結果はきいていません。
うっとうしいのでわざわざアンカうってレスしてもらわなくて結構です。
268nobodyさん:2013/03/31(日) 12:29:24.24 ID:???
> これは < 3 で真のはずなのに結果が 34 22 76となり
何もおかしくない
269264:2013/03/31(日) 12:31:32.34 ID:???
267さんは偽です。
3回ってのは

34 22 76
34 22 76
34 22 76

こういうことです。for文は繰り返しですよね?
270nobodyさん:2013/03/31(日) 12:32:33.16 ID:???
0からやり直せや
271nobodyさん:2013/03/31(日) 13:05:01.07 ID:???
>>270
いいから教えろや
272nobodyさん:2013/03/31(日) 13:47:40.15 ID:???
id出さない限り何度でも騙られるぞw
273264:2013/03/31(日) 14:32:08.32 ID:???
>>272
騙りではありません。
煽りたいだけなら黙っていてください。

ここにいる人たちはこんな簡単な質問にも答えられないのでしょうか?
274nobodyさん:2013/03/31(日) 14:38:59.41 ID:???
俺は別にIDなんて気にしないけどIDに異様に拘る人がいるから質問するのならなりすましを防ぐ意味も込めてID出しとけばいいんじゃない
275nobodyさん:2013/03/31(日) 14:55:52.30 ID:???
異様に拘るってアホか。騙りが出るからID出せって最初から言ってんだろ。テンプレ読めよアスペ。
276264:2013/03/31(日) 17:55:19.44 ID:???
IDとかどうでもいいねん。
質問したんだから答えろや
話が先に進まねぇやろ
277nobodyさん:2013/03/31(日) 18:04:09.79 ID:???
あの手のガキはどっちみち答えないと思うよ
278nobodyさん:2013/03/31(日) 18:42:32.12 ID:???
2重ループに陥って死ねや
279nobodyさん:2013/04/01(月) 13:20:46.87 ID:???
質問に答えた上でIDだしてくれない?
とか普通に言えばいいのに、いちいち煽る
280nobodyさん:2013/04/01(月) 13:47:43.63 ID:???
またそんなこと言ってルールに文句言うw
281nobodyさん:2013/04/01(月) 14:27:33.67 ID:???
>>280

ルール重視して、スレの目的が達成できないとか本末転倒なので
柔軟に対応しろってこと。
ルール作った目的は偽者防止のはずだが、明らかに偽者じゃない人
にもIDだせってやりすぎだろ。
282nobodyさん:2013/04/01(月) 14:28:07.73 ID:???
一番のルールは、荒らしを相手にしないことだ。
283nobodyさん:2013/04/01(月) 14:29:39.13 ID:???
ruby基地が消えたと思ったら此れだよ
284281:2013/04/01(月) 14:31:30.54 ID:BwLTFG84
mysqlで少し場違いな気がする質問ですが
DBを利用した掲示板を作成しました
データを20件までとして古いものから削除したいので
以下のようにコード組みました
もう少しスマートにコード作りたいのですが
ご教授ねがいます


//日付と時刻の変数宣言
$date = date("Ymd");
$time = date("His");

//書き込み内容をDBへ
$result_insert = 'INSERT INTO date(name,body,date,time) VALUES (\''
.$name.'\',\''.$body.'\','.$date.','.$time.')';
mysql_query($result_insert, $con);

//指定件数の超過数算出
$result_select = 'SELECT * FROM date';
$number_count = mysql_num_rows(mysql_query($result_select, $con)) - 20;

//超過分を削除
$result_delete = 'DELETE FROM date ORDER BY date,time LIMIT '.$number_count;
mysql_query($result_delete, $con);
285284:2013/04/01(月) 14:32:53.28 ID:BwLTFG84
書き込んだら更新されて名前が>>284じゃなくなってました
気にしないでください
286nobodyさん:2013/04/01(月) 14:49:18.51 ID:???
mysql_queryは非推奨
287nobodyさん:2013/04/01(月) 14:57:31.80 ID:???
DELETE FROM date where not exists (select * from date order by date desc ,time desc limit 0,20 )
288nobodyさん:2013/04/01(月) 15:06:49.28 ID:???
>>282
答える能力ないやつはすっこんでろ
289nobodyさん:2013/04/01(月) 15:22:49.33 ID:???
>>284
・これ一件書き込んだら20件消えない?
・SQLインジェクションは大丈夫?
290289:2013/04/01(月) 15:24:18.12 ID:???
ごめん、
> ・これ一件書き込んだら20件消えない?
これ勘違いだった。
291nobodyさん:2013/04/01(月) 15:30:12.59 ID:???
必ずPREPARE使う様にした方がいい、すぐ慣れるさ。
基本的に読む時に20件引っ張ってくればいいんで
消すこともないと思う。
292nobodyさん:2013/04/01(月) 15:30:22.40 ID:???
SQLのlimit部分だけ$_GET['limit']で取得してるんですけど、これでもDELETEとかDROPされちゃう可能性ってあるんでしょうか?
293nobodyさん:2013/04/01(月) 15:31:05.51 ID:???
>>286
嘘つくなよ・・・
294nobodyさん:2013/04/01(月) 15:31:51.91 ID:???
>>292
数字としてバインドすれば問題ない
295nobodyさん:2013/04/01(月) 15:31:52.11 ID:TTwnP515
すみません>>292ですがsageのチェックはずしたつもりが●のチェック外してました…
296nobodyさん:2013/04/01(月) 15:32:25.27 ID:???
>>294
なるほどありがとうございます
297nobodyさん:2013/04/01(月) 15:33:41.44 ID:???
>>292
limit="; DROP TABLE hoge"
とでも書けばいけるやん?
298nobodyさん:2013/04/01(月) 15:36:08.44 ID:???
SQLに;が入ってれば弾けばいい
299nobodyさん:2013/04/01(月) 15:40:12.17 ID:???
>>298
どうせ半端なことするなら mysqli_real_escape_string() 使え
半端なら半端をつらぬきとおせ
300284:2013/04/01(月) 15:40:30.63 ID:BwLTFG84
>>286>>293
わからんからそのままつかうことにします

>>287
単体で実行したけどエラーが出ました
#1093 - You can't specify target table 'date' for update in FROM clause
sqlよくわかってないんですみません

>>289
SQLインジェクションはnameとbodyに対し事前に行ってます
指摘ありがとうございます
301nobodyさん:2013/04/01(月) 15:41:05.73 ID:???
>>298
わたしなら 0 を足す。
302nobodyさん:2013/04/01(月) 15:42:06.13 ID:???
>>300
今はmysqli_queryだぞ
303284:2013/04/01(月) 15:48:29.65 ID:BwLTFG84
>>291
ごめんちょっと調べたけど
俺の実力では意味がわからなかった
304nobodyさん:2013/04/01(月) 15:48:33.69 ID:???
>>300
table名が同じだと無理。別名つけてやればいいはず
数を数えるのと消すのを別の行でやると複数同時に動いた時バグるぞ。
トランザクションにしてもいいけど
305nobodyさん:2013/04/01(月) 16:06:43.25 ID:???
>>297
mysql_queryって2つのSQL同時に実行出来ないでしょ ;で区切っても
306284:2013/04/01(月) 16:28:56.62 ID:BwLTFG84
>>302
置き換えてみたら動かなくなった

>>304
言ってることはわかるけどどうやって実現するのかわからない
勉強しないと駄目だね
307nobodyさん:2013/04/01(月) 16:40:33.45 ID:???
>>306
動かなくなった じゃなくてさあ・・・
いや、別に良いや俺のサイトじゃないし
308nobodyさん:2013/04/01(月) 17:14:32.75 ID:???
他の部分がmyql_のままなんだろ
mysqlとmysqliでは別モンだから全部変えなきゃいけないぞ
309284:2013/04/01(月) 17:26:22.71 ID:BwLTFG84
>>307>>308
ごめん名知識が無くて
全部変えて見たらデータベースに接続なってもうた
よくわからなくなってしまった
310284:2013/04/01(月) 17:29:28.39 ID:BwLTFG84
説明不足でした
mysql_connectをmysqli_connectに変えて接続かのうか処理したところ
弾かれたという現状です
受け渡す値もかえないとだめだったりするかもです
311nobodyさん:2013/04/01(月) 17:33:58.04 ID:???
弾かれた
って何がどうなったの?
312284:2013/04/01(月) 17:51:18.80 ID:BwLTFG84
$con = mysqli_connect('126.0.0.1', my_user', 'パスワード');
if (!$con) {
$error = true;
exit('データベースに接続できませんでした。');
}


ここの処理で接続が弾かれてしまう

そもそもmysqlとmysqliの違いもわかってない
やばい
313nobodyさん:2013/04/01(月) 17:58:43.53 ID:???
mysqli_connect_errno() の値は?
314nobodyさん:2013/04/01(月) 18:33:34.88 ID:???
こうじゃね?

$con = mysqli_connect('126.0.0.1', ’my_user', 'パスワード','DB名');
315nobodyさん:2013/04/01(月) 18:38:29.21 ID:???
それ指摘するなら、 126も127になおしといてやろうぜw
まあ書き込みでミスったんだろうけど
316284:2013/04/01(月) 18:40:42.39 ID:BwLTFG84
すみません
mysqli_select_db()の方でした
それで調べてみたら入れる値の順序が逆だったそうです

うまいこと動いてくれましたありがとうございます


まだ質問が残っているのですが
>>287がうまく動いてくれない
>>304の助言を元に挑戦してます
317284:2013/04/01(月) 18:42:24.59 ID:BwLTFG84
>>314>>315
ごめんなさいそこは自分の使ってるサーバー情報なので
書き換えた際におかしくなっただけです
今現在動いてます
細かなところに気づいていただきありがとうございます
318nobodyさん:2013/04/01(月) 20:09:58.96 ID:???
動いてる?それは何かおかしい mysqliはmysqlにくらべて多くの場合引数が1コ多い

$con = mysql_connect('126.0.0.1', 'my_user', 'パスワード');>>312

$con = mysqli_connect('126.0.0.1', ’my_user', 'パスワード','DB名');>>314
319nobodyさん:2013/04/01(月) 20:19:53.03 ID:???
>>318
DB名無しでも動くよ?
320nobodyさん:2013/04/01(月) 20:31:39.19 ID:???
面倒くさいから全部設定に書いて引数無しで接続してるわ・・・
321284:2013/04/01(月) 21:02:06.55 ID:BwLTFG84
>>318>>319
問題なくINSERTやDELETEできてます
322nobodyさん:2013/04/01(月) 21:20:41.93 ID:???
>>315
いや バンクの技術者かもしれん
http://www.utrace.de/whois/126.0.0.1

ためしに284はfusianasanするべき
323284nttkyo039102.tkyo.nt.ngn2.ppp.infoweb.ne.jp:2013/04/01(月) 21:28:12.90 ID:BwLTFG84
>>322
いえ、違いますよ
DBを使おうとおもい勉強がてら作ってみたのですがうまく行かない
長ったらしい文章になる等々あって今回質問しました
324nobodyさん:2013/04/01(月) 21:37:33.60 ID:???
メール本文にメルアド埋めるのhtmlエンコしたいけどてまきまふん
325nobodyさん:2013/04/01(月) 22:58:56.50 ID:???
そーせーじえっぐまふん
326nobodyさん:2013/04/02(火) 04:22:59.24 ID:???
ソーセージエッグマフィン美味しいよね
朝マックのときは大抵あれ買う
327nobodyさん:2013/04/02(火) 05:39:33.55 ID:???
味覚障害
328nobodyさん:2013/04/02(火) 17:29:03.92 ID:pCXIVpZH
お知らせ

市原警察署の生活安全課の帰化人創価警官の指導の元、
入学式から2週間ほど、在日の創価学会員を主体とした自称防犯パトロールが、
2週間ほど行われることになりました

生活安全課の指導であることと、パトロールであることは、
絶対に公言してはいけないとの指導も、帰化人創価警官より出ています

期間中は2人組の在日の創価学会員が、頻繁に創価批判者の自宅周辺を、
うろつき回ると思われます
日本人の方は、充分に注意してください
329nobodyさん:2013/04/02(火) 18:23:57.95 ID:???
ID出てるけど質問に見えない気がしないでもない
330nobodyさん:2013/04/02(火) 19:53:45.82 ID:???
ソーセージなんとかもいいけどハッシュポテトもいいよ

あれは癖になる
331nobodyさん:2013/04/02(火) 22:45:17.78 ID:???
メール本文にメルアド埋めるのhtmlエンコしたいときはどうかきますか?
332nobodyさん:2013/04/02(火) 22:48:54.62 ID:???
母国のコミュニティでどうぞ
333nobodyさん:2013/04/03(水) 08:13:37.42 ID:h+HuJAZG
HPにphpのソース載せたいんだけどソースを無効にして表示する方法を
教えてください。よく、php系のページに載せてあるけどあの方法がわからない。
334nobodyさん:2013/04/03(水) 08:16:18.19 ID:???
>>333
そこのHTMLソース見れ
335nobodyさん:2013/04/03(水) 08:48:25.20 ID:???
preとかcodeとか
336nobodyさん:2013/04/03(水) 09:51:28.80 ID:???
ENT_COMPAT|ENT_HTML401と等しい定数
例えばENT_DEFAULTが定義されてないとかバカだろw
その後の引数の$encodingを触りたいだけなのに
延々とENT_COMPAT|ENT_HTML401と書かされるww
337nobodyさん:2013/04/03(水) 09:59:22.29 ID:???
いまどき5.4未満とか
338nobodyさん:2013/04/03(水) 10:14:17.25 ID:???
PHP書くやつがHPとか言っちゃうのか
339nobodyさん:2013/04/03(水) 10:39:54.58 ID:Ko35x5uB
imagejpegについて質問させてください。
imagerotateで画像を回転させて
imagejpeg($rotate_file, null, 100);
とすると画像データがそのまま表示され、画像が表示されません。
以下のようにヘッダーをつけると
header("Content-Type: " . $mime . "");
imagejpeg($rotate_file, null, 100);
「Warning: Cannot modify header information - headers already sent」というエラーが出ます。
HTML上に画像として表示するにはどうすればよいのでしょうか?
340nobodyさん:2013/04/03(水) 11:47:27.38 ID:???
>>339
画像処理スクリプトは、HTMLと混在させず、画像専用に単独でPHPファイルに記述します。
その画像ファイルを<img src="gazou.php">などとしてHTMLファイルから読み込みます。
341339:2013/04/03(水) 12:14:26.87 ID:Ko35x5uB
>>340
回答ありがとうございます。

画像処理部分は色々な関数を突っ込んでる部分の一部になります。
function.php内にあるfunction rotate(){ 処理 } という感じになります。

単独となるとfunction.phpからrotate()関数を切り出さないといけないということでしょうか。
そうなるとちょっと構成そのものを見直さないといけないので意外と面倒そうですね。
342nobodyさん:2013/04/03(水) 12:26:05.25 ID:???
>>339
>function.phpからrotate()関数を切り出さないといけないということでしょうか。

いや、切り出す必要はないと思う。
画像専用ファイル(gazou.php)から、その rotate関数を読み込めばいいんじゃないかな。
そもそもローテーションしなければ表示されるの?
343nobodyさん:2013/04/03(水) 12:35:47.43 ID:???
試しにヘッダー出力を最初にやってみ
344nobodyさん:2013/04/03(水) 12:36:43.34 ID:???
あーあと画像以外のデータ一切出さないようにな
345339:2013/04/03(水) 13:59:52.79 ID:Ko35x5uB
みなさん回答ありがとうございます。
出力側は
<html>
<body>
<?php
require_once(関数ファイル);
echo "<img src=" . rotate('roteta.jpg') . ">";
?>
</body>
</html>
関数ファイルには
function rotate($filename){
$filenameを回転処理
imagejpeg($filename);
}
という風にしています。
恐らくimg srcで指定しているものがバイナリデータそのものになっているのでおかしなことになっているんだと思います。
img srcで指定するファイルはあくまでファイル形式である必要があるという認識でいいのでしょうか?
346nobodyさん:2013/04/03(水) 14:04:41.79 ID:???
img src=なんちゃら
ってあったら、サーバじゃなくてクライアントのブラウザがなんちゃらを
取りに行くだろ?よく考えてみてよ。
347nobodyさん:2013/04/03(水) 14:06:11.56 ID:???
埋め込む方法も無いことは無いけど、とりあえず
Content-Type: image/jpeg のヘッダとバイナリを出すだけの
php作ってみ
348nobodyさん:2013/04/03(水) 14:15:06.22 ID:???
sample.html
<html>
<body>
<img src="./gazou.php">
</body>
</html>

gazou.php
<?php
require_once(関数ファイル);
rotate('roteta.jpg');
//出力処理
?>
349339:2013/04/03(水) 14:23:36.76 ID:Ko35x5uB
みなさん度々の回答ありがとうございます。
>>346
確かにブラウザ側からするとバイナリ表示されるアドレスを追いかけようとするわけですからうまく表示されるわけないですね。

>>347
画像を表示するだけのものは作ってみたのですが、全部1つのファイルでまとめれればラクだな〜と思って
呼び出せればと思っておりました。

>>348
こちらは1度試してうまくいくことは確認しておりました。
ただファイルを1個にまとめることが出来ればラクだな〜と思っていたため
ファイルデータをimg srcに渡せばいいのではないかと勘違いしておりました。
使うものをAPI的にまとめていまして、画像だけ別ファイルを作成して引っ張ってくるのはどうなんだろうかと思ってしまっておりました。

一般的には手を加えた画像を表示させる際は、別ファイルを用意してそれを経由する形で表示させるのが普通なのでしょうか。
一人で開発などしていてそのへんの作法がよくわからないこともあって今回の質問となってしまいました。
350nobodyさん:2013/04/03(水) 14:36:51.90 ID:???
httpの基本的な仕組みからいって、HTMLファイルはHTML等で表示して、
画像ファイルは別ファイルになるから1つにまとめるのは難しいんじゃない。
351nobodyさん:2013/04/03(水) 14:38:20.35 ID:???
大して難しくは無いが、意味あるんかな
352nobodyさん:2013/04/03(水) 14:58:08.22 ID:???
どうしても埋め込みたいなら
src="<?=data:image/jpeg;base64,'.base64_encode($バイナリデータ)?>"
とかでできないこともないけど、、こっちのが扱いにくい気が
353339:2013/04/03(水) 15:14:12.46 ID:Ko35x5uB
みなさん本当にありがとうございます。
1つにまとめるのはそんなに深い意味はないです。
単純に1個のファイルにまとまってたらラクかな〜程度のものです。
画像に関しては別ファイルから取ってくるようにします。
その方がHTML的にもスマートかと思いますし。

>>352
そんなやり方あるとは知りませんでした。
このやり方だとさすがに扱いにくい気もしますが、データをそのまま表示できる方法として覚えておこうと思います。
ありがとうございました。
354nobodyさん:2013/04/03(水) 15:15:39.52 ID:???
世の中に腐るほどあるWebサイトのHTML眺めるといいよ
355nobodyさん:2013/04/03(水) 15:56:07.94 ID:HfBT+72d
【PHPのバージョン】5.4
【連携ソフトウェア】MySQL
【質問内容】
さくらレンタルサーバースタンダードに作ったMYSQLのデータをphpで書き出したページを公開したいのですが、
表示するphpファイルにSQL文を書いているので、phpファイルをダウンロードすると
SQL文が丸わかりになってしまうと思うのでファイルに書かないようにしたいです。(隠したいです)

データベースのID等を記したのをreuire_onceで別ファイルから読み込めることを知ったので、
SQL分もその要領で別ファイルから引っ張ってくればいいのかなと思ったのですが、
普通はどのように隠すものなのでしょうか、MYSQLとPHPだけではなく他のプログラミング言語やサービスなども組み合わせるものなのでしょうか。
それともSQL分を隠さない(別ファイルから出力しない)のが普通なのでしょうか。

あと、ソースの途中の$kekka["0"]とかも見えてしまいますが、これも隠したい場合、
reuire_onceで他のファイルから引っ張ってくるものなのでしょうか。
行数の関係で色々省いていますがソースです。
$tempHtml .= "
<td>".$kekka["0"]."</td>
<td>".$kekka["1"]."</td>;

<tr>
<?= $tempHtml ?>
</tr>

レンタルサーバーの仕様を見るとPerl Ruby Python PHPが使用可能のようでした。
もし見当違いの質問をしていたらすいません。
よろしくお願いします。
356nobodyさん:2013/04/03(水) 16:05:09.57 ID:???
通常はphpからは読めるけどhttpdからは読めないところに置く
ドキュメントルートより上とかね
無理ならディレクトリ作ったり作らなくても、.htaccess で制御

>あと、ソースの途中の$kekka["0"]とかも見えてしまいますが
普通はこれは無いと思うけど
357nobodyさん:2013/04/03(水) 16:30:40.03 ID:???
DBのIDを別ファイルから持ってくるんじゃなくて、
DBの処理まるごと別ファイルにやらせよう。 そのファイルは、直接参照で見えないようにしておこう。
358nobodyさん:2013/04/03(水) 16:53:15.23 ID:???
つか、どうやったらPHPファイルをダウンロードできるんだ?
359nobodyさん:2013/04/03(水) 17:02:26.34 ID:???
>>358
一般的なファイルとして認識させればPHPファイルを
そのままダウンロードしちゃう
初歩のトラブルや名
360nobodyさん:2013/04/03(水) 17:08:03.64 ID:???
レンタルサーバが設定をミスってたときのことを考慮しようってことかなぁ
まぁ、その辺を考慮するなら.htaccessで制御もやっちゃいけないね
361355:2013/04/03(水) 17:10:13.72 ID:HfBT+72d
皆さんどうもありがとうございます。

>>あと、ソースの途中の$kekka["0"]とかも見えてしまいますが
>普通はこれは無いと思うけど
すいません、勘違いしておりました。
Irvine等のダウンロードツールでhttp://hogehoge.com/test.phpをファイルとしてダウンロードすると内容が見えると思ったのですが
もう一度確認してみましたら、ダウンロードしたtest.phpを見てもphpの処理部分は見えませんでした。(消えていました。)

DB処理の部分は用意したファイルに処理させるのが一般的とお見受けしました。
アドバイス頂いたように、
/www/の上階層の非公開ディレクトリに別ファイルを用意して、そのファイルにDB処理をまるごとやらせるようにしてみます。
レス下さいましてありがとうございます。
362nobodyさん:2013/04/03(水) 17:13:47.64 ID:???
>>359
どうやって一般的なファイルとして認識させるの?
363nobodyさん:2013/04/03(水) 17:16:58.20 ID:???
>>356
> 普通はこれは無いと思うけど
なら、
> SQL文が丸わかりになってしまうと思うので
これも普通はないよね。

普通のWebアプリケーションは、アプリケーションのroot以下に全部置いちゃうよ。
/var/www/htmlより上にアクセスできないことだってあるんだし。
364nobodyさん:2013/04/03(水) 17:49:59.01 ID:???
ああ、SQL文だけ別に抜き出してるのかと思った
phpのソースに埋め込んでるなら読まれないよ。
365nobodyさん:2013/04/03(水) 18:11:44.91 ID:???
意味わかんない
366nobodyさん:2013/04/03(水) 18:26:23.36 ID:???
>>362
wget -r -k -p http://hoge
としてパスワードを要求されるので入力すればおkだ
367nobodyさん:2013/04/03(水) 20:05:59.25 ID:???
>>366

じゃあ>>363の言ってることは嘘か
368nobodyさん:2013/04/03(水) 20:43:16.74 ID:???
>>367
httpでアクセスすると対応してくれる人はhttpデーモンさん
ftpでアクセスすると対応してくれる人はftpデーモンさん
sshでアクセスすると対応してくれる人はsshデーモンさん
どのデーモンさんがどのファイルに入れるかはコンテキストで設定できるんだけど
普通は、httpデーモンさんはphpファイルさんに直で話しかけられない恥ずかしがりやさんだから
apacheさんに変わりに聞いてもらっている
だからブラウザってphpファイルを見てるのじゃなくて
apacheさんが 「phpさんがこんなこと言ってたぜ」って言ってるのを見てる

ちなみにhttpデーモンさんは普通はアパッチさんのwwwより上を見にいけないので
wwwより上に置いておけばブラウザからはアクセスできない

phpファイルはアパッチさん(の一部)が読みに行くから
php内でwwwより上にリンクを貼ればアパッチさんの入れる範囲で読み書きできる

SQL接続関係は 私はwwwより上に置いている

ちなみに私はこのDB関係のクラスを
DIO データインターフェイスオブジェクト とよんでいる
DIOはtheWorldメソッドなどを持つ
369nobodyさん:2013/04/03(水) 20:46:12.73 ID:???
メソッドじゃなかった ファンクションだた
370nobodyさん:2013/04/03(水) 21:00:14.58 ID:YRjUCssz
WordPress での作業における質問なのですが、PHP一般の話題だと思いこちらで質問させて頂きます。

今、Windowsのローカル環境で error_reporting を 32767 にセットして警告をシラミ潰しにしているのですが、

Declaration of Walker_Nav_Menu_Edit::start_el() should be compatible with Walker::start_el(&$output, $object, $depth, $args, $current_object_id = 0) in D:\localhost\wordpress\wp-admin\includes\nav-menu.php on line 207

というのをどうやっても消せません。

これは継承元のクラスメソッドとシグニチャが一致しない場合の警告なのですが、元の Walker::start_el と同じに変更しても消えないのです!

同じ警告がこのファイルの別のクラス)(Walker_Nav_Menu_Checklist)でもやはり発生して消えません。

この種類のエラーはWordPressのいたるところに散在していて、他は確認できる範囲では全て消せました。(このファイルの別のクラスでも消せたものもあります)

しかしこのファイルのこの箇所のみ解消できないのです。

どなたかお分かりになる方はいらっしゃいませんか?
371nobodyさん:2013/04/04(木) 07:26:37.47 ID:???
>>368
       _, ,_
 w  (・ω・ )
 (~)、 /   i  )
  \ ` |_/ /|
   `ー_( __ノ |
    (  `(  、ノ
wwwww_ノ`i__ノ
372nobodyさん:2013/04/04(木) 10:54:32.39 ID:???
>>368
> 普通は、httpデーモンさんはphpファイルさんに直で話しかけられない恥ずかしがりやさんだから
> apacheさんに変わりに聞いてもらっている

> httpデーモンさんは普通はアパッチさんの

2度もでてくるってことはhttp daemonとapacheがそれぞれ存在する環境なんだろうなぁ。
373nobodyさん:2013/04/04(木) 11:18:40.47 ID:???
374nobodyさん:2013/04/04(木) 12:53:27.85 ID:???
375nobodyさん:2013/04/04(木) 12:55:28.10 ID:???
phpダウンロードされたらSQLインジェクションどころの騒ぎじゃねーな
376nobodyさん:2013/04/04(木) 13:49:54.52 ID:???
>>375
上の奴、冗談なのかマジなのか判別不可能なんだよ。
377nobodyさん:2013/04/04(木) 14:49:03.99 ID:???
>>376
保存されるファイルが〜.phpだからダウンロードできてると勘違いしたに賭ける
378nobodyさん:2013/04/04(木) 15:41:23.79 ID:???
apacheの設定でやらかしてるとダウンロードできちゃうよな
あと ~ とか .bak で落とせるところが今でもある
どうみてもレン鯖なところにビッグチャンスあり
379nobodyさん:2013/04/04(木) 16:19:30.19 ID:ukDPOk48
関数の読み方一覧はありますか?
sprintf (エスプリントエフ)
ob_start (オービースタート)
とかでよい?
380nobodyさん:2013/04/04(木) 17:13:56.47 ID:???
"オービースタート"でググったら4件しか無かった。いずれも関係無し。
"おーびーすたーと"だと0件。
つまり、Web上にはそのような一覧は多分無いってことだね。

CとかUnixのだと古いのがあったりするんだが。
http://atom.rye.tama.ac.jp/~stock/cgengo/04ctext2/04furoku-c.pdf

まあ、読み方はそのままでいいんじゃない?
381370:2013/04/04(木) 17:59:41.69 ID:JZyowHPw
>>370 ですが、どなたか無理ですか?
382nobodyさん:2013/04/04(木) 18:30:28.61 ID:???
>>370
WordPressはさっぱり知らないし、どのWPのバージョンの話なのか、PHPのバージョンは何なのか
さっぱりわからないが、何で消そうとしてるの?
出なくなるまで、ログレベルを下げるわけにはいかないの?

それと、どうやって消してるのか知らないけど、WP本体を変更しちゃったら、バージョンアップしたら
変更が消えちゃわない?

あとググった?
383nobodyさん:2013/04/04(木) 19:37:19.25 ID:???
384nobodyさん:2013/04/05(金) 04:18:02.22 ID:OQtVBSh8
getimagesize()でアップロードしたファイル(拡張子は.jpg)の画像タイプをチェックしてるんですが
ある特定の画像のみ上手くいきません

$fileType = $_FILES['uploadPic']['type'];
if(preg_match("/jpeg/", $fileType)){
jpgならアップロード処理
}else{
echo $fileType;
}
としても、jpgと判定されない上に、echo $fileTypeで何も出力しません

さらに別のやり方で、
switch(exif_imagetype($_FILES['uploadPic']['tmp_name'])){
case IMAGETYPE_JPEG:
アップロード処理
break;
default:
echo exif_imagetype($_FILES['uploadPic']['tmp_name']);
}
この方法でも、 echo exif_imagetype($_FILES['uploadPic']['tmp_name']); で何も出力しません

何が原因なんでしょうか
PHPは5です
385384:2013/04/05(金) 04:51:07.31 ID:???
自己解決しました
ファイル容量的には全く問題なかったんですが、画像の寸法が大き過ぎたようです
一辺が3000px以上あると、PHPはメモリエラーを起こすらしいです
知らなかった…
386nobodyさん:2013/04/05(金) 06:15:51.61 ID:???
>>370
>>381

Reflectionで調べたら、違いがあるかもしれないよ。
編集しているつもりが別のファイルだったりするってこともない?(おれはあるw)
387nobodyさん:2013/04/05(金) 06:18:17.31 ID:???
しかし、WPはいまだに引数の参照渡しとかやってるのか。
まぁ、後方互換性じゃしょうがないか。
388nobodyさん:2013/04/05(金) 06:19:10.39 ID:???
>>387
事故レス。ごめん、勘違い。
389nobodyさん:2013/04/05(金) 13:40:01.87 ID:???
フォームに文字列を入力して自動変換させるphpで
例えばフォームに

FX News   と入力すると

http://www.hoge.com/search.php?terms=FX%20News

のように変換させたいのですが上手くいきません。
以下のような感じではダメなのでしょうか?

<Form action="URL_henkan.php">
<input type="text" name="moji" size="80" value="<?echo 'http://www.hoge.com/search.php?terms=', urlencode($moji) ?>">

<input type=submit value=sub>
</Form>
390nobodyさん:2013/04/05(金) 13:42:05.75 ID:???
いや、意味わからんし・・・なんでフォームのvalueにechoしてんの?
391nobodyさん:2013/04/05(金) 13:52:54.63 ID:???
本当は最初はフォームは空白で、文字を入力すると
http://www.hoge.com/search.php?terms=xxxx と出力されるようにしたいんですが
やり方がわからないので…
392nobodyさん:2013/04/05(金) 13:56:52.13 ID:???
そんなのphpの範疇じゃない
393nobodyさん:2013/04/05(金) 13:57:03.83 ID:???
>>391
<input value="<?=urlencode($moji)?>">
394nobodyさん:2013/04/05(金) 13:59:33.61 ID:???
>>389
やってみたらどうなった?
$mojiに何も入ってないとか?
395nobodyさん:2013/04/05(金) 14:00:59.14 ID:???
$_REQUEST['moji']
にしてみたら?
XSSしてくださいって感じだけどもw
396nobodyさん:2013/04/05(金) 14:06:29.87 ID:???
>>391
なんか、いろいろわかってないな。
?以降はURLパラメータという奴で、HTTP GETしたら勝手に付く。

hoge.php
--
<title>Test</title>
<body>
<form method="GET" action="search.php">
<input type="text" name="term">
<input type="submit">
</form>
</body>
--
を表示させて、テキストにabcと入力してsubmitしてみろ。
URLがhttp://.../search.php?term=abcになってるから
397nobodyさん:2013/04/05(金) 14:10:17.91 ID:???
>>396
$mojiはどこにいったんだよ
398nobodyさん:2013/04/05(金) 14:13:41.43 ID:???
んで、自分自身のURLに対してGETし、変換結果をテキストボックスに表示させたいなら、こう。
hoge.php
--
<?php
$converted = isset($_GET['term']) ? 'hoge' : '';
?>
<title>Test</title>
<body>
<form method="GET" action="hoge.php">
<input type="text" name="term" value="<?php echo $converted; ?>">
<input type="submit">
</form>
</body>
--
399nobodyさん:2013/04/05(金) 14:15:15.52 ID:???
まあ、このままだと、永遠にhoge.phpへのGETを繰り返すだけなんですけどね。
400nobodyさん:2013/04/05(金) 14:16:17.51 ID:???
打ったそばからURLに変換していきたいってことだと思ったんだけど?
PHPじゃ無理だろ
401nobodyさん:2013/04/05(金) 14:18:44.77 ID:???
>>400
URLを変換する意味が分からない。
次にGETしたときに、パラメータが付加されるのだから。
402nobodyさん:2013/04/05(金) 14:19:13.57 ID:39+wkXdW
【PHPのバージョン】5.3
【PHPのバージョン】MYSQL
001.php、002.php、003.php・・・をMySQLのDB内レコードの、
指定したIDのレコードを表示させたいのです。
今はこんな感じでそれぞれ、ファイルを用意しようかと思っているのですが、
http://www.rupan.net/uploader/download/1365139040.png
ファイルが数百ファイル必要になってしまい、作業手順も多くなってしまいます。
003.phpを004.phpにファイル名をリネーム
004.php内のsql003.php→sql004.phpに変更
sql003.php内のwhere id = 3 を id = 4に変更 ・・等々

これらの方法を実現させるにはphpの何かの機能を使えば実現出来るでしょうか。
また、一般的にはどのように実現させるものなのでしょうか。
403402:2013/04/05(金) 14:24:04.75 ID:39+wkXdW
訂正です。
×【PHPのバージョン】5.3
×【PHPのバージョン】MYSQL

○【PHPのバージョン】5.3
○【連携ソフトウェア】MYSQL
404nobodyさん:2013/04/05(金) 14:24:33.15 ID:???
>>394
入力した文字列はフォームへの出力へは反映されていません。
つまり>>389の例だと
http://www.hoge.com/search.php?terms=
としか表示されていません。
405nobodyさん:2013/04/05(金) 14:28:19.20 ID:???
>>389>>402も基本がわかってなさすぎ。

まず、PHPの入門書を一冊通読しろ。
406370:2013/04/05(金) 14:42:12.80 ID:???
>>382 >>383 >>386

レス有難う。解決した。

問題を単純化するとこういうことだった

class A {
function meth($arg1, $arg2 = 0) {}
}

class B extends A {
function meth($arg1 = 0, $arg2 = 0) {}
}

class C extends B {
function meth($arg1, $arg2 = 0) {}
}

// エラーレポート内容
Declaration of C::meth should be compatible with A::meth($arg1, $arg2 = 0) in ........


1.継承メソッドが親メソッドにさらに初期値を追加定義することはエラーにならない。つまり、Bにおけるmethの定義
2.継承メソッドが親メソッドより初期値を少なくすることはエラーになる。つまり、Cにおけるmethの定義

ただ、エラーレポートがCの定義内容をAとの比較でしか報告していないのでBを調べることを怠った。
要するに、PHPのエラーレポートシステムが、おれの怠慢を補ってくれない程度にクソだったってことだ。
407nobodyさん:2013/04/05(金) 14:50:46.20 ID:???
>>402
普通は、プレースホルダを使う。
http://lets.postgresql.jp/documents/tutorial/with_php/against_sql_injection/placeholder

SQLインジェクションが起きてもいいなら、'where id = ' . $idみたいに、クエリ文字列を組み立てる。
408407:2013/04/05(金) 14:51:27.81 ID:???
悪い、このURLはPostgreSQLのだった。
MySQLの場合どうやるかはググってくれ。
409nobodyさん:2013/04/05(金) 15:01:58.57 ID:???
for (i = 0; i < 100; i++) {
//数行の処理
}

を100ブロックに展開するって話思い出した。
410nobodyさん:2013/04/05(金) 15:58:08.23 ID:???
ダメだー
無料の掲示板導入しようとしてるんだがことごとく失敗するw

初心者でも設定が簡単な無料掲示板教えて
できれば画像などを投稿できるやつがいい

夢幻ってサイトので10ぐらい無料の試したが全部しっぱいしたw
411nobodyさん:2013/04/05(金) 16:03:05.38 ID:???
<a href="http://script.s16.xrea.com/2ch/">2chみたいな掲示板</a>
サンプル
2ちゃんねるみたいな掲示板
この掲示板スクリプトは、ネット上で見つけたread.cgi、bbs.cgiをPerlからPHPに移植したものです。
改造、再配布、商用利用等に制限はありませんが、プログラムのバグ等でログが消えたり他の損害がおきても作者は一切の責任を負いません。
<a href="http://script.s16.xrea.com/2ch/php/">2ちゃんねるみたいな掲示板</a>
412nobodyさん:2013/04/05(金) 16:03:51.63 ID:???
スーレーチー
413402:2013/04/05(金) 19:24:49.12 ID:39+wkXdW
勉強不足でした。。入門書通読して勉強してきます。

>>407
なるほど、普通はそういった方法を使うのですね。
ありがとうございます、勉強になります。
414nobodyさん:2013/04/05(金) 19:47:44.44 ID:???
このスレ、まじで和むな。
415nobodyさん:2013/04/06(土) 02:00:26.72 ID:???
このスレは他の質問スレより回答がわかりにくく、厳しいと思いました。
416nobodyさん:2013/04/06(土) 04:21:01.34 ID:???
質問は?
417きら ◆Kira.u9zNc :2013/04/06(土) 04:50:16.93 ID:???
さきゅばすがあるフォルダに移動して
さきゅばすCLI版を起動させるバッチファイルを作ったんですが
名前を指定して実行などでは普通に出来るのにPHPのexec();でだけ出来ません。
どうすればexecで起動出来ますか?
418きら ◆Kira.u9zNc :2013/04/06(土) 04:53:09.41 ID:???
【OS名】Windows
【PHPのバージョン】5.3.18
【連携ソフトウェア】MySQL VertrigoServ
【質問内容】>>417
419nobodyさん:2013/04/06(土) 05:04:37.52 ID:???
420nobodyさん:2013/04/06(土) 06:37:26.53 ID:???
>>417

>出来ません。
ってだけで、
エラーメッセージとかコマンドの詳細を書かないってことは、
エスパーできる範囲で質問せざるをえないわけだが。

イベントログかPHPのエラーログ見た?
セーフモードは?
フルパスで起動してる?
パスに空白入ってない?
権限は?
421nobodyさん:2013/04/06(土) 09:33:39.67 ID:???
exec('test.bat'); とでもやってんだろ
422nobodyさん:2013/04/06(土) 18:25:33.81 ID:yOARrNMO
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL

<?php
$hoge = intval($_GET["hoge"]);

$q=<<<eot
select * from table where id = $hoge;
eot;

$re=mysql_query($q);
$hairetu=mysql_fetch_array($re);

?>
<body>
<?= $hairetu["taijuu"] ?>

これで実行すると下のようなエラーが出てしまいます。
Notice: Undefined variable: taijuu in C:\xampp\htdocs\xxxx.php on line 100

3行目を追加($taijuuを定義)して、<?= $hairetu ?>に変更すると、

(途中省略)
$re=mysql_query($q);
$hairetu=mysql_fetch_array($re);
$taijuu = $hairetu["taijuu"];
?>
<body>
<?= $hairetu["taijuu"] ?>

正常に<?= $hairetu["taijuu"] ?>が処理され表示されます。
なぜ、<?= $hairetu["taijuu"] ?>ではエラーが出るのでしょうか。
423nobodyさん:2013/04/06(土) 18:42:09.69 ID:???
>>422
下のほうに$taijuu変数があるんでしょ。
そちらを書き換えればいい。
100行目って出てるよ。
424nobodyさん:2013/04/06(土) 19:04:29.97 ID:yOARrNMO
>>423
ありがとうございます。そこが問題だったようです。
そこを書き換えて、あと100行目前後の変数の部分が変な記述になっていたので
これも直したら正常に処理することが出来ました。
425nobodyさん:2013/04/07(日) 10:05:58.96 ID:???
◆真夜中のじゃあのさん◆
http://hissi.org/read.php/news4vip/20130407/T29ZaG1nNGow.html


◆じゃあのさんまとめ◆
http://jyaanowww.wiki.fc2.com/
426nobodyさん:2013/04/08(月) 09:47:10.31 ID:Hgt8t7EN
【OS名】CentOS 6.0
【PHPのバージョン】5.1.6
【連携ソフトウェア】なし
【質問内容】
ファイルを圧縮・解凍したいと思っています。
PHPが5.1.6なのでZipArchiveがありません。
phpMyAdminなどの追加も出来ない環境なのでモジュールを使ってするということができません。
コマンドも権限が無いので叩けない状態です。
こういった状況で圧縮・解凍する方法がPHPであればアドバイスもらえないでしょうか。
427nobodyさん:2013/04/08(月) 10:04:42.45 ID:???
ピュアphpのコードで自力でやる
428nobodyさん:2013/04/08(月) 10:24:46.31 ID:???
5.1.6でも標準でgz使えるんじゃないのか。
調べてサーバーで使用禁止の設定を確認したか。
429nobodyさん:2013/04/08(月) 10:44:26.70 ID:???
>>426
つまり、zlib関数も使えないってこと?
430426:2013/04/08(月) 11:39:04.03 ID:Hgt8t7EN
みなさん回答ありがとうございます。

検索ワードが悪かったせいか、上位にZipArchiveに関する事が多く出ていました。
zlib関数があることを知りませんでしたので、そちらで汎用的なzipファイルを作成できるという
ことであればそちらを使ってみたいと思います。
431nobodyさん:2013/04/08(月) 21:14:28.36 ID:???
432nobodyさん:2013/04/08(月) 23:33:19.67 ID:w0n+quq7
【OS名】CentOS 5.3
【PHPのバージョン】5.1.6
【連携ソフトウェア】なし / モジュール追加不可
【質問内容】
2038年を超える日付計算をしたいのですが、PHP5.1系のためDateTimeも使えず
モジュールも追加出来ないためPearで計算することも出来ません。
こういった状況で2038年を超える日付計算をするにはどのようにすればいいのでしょうか?
433nobodyさん:2013/04/08(月) 23:51:09.14 ID:???
>>432
unixタイムのマイナス値使わないなら マイナス値対応させれば2106年くらいまでけそうだな
独自ファンクション作ってしまえ
そしてここで公開しよう
434nobodyさん:2013/04/09(火) 00:11:04.43 ID:???
64bit使えばいいじゃん?
435nobodyさん:2013/04/09(火) 01:17:58.80 ID:???
日付計算が具体的に何をさすかで自分で実装可能なんじゃね
436nobodyさん:2013/04/09(火) 03:56:46.64 ID:???
>>406
亀だがありがとう。
出くわしたときに助かります
437426:2013/04/09(火) 09:05:47.21 ID:Bv2LP4mI
そういえばPearとかはdatetime使えなくても使えるけど
マイナス値になったら2038年以降とみなして計算するとかそういう作りになってんのかね。
438nobodyさん:2013/04/09(火) 12:06:53.35 ID:???
マイナスを考慮してるといっても2106年で限界が来るだろ
根本的解決になってないけどそれでいいのかよ
439nobodyさん:2013/04/09(火) 12:11:35.33 ID:???
ここは9999年まで使えるユリウス通日をだな
440nobodyさん:2013/04/09(火) 12:59:59.55 ID:???
class MyDate {
 private $year;
 private $month;
 private $day;

 public function addYear($year) {
  $this->year += $year;
 }

 public function addMonth($month) {
  $this->month += $month;
  if ($this->month === 12) {
   $this->year++;
   $this->month = 0;
  }
 }
}
とかのクラス作ればいいんじゃないかと思うんだが、違うのかな。
441nobodyさん:2013/04/09(火) 13:17:42.58 ID:???
>>439
そのころにはユリウスさん死んでるだろ
442nobodyさん:2013/04/09(火) 17:49:22.79 ID:???
>>432
pearはただのPHP
443nobodyさん:2013/04/09(火) 19:25:12.90 ID:Bv2LP4mI
2106年まで計算出来れば十分だよ
そんときゃ俺はもういないし
444nobodyさん:2013/04/09(火) 19:30:24.16 ID:???
俺はいるかもしれない
445sage:2013/04/09(火) 20:32:27.31 ID:???
2106までいるってなにもんだよ
446nobodyさん:2013/04/10(水) 00:15:03.20 ID:???
新人類
447nobodyさん:2013/04/10(水) 00:34:11.60 ID:???
今俺ハタチだろーあと93年だろー
113・・・ギリギリセーフだろー
448nobodyさん:2013/04/10(水) 01:21:33.51 ID:V2usnkco
【PHPのバージョン】5.3
【連携ソフトウェア】MYSQL
画像で説明となって失礼します。
http://brunhild.sakura.ne.jp/up/src/up590551.png
(ミラー)http://www.07ch.net/up2/src/lena8917.png

画像の洞くつ結果表、海上結果表、山道結果表を得るのに、
下のSQL文のように、スキルテーブルを一つのphpファイルのSQL文で
何回も必要として呼び出しているのですがDBの負荷が心配です。(正規化にも問題あるような気もしますが。。
何か効率的な書き方や、使い回しやバッファにため込む(?)等、出来ればいいなと思うのですが、何か良い方法はあるでしょうか。
449nobodyさん:2013/04/10(水) 01:22:41.12 ID:V2usnkco
>>448の続き
phpのソース部分です。

$doukutu=<<<EOM
select
洞くつ.レベル
洞くつ.技
スキル.攻撃力
スキル.消費MP
from 洞くつ
join スキル
on 洞くつ.技 = スキル.技
where 洞くつ.敵 = 'スライム';
EOM;
$query_doukutu=mysql_query($doukutu);
$kaijou=<<<EOM
select
海上.レベル
海上.技
スキル.攻撃力
スキル.消費MP
from 洞くつ
join スキル
on 海上.技 = スキル.技
where 海上.敵 = 'スライム';
EOM;
$query_kaijou=mysql_query($kaijou);
450nobodyさん:2013/04/10(水) 01:25:17.10 ID:???
451nobodyさん:2013/04/10(水) 02:33:34.60 ID:???
>>449
敵テーブルに場所列を付ければ?
452nobodyさん:2013/04/10(水) 08:28:04.93 ID:V2usnkco
>>450
ありがとうございます、ユーザ変数を使うと後で参照出来るのですね。
さっそく活用してみます。

>>451
なるほど、書いていませんでしたが前の行で敵名を別で読み込んでいるので、
それをwhere 敵=に読み込んでいたのですが、
敵テーブルに場所列を付けるというやり方もありますね、検討してみます。
ありがとうございます。
453nobodyさん:2013/04/10(水) 08:39:55.65 ID:???
伝わっているとは思うけど、洞窟、海上、山道テーブルを敵テーブルとして統合するってことね

そもそも何を心配しているかによるけど。
スキルテーブルを何度もjoinするのが心配?
それより地形ごとに何度もクエリを発行するほうが負荷。
てか1リクエスト事に地形は1種類だけでいいのでは?だったら参照する地形テーブルを動的に変えるか、上で書いたように統合すればいい
454nobodyさん:2013/04/10(水) 08:44:18.91 ID:???
どうせ、キャッシュに入ってるだろ。
心配なら、自分でキャッシュすればいい。
この件でSQLの書き方工夫したところでたいした効果はない。
455nobodyさん:2013/04/10(水) 11:01:42.44 ID:???
クラスについて「オブジェクト」「new」「カプセル化」の用語を使って説明しなさい。
456nobodyさん:2013/04/10(水) 11:05:23.23 ID:???
落書きは、自分のノートに
457nobodyさん:2013/04/10(水) 11:06:31.12 ID:???
PHP初心者にありがちではあるが
いまさらオブジェクト指向の話題とかふるなよ
あんなのは最早知ってて当然のレベル
458nobodyさん:2013/04/10(水) 14:38:17.61 ID:???
プログラミング、オブジェクト指向のどちらの初心者にとっても、やっぱり難しい話だと思うよ。
459nobodyさん:2013/04/10(水) 16:01:47.70 ID:IX7jFUbJ
依存性の注入についてわかりやすく3行でまとめて下さい
460nobodyさん:2013/04/10(水) 16:03:55.18 ID:???
>>459

依存性の注入とは
プログラミングの手法の一つですが
>>459 には未だ早い
461nobodyさん:2013/04/10(水) 17:01:12.23 ID:???
PHP厨をもっと量産してくれ
PHP使ってる奴って安価で切りやすい労働力だからもっと社会に輩出してほしい
それ以外にPHP厨に価値はないからな
462nobodyさん:2013/04/10(水) 17:20:21.26 ID:???
いまはしらんが。
昔、PSや任天堂はダメでセガというやつ、windows、unixはダメでMacというやつがいて
異常な情熱をして燃やしてるのがいたが。
同じ事で主流、メジャーに対する反抗なんだろうな。
それ自体かいいか悪いかでなく、メジャーだからという理由。
463nobodyさん:2013/04/10(水) 19:02:04.29 ID:???
>>461
よし、そのためにはPHPのお仕事を今よりももっと量産してくれ
そしたら簡単な仕事がさらに増えてルーチンワークで金を稼げる
464nobodyさん:2013/04/10(水) 21:54:25.24 ID:V2usnkco
>>453-454
なるほど、キャッシュに入るのでしょうか。それでしたらそれに越したことは無いのですが、
リクエストが多くなっていることと、また、ソースが複雑になっていたことも考慮して
テーブルを統合してみました。アドバイスどうもありがとうございます。
465nobodyさん:2013/04/10(水) 22:42:35.48 ID:B4F75Z08
PHPで作った掲示板に書き込みがなされるたびにIPアドレスを保存するようにしている。
ここからさらにIPアドレスから自動的に国まで特定したいと思ってるんだけどいい方法無い?

ちなみにGeoIPというツールをインストールすればIPアドレスから国を調べることができるらしいけど
あいにくうちのレンタルサーバー(000webhost)はシェルの操作ができないからmake; make install;とか出来ないんだよね。

なんかもっと簡単に、どこかにIPアドレスを投げると国名を返してくれるネットサービスとかあればいいんだけど。
466nobodyさん:2013/04/10(水) 23:34:51.06 ID:???
なんでPHP厨って>>465みたいにウェブの基本も分かってないゴミしかいないんだろうな。

ウェブの基本も知らずにウェブを通して利用するシステム書いてるとかありえね。

そんなことも知らないレベルならセキュリティリスクもありまくりだろうな。

悪意のあるハッカーに踏み台を用意してるゴミ=>>465
467nobodyさん:2013/04/10(水) 23:43:34.73 ID:???
>>465
お前がやらなきゃならないのは国の特定ではなく今すぐ回線を切ること
468nobodyさん:2013/04/10(水) 23:48:10.26 ID:???
>>465
system('make')
469nobodyさん:2013/04/11(木) 00:00:09.61 ID:???
>>465
マルチ
470nobodyさん:2013/04/11(木) 00:05:39.68 ID:???
>>465
叩かれたら放置でマルチか
471nobodyさん:2013/04/11(木) 01:54:53.00 ID:???
>>466
> なんでPHP厨って >>465 みたいにウェブの基本も分かってないゴミしかいないんだろうな。
>
> ウェブの基本も知らずにウェブを通して利用するシステム書いてるとかありえね。
>
> そんなことも知らないレベルならセキュリティリスクもありまくりだろうな。
>
> 悪意のあるハッカーに踏み台を用意してるゴミ= >>465 

具体的に465のどこの発言からwebの基本が分かってないと判断したのだろうか?
ちなみに、IPアドレスから国を判断するというのであれば、自分で調べれば自前で実装できる。
GeoIPのメリットは都市まで調べられるところだな。
472nobodyさん:2013/04/11(木) 12:32:28.71 ID:???
タイムスタンプを視認しやすい年月日時フォーマットに変換するのってプラグインつくらず標準機能でできるの?
473nobodyさん:2013/04/11(木) 12:46:48.22 ID:???
strftime のことかな
474nobodyさん:2013/04/11(木) 12:52:40.88 ID:???
>>472-473
なんでルールを無視しようと思ったの?
そんなに荒らしたいの?
お前らみたいなクズのせいでPHPが馬鹿にされるんだよ
475nobodyさん:2013/04/11(木) 14:58:02.81 ID:???
>>474
おまえこそ2ちゃんのルールを守れよ
476nobodyさん:2013/04/11(木) 15:01:39.89 ID:???
というか、ここのルールだなw
id出さずに聞くとはね。
477nobodyさん:2013/04/11(木) 15:10:55.16 ID:???
>>474
質問はIDを出してね
478nobodyさん:2013/04/11(木) 15:27:42.24 ID:???
>>472
秒数なんで足し算とか割り算とかしたら簡単にできるよ
479nobodyさん:2013/04/11(木) 15:34:58.04 ID:???
>>478=ゴミw
480nobodyさん:2013/04/11(木) 15:44:57.58 ID:???
>>472
Cロケールの可能性を考慮して、ここはdate()で。
481nobodyさん:2013/04/11(木) 16:59:28.61 ID:???
365541705を
2013/04/10 (Wed) 06:08:25
に変換するという質問です
482nobodyさん:2013/04/11(木) 17:01:59.31 ID:???
さすがに id 出してくれないとw
483nobodyさん:2013/04/11(木) 17:04:10.44 ID:HixpqTLW
すみません、なんのことかわかっていませんでした
sageを削除するんですね
484nobodyさん:2013/04/11(木) 17:09:45.63 ID:itiKrwCW
つい最近、PHPではうるう秒が使えず、libcなんかと互換性が無いみたいな話を見かけたような気がするがきのせいか?
485nobodyさん:2013/04/11(木) 17:10:02.05 ID:0KD/BzYB
IDが出ないこの板が悪い
486nobodyさん:2013/04/11(木) 17:11:56.71 ID:???
うるう秒って会議で決めるもんなんだから無理に決まってんだろがクズがよー
487nobodyさん:2013/04/11(木) 17:16:41.35 ID:HixpqTLW
簡単にはできないということですか?
488nobodyさん:2013/04/11(木) 17:18:44.27 ID:???
お前が毎日ニュースサイトで閏秒の決定がないか監視する必要がある
489nobodyさん:2013/04/11(木) 17:28:50.22 ID:???
>>483
echo date("Y/m/d (D) H:i:s", 365541705);
echo strftime("%Y/%m/%d (%a) %H:%M:%S", 365541705);

ロケールとか影響しないフォーマットにしてみたけど
この数字だと 1981/08/01 (Sat) 19:21:45 になるから元が違う?
490nobodyさん:2013/04/11(木) 17:29:36.79 ID:???
まあ 60 秒が存在できるかどうか、というのもあるしなあ
491nobodyさん:2013/04/11(木) 17:36:59.62 ID:???
>>489
え!元が違うことはないかと
メール送信時に同時に書き込まれてます
492nobodyさん:2013/04/11(木) 17:37:33.71 ID:HixpqTLW
すみません
またsage削除を忘れました
493nobodyさん:2013/04/11(木) 17:43:40.31 ID:???
元が(エポックタイムとは)違う何かなのでは。
494nobodyさん:2013/04/11(木) 17:44:58.45 ID:???
>>491
頭の1抜けてるっしょ、1365541705 だろう
495nobodyさん:2013/04/11(木) 17:45:18.61 ID:???
じゃなくて、単に一番上の「1」が抜けてるんだな
1365541705
496nobodyさん:2013/04/11(木) 17:45:50.66 ID:???
ああかぶりました。495=493
497nobodyさん:2013/04/11(木) 17:48:38.28 ID:itiKrwCW
ちょっと手元で試してみた。

test.c
--
#include <stdio.h>
#include <time.h>
int main()
{
time_t t = 915148821;
struct tm *tm = localtime(&t);
printf("%s\n", asctime(tm));
return 0;
}
--

test.php
--
<?php
echo date("Y/m/d (D) H:i:s", 915148821) . PHP_EOL;
--

うるう秒を考慮するzoneinfoを使うと…
$ TZ=/usr/share/zoneinfo/right/Japan ./test
Fri Jan 1 08:59:60 1999

$ TZ=/usr/share/zoneinfo/right/Japan php test.php
1999/01/01 (Fri) 09:00:21

うーむ…。
498nobodyさん:2013/04/11(木) 18:18:16.16 ID:???
解釈の違いによって20秒くらいの誤差が出てもかまわないという考え方もある。
499nobodyさん:2013/04/11(木) 18:23:57.62 ID:HixpqTLW
メールを見直しましたが頭に1はついてないみたいです

365541705は
date( substr(time(), -9) );

2013/04/10 (Wed) 06:08:25は
date( "Y/m/d (D) H:i:s", time() );

という関数で吐き出されています
500nobodyさん:2013/04/11(木) 18:42:20.92 ID:???
>>499
なんでわざわざ substr で 後ろから9文字取り出してるの?
10桁あるんだから 1が落ちて当然だよね?
501nobodyさん:2013/04/11(木) 18:44:53.19 ID:???
>>500
ワロタw
時刻が関係する場所だから-9がずーっと時差関係の数字に見えてたww
502nobodyさん:2013/04/11(木) 18:48:26.96 ID:???
GMT+9だもんな日本時間
503nobodyさん:2013/04/11(木) 18:54:33.33 ID:HixpqTLW
>>500
あれの意味はうしろから9桁なんですね
どうしてそうしたのか尋ねてみます
明日以降になると思います
504nobodyさん:2013/04/11(木) 20:01:05.11 ID:???
>>500
10桁になる前に書かれたロジックとか。
505nobodyさん:2013/04/11(木) 21:13:22.64 ID:???
それはすごい
506nobodyさん:2013/04/11(木) 22:45:58.95 ID:yLGwf0zn
>>471
> ちなみに、IPアドレスから国を判断するというのであれば、自分で調べれば自前で実装できる。

IPアドレスの国への割り振りって動的に変動しているけどそれはそういうのに追従できる方法?
507nobodyさん:2013/04/11(木) 22:53:54.56 ID:???
15桁の数字の真ん中の5桁を抜き出すの1行で書けます?
123456789123456の真ん中の67991
508nobodyさん:2013/04/11(木) 22:54:36.57 ID:???
509nobodyさん:2013/04/11(木) 22:55:56.12 ID:???
文字列変換とsubstr
510nobodyさん:2013/04/11(木) 22:58:49.26 ID:???
文字列に変換?
511nobodyさん:2013/04/11(木) 22:59:58.02 ID:???
そもそもストリップをどうするのか解らなくて 汗
512nobodyさん:2013/04/11(木) 23:13:28.27 ID:???
var [ alias, dom ] = ate.split("@");
513nobodyさん:2013/04/11(木) 23:30:57.18 ID:???
>>506
馬鹿は黙っててね
514nobodyさん:2013/04/12(金) 04:09:06.68 ID:???
10万でわって10万で割ったときのあまり
515nobodyさん:2013/04/12(金) 18:15:51.75 ID:???
>10万でわって10万で割った

最初は全部ひらがなで「わって」って書いてるのに、次は「割って」って書いてる。
この一貫性のなさは絶対アスペだろ。
そこを変えるなら全部変えるべき。
最初は「100,000でわって」にして、
次は「10万で割って」にするとか。
これだったら「最初と次を変える」という一貫性が窺えるから気持ち悪さはない。
中途半端に変えるってのは精神的に安定してない証拠。
こいつ絶対にアスペ。
普段のコミュニケーションにも支障をきたしてそう。
気持ち悪い。
516nobodyさん:2013/04/12(金) 18:34:27.03 ID:???
一貫性の無さは、むしろアホなんじゃ……
アスペの統一性の高さはちょっと異常レベルだし
517nobodyさん:2013/04/12(金) 19:11:33.43 ID:???
そういうくだらない部分の指摘しかできないのもアスペルガーか何かじゃないの?
518nobodyさん:2013/04/12(金) 19:34:25.22 ID:???
>>515
技術的なツッコミができないからそういう感じになっちゃうのか
何でここにいるの?
519nobodyさん:2013/04/12(金) 20:19:06.70 ID:???
>>509
もう少しヒントをお願いします
520nobodyさん:2013/04/12(金) 21:30:09.59 ID:???
>>519
文字列変換は暗黙の型キャストを嫌う場合の処理。
substr はヒントも何もそれが答えだよ。
自分で調べてないのが丸わかりだ。
521nobodyさん:2013/04/12(金) 21:32:18.65 ID:???
あとたぶん8を9に置換する処理が必要だな
522nobodyさん:2013/04/12(金) 21:38:55.90 ID:???
523nobodyさん:2013/04/12(金) 21:44:33.51 ID:???
>>520
質問者?
524nobodyさん:2013/04/13(土) 00:43:50.64 ID:???
>>519
質問者でもないゴミが書き込むな
525nobodyさん:2013/04/14(日) 04:05:20.50 ID:???
>>515
これマジで書いてるよな
こういうキモイの初めて見た
世の中キチガイってマジでいんだな
526nobodyさん:2013/04/14(日) 04:09:13.76 ID:???
>>525って自分がキチガイでリアルでもキモがられてるのに気付いてなさそうw
527nobodyさん:2013/04/14(日) 13:16:41.05 ID:GUqrSjpz
$a[0]から$a[200]の数値が入った配列の操作について聞きたいです。
配列の範囲を指定して、その合計値を出す方法が知りたいです。

$a[50]から$a[70]の数値をすべて合計した値を出すなど
528nobodyさん:2013/04/14(日) 13:43:25.50 ID:???
>>527
array_sum(array_slice($array, 50, 21))
529nobodyさん:2013/04/14(日) 15:05:52.19 ID:GUqrSjpz
>>528
ありがとうございます
530nobodyさん:2013/04/15(月) 17:12:04.80 ID:Zye3ucx/
自分用にゲームの発売日なんかを自動で集めてきて表示するサイトってPHPで作れますか?
531nobodyさん:2013/04/15(月) 17:15:50.60 ID:???
>>530
作れる
532nobodyさん:2013/04/15(月) 17:17:26.44 ID:Zye3ucx/
>>531
ありがとうございます
ついでといっちゃなんだがなんかヒントくれよな
533nobodyさん:2013/04/15(月) 17:22:34.61 ID:???
かき集めてきてHTML出力すればいいんじゃないの
定期的にcronなりタスクスケジューラなんかでかき集めておいて、
生成しておいたプレーンなHTMLにアクセスするほうがいいかもしんない。
534nobodyさん:2013/04/15(月) 17:25:23.97 ID:A3jblSzx
すいません、開発環境を構築していたところ、
本番環境ではでなかった
以下のようなエラーが表示されるようになってしまいました。

A PHP Error was encountered
Severity: Notice
Message: Use of undefined constant END_TRANSACTION - assumed 'END_TRANSACTION'
Filename: db/mysql.php
Line Number: 117

【PHPバージョン 5.3】
原因・回避方法わかりましたらご教示ください。。。
535nobodyさん:2013/04/15(月) 17:34:24.67 ID:???
>>532
まず手動で集めて表示するサイトを作ってそれを自動化
536nobodyさん:2013/04/15(月) 17:40:51.15 ID:???
>>533,535
サンクス!
537nobodyさん:2013/04/15(月) 17:59:13.24 ID:???
>>534
ドキュメントルートがおかしいのではないかって海外フォーラムでいわれているよ
開発環境と本番環境それぞれの、そのあたりを注目してみてはどうでしょう
538534:2013/04/15(月) 18:10:51.68 ID:A3jblSzx
>>537
ありがとうございます。そのあたりを疑ってもう少し頑張ってみます。
539nobodyさん:2013/04/15(月) 18:11:31.29 ID:???
>>534
本番環境でEND_TRANSACTIONを定義しているライブラリは、開発環境に入ってる?
入ってるなら、参照できてない(パスの解決ができていない)とかかな。

あるいは、本番環境のエラー出力レベルで~Noticeしてて、本番環境でもそのエラーが
発生してるけど、ログには出てないだけとか。
540534:2013/04/15(月) 18:50:39.07 ID:A3jblSzx
>>539
本番環境でもNoticeレベルのエラー表示はされるので
そのあたりの設定とは関係ないようです。

アプリケーションは丸ごとコピーしてアップしているのですが、
その中にはEND_TRANSACTIONの定義は見当たらないようなのです。。

ちなみにDB環境は以下のように変わっています。
---------------------------------------
ソフトウェア: MySQL
ソフトウェアバージョン: 5.1.49-log - FreeBSD port: mysql-server-5.1.49
データベースクライアントのバージョン: libmysql - mysqlnd 5.0.10
PHP 拡張: mysqli
---------------------------------------

---------------------------------------
サーバのバージョン: 5.0.95
プロトコルバージョン: 10
MySQL クライアントのバージョン: 5.0.95
PHP 拡張: mysql
---------------------------------------

海外サイトも調べているのですが、明確な解決法が見当たらず。。。
541nobodyさん:2013/04/15(月) 19:28:33.26 ID:???
>>540
何のアプリよ?
542nobodyさん:2013/04/15(月) 19:35:48.72 ID:3Mv3hGy+
PHPに書くデータベースの接続パスワードは別ファイルに書くのが慣習だけど
実際にPHPに一緒に書いてて覗き見られることってある?
543nobodyさん:2013/04/15(月) 19:45:48.33 ID:???
>>542
そういう設定になっていれば見られる
544534:2013/04/15(月) 20:10:52.09 ID:A3jblSzx
>>541
解決しました。。。

vogooというリコメンドエンジンAPIです。
ライブラリのコンフィグファイルのDB設定が本番環境のままなのが
原因のようでした。
545nobodyさん:2013/04/16(火) 01:28:10.29 ID:ooHoVKGv
値で検索してその配列のキーを取り出したいです。

例えば
$a[0]から$a[100]の配列があるとして
6000と同じ値が入った配列を$aの配列から取得

その配列のキーだけ取り出して変数に入れる
546nobodyさん:2013/04/16(火) 01:43:46.90 ID:D4JSFeay
日本語でおk
547nobodyさん:2013/04/16(火) 02:08:35.35 ID:ooHoVKGv
聞き方が下手で申し訳ないです

このような配列があった時に
$a[0] =50
$a[1] =51
$a[2] =52
$a[3] =53
$a[4] =54

値から配列の変数を調べる方法が知りたいです
例えば値が54に該当する配列の変数がどれなのかを調べる時に使いたいです
あと配列の変数がわかった後に、そのキーだけほしいです

この例だと
54で調べると

$a[4]が該当して

そのキーの4

となって最終的に4がほしいです。
548nobodyさん:2013/04/16(火) 02:31:37.39 ID:???
>>547
$key = array_search(54, $a);
549nobodyさん:2013/04/16(火) 03:20:31.00 ID:ooHoVKGv
>>548
ありがとうございます
550nobodyさん:2013/04/16(火) 10:55:46.37 ID:???
>>547
配列の場合は、普通は「変数」とは言わずに、「インデックス」とか「添え字」という
551nobodyさん:2013/04/16(火) 11:29:04.50 ID:ooHoVKGv
>>550
勉強になります
ありがとうございます
552nobodyさん:2013/04/16(火) 17:01:24.35 ID:???
キーでいいじゃんw
553nobodyさん:2013/04/16(火) 17:53:54.39 ID:???
ハッシュじゃね?
554nobodyさん:2013/04/17(水) 09:43:19.92 ID:???
PHPはその辺あいまいだから・・・
555nobodyさん:2013/04/17(水) 11:16:36.85 ID:???
PHPは添え字とハッシュと両方あるんだよな
556nobodyさん:2013/04/17(水) 11:26:21.72 ID:???
配列の添字だと思われるのは実は連想配列のキー。
557nobodyさん:2013/04/17(水) 13:02:11.83 ID:???
PHPのマニュアル見るとわかるんだが、PHPでは「配列のキー」という言い方は普通に使われる。
558nobodyさん:2013/04/17(水) 13:14:05.13 ID:???
PHPでは添え字のことをキーと呼ぶ
559nobodyさん:2013/04/19(金) 01:52:35.21 ID:BkSiPRWu
vpsサーバーで下のコードを動かしてるのですが
<?php echo file_get_contents('http://xxx.xxx.xxx/test.cgi');?>

下のエラーが出てしまいます。
failed to open stream: HTTP request failed! HTTP/1.1 500 Internal Server Error in xxx
urlに直接ブラウザでアクセスするとtest.cgiがちゃんと表示できます。

下のコードだとちゃんとyahooのトップが表示できます。
<?php echo file_get_contents('http://yahoo.co.jp/');?>

ローカルのxampp上で同じプログラムを動かした場合もちゃんと表示できます。

原因なんでしょうか??
560559:2013/04/19(金) 01:57:02.52 ID:BkSiPRWu
以下の環境です

【OS名】CentOS6.2
【PHPのバージョン】5.3.3
561nobodyさん:2013/04/19(金) 03:32:15.65 ID:???
そのエラー内容を見てみたらなんか分かるんでないの
562559:2013/04/19(金) 08:23:54.41 ID:???
ありがとうございます。ログ見たら解決しました。
cgiの方で呼び出しもとのホストを弾く設定になってたみたいでした。
563nobodyさん:2013/04/19(金) 11:04:15.70 ID:???
質問する前に、なんで先にログを確認しないのか
564nobodyさん:2013/04/19(金) 13:02:39.65 ID:lhK9q9u1
フレームワークに挑戦しようと勉強してるのですが、質問させてください

今までオブジェクト指向で書いたことがなく、ページ遷移の際にセッションに保存してそこからデータを
出し入れしたのですが、フレームワークで書かれたウェブアプリのサンプルソースを
みていると、インスタンスに全部入れ込んでいく方法がとられているのですが、
インスタンスにデータを保存して、そこから読み出し書き出しをして処理しようと思うのですが、
インスタンスに設定情報や取得情報を代入した場合、
ページ遷移した場合は当然保持されないのでしょうか
565nobodyさん:2013/04/19(金) 14:14:51.32 ID:???
文章推敲して質問し直して
566564:2013/04/19(金) 14:35:58.50 ID:lhK9q9u1
はい・・・すみません

フレームワークの場合、クラスファイルをautoloadで読み込んだりするために
クラスファイルのパスやその他各種設定情報をインスタンスに格納していくかとおもいますが、
ページ遷移をまたぐ場合、インスタンスは保持されるのでしょうか
それともセッションなどに一時的に保存する必要があるのでしょうか
567nobodyさん:2013/04/19(金) 14:52:24.01 ID:???
フレームワークの場合とか言われても フレームワークで違うし
インスタンスに格納すると決め付けられても。 というか、 インスタンス と言うものを 勘違いしてる?
ページ間のデータのやり取りはフレームワークが勝手にやるのかもしれないし、
オブジェクト指向関係ないし
568564:2013/04/19(金) 15:35:16.89 ID:lhK9q9u1
わかってない者のわかってない質問になっていると思います、すみません・・・

もう一度整理して・・・
やろうとしてることは、ユーザ登録のページを作成
(入力フォーム→確認画面→送信完了)で、今まで3つのphpファイルでページ遷移をしていました

今度は、index.phpにアクセスしてフォーム等の設定を読み込み→入力フォームを表示、
ユーザが入力をして確認ボタンを押すと、データを受け取るクラスを実行してindex.phpに
リダイレクトし、確認画面を表示させる〜(以降略)
という動きを考えているのですが、フォームボタンを押してページ遷移(リダイレクト)させるという処理が
単純に最初に示したphpファイル毎にページが遷移していくやり方と比較して
フレームワークの場合は一連の動作になるのでしょうか
それとも、一旦セッション等に保存して、index.phpが再度読み込まれた際にセッションから設定を
呼び出して処理をおこなうものなのでしょうか
569nobodyさん:2013/04/19(金) 15:51:05.66 ID:???
フレームワークによる

index.phpで受けて index.phpで表示する。
別にセッションで受け渡ししないでも作れるよね。

アクションで、受けるとこ、結果表示するとこ分けて、セッションで受け渡す形で作るのもあるし
570nobodyさん:2013/04/19(金) 16:18:53.21 ID:???
>>569
> アクションで、受けるとこ、結果表示するとこ分けて、セッションで受け渡す形で作るのもあるし

横からだけど、これ具体的にはどのフレームワーク?
571564:2013/04/19(金) 16:36:11.06 ID:lhK9q9u1
>>569
なるほどです

MVCの解説サイトなどを見ながら勉強してるのですが、
だいたいindex.phpにリクエストがきて、コントローラから、初期化や設定ファイルなどを読み込んで、
Dispatcher.phpで振り分けられて、アクションに応じたクラスが実行されて、
結果をビューに渡して表示させる
・・・という流れで理解をしたのですが、ビューの結果をクライアントにレスポンスとして返されたあとのことに
触れられている説明がなく(読み足りないのかもしれません)、
クライアントがその次にリクエスト(たとえばフォームで入力ボタンを押す)をした際に、
次の振り分けでボタンを押す処理のクラスを実行するに、またindex.phpが呼び出され、
初期化や設定ファイルの読み込み、クラスのautoloadなどを最初からしなければならないのか、
はたまたその辺は保持されているものなのか、セッション等で設定を保存して読み込むようにしてあげる必要があるのか
その辺で疑問に思った次第です
書籍のサンプルでは、最初に読み込まれた際に、設定情報を格納したインスタンスを凍結させ、
それ以降の設定変更ができないようにしているのですが、そのインスタンスをセッションに保存したりするような
記述が見つからなく、混乱している状態です
572nobodyさん:2013/04/19(金) 16:54:57.85 ID:???
>>571
なにで引っかかってるのかわかんないから 的外れなのかもしれないけど、

普通は、どんなアクセスも全部 index.phpで受けて 毎回毎回 初期化、設定読込は行われる。
基本的には、リクエスト毎に実行され、処理が終われば消えてなくなり、
各リクエストは関連なく独立しているものです。

アクセスしてる個人単位で連続しているように見せかけるために、
個人だけに関連するデータをセッションで保持したりしますが、

普通はインスタンスごと持ったりみたいなことはしないものです。
573nobodyさん:2013/04/19(金) 17:20:17.98 ID:???
>>571
その勉強中のMVCのサイトか、勉強中のフレームワーク名を出すと話が早いかもよ。
574nobodyさん:2013/04/19(金) 21:22:28.01 ID:???
毎回最初からだよ。
セッション情報を使うことで続きっぽく扱えるだけで、HTTPはリクエストごとに独立した処理をするのが原則
575nobodyさん:2013/04/20(土) 13:45:38.40 ID:???
Merge branch 'PHP-5.4' into PHP-5.5 や
Merge branch 'PHP-5.3' into PHP-5.4 は
先に古いバージョンで修正されたものが
新しいバージョンの方にも適用されたという事でよいのかな?
576nobodyさん:2013/04/20(土) 14:19:52.09 ID:???
577nobodyさん:2013/04/20(土) 16:45:32.14 ID:???
>>575=精神異常
578nobodyさん:2013/04/20(土) 18:05:38.77 ID:???
>>577
気づいてないかも知れないけど、君がそうかもよ?
579nobodyさん:2013/04/20(土) 19:36:32.31 ID:???
580nobodyさん:2013/04/21(日) 04:47:46.16 ID:???
>>575
そう。
581564:2013/04/21(日) 17:35:31.74 ID:QsqTX+06
みなさまレスありがとうございます

なるほど、1回毎に読み込みがおこなわれるわけですね
引っかかってる部分がようやくとけました
どうりで保存したりする処理がないわけですね
となると、リクエストに対して、必要な設定読み込みを考えないとダメですね
何でもかんでも最初に初期化設定読み込みをautoloadなどで一括に処理してしまうものだと思ってました
全体の流れや効率を考えた外枠から考えないとダメですね
582nobodyさん:2013/04/22(月) 06:20:08.99 ID:???
質問させてください

YouTubeやニコニコ動画などは再生可能なサムネイルを
出力できますが、
ニコ生放送は再生可能なサムネイルを貼り付けることは出来ますか?
583nobodyさん:2013/04/22(月) 08:08:19.49 ID:???
584nobodyさん:2013/04/22(月) 17:30:21.42 ID:0nrxKiO8
zend frameworkを使うことによって得られるメリットは?
585nobodyさん:2013/04/22(月) 20:16:28.58 ID:???
>>584
>>1
>・ 質問者として、態度をわきまえること。
586nobodyさん:2013/04/22(月) 23:14:46.67 ID:YyKrblk5
○じゃあのさんの入れ知恵○
じゃあのさん来た! 次スレ

26:以下、名無しにかわりましてVIPがお送りします[]
2013/04/22(月) 22:59:02.35 ID:8TN30C6y0
じゃあ、こっからが情報戦レクチャーに入るぜwww
敵の資金源をおまいらでも一枚噛んでぶっ潰す方法だwwww
不買運動やデモは単なる手段でしか無いwww
俺が求めるのは更にその先だwwww

--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366637744/
587nobodyさん:2013/04/23(火) 10:52:32.26 ID:???
>>585
いちいち反応するなボケ
お前も荒らしか?
588nobodyさん:2013/04/23(火) 10:55:13.48 ID:???
>>587
>>1
>・ 質問者として、態度をわきまえること。
589nobodyさん:2013/04/23(火) 16:19:34.01 ID:???
>>584
フレームワークを使うことによって得られるメリットと同等のメリットが得られる
590nobodyさん:2013/04/23(火) 21:53:05.68 ID:870eDqk8
>>564
亀だけど、ぜんぜん方向の違う勘違いしてるじゃないか
お前らちゃんと指摘してやれよw
PHPはリクエストのたびに起動して一プロセス消費して終わり。
これ、フレームワークがどうたらとか関係なく、言語仕様な。

一度作成したインスタンスを再利用するなんてのはシリアライズして
DBに保存してっていう、どっちかっていうと変態っぽいやりかただから、
まだ手を出さないほうがいいと思うし。
591nobodyさん:2013/04/24(水) 02:14:16.69 ID:???
>>590
いや、もう十分に指摘してるだろ
592nobodyさん:2013/04/24(水) 04:02:41.23 ID:???
鼻水出たw
593nobodyさん:2013/04/24(水) 04:12:15.02 ID:6o5SNjBY
全体の流れや効率を考えた外枠からではなくhttp通信の流れからだろ
594nobodyさん:2013/04/24(水) 04:23:24.40 ID:???
HTTPはステートレス。そうじゃなく見える場合はプロトコル以外の部分が工夫してるだけ
595nobodyさん:2013/04/24(水) 11:10:58.26 ID:???
hoge.php
を外部から呼び出す時、引数を与えたいのですが、
hoge.php?saitama=chichiu
以外に方法はありますか?

PHP 5.2.17です。
596nobodyさん:2013/04/24(水) 11:14:23.84 ID:???
IDが出てないとダメなんです。ごめんなさい。
597nobodyさん:2013/04/24(水) 12:01:08.73 ID:L2MfGf1m
hoge.php
を外部から呼び出す時、引数を与えたいのですが、
hoge.php?saitama=chichiu
以外に方法はありますか?

PHP 5.2.17です。


>>596
すみません。
598nobodyさん:2013/04/24(水) 12:04:45.02 ID:???
POSTするんじゃだめ?
あとPATH_INFO使うとか
599nobodyさん:2013/04/24(水) 12:05:42.44 ID:???
って外部からってのは具体的にどういう?
600nobodyさん:2013/04/24(水) 12:08:26.65 ID:???
http://example.com/hoge/saitama/chichiu
で、 hoge.phpに saitama と chichiu 渡すみたいな方法はあります。
601nobodyさん:2013/04/24(水) 12:16:58.15 ID:???
>>600
あります

次の質問どうぞ〜
602nobodyさん:2013/04/24(水) 12:36:56.42 ID:???
>>600
PHPには その方法は無いよ
603nobodyさん:2013/04/24(水) 13:38:58.11 ID:???
あるだろw
604nobodyさん:2013/04/24(水) 18:32:03.09 ID:???
?saitama=chichiuでsaitamaとchichiu拾うの?
foreachで$_GETからkeyとvalue取ってくるの?
605nobodyさん:2013/04/24(水) 18:33:19.63 ID:???
ディレクトリ構造に見せかけてるだけで実際getと変わらんじゃん
606nobodyさん:2013/04/24(水) 20:26:09.16 ID:???
>>603
PHPだけじゃ実現できないよ
607nobodyさん:2013/04/24(水) 20:53:40.70 ID:???
はいはい
608nobodyさん:2013/04/25(木) 02:19:49.33 ID:UuN6Innx
php5.4.14 PEAR1.9.4
Windows7でpeclで pecl_http を入れようとしてダウンロードまではいったのですが
その後エラーが出て止まってしまいました。これはどうすればいいんでしょうか。

pecl install http://pecl.php.net/get/pecl_http
downloading pecl_http-1.7.5.tgz ...
Starting to download pecl_http-1.7.5.tgz (174,624 bytes)
.....................................done: 174,624 bytes
71 source files, building
ERROR: The DSP pecl_http.dsp does not exist.
609nobodyさん:2013/04/25(木) 02:32:52.82 ID:???
610nobodyさん:2013/04/25(木) 10:16:17.52 ID:???
>>606
httpdが必要って言いたいのか。
こじつけもいい加減に・・・
611nobodyさん:2013/04/25(木) 13:44:25.08 ID:???
>>609
英語なのであいまいにしか翻訳できなかったので間違っていたらすいません。
これはhttp_build_urlを使うためにpecl_httpを入れようとしたけど使えなかったから
http_build_url() を自作したっていう話ではないですか?
私がしたいのは http_build_url ではないのでこれには当てはまらないのではないでしょうか。
612609:2013/04/25(木) 13:44:56.25 ID:UuN6Innx
ID忘れてました。
>>611 は 609 です。
613608:2013/04/25(木) 13:46:28.43 ID:UuN6Innx
さらに間違い。>>611,612 は 608 の間違いです。たびたびすいません。
614nobodyさん:2013/04/25(木) 14:17:01.66 ID:0FNu+M2T
615nobodyさん:2013/04/25(木) 14:37:11.67 ID:???
>>614
サーバーにディレクティブ渡せば楽勝でしょ。
WordPressやCakePHPのURLの仕組みを調べてみれば?
616nobodyさん:2013/04/25(木) 15:04:32.09 ID:???
いくらでもやり方はあるけど、
.htaccess に、特定のファイル名の時はapplication/x-httpd-phpを追加する
とかが一般的かな
617nobodyさん:2013/04/25(木) 15:31:26.40 ID:???
PHPオンリーでって話じゃないのか
618nobodyさん:2013/04/25(木) 16:37:07.19 ID:???
PHPのビルトインウェブサーバで実行できなきゃだね
619nobodyさん:2013/04/25(木) 16:42:52.06 ID:???
質問者いなくなっちゃったのか
620nobodyさん:2013/04/25(木) 19:16:06.66 ID:???
俺はくだらない質問をする
お前たちは答えてろ
621nobodyさん:2013/04/25(木) 19:32:36.30 ID:???
俺はただ見物して楽しむ♪
622nobodyさん:2013/04/25(木) 21:49:42.17 ID:???
>>615
楽勝には同意するけど
> サーバーにディレクティブ渡せば楽勝でしょ。
用語を勉強しなおしましょうね
623nobodyさん:2013/04/26(金) 07:59:11.43 ID:h02AATTS
基礎の基礎で申し訳ありません

インスタンスを生成後、オブジェクトにアクセスする際
$this->val
valの部分に他の配列に入れておいた文字列でアクセスするにはどうしたらよいでしょうか
$val = array(a,b)
$this->a
$this->b
のょうに繰り返しで処理したいです

配列だとhoge[$val]といったようにしてましたが、オブジェクトの場合はどうなるのでしょう
624nobodyさん:2013/04/26(金) 08:12:40.04 ID:???
>>623
$this->$val[0]
625nobodyさん:2013/04/26(金) 13:34:02.60 ID:wd6ISbqU
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
DBに書き込みデータを保存する掲示板を作っているのですが
ユーザーが書き込んだ文字列をHTMLエスケープするのはどの段階にするべきでしょうか

勿論'や;に\をつけるのはDBに保存する前だと思いますが、
<や>等HTMLとして影響を与える文字をエスケープするのはDBに保存する前か
それともDBにはそのまま保存して出力する際にエスケープすべきでしょうか
一般的な考え方があったら教えて下さい
626nobodyさん:2013/04/26(金) 13:44:14.73 ID:???
考慮するのは2点
DBにデータを入れる際のSQLインジェクション
そしてデータをHTMLに出力する際のクロスサイトスクリプティング

DB操作にどのAPI使ってるのかしらんがDBに入れる際
mysql関数ならmysql_real_escape_string
PDOならプリペアードステートメントを使う

DBから取り出してHTMLに出力するときにhtmlspecialcharsを使う
627nobodyさん:2013/04/26(金) 13:45:37.38 ID:???
もちろんデータをselectするとき検索など外部に入力を依存するシステムの場合は
select文にたいしても同様にSQLインジェクション対策を行うこと
628nobodyさん:2013/04/26(金) 15:17:37.16 ID:wd6ISbqU
>>626-627
どうもありがとうございます
629nobodyさん:2013/04/26(金) 15:22:40.36 ID:???
PDO+静的プレースホルダで、DBにはそのまま保存。
出力するときに、htmlspecialcharsを使う。

これしかない。
630nobodyさん:2013/04/26(金) 15:27:43.27 ID:???
>>625
有効にするタグがあるのかどうか(<a>や<strong>, <pre>などは生かすとか)によって違う。
また、エンコードが何なのかによっても違う。
631nobodyさん:2013/04/26(金) 16:08:21.01 ID:???
>>625
色んな所で古くから議論されてるけど、
基本はDBに生で保存して出力時に整形する。
いろんな検証の仕方をしても多分ここに落ち着く。

それを踏まえた上で、パフォーマンスを高めるためのチューニングとして
エンコード済みのデータをケースバイケースで本データとは別に保存しておいたりすると良い。
632nobodyさん:2013/04/26(金) 17:56:09.59 ID:???
>>625
ほかの人も言っていることとほぼ同様だけど
取り立てて仕様に影響するような要件がない場合は、DBには可能な限り生なデータを突っ込んだほうがいい。
突っ込む前に整形するとその後の拡張性がすこぶる悪くなったりする。
で、PHPでMySQL使っているならば、mysqli_real_escape_string関数あたり使いなはれ。
で、出力するときは、htmlspecialcharsあたりでXSS除けしなはれ。
ちなみにWHERE句なんかで外部からの値突っ込むときもちゃんとエスケープ処理かけるんだぞ。
もう一つ言うと、LIMITやOFFSET句みたいな場所を除いて外部から受け取ったIntegerを突っ込むときも
ちゃんとエスケープ処理して'つけてSQL文に流し込め。
LIMITやOFFSETは、Integer以外入りようがないのだから、正規表現かなんかでバリデートすべし。
633nobodyさん:2013/04/26(金) 18:13:03.59 ID:???
DBに保存する前に、入力データそのものを変更するって考え方、誰が広めたんだ?
昔はそれが普通だったのか?
634nobodyさん:2013/04/26(金) 18:14:00.99 ID:???
同じ回答を繰り返すPHP回答者△
635nobodyさん:2013/04/26(金) 18:14:09.48 ID:2flPsSFU
MySQLはPHPと共にオワコン
636nobodyさん:2013/04/26(金) 18:16:10.65 ID:???
>>633
たんに何のセキュリティ問題なのかとか具体的なことがわからなかったってだけでは?
とりあえずエスケープにはhtmlspecialcharsを使っとけばいいって覚えちゃった人が
自分のサイトでこういうふうにして入れますみたいに書いて
それを間にうけた第三者が真似していくという
637nobodyさん:2013/04/26(金) 18:18:57.51 ID:???
セキュリティホールの名称はわかっても具体的な内容までは知らない人
内容はだいたいわかるけど実際に問題になるコードが書けない人
本当にアマでセキュリティホールを理解してるのは少ない
638nobodyさん:2013/04/26(金) 19:13:13.98 ID:???
>>632
そういう時は、同様じゃない部分だけ書くのが大人
639nobodyさん:2013/04/26(金) 19:42:40.94 ID:???
普通のファイルに<>でカラムを分割していたから
そのカラムの範囲を破壊されないために
<と>をエスケープしていたんだよねwww
640nobodyさん:2013/04/26(金) 20:23:06.36 ID:???
>>637
そうそう、そんな理解していない奴らが簡単にWebアプリもどきを作れるようにしたPHPは犯罪
世界規模のサイバーテロに匹敵するほどの犯罪

犯罪者予備軍のPHP厨にはお似合いかw
641nobodyさん:2013/04/26(金) 22:33:10.72 ID:zqV1AZ+p
>>640
わしのことやな、、getpost変数はほぼホワイトリスト解決させてる、、ヌルバイトだけはどう来るか予想できん。。。。
642nobodyさん:2013/04/26(金) 22:35:09.48 ID:???
失礼さげ
643nobodyさん:2013/04/27(土) 06:55:33.74 ID:???
>>640
理解してないやつらが簡単に〜
なんてどの言語でもそうじゃないか
644nobodyさん:2013/04/27(土) 14:25:23.44 ID:RdpUkJUr
それが同じなどというのは言葉遊びに過ぎない
仮にmcintosh(詳細な綴りは知らん)とwindowsに同じ問題があったとして
その影響が同じだなどという主張と変わらん
645nobodyさん:2013/04/27(土) 14:36:40.37 ID:???
つまり罪深さで言えばWindowsそのものが大罪を犯してるわけだ
646nobodyさん:2013/04/27(土) 14:48:32.82 ID:???
mcintoshはないだろ
なんでmacって呼ばれてるのか考えろ!
647nobodyさん:2013/04/27(土) 14:49:44.35 ID:???
Mcdonald'sじゃないのよ!
648nobodyさん:2013/04/27(土) 19:00:06.77 ID:RdpUkJUr
興味のない知らんもんは考えても正解にはたどり着かんよw
649nobodyさん:2013/04/27(土) 22:27:02.27 ID:78HtUPwG
○じゃあの野間まつり○
じゃあのさん来た!

421:以下、名無しにかわりましてVIPがお送りします[]
2013/04/27(土) 21:53:57.62 ID:qYDE1sEQ0
てか、すっかり野間ちゃんのこと忘れてたわwww
別件で色々あってなwwww
所詮その程度の存在なんだけどなwww野間ちゃんなんてwwww
じゃあ、今からやるかwww罰ゲームなwww
あーあwww野間のせいだwww野間が全部悪いwww
--- 以下スレ情報 ---
高岡さんがフジ韓流ゴリ押し批判したら干されたのでウジテレビ凸
http://hayabusa.2ch.net/test/read.cgi/news4vip/1366990405/
650nobodyさん:2013/04/28(日) 01:08:05.93 ID:A2fSkdFW
【OS名】Windows 【PHPのバージョン】5.3
ウェブサイトを制作しており、初回訪問時に設問を表示し、その答えに応じてメニューの並び順などを変えたいと思っています。
Cookieに保存し次回訪問時も引き継ぎたいです。
$pt = $_POST["pt"];
if ($pt == ""){
$pt = $_COOKIE["pt"];
if ($pt == ""){
header("HTTP/1.1 301 Moved Permanently");
header("Location: ./start.html");
quit();}
} else {
setcookie("pt", $pt, 0, "/", "www.exsample.jp");}
$topMenu[0] = "<a href=\"aa\" alt=\"aa\">aa</a>";
$topMenu[1] = "<a href=\"bb\" alt=\"bb\">bb</a>";
switch ($pt){
case "1": $topDisp = array(0, 1);
break;
case "2": $topDisp = array(1, 0);

現在このように書いており、「start.html」にて
<form method="post" action="index.html">
<a href="http://www.exsample.jp" onclick="forms[0].pt='1'; forms[0].submit();">1</a>
<a href="http://www.exsample.jp" onclick="forms[0].pt='2'; forms[0].submit();">2</a>
<input type="hidden" name="pt" value="" /></form>
と、選択させCookieへの保存を行なっているつもりです。
しかし「index.html」へアクセスすると「start.html」に飛びはするのですが、選択しても「start」から移動しません。
どの部分に間違いがありますでしょうか。あまり知識がなく、どうか教えていただきたいです。

また、現在は「start」という別ページを置いていますが、jQueryなどを使い、設問画面がポップアップするという形を取りたいと思っております。
その方法(どの部分でどういった書き方をすれば良いか)も教えて頂ければと思います。
長文となって申し訳ありませんが、よろしくお願いします。
651nobodyさん:2013/04/28(日) 06:40:23.43 ID:???
毎回ブラウザ終了時にクッキー消してる人には大迷惑だな
652nobodyさん:2013/04/28(日) 06:52:30.49 ID:???
>>650
長い。3行で。
653nobodyさん:2013/04/28(日) 19:10:31.55 ID:???
クラスのヒアドキュメント内での挙動について聞きたいです。

// 222を出力するクラスaaa
class aaa{
function aaa_m(){
echo "222<br>";
}
}

// クラスaaaを継承したクラスbbb
// ヒアドキュメント内でクラスaaaのメソッドを出力
class bbb extends aaa{
function bbb_m(){
echo <<< EOF
111<br>
{$this->aaa_m()}
333<br>
EOF;
}
}

$bbb = new bbb;
$bbb->bbb_m();

クラスbbbのメソッドbbb_mを使うと

111、222、333とならぶはずが
222、111、333となります

となってしまいます。ヒアドキュメント内でクラスを使うと
最初に呼び出される仕様なのでしょうか?
654nobodyさん:2013/04/28(日) 19:13:02.19 ID:???
>>1
655nobodyさん:2013/04/28(日) 19:17:29.32 ID:mmUnQlFQ
すみませんIDわすれてました
656nobodyさん:2013/04/28(日) 22:43:03.43 ID:???
>>655
echo -> return
657nobodyさん:2013/04/28(日) 23:50:47.53 ID:3X4yk4QN
質問の答えの前にまず言っておくがコーディング自体に大きな問題がある


で、質問の答えだが、ヒアドキュメントのパースする際に
まずはその中の命令を処理する必要があると思わないか?

この結果には驚くような要素は何も含まれていないと思うよ。
658nobodyさん:2013/04/29(月) 00:02:01.61 ID:???
array_mapを使って下記のような関数をつくってたのですが、
クラスファイルで使いたいと思い、作り直しを試みているのですが
function hout($d) {
if (is_array($d)) {
return array_map('hout', $d);
}
else {
$d = htmlspecialchars($d, ENT_QUOTES);
}
}

以下がオブジェクトで
Class Hout
publice function __construct($d)
659nobodyさん:2013/04/29(月) 00:04:09.93 ID:C0H6wuFm
>>656
>>657
レスありがとうございます
660nobodyさん:2013/04/29(月) 00:07:12.36 ID:cl3jdKHB
すみません、途中投下してしまいました・・・
クラスファイルで書いてみたのがは以下の通りです

Class Hout
{
private $d;
public function __construct($data)
{
$this->d = $data;
if (is_object($this->d)) {
$this->d = get_object_vars($this->d);
}
}
public function htmlout()
{
if (is_array($this->d)) {
return array_map('htmlout', $this->d);
} else {
$this->d = htmlspecialchars($this->d, ENT_QUOTES);
}
}
}
661660:2013/04/29(月) 00:13:10.57 ID:cl3jdKHB
return $this->d が最後抜けてますが、転記ミスです
662nobodyさん:2013/04/29(月) 00:27:56.12 ID:???
Class Hout
{
private $d;
public function __construct($data)
{
$this->d = $data;
if (is_object($this->d)) {
$this->d = get_object_vars($this->d);
}
}
public function htmlsc()
{
var_dump($this->d);
if (is_array($this->d)) {
return array_map('Hout::htmlsc', $this->d);
} else {
$this->d = htmlspecialchars($d, ENT_QUOTES);
}
return $this->d;
}
}

としてみましたが、ループしてしまいます・・・
663nobodyさん:2013/04/29(月) 00:59:39.61 ID:???
なぜ >>658 をクラスメソッドにしたら >>662 になるんだ・・・
664nobodyさん:2013/04/29(月) 02:22:19.12 ID:???
phpでオブジェ使ったことないわしがarraymap途中でプロパティが途中で配列じゃなくなったと勝手に予想
665nobodyさん:2013/04/29(月) 03:26:57.34 ID:???
安易にネットとPCを普及させたヤフーBBやPCショップにまで矛先いきそうな
666662:2013/04/29(月) 04:14:22.43 ID:cl3jdKHB
>>664さんのを参考に見直していくと
var_dump($val);
$val = get_object_vars($val);
var_dump($val);

とすると、結果が

object(ArrayObject)[17]
string '0' (length=1)
string '1' (length=1)
string '1' (length=1)
string '0' (length=1)

array (size=0)
empty

となってしまうのが、上手くいかない原因のようなのですが、
なぜに、get_object_varsを通すとemptyになってしまうのでしょうか・・・
array
[0] => string'0'
[1] => string'1'
[2] => string'1'
[3] => string'0
とさせたいのですが'
667nobodyさん:2013/04/29(月) 09:07:52.19 ID:aXyeiYnz
PHP5.4でMemcached 2.1.0(libmemcached 1.0.13)入れてます。

addServers(array(
192.168.0.11 => 11211,
192.168.0.12 => 11211,
192.168.0.13 => 11211
));

で複数のMemcachedクラスタを構成しています。
Memcachedが落ちた(get(key1)できなかった)場合、DBに直接アクセスしてデータ(val1)を取得した後、
書き込みset(key1,val1)を行います。

この状態で、たとえば192.168.0.12が落ちた場合、192.168.0.12にマッピングされていたkey1が
0.11か0.13にマッピングし直されて継続されることを期待しているのですが、どうも0.12に向けられていた
割り当てられていた分が全部DBに直接アクセスしているっぽいです。

addServersでサーバーを追加したら、そのどれかが落ちていたとしても、再マッピングはされないのでしょうか?
OPT_DISTRIBUTIONを変えても駄目でした。

そうすると、addServersを行う前にサーバーの死活をチェックして、もし0.12が落ちているのであれば

addServers(array(
192.168.0.11 => 11211,
192.168.0.13 => 11211
));

のようにしないといけない、ということなのでしょうか?
(この方法だともちろんうまくいきましたが、何か納得いかず・・・)
668nobodyさん:2013/04/29(月) 10:06:27.00 ID:???
汎用性のかけらもないわけのわからないクラスですね
669nobodyさん:2013/04/30(火) 09:46:50.70 ID:???
cacheとはそもそもそういうもん。
サーバーを冗長化するのは、負荷分散で、データの多重化ではないよ。
データベースへのアクセスをメモリーを使って高速化するのが希望なら、tokyo tyrantを使いなさい。
670667:2013/04/30(火) 15:11:25.92 ID:/LZjkS9q
どうもです。確かにNoSQLのほうがいいかもしれませんね。
ただ、>>667の説明がまずかったようなので、流れを書きますと



Memcachedクラスタ:A、B、C
仮にkey1 => val1がBに対応づけられているとする。

ここでBが落ちたとき

プロセスX
(1) get(key1)する
(2) 当然失敗する
(3) DB叩いてval1を取る(実際には色々加工してval1を作るわけですが)
(4) set(key1,val1)する
(5) 今はクラスタが{A,C}なので、今度は(例えば)Aにkey1 => val1が保存される

プロセスY
(6) get(key1)する
(7) 今度はAに保存されているval1が返ってくる

こういう動作を期待しているんですが、どうもプロセスYでもプロセスXと同様にDB叩いてるっぽいんですよね。
それもタイミング差で数プロセスってレベルじゃなくて、数百というプロセスが何分間も。
当然DBが(結果を加工してval1を作っているWebサーバも)捌ききれなくなってあぼん。
671nobodyさん:2013/04/30(火) 15:21:11.06 ID:???
状況説明が下手すぎる

6で失敗してることは確認したの?
6で成功する環境が構築できていることは確認したの?
672nobodyさん:2013/04/30(火) 15:25:34.14 ID:???
そら、もともとの3台の設定のままなら、
同じように失敗してるとこへ聞きにいって、同じこと繰り返すに決まってる。

クラスタ纏めてるサーバーが1台あって死活まで管理してるならともかく、
簡易的な分散なんだから。
673nobodyさん:2013/04/30(火) 15:38:05.83 ID:???
>>671
すみません・・・

> 6で失敗してることは確認したの?
Yes

> 6で成功する環境が構築できていることは確認したの?
addServers(array(A,C))なら期待したとおりに動きます。

>>672
こんなコード書いてやってみましたが、確かにval1は取れませんね・・・そういうもんなのか(´Д`)

$m = new Memcached();

$servers = array(
array('localhost', 11211), //Memcachedが動いている
array('192.168.0.201', 11211), array(...), array(...), ... //存在しないサーバー100個ぐらい適当にぶっこむ
);
$m->addServers($servers);

$m->set('key1','val1',time()+100); //多分localhostじゃないとこに書き込もうとしてる

var_dump($m->get('key1')); // bool(false)・・・
674nobodyさん:2013/04/30(火) 15:46:15.33 ID:???
下手にイチイチ死活チェックするより、てきとーなスクリプトで常駐監視させて
Bを速攻で復旧させたほうがスマートじゃないだろうか
数秒間落ちただけでDBが死ぬほどクリティカルじゃないんだろ?

ハードのトラブルとかで長期間落ちる場合は、addServersのところを自動なり手動なりで
書き換えてクラスタから切り離す。

あとは>>669のようにNoSQLか。どう冗長化すりゃいいのか俺は知らんけど。
675nobodyさん:2013/04/30(火) 19:04:08.46 ID:???
>>670
アクセスが1秒間に数百もあるようなシステムなの?
676nobodyさん:2013/04/30(火) 19:59:46.53 ID:???
そら秒間数十リクぐらいのシステムならMemcachedクラスタ構成にする必要ねーだろ
DBそのまま叩いてもイケる
677nobodyさん:2013/04/30(火) 20:02:21.83 ID:???
そんなサイトがPHPって・・・
作成者が2chで質問って・・・
678nobodyさん:2013/04/30(火) 20:04:01.91 ID:???
あ?PHPなめんな
679nobodyさん:2013/04/30(火) 20:06:21.67 ID:???
wikiとかアフィブログとかでもピークで秒間数百なんて簡単にいくだろ
680nobodyさん:2013/05/01(水) 03:40:01.52 ID:cfjacJ3h
初歩的な質問ですみませんが、わかるかた教えてください。

$a = 1;
$b = 0;

if ($a == 0)
if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";

上記のようなコードを実行すると、想定では「b」が表示されるはずだったのですが
何も表示されずに終了します。
$a = 1; $b = 1; とした場合も「c」が表示されません。
$a = 0; $b = 0; では想定通り「a」が表示されます。
なぜこのような動作をするのか教えて頂けないでしょうか。
681nobodyさん:2013/05/01(水) 04:11:57.11 ID:???
まさかelseifがくっついてるからとか??
682nobodyさん:2013/05/01(水) 04:12:19.66 ID:???
しらねえが括弧つけてくれ。
見にくすぎる。
683nobodyさん:2013/05/01(水) 04:27:00.83 ID:???
if ($a == 0) {
 if ($b == 0) {
 }
} elseif ($a == 1) {
 if ($b == 0) {
 }
} else {
 if ($b == 1) {
 }
}

なんだこのクソみたいなコードは・・・

if ($a == 0 && $b == 0) {
} elseif ($a == 1 && $b == 0) {
} elseif ($b == 1) {
}
684nobodyさん:2013/05/01(水) 04:28:40.98 ID:???
うおくっつけててもええんか、、
685680:2013/05/01(水) 06:56:39.93 ID:???
>>683のコードのように{}を入れると正しく動作します。。
理由がさっぱりです。。
if〜elseif〜else文のときは必ず{}を入れろということでしょうか?
686nobodyさん:2013/05/01(水) 08:55:31.76 ID:???
>>670
やりたいことが分かった。
AddServerには、weightオプションがあるよ。
ABCをそれぞれ、321にしなさい。Weightの重い順にアクセスする。
weightがフラットだと、均等にアクセスするから、ABCのどれにアクセスするか分からない。
一度アクセスすると、CならCにずーっとアクセスする。でないと、結果が取れないでしょ?

あと、Daemon Toolsを調べなさい。落ちたmemcashedを自動的に再起動してくれる。
687nobodyさん:2013/05/01(水) 09:01:09.31 ID:???
>>680

その式の解釈は

if ($a == 0)

if ($b == 0) print "a";
elseif ($a == 1)
if ($b == 0) print "b";
else
if ($b == 1) print "c";
}
だからです。 なんで elseif のが 一個目のifの受けだと思ったんです?
688nobodyさん:2013/05/01(水) 09:03:12.54 ID:???
pythonerなんじゃね?
689nobodyさん:2013/05/01(水) 10:30:44.81 ID:???
>>685
自分でコード追ってみりゃわかる
わからないうちは括弧入れよう(わかっても読みやすくするために入れるけどね)
インデントは読みやすくするために必須だけど、間違ったインデントに騙されないようにね。
690680:2013/05/01(水) 12:46:23.79 ID:???
>>687,689
有り難うございます。
そういうことでしたか。勘違いしてました。
ようやく理解できました。
691nobodyさん:2013/05/01(水) 15:51:42.82 ID:???
俺も基本括弧は入れるな
括弧つけないのは

...
...
if ($FLAG === 0) echo "error";
...
...


こういう場合だけ
692nobodyさん:2013/05/01(水) 16:26:56.70 ID:???
トラブルを起こさない書き方をする
これ常識ネ
693nobodyさん:2013/05/01(水) 16:32:05.68 ID:???
リーダブルコードを10回読め
694nobodyさん:2013/05/01(水) 17:44:31.14 ID:???
>>685
その認識レベルなら必ず括弧入れるべき。
面倒くさいのはわかるが括弧で区切りつけないと後々絶対同じような問題起こす。
695nobodyさん:2013/05/01(水) 18:50:59.11 ID:???
>>683はどこへ
696nobodyさん:2013/05/01(水) 18:53:25.95 ID:???
適当なエディタでインデントしなおせば分かりやすいかも。
たとえば、こうなった。
if ($a == 0)
&nbsp;&nbsp;&nbsp;&nbsp;if ($b == 0) print "a";
&nbsp;&nbsp;&nbsp;&nbsp;elseif ($a == 1)
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($b == 0) print "b";
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;else
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if ($b == 1) print "c";
697nobodyさん:2013/05/01(水) 18:54:27.87 ID:???
あー。。全角スペースでごまかしますorz

if ($a == 0)
  if ($b == 0) print "a";
  elseif ($a == 1)
    if ($b == 0) print "b";
    else
      if ($b == 1) print "c";
698nobodyさん:2013/05/01(水) 19:43:46.49 ID:j59swQb1
オブジェクト指向で質問です
public $hensuu;


$hoge = "hensuu";
echo $this->$hoge;
として、$hogeに入ってる文字列でプロパティにアクセスしたいので、
存在しないプロパティを呼び出さないようチェックを入れたいのですがうまくいきません

if(property_exists($this, 'hensuu'))
ではtrueが返ってくるのですが、
if(property_exists($this, $hoge))
ですとfalseが返ってきてしまいます・・・
699nobodyさん:2013/05/01(水) 20:14:00.04 ID:???
試したらtrueになってるけど。
そのコードどうなってんのよ。
700nobodyさん:2013/05/01(水) 20:20:42.60 ID:???
$hogeに 'hensuu' が入ってないだけってオチに思える。
701nobodyさん:2013/05/01(水) 20:31:42.36 ID:???
それ以前の問題として、プロパティは全部privateにしてメソッド経由で読み出せよ
そのメソッド中で変なプロパティ読み出さないようにチェックしれ
702nobodyさん:2013/05/01(水) 20:50:13.64 ID:???
>>701
つ__get
703nobodyさん:2013/05/01(水) 23:56:42.39 ID:iNKD91fw
error_reporting(-1);
とすれば全てのエラーを出力してくれますが、
このエラー内容を取得することは出来ますか?
エラーを画面上に表示させずに、エラー内容をテキストか何かに書き出して
おきたいと考えています。

標準出力ではなくテキストなどへの出力方法などあればアドバイスいただけないでしょうか。
704nobodyさん:2013/05/02(木) 00:30:53.74 ID:???
>>703
error_get_last()

register_shutdown_function() と絡めてみるとうまくいく思う
705nobodyさん:2013/05/02(木) 00:33:05.62 ID:???
っていうか、ログに吐き出したいだけか。
なら、 error_log() だな。
706nobodyさん:2013/05/02(木) 03:39:40.66 ID:???
error_logは自作エラーメッセージをログに出力するもんだろ・・・
707nobodyさん:2013/05/02(木) 05:41:36.85 ID:???
apache経由ならerrorログに出てるでしょ
708nobodyさん:2013/05/02(木) 05:49:01.99 ID:PlTCCm2Z
Nagios のプラグインが使える監視ツールを作ろうと思っています。
そのプラグインの使用は、終了コードと標準出力にテキストを出すというものです。
exec 関数でやればいいようですが、処理の並列化のため、

exec ('/pathto/program > /dev/null &', $output, $return_var);

とすると、標準出力を得られません。何かいい方法はありますか?
ファイルにリダイレクトしてそれを読むのでしょうか?いやいや。
709703:2013/05/02(木) 07:53:36.09 ID:7Z0Os0eY
みなさん回答ありがとうございます。
回答をもとに対応してみたいと思います。
ありがとうございました。
710nobodyさん:2013/05/02(木) 08:21:52.96 ID:???
>>708
いやいや。
711nobodyさん:2013/05/02(木) 10:52:24.02 ID:???
>>708
何をしたいのか良くわからないが、ここが参考になるかもな。

PHPでプロセスを呼び出してパイプで繋ぐ方法
http://d.hatena.ne.jp/UDONCHAN/20101116/1289891757
712nobodyさん:2013/05/02(木) 13:41:47.39 ID:???
カーセックス最高
713nobodyさん:2013/05/02(木) 15:03:31.48 ID:???
>>708
標準出力捨ててんのに何がしたいのよwwwwww
非同期で標準出力取りたいなら、どっかのファイルにぶち込んで
別のプロセスでそのファイル監視し続けるしかないんじゃないの?
714nobodyさん:2013/05/02(木) 15:08:06.58 ID:???
他言語のスレッドみたいな感覚で使いたいんだろうなあというのは伝わってくる
715nobodyさん:2013/05/02(木) 16:03:05.63 ID:???
結局 nagios のソース読んだら、
fork して子プロセスで popen して読み取って、
ファイルに書き出してやがったですよ!
716nobodyさん:2013/05/02(木) 16:04:02.00 ID:???
ぽぺん
717nobodyさん:2013/05/02(木) 20:20:16.22 ID:???
ありがち
そして事態はより複雑に
718sage:2013/05/03(金) 07:54:54.79 ID:???
上の方でも出てますがエラーを取得するのにerror_get_last()が使えるとありますが
複数のエラーが発生した場合は最後のエラーしかとれません。
エラーをすべて取得する方法ってありますか?
719nobodyさん:2013/05/03(金) 08:03:38.10 ID:???
ログとれログ
720sage:2013/05/03(金) 08:59:40.30 ID:???
レンタルサーバーでもログとか取れるもんなのでしょうか?
721nobodyさん:2013/05/03(金) 09:19:17.66 ID:???
レンタル鯖っつったってphpとperlしか動かないものからOS自分で入れるものまで色々あるがよ・・・
722nobodyさん:2013/05/03(金) 12:58:19.36 ID:???
apacheの生ログ見られる鯖はある
723nobodyさん:2013/05/03(金) 13:11:02.95 ID:???
>>721
適当にあたりをつけて回答しろよ
なんでもヒントが出てくると思ってんじゃねーぞ
724nobodyさん:2013/05/03(金) 16:06:03.57 ID:???
えっ
すみませんココ試験会場だったのですね間違えました
725nobodyさん:2013/05/03(金) 18:08:11.32 ID:???
VMとかrootあるなら見れるとこ多いけど
普通のレンタル鯖だと生ログ見れるところはないと思う

phpとかPerlしか動かせない鯖だと全部のエラーをキャッチしておくってのは無理じゃないかな
726nobodyさん:2013/05/03(金) 18:23:59.04 ID:???
>>725
wkey.meだけどユーザー毎のホームディレクトリにlogディレクトリがあってそこにログたまっていくぞ
727nobodyさん:2013/05/03(金) 18:54:53.52 ID:???
レンタル鯖っていっても昔と違って数百円/月で仮想root付きのがあるからなぁ
728nobodyさん:2013/05/03(金) 20:24:59.12 ID:???
仮想サーバほしいなら貸そうか?

なんつって
729nobodyさん:2013/05/03(金) 20:43:05.77 ID:???
月1000円未満で借りられるVPSがたくさんあるのに、今時プログラマがレンタルサーバ
借りる理由ってなんだ?
730nobodyさん:2013/05/03(金) 20:46:04.14 ID:???
管理がめんどくせえ
731nobodyさん:2013/05/03(金) 20:54:23.17 ID:???
セキュリティも考えると全部管理すんのめんどくせーよ
732nobodyさん:2013/05/03(金) 21:34:09.24 ID:???
節子、それレンタルサーバや

>月1000円未満で借りられるVPSがたくさんあるのに、今時プログラマがレンタルサーバ
733nobodyさん:2013/05/03(金) 22:30:55.67 ID:???
クラウドで、サーバー立て放題
いまどき、負荷で他人に迷惑とか心配するようなのなんで借りるのか。
734nobodyさん:2013/05/03(金) 23:22:55.41 ID:???
楽だから
735nobodyさん:2013/05/04(土) 01:24:08.92 ID:???
>>732
レンタルサーバとVPSって別物だよ
まあごっちゃにしてる業者があるのかもしれんが
736nobodyさん:2013/05/04(土) 02:24:53.02 ID:???
めんどくさいから、って大きな理由だよな。
737nobodyさん:2013/05/04(土) 04:30:06.34 ID:???
>>735

借りられるVPSがレンタルサーバーではないだと!?
738nobodyさん:2013/05/04(土) 04:56:11.79 ID:???
さすが連休だな
739nobodyさん:2013/05/04(土) 08:14:30.77 ID:???
そういういみでいえばホスティングでもレンタルサーバーになるんだよな
740nobodyさん:2013/05/04(土) 15:34:13.29 ID:???
レンタルサーバーって営業形態を指す言葉だろ
741nobodyさん:2013/05/04(土) 16:03:20.74 ID:???
サーバを借りるって意味だろ
742nobodyさん:2013/05/04(土) 16:09:50.75 ID:???
http://e-words.jp/w/E383ACE383B3E382BFE383ABE382B5E383BCE38390.html

語源や言葉の意味なんてころころ変わるもの
だいたいIT用語なんて確立した意味をもつものは少なく曖昧な意味が多い
下らない争いしてんじゃねえよ
729も用語無理して使うな(下手に曖昧なこというな)
732も意図理解しててあえて突っ込んでやるな
共用サーバって言いたかったんだろ
743nobodyさん:2013/05/04(土) 17:00:42.40 ID:???
レンタルサーバもVPSもVPCも共用サーバといえるわな
744nobodyさん:2013/05/04(土) 19:34:20.11 ID:???
物理的には共用サーバだが論理的には専用サーバとか
そういうたぐいのめんどくせー話はいらんわ
745nobodyさん:2013/05/05(日) 01:54:18.29 ID:???
何にもめんどくさいないのに
746nobodyさん:2013/05/05(日) 01:55:09.42 ID:???
ここ何スレ?
747nobodyさん:2013/05/05(日) 03:48:45.37 ID:???
>>746
歴史板へようこそ
748nobodyさん:2013/05/05(日) 17:12:44.70 ID:WrP9RIzV
db登録ユーザーが大別して2種類います。
IDの先頭にsenior(シニア)がつくユーザーと、つかないユーザーです。

senior102315
senior102516
112316
senior118311
120210
121653



seniorを削除して全ユーザのIDを数字のみにしたいのですが

UPDATE `table_ID` SET `field_ID` = REPLACE(`field_ID`,'senior','');

記述がどこか違っているのかわかりません。
一括削除の操作は別のコマンドを使うのでしょうか?
749nobodyさん:2013/05/05(日) 17:28:37.62 ID:???
それdbの質問じゃ?
間違ってるようにみえないけど、試しに select してみ
SELECT field_ID , REPLACE〜 FROM 〜
とかさ
750nobodyさん:2013/05/05(日) 17:58:30.08 ID:WrP9RIzV
スレが違うとのこと、すみません
そうそうに引き揚げますのでこれだけみてください
なぜ機能しないのでしょう
SELECT field_ID, REPLACE(`field_ID`,'senior','') FROM `table_ID`;
751nobodyさん:2013/05/05(日) 18:04:11.71 ID:???
引き上げてねえww
752nobodyさん:2013/05/05(日) 18:09:18.89 ID:???
ここで聞いてるってことは、phpから呼んでるんだよな?
機能しないってのは結果が0件とか?
エラー表示させるとか、一番単純なやつで結果見るとかしてみては
753nobodyさん:2013/05/05(日) 18:19:38.27 ID:???
そもそも設計が悪いだろ
IDは数値のみでもってシニアかどうかはフラグでもつければいいのに
754nobodyさん:2013/05/05(日) 19:01:15.54 ID:???
IDが重複して主キー制約に引っかかってるとエスパー
755nobodyさん:2013/05/05(日) 19:42:00.33 ID:???
phpスレらしく全部selectして

$newid = preg_replace("/senior/","",$oldid);
$query = "update usertable set id = $newid where id = $oldid";

とかどうかな
756nobodyさん:2013/05/05(日) 19:46:29.03 ID:???
>>753
設計したクソ野郎は既にどっか消えたとかよくある話
757nobodyさん:2013/05/05(日) 19:49:51.60 ID:???
今は既存のDBに好きなカラム付け足したり
制約コロコロ変えたり拡張が簡単になってるんでそ
断片化が半端なさそうだが
758nobodyさん:2013/05/05(日) 20:02:15.57 ID:???
昔はカラム追加できなかったんかw
759nobodyさん:2013/05/05(日) 20:18:14.45 ID:???
できる範囲のことはDB側でやったほうがいいっていうけど
SQLの知識が足りないなら無理せず>>755みたいにPHP側に回せばいいだけだな
760nobodyさん:2013/05/05(日) 20:24:49.96 ID:???
内容的にどうせ1回しかやらねー処理だし、足りない頭で変にクエリをあれこれ考えるよりphpでやっちまったほうが早いだろうな
761nobodyさん:2013/05/05(日) 20:26:34.38 ID:???
クエリのほうが楽だろ
762nobodyさん:2013/05/05(日) 20:32:37.47 ID:???
足りてる頭でやるならな
763nobodyさん:2013/05/05(日) 20:34:58.73 ID:???
PHPが始めての場合
PHP→SQLって流れが一般的かと
そうするとPHPのほうが楽な人も多いと思う
764nobodyさん:2013/05/05(日) 22:44:00.67 ID:???
>>760
そりゃお前がSQLの知識ないだけ
765nobodyさん:2013/05/05(日) 23:35:38.19 ID:???
>>764
10人いたら9人分かるコードにしとかないと。
いまのところ2人でてきたしダメだろ。
766nobodyさん:2013/05/05(日) 23:54:57.58 ID:???
SQLでできることをわざわざPHPを介して操作とかいくらなんでも馬鹿すぎる
767nobodyさん:2013/05/06(月) 00:18:24.18 ID:???
まったくだ
アホばっか
768nobodyさん:2013/05/06(月) 00:23:13.86 ID:???
>>748がスカタンだからそういう話になってんだろ
そりゃSQL自由自在に使える奴ならSQLでやったほうが早いに決まってる
769nobodyさん:2013/05/06(月) 00:37:03.05 ID:???
そうでもない
770nobodyさん:2013/05/06(月) 00:37:36.77 ID:???
>>765
無知w
771nobodyさん:2013/05/06(月) 00:39:03.38 ID:???
クエリって何?
SQLの方が理解できる人多いと思うわ
772nobodyさん:2013/05/06(月) 00:39:06.99 ID:???
>>755
いい感じだな
773nobodyさん:2013/05/06(月) 03:29:25.92 ID:???
>>771
S,Q,Lまで知ってて、Qだけ何?とかないだろw
774nobodyさん:2013/05/06(月) 04:49:12.12 ID:???
1回しかやんないんだから求める結果が得られればPHPでもSQLでもいいとおもうけどな
継続的にやるとかなら負荷とか処理速度とか考えるけど
775nobodyさん:2013/05/06(月) 04:56:27.67 ID:???
SQLでやるデメリットって何
776nobodyさん:2013/05/06(月) 07:17:16.77 ID:???
特定の処理に弱いとかもあるだろうけど
多くの場合PHPで加工を入れたほうが遅いのは想像に易い
が一応ちゃんとベンチとってからそういう事言わないとな

PosqlみたいなのもあるしSQLが早いっていう考えはちょっとおかしい
777nobodyさん:2013/05/06(月) 10:20:41.47 ID:???
SQLでやるとバグの温床になりそうな処理はあるな
パッと見て何がやりたいのか、なんでそうなるのか凡人の頭じゃさっぱりわからないキチガイSQL
778nobodyさん:2013/05/06(月) 11:08:56.63 ID:???
SQLがわからんとか、さすがにネタだよね?
いくらなんでも片手間の俺よりはできるだろうと思って外注に出してるけど、
業者さんがこのレベルってことはないよね?
779nobodyさん:2013/05/06(月) 11:43:30.00 ID:???
>>777
PHPでやったってスパゲッティコード書けば同じだろ
780nobodyさん:2013/05/06(月) 11:49:12.07 ID:???
言語の問題ではなくそれを書く人の問題だってこと分かってないよなw
まぁSQLやらない/できない言い訳を必死に考えてんだろうけど
781nobodyさん:2013/05/06(月) 11:54:27.69 ID:???
馬鹿?
SQLでやったほうがいい処理もあるし、PHP側でやったほうがいい処理もあるに決まってんだろ
そんなにSQL好きならHTMLタグまで全部SQL側で生成しろよwwwww
782nobodyさん:2013/05/06(月) 17:11:55.85 ID:???
馬鹿はお前だ
783nobodyさん:2013/05/06(月) 20:04:40.44 ID:???
視野の狭い奴ばっかだな
784nobodyさん:2013/05/06(月) 20:05:17.12 ID:???
視野の広いコメントをよろしく
785nobodyさん:2013/05/06(月) 20:48:18.75 ID:???
>>778
外注とはコスト削減のために使うものであって、自分より質の高いものを得るために使うものじゃない(確信)
786nobodyさん:2013/05/06(月) 21:16:20.05 ID:???
えっ?
787nobodyさん:2013/05/06(月) 22:16:45.77 ID:???
>>778はとりあえずスレチだから放っておけ
初心者だらけのスレで何を言ってるんだって感じだな
788nobodyさん:2013/05/06(月) 22:19:17.49 ID:???
このスレって初心者用スレだったっけ?
789nobodyさん:2013/05/06(月) 22:33:00.24 ID:???
>>788
素でそう思ってるんだが違うのか、、、
790nobodyさん:2013/05/06(月) 22:59:21.71 ID:???
初心者だらけとはいったが初心者用とはいってない
791nobodyさん:2013/05/07(火) 00:30:53.24 ID:???
(キリッ
792nobodyさん:2013/05/07(火) 01:37:23.03 ID:zoq9xUOz
質問おねがいします。
phpって実行時に一度C言語に変換された後機械語に変換されるんですか?
それともphpインタプリタが直接機械語に変換するのでしょうか?
プログラムの動作する仕組みがよくわからないので教えてください。
793nobodyさん:2013/05/07(火) 02:15:58.09 ID:???
>>792
後者
794nobodyさん:2013/05/07(火) 02:41:07.19 ID:zoq9xUOz
>>793
あざっす。
その変換されたものをファイルに書き出すことってできないんですかね?
というのも実行時にいちいち変換するより、もうほとんど手を加えないとういプログラムなら
変換したものを動作させたほうが速いだろうと思うのですが。
開発中 -> インタプリタで実行するごとに変換
本番環境 -> コンパイル?されたファイルを変換せずに実行
795nobodyさん:2013/05/07(火) 04:43:13.60 ID:???
できたらみんなやってる
796nobodyさん:2013/05/07(火) 06:06:21.19 ID:zoq9xUOz
>>795
そうなんですか。ありがとうございます。
初心者が言うのも変ですが、変換はできてそれを実行もできるのに
変換したものを保存することができないってのがよくわからんです。
c言語ならコンパイルしたものがファイルとして保存できますよね。
なぜphpは変換したものが保存できないのですか?
797nobodyさん:2013/05/07(火) 07:00:35.00 ID:???
798nobodyさん:2013/05/07(火) 08:19:30.37 ID:???
eAcceleratorとかあるやろ
どうやってんのかしらんけど
799nobodyさん:2013/05/07(火) 09:24:00.12 ID:zoq9xUOz
>>797,798
apc_bin_dumpfileでできましたー。
これ以前試したことがあってできなかったからapcはまだ不安定なんだと思ってたんですが、
php5.4.13 + apc3.1.13でファイルに書き出せました。

このバイナリデータはすでにphpは関係ないってことですよね?
ということはc言語も関係ないってことだと思うのですが、
これどうやって実行すればいいんでしょうか?
800nobodyさん:2013/05/07(火) 09:47:48.19 ID:???
HipHop
HipHop VM
Phalanger
801nobodyさん:2013/05/07(火) 10:36:29.78 ID:n6USVSPe
【OS名】Windows7
【PHPのバージョン】5.4.13
【連携ソフトウェア】
【質問内容】超初心者です。
HTMLの記述の中に、<?PHP 〜 ?>を書いて、そこにPHPプログラムを書いて動的なものにしていくと思うんですけど、
while とかで求める繰り返し処理をして連想配列から出した値を、HTMLの記述のあちこちに表示させたい場合、
その表示させたい箇所ごとにwhile分を使わないといけないんでしょうか?例えば
<?PHP
<body>
while (list($key,$val) = each($arr)){
echo "$key $val \n";
}
</body>
?>
の場合だと問題ないのですが、<body>にけっこう多いコードがあったときにもし"$key"と"$val"をバラバラの場所に
表示させたいときに、それぞれにwhileを使うしかないのでしょうか?
よろしくお願いします。
802nobodyさん:2013/05/07(火) 10:38:35.04 ID:???
別に変数に丸ごと入れて一回で出力してもいいし
好きにやればいい
803801:2013/05/07(火) 10:40:42.79 ID:n6USVSPe
<?PHP
while (list($key,$val) = each($arr)){
echo "$key";
?>

  〜間にHTMLの記述〜

<?PHP
echo "$val";
}
?>

こんな感じで上と下に表示できるかなーと思ったのですが、ダメでした。
よろしくお願いします。
804nobodyさん:2013/05/07(火) 10:47:24.21 ID:???
結局何をどうしてもループは複数回やらないとだめですよ
805nobodyさん:2013/05/07(火) 10:49:30.54 ID:???
どうダメだったんだよ
間のHTMLは一回だけにしたいって意味?
ループ中は文字列変数につないでいって
ループ出てからechoすりゃ一回でいける。
806801:2013/05/07(火) 10:56:47.81 ID:n6USVSPe
そうです。1つのループで複数の変数を別の場所に表示しようとして、803のようなことを
やっったりしてました。
?>と<?PHPで、いったんPHPから抜けたら 間のHTMLはループされずに 
echo "$key" と echo "$val" だけループされるのかと思ったけど、そうなりませんでした。
変数につないでいってループ出てからechoをやってみます。
ありがとうございました。
807nobodyさん:2013/05/07(火) 10:57:43.28 ID:???
何がしたいのかわからんが

$str = "";
while(...) {
$str = "<li>".$key."=>".$val."</li>";
}
echo $str;

echo $str;

echo $str;

後は好きにしろ
808nobodyさん:2013/05/07(火) 11:03:54.13 ID:???
>>799
APCに読ませてPHPに実行させる。
独立したapacheモジュールみたいなものを書き出しているわけじゃないよ
809nobodyさん:2013/05/07(火) 11:04:07.17 ID:???
.= でないと
810nobodyさん:2013/05/07(火) 19:18:37.58 ID:???
>>806
ああ

<?PHP
echo implode('', array_keys($arr));
?>
  〜間にHTMLの記述〜
<?PHP
echo implode('', array_values($arr));
?>
811nobodyさん:2013/05/08(水) 17:19:35.07 ID:QMrGFLn3
test.php
<?php
echo "1";
echo "2";
echo "3";
?>
sample.php
$file = file('test.php');

としたときに
$file[0]
には
echo "1";
がはいります。
しかし
$file[5]
には
?>
が入っています。
?>は取得出来るけど<?phpはどうやっても取得されないのでしょうか?
実際には2行目にecho "1";が来るのに配列としては[0]なのであわせられればと思っています。
812nobodyさん:2013/05/08(水) 18:03:38.44 ID:???
>>811
どうやって確認した?
var_dump 使った?
813nobodyさん:2013/05/08(水) 18:04:15.48 ID:???
もしも結果もブラウザから見てるならソース表示させてみ
814nobodyさん:2013/05/08(水) 18:19:51.72 ID:QMrGFLn3
var_dumpでブラウザ上に表示したら
array(5) {
[0]=>
string(6) "
string(10) "echo "1";
"
[2]=>
string(10) "echo "2";
"
[3]=>
string(10) "echo "3";
"
[4]=>
string(2) "?>"
}
となってました。
ブラウザ側のソースには
[0]=>
string(6) "<?php
"
[1]=>
string(10) "echo "1";

と表示されています。
html上のものでなぜソースが異なるのかちょっと意味がわからないです。
815nobodyさん:2013/05/08(水) 18:25:42.54 ID:???
<?php
"
[1]=>

がタグ扱いでブラウザで表示されないだけじゃねーか。
816nobodyさん:2013/05/08(水) 18:26:35.32 ID:???
いや <?php とかはタグの始まりとみなされてブラウザが次の > まで
表示しなくするだろw
どうしてもブラウザに出したければ、htmlspecialcharsを通すとかでどうかな。
817nobodyさん:2013/05/08(水) 18:53:59.75 ID:???
>>814
ちょっと意味が分からないならたくさん勉強することだ。
818nobodyさん:2013/05/08(水) 19:10:17.99 ID:???
var_dumpは出力にそのまま垂れ流すことしかできないからソースを見るしかw
819nobodyさん:2013/05/08(水) 20:47:32.31 ID:???
>>814
お前のカキコの意味がわからんわ
820t:2013/05/08(水) 21:34:36.96 ID:zJfXxHKJ
【OS名】mac10.8
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
$encodingText=htmlspecialchars($writingText);
$encodingText=str_replace('\r\n','<>',$encodingText);
$encodingText=str_replace('\n','<>',$encodingText);
$encodingText=str_replace('\r','<>',$encodingText);
$encodingText=str_replace(PHP_EOL,'<>',$encodingText);

ここで聞く事なのかどうか。。2chのlogみたいにcsvにフォームからの書込みを一行保存したくて改行を<>に変換したいですけど
これだとcsv内は改行されてしまいます。。何故かPHP_EOLを使った部分で改行が「"改行<>"」という形でcsvに保存されます。
どうすりゃ改行を一行にまとめられますかね???ちなみに最初のhtmlspecialcharsは関係なかーたです
821nobodyさん:2013/05/08(水) 21:40:22.63 ID:???
文字コード絡みじゃねーのとエスパー
822nobodyさん:2013/05/08(水) 21:52:05.37 ID:???
>>820
改行コード(\n)がシングルになってる。
展開させるためにはダブルにしろ。"\n"
htmlspecialcharsは出力の直前にかけろ。
ただし2chがそういう仕様ならそれを真似るなら仕方ない。
str_replaceでまとめられるものはまとめろ。
つまりstr_replace(["\r\n", "n"], '<>',$encodingText);
"\r"で改行なんて今更ない。昔あったのかも知らん。
遺贈。
823nobodyさん:2013/05/08(水) 22:19:17.07 ID:???
100を-100のようにプラスとマイナスを反転させたいのですが
反転させるような関数はありますでしょうか?

なければ100-(100*2)みたいな感じしかないでしょうか。
824t:2013/05/08(水) 22:26:44.16 ID:zJfXxHKJ
>>822
ありがとうございます。str_replaceのシングルをダブルクオートに変えたら行けました。
どーもですどーもです。

ちなみにその[]で囲むやり方知らなくてこっちで動かなくて気になるんですができれば。。。。。
825t:2013/05/08(水) 22:28:51.25 ID:zJfXxHKJ
>>823
-1をかけたらええですよ
826nobodyさん:2013/05/08(水) 22:44:09.17 ID:???
>>824
あ、ごめん。php5.3なんだな。
5.4からその記法は使えるよ。
array() => []
827t:2013/05/08(水) 23:17:42.41 ID:zJfXxHKJ
>>826
おーどーもです。うーむ無理か。。
828nobodyさん:2013/05/08(水) 23:57:01.25 ID:???
str_replace(array("\r\n", "n"), '<>',$encodingText);
こうすればいけるよ。
>>826のは
5.4から array() の代わりに [] が使えるようになったよって意味の => かと。
829nobodyさん:2013/05/09(木) 00:11:27.65 ID:???
関数リファレンスくらい読めと
830nobodyさん:2013/05/09(木) 09:06:33.16 ID:Jsywf66a
【OS名】CentOS 6.3
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
datetimeの比較がうまくいきません。

$start = new DateTime("2013/05/08 12:30:30");
$end = new DateTime("2013/05/04 12:30:30");
if( $start > $end )
{
echo "true";
}
else
{
echo "false";
}

としてもfalseのみが出ます。
仮に$startと$endを入れ替えてもfalseとなります。
http://php.net/manual/ja/datetime.diff.php を見るとオブジェクトの比較が出来ているようなのですが何か違っていますでしょうか?
831nobodyさん:2013/05/09(木) 09:11:48.64 ID:???
832nobodyさん:2013/05/09(木) 10:02:15.85 ID:???
>>830>>831のソースの違いがよくわかんね〜
833nobodyさん:2013/05/09(木) 10:16:18.74 ID:???
いや同じだろ
>>830のコードはtrueになるしなんか勘違いしてんじゃね
834nobodyさん:2013/05/09(木) 10:26:25.73 ID:???
>>830のコードは
new を使っているからオブジェクトで定義しているんじゃないの?
中の値で比較するんだったら

if($start->gettimestamp() > $end->gettimestamp())

とかで比較しないとダメなんじゃない?
835nobodyさん:2013/05/09(木) 21:11:32.82 ID:???
>>832
つまり、コード以外の所が違うということだよ
836nobodyさん:2013/05/10(金) 22:59:44.03 ID:nZ5eiGcK
PHPのマニュアルを丸ごと(ソースごと・・・)コピーしただけのサイトがよく検索に引っかかりますがあれはなんの嫌がらせですか?
837nobodyさん:2013/05/10(金) 23:03:50.33 ID:???
ミラーサイトという言葉を知らないのかね
838nobodyさん:2013/05/10(金) 23:21:28.67 ID:iT9k79IA
PHPは公式から既に嫌がらせだからな
839nobodyさん:2013/05/10(金) 23:26:36.03 ID:???
コピーするならcssも引っ張って来いとは思う
840nobodyさん:2013/05/10(金) 23:50:29.42 ID:ReW38688
XMLをsimplexml_load_string()でオブジェクトに代入してから
要素についてtrue(1)かfalse(0)かを確かめたいのですが
var_dumpで
object(SimpleXMLElement)#1 (1) {
["result"]=>
object(SimpleXMLElement)#4 (4) {
["options"]=>
object(SimpleXMLElement)#2 (0) {
}
["raw"]=>
object(SimpleXMLElement)#3 (0) {
}
["status"]=>
string(1) "0"
["statusmsg"]=>
string(5) "Sorry"
}
}
のようになっているのものを
if($object->result->status)
とすると0の場合も1の場合もtrueになってしまいます。
string型の0はfalseと判断されないのでしょうか?
841nobodyさん:2013/05/11(土) 00:06:09.37 ID:???
>>840
var_dump($object->result->status)
842nobodyさん:2013/05/11(土) 09:14:21.17 ID:3jYy1Xhq
phpを使った空メール→配信登録をつくってるんですが、
QRコード読み取りから空メールさせる方法とは別に、
サイトからユーザに空メールを送るようにもさせたいと思っております
mailtoを貼り付けようと思ったのですが、この場合spamが心配です

たとえば、phpで動的に書き出したページにmailtoを仕込んでおけば
spam対策になるもんでしょうか
それともなにか他に手だてがありますでしょうか
843nobodyさん:2013/05/11(土) 09:15:59.98 ID:???
>>842
HTMLエンティティ化して記載
844nobodyさん:2013/05/11(土) 12:18:36.78 ID:OhMoHBiS
どこかのブログでやってるけど
フィールド名いじっておいて
普通に使うフィールド名は罠フィールドとしてcssで非表示

罠フィールドに何か入ってたらbotとして拒否

ということやってる
845nobodyさん:2013/05/11(土) 22:28:31.55 ID:JC/Ksawh
error_log()について質問です

質問1
message_typeで1を指定したらメールを送れるってことですが、
この場合このPHPが入ってるのと同じサーバのsmtpdを利用するってことですよね?
他サーバのsmtpdを使うことは出来ないんでしょうか
アプリケーションサーバとメールサーバを分けたい場合はどうすれば良いんでしょうか

質問2
エラーを出力保存するファイルを指定できるようになっていますが、
蓄積されたエラーが膨大になった時に、過去ログ化して新しい同名のファイルを
作成することになるんだと思います。
このとき、何を基準に新規ファイル作成するんでしょうか

そういうのを指定できるオプションってないですか?
よろしくお願いします
846nobodyさん:2013/05/11(土) 22:36:28.21 ID:???
847nobodyさん:2013/05/11(土) 23:07:38.46 ID:???
>>846
ありがとうございます、助かりました
848nobodyさん:2013/05/12(日) 12:39:50.54 ID:kHm/fQGT
すみません、上でerror_log()について質問したものなんですが、ログの文章が改行ができません
ググるとたくさん該当する話が出てくるんですが
$msg = "エラーです";
error_log($msg.'\n', 3, '/tmp/error.log');
error_log($msg.'\r', 3, '/tmp/error.log');
error_log($msg.'\r\n', 3, '/tmp/error.log');
error_log($msg.'\n', 3, '/tmp/error.log');
error_log($msg.'\r', 3, '/tmp/error.log');
error_log($msg.'\r\n', 3, '/tmp/error.log');
とどうやっても改行されません

エラーです\n
エラーです\n
と、そのまま出てしまいます

どうしたらいんでしょうか
849848:2013/05/12(日) 12:46:50.30 ID:???
化けてたらすみません、上記のサンプルの上三つはバックスラッシュ、下三つは¥記号です
850nobodyさん:2013/05/12(日) 12:52:41.37 ID:???
改行はだぶるくぉーてーしょん。
851848:2013/05/12(日) 12:58:21.07 ID:???
>>850
ありがとうございます!
こんな使いわけが必要なんですね、ビックリしました
852nobodyさん:2013/05/12(日) 22:03:29.67 ID:???
>>841
ありがとうございます。
オブジェクトの時は常にtrueなんですね
853nobodyさん:2013/05/12(日) 22:07:17.68 ID:4FW3vhI4
◆じゃあのさん来た◆
178:名無しさん@13周年[]
2013/05/12(日) 20:54:52.39 ID:VA7SdRMg0
ふーーーんwwww
民主党調子こいてんなあwwww
ようおまいらwww元気ぃ?wwwよろしくやってたかい?www
--- 以下スレ情報 ---
【政治】「自民が反対したから」「官僚が抵抗したから」 民主党の『大反省会』、反省どころか、言い訳や責任転嫁がほとんど★3
http://uni.2ch.net/test/read.cgi/newsplus/1368355843/
854nobodyさん:2013/05/13(月) 13:12:37.61 ID:Y6gDftln
【OS名】windows7
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】HTMLの入力フォームにURLを入力して、
予め保存してある複数のURLと重複していないか、
リンク切れではないかという判定をしたいのですが
うまくいきません。
まず重複の判定は、入力フォームからの文字列を$str、
予め保存してるURLを"urlist.txt"に保存してます。

if(!$fp=fopen("urllist.txt","r")){
return ERROR(1);
}else{
$urllist = file("urlist.txt");
foreach( $urllist as $url ){ //URLの重複チェック
if (mb_ereg( "$str","$url" )){
return ERROR(2);
break;
}
}
fclose($fp);
}

こんな感じで、普通のURLだと重複チェックできるのですが、
yutubeやニコニコ動画などのURLだとなぜか判別できません。
855854:2013/05/13(月) 13:14:40.79 ID:Y6gDftln
そして、リンク切れのチェックはネットで見つけた
get_http_headerというのをつかってみたのですが
うまくできませんでした。
何か良い方法があれば教えてください。
よろしくお願いします。
856nobodyさん:2013/05/13(月) 13:29:28.92 ID:???
正規表現のパターンなんだから、
.は任意の一文字で合ってしまうとしても、 ? があると通らないよね。
857nobodyさん:2013/05/13(月) 13:40:37.60 ID:???
判別できない両者を出してみてどうなってるか見てみては
858nobodyさん:2013/05/13(月) 15:15:30.49 ID:k+GDNsHp
【PHPのバージョン】5.3.6

function &hoge()
{
return new StdClass;
}

とすると、
Notice: Only variable references should be returned by reference
とエラーログが出ますよね。
で、いったんnewを変数に入れてからreturnすると問題はなくなります。

しかしこれって、いったん変数に入れることで
PHPの処理内容としてどのような違いがあるわけなのでしょうか?

恐れ入りますが、ものすごくわかりやすく教えて下さい。
859854:2013/05/13(月) 15:56:53.43 ID:Y6gDftln
>>856-857
レスありがとうございます。
見てみたら、yutubeやニコ動のURLには?、&など入ってました。
これを正規表現に展開しないようにすれば、判別できるようになるのでしょうか?
展開しないようにそのまま判別するには、?、&があった場合に\を付ける的な
処理をすればできますかね?
860nobodyさん:2013/05/13(月) 16:19:53.06 ID:???
基本的に同一とみなす条件を調べないとならんと思うけど
完全一致でいいならstrcmpやstrcasecmp使ってはどうか。
861nobodyさん:2013/05/13(月) 16:52:44.90 ID:???
>>858
質問の答えじゃ無いんだけど、なんで
function hoge()
とやらずに
function &hoge()
ってやりたいの?
862nobodyさん:2013/05/13(月) 17:06:55.59 ID:k+GDNsHp
>>861
PHPの挙動と仕様への理解を深めたいだけで、やりたいわけじゃないです。
オブジェクトはデフォルトで参照で渡されるそうですが、
この場合、&を付けることでどのような違いが発生していますか?
863nobodyさん:2013/05/13(月) 18:14:48.62 ID:???
>>862
んー、明確な答えを持ってるわけじゃ無いんだけど、まず、new Klassしたものはリファレンスではない。
http://php.net/manual/ja/language.oop5.references.php ・・・(1)

$a = new Klass;
この場合の$aはリファレンスでは無くオブジェクトのID。

一方、リファレンスを戻すメソッドは、&method()と定義し、リファレンスを戻さなければならない。
http://www.php.net/manual/ja/language.references.return.php

つまり、&method()では、new Klassしたものを直接戻すことはできない(型が違うので)。

&method()でreturn $variable;と書くと、$variableのリファレンスが戻される(&$variableが戻る)。
これは、(1)の$c = &$d; の場合と同じ。
864863:2013/05/13(月) 18:16:35.34 ID:???
だとしたら、なぜfunction &method()でreturn new Klass;としたときに、&(instance)的な処理が
行われないのだろうかという疑問が残るが、それは良くわからない。

良くわからないので、俺は&method()は一生使わないと思う。
865nobodyさん:2013/05/13(月) 18:22:46.46 ID:???
PHPの場合は良くわからないけど、一時オブジェクトを参照で受けるってありなのか?
866nobodyさん:2013/05/14(火) 00:45:31.37 ID:gD2UsIag
>>>863
オブジェクトのIDとは知らなかったのでひじょーに勉強になりました。

> 式 の結果を返してくれることはありません。
> 可能なことは、値へのリファレンスを返すことができるということだけで、
> それ以外の何者でもありません。

という仕様だということで、&のretun newが無効なのも納得できました。
867nobodyさん:2013/05/14(火) 01:13:37.48 ID:gD2UsIag
関連して気になったのですが、

function hoge()
{
return 1;
}

$r = &hoge();

とした時、$rの参照先はどこを指していますか?
どこからもアクセスや改変がされない何処かなのでしょうか?
868nobodyさん:2013/05/14(火) 09:26:33.29 ID:???
動きません
869867:2013/05/15(水) 07:58:41.28 ID:/TAZ4XOp
PHPのマニュアルを読んで自分なりに考えました。
マニュアルで、リファレンスはハードリンクのようなものだと学びました。
http://www.php.net/manual/ja/language.references.whatare.php

とすると、>>867では「$r = &hoge();」としても、「$r = hoge();」としても、
この場合、値に対してシンボルテーブルが割り当てられているのは「$r」に限られるため、
「$r」が保持するものも処理内容自体も、全く同じであると考えていいわけですね?
870nobodyさん:2013/05/15(水) 22:55:26.37 ID:efuZNxA4
ぐぐる先生もなかなか回答をくれずさっぱりです。
くだらない質問ですが助けてください。

【OS名】Windows7+XAMPP1.8.1
【PHPのバージョン】5.4.7
【連携ソフトウェア】PEAR 1.9.4
【質問内容】
DBからテーブルのデータを連想配列に取り込もうとしています。
Web上にあった「while($row=$hoge->fetchRow(DB_FETCHMODE_ASSOC))」を利用して実行すると、
「Notice: Use of undefined constant DB_FETCHMODE_ASSOC - assumed 'DB_FETCHMODE_ASSOC' in hogehoge.php on line 34」とエラーが出てしまいます。
エラーの通り「while($row=$hoge->fetchRow('DB_FETCHMODE_ASSOC'))」とするとエラーは消えますが、取得した配列のキーはnullになります。
どうしたら回避できるでしょうか。
なにとぞお助けください。
871nobodyさん:2013/05/16(木) 01:43:12.19 ID:???
初心者はxampp使うな
872nobodyさん:2013/05/16(木) 02:27:01.44 ID:???
xampp良いと思うけどなー
サーバーたててlampは辞めて欲しいけどローカル用環境ならxamppで十分でしょ
873870:2013/05/16(木) 08:03:03.05 ID:yTIwfF81
>>871 >>872
ありがとうございます。
XAMPPで構成されたAPACHEやPHPは単独で入れた場合と動作が違うということでしょうか。
XAMPP消してそれぞれ単独インストールしてみたほうがいいですか?
874nobodyさん:2013/05/16(木) 10:52:46.00 ID:???
>>870
requireが足りてないんじゃないの?
875nobodyさん:2013/05/16(木) 12:38:58.01 ID:IW38rAuX
ファイルの書き換えで
fileで読み出し
whileで全行検索
一致部分を変更
file_put_contentで元に戻すという形で書き換えています。
linuxのsedみたいに指定箇所をざっくり書き換える方法はありますか?
876nobodyさん:2013/05/16(木) 12:52:43.89 ID:???
ざっくりって何だよ?
あと、sedがいいならsed起動しろ。
877nobodyさん:2013/05/16(木) 13:26:22.85 ID:IW38rAuX
>>876
すべてをいったん読み込むことなく
該当する場所のみを書き換えるのにざっくりという言葉を使ってしまいました。
申し訳ありません。

現在開発をしているところはコマンドを叩ける権限がないので
一旦すべてを読み込む以外でsedのように書き換える方法があればと思っておりました。
878nobodyさん:2013/05/16(木) 14:32:47.60 ID:???
>>877
全部まとめて読むのが嫌なら一行ずつ読めばいいじゃない。
879nobodyさん:2013/05/16(木) 15:16:03.67 ID:???
>>877
全てを読まないとどこを変更していいかわからないだろ。
sedだって全部読んでる。
880nobodyさん:2013/05/16(木) 16:59:41.66 ID:???
うちのsedはきっちり書き換えてくれるよ。

ファイルの先頭に一文字追加したときに起こっていることについても勘違いしてそう。
881nobodyさん:2013/05/16(木) 17:21:26.79 ID:???
sedが書き換えてくれないなんて誰も言ってませんが
882nobodyさん:2013/05/16(木) 17:31:23.47 ID:???
ざっくり書き換えるsedをください
883nobodyさん:2013/05/16(木) 19:08:30.78 ID:???
こっそり書き換えるsedなら
884PHP神:2013/05/16(木) 20:21:10.92 ID:???
>>875
読む分と書く分をfopenしてwhileでfgetsして処理してfwrite
885870:2013/05/16(木) 20:28:48.82 ID:pZ2YUXzt
>>874
ご指摘ありがとうございます。
requireはMDB2.phpだけ指定しています。
MDB2_driverも呼んでみましたが変わらなかったです。
886nobodyさん:2013/05/16(木) 20:40:17.71 ID:???
>>885
そのコードはどこからコピーしてきたの?
887nobodyさん:2013/05/16(木) 22:58:34.11 ID:???
DB_FETCHMODE_ASSOC は  pear:DB 
MDB2なら MDB2_FETCHMODE_ASSOC 
888870:2013/05/17(金) 18:10:51.64 ID:GrS1oXzW
>>887
解決しました!!
マニュアルはちゃんと全部読めってことですね、猛省します・・・。
みなさまありがとうございました!!
889nobodyさん:2013/05/17(金) 19:57:20.25 ID:???
いや別のモジュールのサンプルコードをコピペしてくんなよってことだよ
890nobodyさん:2013/05/17(金) 20:42:22.69 ID:hjTCl7an
PHP勉強し始めて1か月くらいなんですけど、質問です。スレチだったらすいません
↓このプログラムの値を受け取るにはどのようにしたらいいのでしょうか?
<form action="sample10-2.php" method="get">
<?php
$items=array('a-1'=>'ガム', 'b-2'=>'チョコレート', 'c-3'=>'クッキー');
foreach($items as $itemKey => $itemValue){
print('<input type="checkbox" id="'.$itemKey.'" value="'.$itemKey.'" />
<label for="'.$itemKey.'">'.$itemValue.'</label>');
}
?>
<input type="submit" value="送信する" />
</form>
891nobodyさん:2013/05/17(金) 20:46:23.00 ID:???
>>890
受取先でvar_dump($_GET)してみ
892nobodyさん:2013/05/17(金) 21:54:07.09 ID:hjTCl7an
>>891さん
array(0) { } ってでてきました。
893nobodyさん:2013/05/17(金) 22:03:08.07 ID:???
送信するってボタン押した?
894890:2013/05/17(金) 22:06:06.39 ID:hjTCl7an
押しました!受け取る側のプログラムの変数宣言とかもわからないのですがそのせいでしょうか?
895nobodyさん:2013/05/17(金) 22:27:59.48 ID:jIpNXAl4
レンタルサーバーで
/public_htmlファルダに置いたa003.phpに対して
同じく/public_htmlファルダに置いたtest.shに
#!/usr/bin/php

cd ~/public_html
/usr/bin/php a003.php

と書いて、cronマネージャに
sh ~/public_html/test.sh
と書いて実行しましたが、a003.phpは動きません

sh ~/public_html/test.shは間違いない記述で
a003.phpは動作正常に動作しています。
test.shのphpの実行の間違えだと思うのですが、
教えてください。
896nobodyさん:2013/05/17(金) 22:37:03.62 ID:???
実行権限とか、改行コードとか
897nobodyさん:2013/05/17(金) 22:41:22.82 ID:???
>>894
getメソッドなら送信後のURLをコピペしてみ
898nobodyさん:2013/05/17(金) 22:47:24.26 ID:jIpNXAl4
実行権限はa003.phpが777で
test.shが777にしています。
レンタルサーバーの会社に問い合わせると、
phpは動く。
cronのコマンドなどのサポートは一切できない
という返信が来ました
もう、さっぱりわかりません
899890:2013/05/17(金) 22:48:23.15 ID:hjTCl7an
900nobodyさん:2013/05/17(金) 22:49:31.26 ID:???
>>898
なんでPHP宣言でシェルスクリプト動かそうとしてるのさ
901nobodyさん:2013/05/17(金) 22:57:18.66 ID:???
>>899
もうソースうp
902nobodyさん:2013/05/17(金) 23:03:59.98 ID:???
実行権限はa003.phpが777で
test.shが777にしています。
レンタルサーバーの会社に問い合わせると、
phpは動く。
cronのコマンドなどのサポートは一切できない
という返信が来ました
もう、さっぱりわかりません
903nobodyさん:2013/05/17(金) 23:05:37.84 ID:???
大事なことなので二度書きました
904nobodyさん:2013/05/17(金) 23:06:17.51 ID:jIpNXAl4
test.sh
cd ~/public_html
/usr/bin/php a003.php

こうですか
905nobodyさん:2013/05/17(金) 23:06:57.67 ID:???
777にする意味がわからない
906nobodyさん:2013/05/17(金) 23:26:49.02 ID:???
>>902

あとは php のパスかなぁ。確認した?たまに
/usr/local/bin/php
のところもあるよ
907nobodyさん:2013/05/17(金) 23:52:42.50 ID:jIpNXAl4
phpのパス
モジュール版 パス: /usr/bin/php
となってました
fc2 レンタルサーバーLITE
908nobodyさん:2013/05/18(土) 00:22:14.10 ID:???
> sh ~/public_html/test.shは間違いない記述で

これおかしくないか?
間違えてないって何で言えるの?
シェルを実行しているルートからのパスにしないとダメだろ
909nobodyさん:2013/05/18(土) 00:28:16.12 ID:sKm+lEFL
cron コマンドに
sh ~/public_html/test.shと記述すると
public_htmlの下に置いたtest.sh
にecho "why" > ~/public_html/naze.txtと記述した時に
public_htmlの下にnaze.txtが生成されるので、
sh ~/public_html/test.shで正しいと判断しました。
910890:2013/05/18(土) 04:48:14.04 ID:8v+sotfd
>>901さん
受け取り側のプログラムのソースは
array(0) {
}
でした。
911nobodyさん:2013/05/18(土) 06:37:50.58 ID:6ky0kPCm
どうしてこう頓珍漢な投稿しかできないかというと
どうやって表示するのかすら考えようとしないからなんだよね(笑)
912nobodyさん:2013/05/18(土) 09:06:33.17 ID:???
>>910
phpファイルをうpしろ
913nobodyさん:2013/05/18(土) 09:32:33.84 ID:???
仮にシェルが正しく動いて、 a003.php が実行されても、
当然ですがPOSTはされません。 
>>890のPHPは、 そのような文字列を書き出すだけのものです。
その文字列が sample10-2.php へPOSTするような処理をするhtmlだと
認識して実行できるのはブラウザだけです。
普通はPOSTするだけのプログラムをPHPで書きます。
自動でPOSTするようなjavascriptを入れてブラウザになんとか渡して実行できていたとしても
checkboxは、チェックされていないとPOST時にキーすら渡しません。
914nobodyさん:2013/05/18(土) 09:46:20.08 ID:???
はい?
915nobodyさん:2013/05/18(土) 11:26:02.37 ID:???
シェルの書き方違うじゃねぇかw

#! /usr/bin/sh
/usr/bin/php 引数

引数はスクリプトのパスだ
916890:2013/05/18(土) 19:00:46.89 ID:8v+sotfd
>>912さん
元のphpプログラムのソースは
<form action="sample10-2.php" method="get">
<dl>
<dt>商品</dt>
<dd>
<?php
$items=array('a-1'=>'ガム', 'b-2'=>'チョコレート', 'c-3'=>'クッキー');

foreach($items as $itemKey => $itemValue){
print('<input type="checkbox" id="'.$itemKey.'" value="'.$itemKey.'" />
<label for="'.$itemKey.'">'.$itemValue.'</label>');
}
?>
</dd>
</dl>
<input type="submit" value="送信する" />
</form>
です。受け取り側はわからないです
917nobodyさん:2013/05/18(土) 19:21:28.77 ID:???
918890:2013/05/18(土) 19:30:34.88 ID:8v+sotfd
>>917さん
レンタルサーバにうpしました。
http://yumaru51.sitemix.jp/sample10.php
919nobodyさん:2013/05/18(土) 19:36:28.52 ID:???
>>918
再現する送信側と受信側のPHPファイルをうpしろ。
920nobodyさん:2013/05/18(土) 19:41:33.17 ID:???
まて
この対戦がおわったら
921nobodyさん:2013/05/18(土) 19:44:51.53 ID:???
これ受け取り側の問題だわ
922890:2013/05/18(土) 20:14:52.87 ID:8v+sotfd
>>919さん
再現?PHPの勉強でブラウザ上に表示させたいだけなんです!
できたら受け取りのプログラムをどのように書けばいいか教えてください!!
923nobodyさん:2013/05/18(土) 20:26:02.35 ID:???
>>922
<?php
print_r($_GET[);
?>
924890:2013/05/18(土) 20:34:42.77 ID:8v+sotfd
>>923さん
GETの後はvalue属性の値でいいんですか?その時は変数宣言はいりますか?
925nobodyさん:2013/05/18(土) 20:35:29.58 ID:???
print_r($_GET);

こうだった
このまま打て
926890:2013/05/18(土) 20:38:06.79 ID:8v+sotfd
>>925さん
sample10-2.phpのほうで
Array ( ) て表示されてしまいました。
927nobodyさん:2013/05/18(土) 20:43:18.18 ID:???
あーわかった
送信側idじゃなくてnameに変えろ
928890:2013/05/18(土) 20:54:09.48 ID:8v+sotfd
>>927さん
できました!!ありがとうございます!!
ちなみにvalueの値を表示するのにはどうしたらいいですか?
929nobodyさん:2013/05/18(土) 20:57:32.46 ID:???
$_GETは配列だからkey指定してやればいい
930890:2013/05/18(土) 21:12:47.65 ID:8v+sotfd
>>929
全部をチェックしたらArray ( [a-1] => a-1 [b-2] => b-2 [c-3] => c-3 ) と表示されるんですけど
キーだけ表示するにはどうしたらいいですか?
931nobodyさん:2013/05/18(土) 21:15:38.41 ID:???
nameとvalueが一緒だからややこしいな
この場合だと
echo $_GET['nameの値'];で値が出せる
a-1だったら
echo $_GET['a-1']な

チェックされてるものだけ全部表示したいなら
foreach($_GET as $value){
echo $value;
}

で全部出る
932890:2013/05/18(土) 21:40:16.26 ID:8v+sotfd
>>931さん
できました!ありがとうございました!!
933nobodyさん:2013/05/19(日) 20:07:23.39 ID:5aKhdCp3
windows版のPHPで、デスクトップフォルダにファイルを出力させたいのですが、

$desktop_path = getenv("HOMEDRIVE").getenv("HOMEPATH");
$path = $desktop_path.'\test.txt';
file_put_contents($path,"hoge");

とやっても、デスクトップフォルダではなく、ユーザフォルダにファイルが出力されてしまいます
どうするのが正しいのでしょうか
934nobodyさん:2013/05/19(日) 20:08:40.67 ID:???
apacheの管轄外にファイルなんて勝手に作れるの?
935nobodyさん:2013/05/19(日) 20:11:36.88 ID:???
HOMEPATHがユーザフォルダなんだから当たり前じゃん
936nobodyさん:2013/05/19(日) 20:49:22.95 ID:???
(゚o゚;) ハッ
ありがとうございました
937nobodyさん:2013/05/19(日) 21:00:06.37 ID:???
ID出してな
938nobodyさん:2013/05/20(月) 02:57:49.64 ID:???
>>934
chrootとまざってる?
939nobodyさん:2013/05/20(月) 13:38:53.01 ID:???
>>937
いやならスルーしろ
940nobodyさん:2013/05/20(月) 16:54:47.19 ID:???
スルーするならその質問は未解決ということになるが
941nobodyさん:2013/05/20(月) 17:02:05.31 ID:???
いやまあ今回のは質問じゃないからな
質問者と同じ人ではあるだろうけど
942933:2013/05/20(月) 22:46:02.99 ID:???
>>936は偽物です。
よく分からないから説明してくださいクズ共。
943nobodyさん:2013/05/20(月) 22:51:36.66 ID:???
>>942
ID
944nobodyさん:2013/05/21(火) 13:52:14.79 ID:zVTd5q9v
ディレクトリにphp.iniを置いて設定を上書きする場合についてですが、
いろいろなサイトを見ると、すべてのディレクトリに置く必要があると書いてあります
一般的なフレームワークのように、
ルートに置かれているindex.phpが、サブディレクトリの各ファイルを読み込んでいる場合、
サブディレクトリにも置く必要があるのでしょうか?
945nobodyさん:2013/05/21(火) 14:07:29.21 ID:???
>>944
いろいろなサイトをググるより、とりあえず公式
http://www.php.net/manual/ja/configuration.file.per-user.php
946nobodyさん:2013/05/22(水) 03:02:39.01 ID:bg0nnEgA
不可解なエラーが出ます。

mb_regex_encoding("UTF-8");
$str = "てすと";

$regex = '(\xEE\x80\x80)|(\xEE\x80\x81)';
$array = mb_split($regex,$str);
→エラーなし

$regex = '\xEE\x80[\x80-\x81]';
$array = mb_split($regex,$str);
→Warning: mb_split(): mbregex compile err: too short multibyte code string

正規表現が表わすものは同じなのに、後の例では警告が出ます。
理由は何でしょう?
947nobodyさん:2013/05/22(水) 07:03:42.22 ID:+OY2v0pP
同じじゃねえよ
# 戻り値と後方参照は別として
$regex = '(\xEE\x80\x80)|(\xEE\x80\x81)';
 →$regex = '\xEE\x80\x80|\xEE\x80\x81'; と同一
$regex = '\xEE\x80[\x80-\x81]';
 →$regex = '(\xEE\x80\x80|\xEE\x80\x81)'; と同一
948nobodyさん:2013/05/22(水) 07:08:05.64 ID:s3ucw8IQ
ランキングシステムのような物を趣味で勉強兼ねて作ろうと思ってるのですが
人気メーターのような画像を生成したいと思っており

メーターのmaxValueを100と設定した場合
http://www.example.com/meterimg.php?value=100
上記URLでメーターがMAXの画像が表示され

http://www.example.com/meterimg.php?value=50
上記URLでメーターが半分の画像が表示され

こんな感じで画像生成する方法って可能でしょうか?
可能であれば参考になりそうな記事等教えて貰えれば幸いです。
またこのような手法をなんというかも知りたいです。

よろしくお願いします。
949nobodyさん:2013/05/22(水) 07:25:19.91 ID:???
>>948
どんな画像を生成したいかによるが生成自体はできる。
ただ、それなら10個ほど画像用意したほうが毎回生成するよりいいと思う。
php 画像生成 gd でぐぐればでてくる。
950nobodyさん:2013/05/22(水) 09:05:15.52 ID:???
10刻みなんて誰も言ってないだろ
951nobodyさん:2013/05/22(水) 09:29:22.30 ID:???
divの背景に画像入れて幅指定のスタイルをPHPで書き出せばいいだろ。
952nobodyさん:2013/05/22(水) 09:48:53.15 ID:s3ucw8IQ
>>949
ありがとうございます。
自分でも画像を10個程度用意してやろうかと思ったのですが
出来ればmaxvalueなる値を設定出来るようにしたかったので
この方法が出来ればなぁと質問させて頂きました

ご提言頂いたphp 画像生成 gdで調べてみます。

ありがとうございました。
953nobodyさん:2013/05/22(水) 15:14:10.07 ID:bg0nnEgA
>>947
ありがとうございました
同じになるように、エラーが出ない方を
$regex = '((\xEE\x80\x80)|(\xEE\x80\x81))';
としても、エラーは出ません。
[\x80-\x81]の展開部分に何か問題があるようです
mbregex compile err: too short multibyte code string
で検索しても、情報がほとんどなく困っています
954nobodyさん:2013/05/22(水) 16:30:20.92 ID:???
>>952
ロールオーバーでよくね?
955nobodyさん:2013/05/22(水) 16:50:09.27 ID:???
鬼車では、そういう記述が出来ないようです。
[\xEE\x80\x80-\xEE\x80\x81] って書いてください。
956nobodyさん:2013/05/22(水) 17:10:09.02 ID:bg0nnEgA
rubyの人が同じような現象を書いていたので、なにかそのへんかと思っていたのですが、そういうことですか
ありがとうございました。
957nobodyさん:2013/05/23(木) 10:07:22.17 ID:???
>>948
>>951じゃないけど、この人の言うやり方はかなり効率的だよ。
PHP-gdや固定的な画像だけでなんとかするというよりも
cssやjQueryを併用してブラウザ側に視覚的な処理を持たせることも
考えたほうが、構築も負荷も楽になるじぇ。
958nobodyさん:2013/05/23(木) 15:08:16.74 ID:???
グラフが保存できないという致命的な問題が
959nobodyさん:2013/05/23(木) 19:09:57.40 ID:C+sPY2uV
自分の要件すらわからないという致命的な問題があるな、うん
960nobodyさん:2013/05/24(金) 03:03:29.49 ID:???
なんでcanvas使おうって話にならないんだ?ここだけ何年も前で止まってんの?
961nobodyさん:2013/05/24(金) 07:40:55.82 ID:???
なんでcanvas使おうって話になるの?
962nobodyさん:2013/05/24(金) 07:43:06.74 ID:???
社会性がないワガガマンだからw
963nobodyさん:2013/05/24(金) 10:01:17.06 ID:N0RBDP8p
【OS名】CentOS 6.4
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
配列について質問です。

$_POST['num1']
$_POST['num2']
$_POST['num3']

と配列があるのですが、この個数が不確定な状態です。
num1 〜 num3 までのときもあれば num1 〜 num78 まであるときもあります。
現在は1個ずつnum*があるかどうかを確認してから取り出しているのですが
num*の*の部分を正規表現みたいな感じで一気に抜き出すようなことはできないでしょうか?

もしくは効率の良い方法などあればご教授いただけないでしょうか。
964nobodyさん:2013/05/24(金) 11:44:27.09 ID:???
>>963
foreach ($_POST as $key => $val) { ... }
965nobodyさん:2013/05/24(金) 15:49:43.00 ID:???
$results = array();
array_map(function($element) use ($results) { if(preg_match('/^num([0-9]+)$/', $element, $m)) { $results[] = $m[1]; } });
966nobodyさん:2013/05/24(金) 15:51:14.48 ID:???
間違えた

$results = array();
array_map(function($element) use ($results) { if(preg_match('/^num([0-9]+)$/', $element, $m)) { $results[] = $m[1]; } }, $_POST);

これで $results に数字の部分だけが配列になって入ってるはず。
967nobodyさん:2013/05/24(金) 15:52:54.06 ID:???
また間違えた

間違えた

$results = array();
array_map(function($element) use ($results) { if(preg_match('/^num([0-9]+)$/', $element, $m)) { $results[] = $m[1]; } }, array_keys($_POST));

何やってんだおれ
968nobodyさん:2013/05/24(金) 16:16:22.06 ID:???
>>965-967
無理に回答しなくて大丈夫ですよ
969nobodyさん:2013/05/24(金) 16:21:49.71 ID:???
無理やり一行にするなって何回言ったらわかるんだ????????????????????
970nobodyさん:2013/05/24(金) 16:22:38.74 ID:???
ifを1行に書く意味がわかんね
何のための三項演算子だ
971nobodyさん:2013/05/24(金) 16:25:56.38 ID:???
$results = array(); array_map(function($element) use ($results) { if(preg_match('/^num([0-9]+)$/', $element, $m)) { $results[] = $m[1]; } }, array_keys($_POST));
972nobodyさん:2013/05/24(金) 16:27:20.22 ID:???
$results = []; array_map(function($element) use ($results) { if(preg_match('/^num([0-9]+)$/', $element, $m)) { $results[] = $m[1]; } }, array_keys($_POST));
973nobodyさん:2013/05/24(金) 16:28:13.75 ID:???
$r = []; array_map(function($e) use ($r) { if(preg_match('/^num([0-9]+)$/', $e, $m)) { $r[] = $m[1]; } }, array_keys($_POST));
974nobodyさん:2013/05/24(金) 17:37:29.91 ID:tSKlADWF
ここでいいのかわからんですが
鯖がcentosで空メールのシステムを作っているのですが、
aliecesにパイプ処理で受信してからphpに処理を引き渡してます

ウェブサーバーでphpを動かす時はapacheですが、こんな風にパイプで
phpに処理させるときって、そのphpファイルを実行するユーザは誰なんでしょう
975nobodyさん:2013/05/24(金) 17:39:49.26 ID:???
こういう使い方をしたいときは、レキシカル変数を参照で渡しましょう。


for($i = 1 ; $i<=78 ;$i++)
if (isset($_POST['num'.$i]))
$r[$i] = $_POST['num'.$i];

でいいんじゃねーのと思うがね。
976nobodyさん:2013/05/24(金) 17:59:56.83 ID:???
>>974
こんな風にというのがどんな風なのかわからないが、コマンドラインでphpを実行するのならそのユーザ、
cronもそのユーザ、apacheで実行されるphpでコマンドを起動するなら、apache。
977976:2013/05/24(金) 18:02:40.48 ID:???
あ、aliecesって、/etc/aliasesのことか。
だったら、postfixなんかを起動したユーザ(普通はroot)かな。
978976:2013/05/24(金) 18:09:44.10 ID:???
ごめん、全然違ってた。
デフォルトだとnobodyみたい。
http://d.hatena.ne.jp/takel/20100827
979nobodyさん:2013/05/25(土) 19:59:05.35 ID:aLejvzSw
strstrとmb_strstrってありますが、strstrでは日本語は判定できないってことでしょうか?
UTF-8の文字コードであれば、mb_strstrを使うべきなのでしょうか?
980nobodyさん:2013/05/25(土) 20:23:17.62 ID:???
そうです
981nobodyさん:2013/05/25(土) 20:24:38.26 ID:aLejvzSw
ありがとうございました
982nobodyさん:2013/05/25(土) 20:29:04.77 ID:???
日本語と英語
全角文字と半角文字
アルファベットとひらがな
シングルバイトとマルチバイト
UTF-8とASCII

それぞれ意味が違うから気をつけてな
983nobodyさん:2013/05/25(土) 20:30:05.85 ID:aLejvzSw
でもstrstrでも同じ結果で判定できたんですよね
何ででしょうか?
984nobodyさん:2013/05/25(土) 21:03:47.41 ID:???
同じだったから
985nobodyさん:2013/05/25(土) 22:34:50.52 ID:???
規制されているのでレス代行で申し訳ありません
質問と言うより相談なんですが
mysqlのパスワードなどが書かれているphp(config.php)のの保存場所ですが
皆さんどのように保存してますか?

httpでアクセスできない場所に格納するだけしかやってないのですが
もっと良い方法とかあったりするんでしょうか?
986nobodyさん:2013/05/25(土) 22:41:01.12 ID:???
987nobodyさん:2013/05/26(日) 09:35:49.57 ID:???
俺のサーバーはプライベートな領域にファイルを置けないんで
公開ディレクトリに設置してるけど、
ホームページにドクロマークをつけて
「クリックするな」というリンクを張ってるよ。
988nobodyさん:2013/05/26(日) 18:55:22.13 ID:???
PHPは糞って言われるけど、じゃぁ何を使ったらいいの?
989nobodyさん:2013/05/26(日) 18:56:05.70 ID:???
ruby
990nobodyさん:2013/05/26(日) 18:59:25.23 ID:???
>>989
言語の美しさ?とかじゃなくて実行効率・開発効率を重視してます。
ほぼ毎週くらい、新規に要求定義が変わってくるんです。
もう3年ほど運用してますが。
991nobodyさん:2013/05/26(日) 19:00:41.03 ID:???
python
googleも大好きpython
python選んでおけば間違いない
992nobodyさん:2013/05/26(日) 19:43:09.74 ID:???
python(笑)
993nobodyさん:2013/05/26(日) 19:44:31.09 ID:???
perl「(なんで候補にあがらないんだろう・・・)」
994nobodyさん:2013/05/26(日) 19:46:28.42 ID:???
perlのいいところって何よ?
995nobodyさん:2013/05/26(日) 21:34:54.53 ID:???
pearl よりも一文字タイプ数が少ないところ
996nobodyさん:2013/05/26(日) 21:37:25.99 ID:???
ぱーる(笑)
997nobodyさん:2013/05/26(日) 21:56:58.54 ID:???
エラーが起きてもどの箇所でエラーが起きているのかがはっきり分からないところ
998nobodyさん:2013/05/26(日) 22:07:17.00 ID:???
なるほど、それは便利だな!
999nobodyさん:2013/05/26(日) 22:36:59.39 ID:lTpjZRZk
【OS名】CentOS
【PHPのバージョン】6.4
【連携ソフトウェア】MySQL PDO
【質問内容】
PDOの接続からload data infileを使おうとするとmysqlからAccess denied for userのエラーが出てしまうのだけど
どうすればいいんでしょう?

ちなみに接続オプションにPDO::MYSQL_ATTR_LOCAL_INFILEをセットしてもダメでした。
1000nobodyさん:2013/05/26(日) 22:57:44.75 ID:???
ageすません。
そして解決しましたmysqlの接続ユーザにfile権限がついてませんでした。
mysqlいちいち面倒くさい。。。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。