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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2012/01/20(金) 05:43:58.75 ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 113
http://kohada.2ch.net/test/read.cgi/php/1322564127/
【PHP】下らねぇ質問はID出して書き込みやがれ 112
http://hibari.2ch.net/test/read.cgi/php/1320005469/
【PHP】下らねぇ質問はID出して書き込みやがれ 111
http://hibari.2ch.net/test/read.cgi/php/1317232566/
【PHP】下らねぇ質問はID出して書き込みやがれ 110
http://hibari.2ch.net/test/read.cgi/php/1314692611/
【PHP】下らねぇ質問はID出して書き込みやがれ 109
http://hibari.2ch.net/test/read.cgi/php/1311803617/
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/
【PHP】下らねぇ質問はID出して書き込みやがれ 107
http://hibari.2ch.net/test/read.cgi/php/1307228162/
【PHP】下らねぇ質問はID出して書き込みやがれ 106
http://hibari.2ch.net/test/read.cgi/php/1304064660/
【PHP】下らねぇ質問はID出して書き込みやがれ 105
http://hibari.2ch.net/test/read.cgi/php/1300302034/
【PHP】下らねぇ質問はID出して書き込みやがれ 104
http://hibari.2ch.net/test/read.cgi/php/1297669559/
【PHP】下らねぇ質問はID出して書き込みやがれ 103
http://hibari.2ch.net/test/read.cgi/php/1295956018/
3nobodyさん:2012/01/20(金) 05:44:10.97 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/
4nobodyさん:2012/01/20(金) 05:44:31.66 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プログラムとして実行された結果になる。
5nobodyさん:2012/01/20(金) 05:44:44.71 ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
6nobodyさん:2012/01/20(金) 09:23:17.35 ID:???
>>1 乙乙
7nobodyさん:2012/01/20(金) 10:07:24.02 ID:???
>>1
おつ
がっこーからは次スレ立てられなかったスマソ
8nobodyさん:2012/01/20(金) 10:31:56.57 ID:2Tx7MEP0
function frnd()
{
return rand()/(getrandmax()+0.1);
}
$in=0;$N=1000;
for ($i=0;$i<$N;$i++){
$x=frnd();
$y=frnd();
if ($x*$x+$y*$y<1.0)
$in++;
}
$pai=4*$in/$N;
echo "π=".$pai."\n";

phpの本に載ってたモンテカルロ法による円周率の求め方の質問
何故、getrandmax()+0.1としているのですか?
rand()/(getrandmax()で0〜1の範囲で乱数を発生させたらいいと
思うのですが、この0.1が加算されているのが分かりません。
C言語でやったときは rand()/RAND_MAXとしました。
9nobodyさん:2012/01/20(金) 11:11:32.41 ID:???
乱数を0から1未満とするため
x=1のときyに依存しないで円外になるからかな。

どっちもやって誤差がどうなのか見てみれば?
10nobodyさん:2012/01/20(金) 15:14:43.37 ID:???
>>7
だれ?
11nobodyさん:2012/01/20(金) 19:26:14.79 ID:yvoFKIu/
質問させてください、拡張モジュールが理解できません。

php.iniでmemcached.soを記述してプログラムを動かしたところ、
PHP Warning: Module 'memcache' already loaded in Unknown on line 0 という警告が出たのですが、
これをどう理解したら良いのかわかりません
php.iniの指定以外にもどこかで起動していたということですよね?
自分ではそんなプログラムを書いた覚えないのですが、どんな原因が考えられるでしょうか?

サーバのサービスとしてのmemcachedはstatus:running状態だったのですが、
その場合php.iniの拡張モジュールとしての記述は不要ということでしょうか?
12nobodyさん:2012/01/20(金) 20:01:22.32 ID:???
ロード処理を2回書いてるとかじゃね
13nobodyさん:2012/01/20(金) 21:04:10.91 ID:ObSPH0mR
質問させてください。
↓みたいなhtmlエンティティ化された日本語を戻すのはどうしたら良いでしょうか?
?????
ちなみにこれは「あいうえお」です。
print html_entity_decode("?????");
としても変化ありませんでした。
よろしくお願いします。
1413:2012/01/20(金) 21:05:59.96 ID:???
ああ、なんてこと。
↓これです。&は半角です。
&#12354;&#12356;&#12358;&#12360;&#12362;

また化けてたらすいません。
15nobodyさん:2012/01/20(金) 21:10:15.79 ID:???
>>14
デコードしてみたけどそんな卑猥な言葉俺の口からはとても言えない
16nobodyさん:2012/01/20(金) 21:19:29.86 ID:x5waH9K4
Tokyo Tyrantを使ってみようと思ったのですが、Kyoto Tycoonとかいう
次期バージョンが出ているようですが、
PHPで使えるのか良くわかりません
TTの方はPECLから簡単に導入出来ると思うのですが、
実際使っている方にお聞きしますが、やっぱ今から導入するにはKyotoの方でしょうか?
それともPECLにありマニュアルも完備されているTokyoの方がいいのでしょうか?

17nobodyさん:2012/01/20(金) 21:20:31.05 ID:ObSPH0mR
>>15
ただのあいうえおですって。
どうやってデコードするのか教えてください。
18nobodyさん:2012/01/20(金) 21:26:45.89 ID:???
>>17
文字コード指定すれ
19nobodyさん:2012/01/20(金) 21:44:23.61 ID:???
mb_convert_encoding($txt,'UTF8','HTML-ENTITIES');


html_entity_decodeはめんどくさい。
2017:2012/01/20(金) 21:44:38.77 ID:???
>>18
出来ました!
ありがとうございます。
今度奢ります。
21nobodyさん:2012/01/20(金) 21:47:28.03 ID:???
>>19
mb_convert_encoding()にそんな引数あったんですね。
知りませんでした。
ありがとうございます。
22nobodyさん:2012/01/20(金) 21:56:26.18 ID:???
>>11
php.iniと、php.dの中のどれかまたは.htaccessとかで読んでるとか。
2311:2012/01/20(金) 23:08:17.49 ID:yvoFKIu/
>>22
ありがとうございました!
/etc/php.dっていうディレクトリの中に***.iniがある場合、それはphp.iniで
拡張モジュール指定しなくても良いんですね。知りませんでした
/etc/php.dはどういうタイミングで作られる&更新されるんでしょうか?

>>12
ありがとうございました
24nobodyさん:2012/01/20(金) 23:31:21.75 ID:x5waH9K4
http://us3.php.net/manual/ja/tokyo-tyrant.installation.php
マニュアルのこのページなのですが、
この--with-tokyo-tyrant[=DIR]などは、PHPをソースコードから入れる場合に
./configure時に指定しろという事でしょうか?

良く分からないのですが・・・

導入例を色んなサイトで見たのですが、書かれていないような気がします
tyrantとcabinetを入れた後にPECLでモジュールを入れればいいのかなと思っていたのですが
25nobodyさん:2012/01/20(金) 23:37:39.24 ID:x5waH9K4
ごめんなさい
PHPの時はおかしいと思っておりました
PECLモジュールをphpizeで入れるときのオプションだとhelpを見て分かりました
26nobodyさん:2012/01/21(土) 00:06:03.40 ID:zlJukRTP
【OS名】 Linux系
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL
【質問内容】
入出力のサニタイズの質問です。

名前とメールアドレスを入力してもらい、次の画面で確認表示して、
確認後にDBに格納します。また、あとでDBから取り出して画面に表示します。

このとき、どのようにバリデートとサニタイズを行うのがいいでしょうか。

次の流れで、(2)と(3)のサニタイズは必要でしょうか。
行わなければ、ぜい弱性になりえますか?

利用者から名前とメールアドレスを受け取る
 ↓
mysqli_real_escape_stringでサニタイズ(1)
 ↓
長さが1以上、かつ、メールアドレスは適切
 ↓
(1)をhtmlspecialchars でサニタイズして表示(2)
 ↓
利用者が確認
 ↓
(1)の結果をDBに格納

あとで、
DBから名前とメールアドレスを取り出す
 ↓
htmlspecialchars でサニタイズして表示(3)
27nobodyさん:2012/01/21(土) 00:06:54.20 ID:zlJukRTP
こっちの方がいいかな?

利用者から名前とメールアドレスを受け取る(a)
 ↓
(a)の長さが1以上、かつ、メールアドレスは適切
 ↓
(a)をhtmlspecialchars でサニタイズして表示(b)
 ↓
(b)を利用者が確認
 ↓
(a)をmysqli_real_escape_stringでサニタイズ(c)
 ↓
(c)をDBに格納
28nobodyさん:2012/01/21(土) 00:13:57.76 ID:???
確認画面と完了画面での情報の引き渡し方とチェックのタイミングの話かと思ったら
ただのエスケープの話だったでござる
29nobodyさん:2012/01/21(土) 00:25:53.11 ID:zlJukRTP
>>28
まだ確認画面を作ってないのですが、
セッション変数で渡してしまおうと思っています。

今の仕様だと確認画面がないので、セッションは不要なんですが。
30nobodyさん:2012/01/21(土) 00:28:45.42 ID:mz2KZcw3
何らかの処理でエラーが発生したとき、その内容をバックグラウンド処理として
管理者にメール送信させたいと思っています。
それで、それに関することを調べていたら「複数のプロセスが発生しないように云々」とありました
これについて聞かせてください
・メール送信する処理をこの場合のプロセスとして考える
・同時に複数のプロセスが動くのは望ましくない(サーバの負荷がかかる)
・そうならないための仕組み(排他制御とはこのことですか?)を考えるべき
ってことですか?

どうやって、現在管理者向けのメールを送るプロセスが起動してるかを判定できるんでしょうか?
簡単な例を教えてもらえると嬉しいです。よろしくお願いします。PHP5.3です。
31nobodyさん:2012/01/21(土) 00:32:11.83 ID:???
>>29
(1)と(2)の脆弱性は全く別物なので片方だけやっても意味ないよ
32nobodyさん:2012/01/21(土) 00:32:30.90 ID:???
バックグラウンド処理として管理者にメール送信って、
どうやるのを想定していますか?
それに関することのソレがわかんないし、貴方の思ってる方法と
ソレがあっているか分かんないし、なんで複数のプロセスが発生しちゃだめなのかがつながらない。
答えるとすると、ただの想像になるので、貴方の役に立たないかもしれません。
33nobodyさん:2012/01/21(土) 00:33:42.41 ID:???
>>30
同時に複数のプロセスが動くのは普通だよ
リソースを共有してて同時にいじったら問題が発生するときは排他制御かけるけど
34nobodyさん:2012/01/21(土) 00:39:35.47 ID:zlJukRTP
>>31
ありがとうございます。
それぞれ対策することにします。
35nobodyさん:2012/01/21(土) 00:52:11.08 ID:???
>>32
言葉足らずで申し訳ありません
イメージとしては exec();を利用してメールを送信するsendmail.phpを実行しようと思っています
排他制御というのを実行して、たとえばユーザA,ユーザB,C,D...が大勢いっぺんにメールを送るようなことに
ならないようにしないとサーバが重くなってしまうのかなぁと思ってましたが、
そんなことないんでしょうか?

よくわからないのですが、sendmail.phpの中で以下のようなことをするのかと自分は思っていましたが…
if(!file_exists('./mailsending')){
//現在メール送信中なのを示すロック用のファイルを作る
mkdir('./mailsending',0777);
//メール送信処理
〜〜
unlink('./mailsending');
}else{
sleep(5);
//このあとこの処理を頭からもう一回実行する
}

>>33
プロセスというのがそもそもよくわからないのですが
mail();の実行でメール送信のプロセスが起動するわけですよね?
それはいくつも同時に動いて問題なくて、一つ動いてそれが送信完了したらそのプロセスは消えるんでしょうか?
3633:2012/01/21(土) 01:17:13.33 ID:???
>>35
execで外部メールプログラムにパイプで渡すのか
mailでメールサーバに渡すのかどっちなんだ?
どうやろうとしてるのか情報がないので分からないけど普通はメールキューに溜まるんでないの?
37nobodyさん:2012/01/21(土) 02:10:54.17 ID:???
sleepだの、排他処理だのしてないで、さっさと投げて処理した方が
38nobodyさん:2012/01/21(土) 03:39:49.18 ID:???
>>23
インストーラ(というかMakefileやRPM)がそこに作ったり作らなかったり。
39nobodyさん:2012/01/21(土) 04:59:51.97 ID:eRKOygVB
call_user_func_arrayと

$func = function ($a) {};
$func("あ");
で呼び出すのって違いありますか?
40nobodyさん:2012/01/21(土) 05:02:29.98 ID:???
そりゃ違う
41nobodyさん:2012/01/21(土) 05:27:34.12 ID:???
120行ほどコード書いて実行したらエラーもなく動いた
感動しました!
42nobodyさん:2012/01/21(土) 05:32:01.60 ID:???
誰あんた
43nobodyさん:2012/01/21(土) 11:07:42.28 ID:FSMglBTD
phpで使用できるアプリケーションサーバー
どのようなものがありますか?
44nobodyさん:2012/01/21(土) 11:31:19.49 ID:???
前スレに帰れよもう
45nobodyさん:2012/01/21(土) 16:25:18.51 ID:jFN3iVio
文字コードについて
通常はutf-8で統一するのでしょうか?(php,mysql,xhtml)
携帯の場合はsjisだと思いますが、その場合はsjisで
(php,mysql,xhtml)で統一するのでしょうか?
46nobodyさん:2012/01/21(土) 16:34:35.91 ID:???
どうしてもってときは出力だけShift_JISにするけど、いまどきUTF-8対応してない携帯って生きてるの
47nobodyさん:2012/01/21(土) 16:57:04.13 ID:???
今時携帯でもutf8でいいわな
まぁsjisにするにしても内部コードはutf8にするのが鉄則
内部コードがsjisってだけで問題起きるからな
48nobodyさん:2012/01/21(土) 17:00:29.88 ID:???
>>46
へえ、携帯向けもUTF-8でいいんですか。
化石のような携帯を使ってる奴らを相手にするつもりはないので。
49nobodyさん:2012/01/21(土) 17:43:30.86 ID:???
いわゆるガラケーに対応するなら出力はSJISにすべきだろうね。
スマホ相手だったらUTF-8で問題ないよ。
50nobodyさん:2012/01/21(土) 18:01:38.09 ID:CB8OXbyx
質問させてください
ソケット通信のプログラムに興味があって勉強してるのですが、
stream_set_timeoutで設定するタイムアウトは実際にどのようなときに
発生するんでしょうか?


例えば10秒のsleepを設定してある外部のphpプログラム(HTTPアクセス)に、
stream_set_timeoutで5秒を設定したプログラムからアクセスしても
タイムアウトが発生せず10秒しっかりと待たされてしまうのですが、
そもそもstream_set_timeoutで設定するタイムアウトの解釈が間違ってますか?
51nobodyさん:2012/01/21(土) 18:07:22.46 ID:mW1ztqvo
配列hを$h=array(2=>0,0,0,0,0,0,0,0,0,0,0);したとき、
foreach ($h as $key => $val) {
echo "h[" . $key . "] = " . $val . "<br>";
}
で出力すると
h[2] = 2
h[3] = 5
h[4] = 14
h[5] = 11
h[6] = 14
h[7] = 17
h[8] = 14
h[9] = 5
h[10] = 8
h[11] = 6
h[12] = 4
となるサンプルが本に載ってましたが、
$h=array(2=>0,0,0,0,0,0,0,0,0,0,0);は
$h=array(2=>0,3=>0,4=>0,5=>0,・・・が
略記と考えていいのですか?
52nobodyさん:2012/01/21(土) 18:09:31.65 ID:mW1ztqvo
間違えました、
配列hを$h=array(2=>0,0,0,0,0,0,0,0,0,0,0);したとき、
foreach ($h as $key => $val) {
echo "h[" . $key . "] = " . $val . "<br>";
} で
0
0
0
0
0
0
0
0
0
0
0
でした
53nobodyさん:2012/01/21(土) 21:11:00.04 ID:MGOT7geS
いまhtml,cssと終わってjavasprictに入ろうと思ってんだけど
phpもやったほうが捗る?

他の言語の方が捗ったりして
54nobodyさん:2012/01/22(日) 00:24:53.85 ID:UXyrzgYX
オブジェクト指向がわかんない。
クラスってどういうときにどんなかんじで使うの?
普通にファンクションじゃダメなの?
55nobodyさん:2012/01/22(日) 00:30:35.02 ID:???
>>54
phpのオブジェクト指向は最適化されていないので、
使わなくていいよ。
56nobodyさん:2012/01/22(日) 00:57:25.79 ID:UXyrzgYX
>>55
いや業務で使わないといけないから
月曜までに理解しとかないとまずい
57nobodyさん:2012/01/22(日) 01:40:38.96 ID:???
人間ってクラスがあるとする
class ningen

じつはこれこのままだと動かない、人造人間
なのでスイッチ入れます
$hito = new ningen();

この人造人間、ミサイル発射機能が実装されてる
$hito->missile();

デフォルトだとミサイル1発に設定されてるけど5発でも出せるよ
$hito->setAmmo(5);
$hito->missile();

髪型だって変えられるイカシタやつなんだ
$hito->setHair('hage');

こんな感じ
classの中にはmissle,setAmmo,setHairってfunctionがある
スイッチを入れた$hitoはインスタンスと呼ばれるオブジェクト
インスタンスからそのクラスが持ってるメソッドを呼び出したり、インスタンスの髪型変えたり
考えてもあまり意味ないから、簡単なソースを真似て自分で書いてみれ
58nobodyさん:2012/01/22(日) 01:49:25.23 ID:???
>>51
http://www.php.net/manual/ja/language.types.array.php

キーを省略した場合、整数添字の最大値が使用され、 新しいキーはその最大値 +1 となります。
整数値は負の数とすることができ、 負の添字についても同様となります。例えば、最高時の添字が
-6 の場合、次のキーは -5 となります。 整数添字がまだ存在しない場合、キーは 0 (ゼロ) となります。
値が既に代入されているキーを指定した場合、元の値は上書きされます。
59nobodyさん:2012/01/22(日) 05:27:25.23 ID:???
>>50
sleep→socket通信になってるんでしょう
逆の場合はすでに通信が完了している
6059:2012/01/22(日) 05:28:11.30 ID:???
ごめんよく読んでなかった
スルーしてくれ
61nobodyさん:2012/01/22(日) 08:13:40.99 ID:bGbbffT4
touch()でファイルを作りたいんですがうまくいきません
public_htmlの権限を707(または706など)にして書き込み可能にする必要があるんでしょうか?
またその場合外から書き込みなることは危険ではないんでしょうか?
6261:2012/01/22(日) 08:16:15.48 ID:bGbbffT4
>>61
すみません
書き込みなることは〜→書き込み可能になることは
に読み替えてください
63nobodyさん:2012/01/22(日) 09:42:04.56 ID:???
モジュール版phpでsafemodeがかかってるなら
出力するファイルの親ディレクトリに書き込み権限を与える必要がある
親ディレクトリがpublic_htmlならpublic_htmlに与える必要があるが
public_html/hoge/に出力する場合public_htmlまで遡らず
単にhogeに書き込み権限を与えればよい

>またその場合外から書き込みなることは危険ではないんでしょうか?
ディレクトリやファイルを操作するスクリプトに脆弱性がある場合は
余計な権限を与えてると問題が起きる可能性はあるが
権限を与えること自体に危険性はない
64nobodyさん:2012/01/22(日) 12:11:09.91 ID:???
>>57
クラスの先頭は大文字で書くクセを付けてくれ頼む
65nobodyさん:2012/01/22(日) 12:12:39.17 ID:???
>>50
タイムアウトの仕様はWindowsとLinuxで異なるから気をつけよ
66nobodyさん:2012/01/22(日) 12:13:47.51 ID:???
>>45
10年前の携帯だけどUTF-8だからSJIS携帯ユーザーを見つけるのが難しい
67nobodyさん:2012/01/22(日) 12:14:13.87 ID:???
>>43
PHP5.4から簡易サーバーが組み込まれてる
68nobodyさん:2012/01/22(日) 12:16:33.83 ID:???
>>57
ただのモジュールとして使うのか、オブジェクトがわからない時はそういう使い方もありかな。
69nobodyさん:2012/01/22(日) 13:08:00.49 ID:???
>>57
関係ないがよくわかったd
70nobodyさん:2012/01/22(日) 13:24:42.98 ID:MxVymtCi
PHPの中にHTMLをそのまま書きたいとき、いい方法はありますか?
この2つなら思いつきますが、他にオススメがあればお願いします。

1.echoでHTMLを出力する
2.?>でPHPを閉じて、HTMLを書いて<?phpでまたPHPを書く
71nobodyさん:2012/01/22(日) 13:26:53.23 ID:???
<<<eof
72nobodyさん:2012/01/22(日) 13:29:50.28 ID:MxVymtCi
>>71
ヒアドキュメントですね。忘れていました。
それをechoで出力すればいいですね。
73nobodyさん:2012/01/22(日) 13:48:53.45 ID:???
>>70
echo "
<p>aa</p>
<p>aa</p>
";

echo '
<p>aa</p>
<p>aa</p>
';
74nobodyさん:2012/01/22(日) 14:05:51.50 ID:MxVymtCi
>>73
改行が入ってもクオートは閉じなくていいんでしたか。
ありがとうございます。
75nobodyさん:2012/01/22(日) 14:18:37.17 ID:oj78u6X0
メール送信処理をクラス化して、メールの種類によって文面を変える処理を作っています
(警告メール/エラー報告メール/新着情報メールなど)
今までswitch文で一つのファイルにまとめて各パターンの文章を書いてたんですが、
その文面を外部化してテンプレート的に読み込ませた方が良いと思い始めました
しかし、そのメールのテンプレートの作り方がわかりません
最低限下記を知りたいです
・テンプレートの拡張子(というかファイルタイプ)はどうすべきか
・そのファイルから文章を読み込ませる方法
・ユーザ名を自動的に置き換えて送信できるようにする方法
 (「こんにちは ****さん」的な…)

どうしたらいいんでしょうか

処理の流れとして、上記のメール送信する処理を書いた.phpファイルを mailsend.class.phpとして
以下のようにしてメールの種類と送信先ユーザ名を渡して送信処理することを考えています
require(mailsend.class.php);
$mail = new mailsend();
$mail->sousin($mailType, $userName);
76nobodyさん:2012/01/22(日) 14:32:21.99 ID:???
>>75
もうちょっと初歩的なところからやったほうがいいのでは?

質問の答えとしては
>・テンプレートの拡張子(というかファイルタイプ)はどうすべきか
プレーンテキストだしなんでもいい

>・そのファイルから文章を読み込ませる方法
file_get_contents etc

>・ユーザ名を自動的に置き換えて送信できるようにする方法
そういう情報を集めたデータベースなりが必要でしょう
77nobodyさん:2012/01/22(日) 16:12:54.41 ID:ySnaTQRi
php-tokyo_tyrantについての質問なのですが、
マニュアル
http://www.php.net/manual/ja/class.tokyotyrant.php#tokyotyrant.constants.types
に書かれているTokyoTyrant::TTE_SUCCESSなどはどのようにして使うのですか?

実行結果によってエラー処理など、分岐させたいのですが、
memcachedのMemcached::getResultCodeのように実行結果のコードを取得するような関数もありません
教えていただけませんでしょうか?
7861, 62:2012/01/22(日) 16:55:34.47 ID:bGbbffT4
>>63
丁寧に答えて下さりありがとうございます
仰るとおり、調べた結果safemodeでした
ディレクトリを新しく設け、そこに置くファイルは最小限にして実装しました
ありがとう!
79nobodyさん:2012/01/22(日) 17:16:32.51 ID:UXyrzgYX
>>57
わかりやすい例えどうもです!
80nobodyさん:2012/01/22(日) 17:58:02.33 ID:???
>>77
エラー時に投げてくる TokyoTyrantException::getCode() と比較する
81nobodyさん:2012/01/22(日) 20:10:43.98 ID:ySnaTQRi
>>80
なるほど、お答えいただきありがとうございます
日本のマニュアルは、英語と比べて遅れている(差がある)ようで、
先ほど初めて知ったのですが、TokyoTyrantExceptionというのがあると知りました
他にもIteratorといったクラスがあるようで・・・

今Windows環境でLinuxが手元にないので試せないのですが、
keyからput、getなどする際は、try~catchのtry内で行えということですね?
82nobodyさん:2012/01/22(日) 21:28:18.69 ID:???
>>81
そういう事だね
マニュアルにない事はソースに頼る方が確実

tokyo_tyrant.c
> /* {{{ int TokyoTyrantTable::put(string pk, array row);
> put a row. if pk = null new key is generated
> @throws TokyoTyrantException if not connected to a database
> @throws TokyoTyrantException if get fails
> */
> PHP_METHOD(tokyotyranttable, put)
> {
83nobodyさん:2012/01/22(日) 22:12:07.02 ID:???
>>76
助かりました。ありがとうございました
84nobodyさん:2012/01/22(日) 23:30:07.77 ID:ySnaTQRi
>>82
本当にありがとうございました
しかしPHP・・・だけでなく他言語としてもTokyoTyrantの情報って出てきませんねw
調べてもマニュアルの転用ばかりが出てきます
皆さん何を使ってらっしゃるんですか?

APCやmemcachedがやはり多いんですかね?
それかCassandraとか
それともこういうのは使わずに、DBとかcache機能とかなのですかね
85nobodyさん:2012/01/23(月) 05:35:43.09 ID:???
情報が少ないものは使わないってのは普通なことでは
それでも使いたいってなら頑張って調べるしかないからね
めんどくさいし情報が豊富なmemcachedでいいってなるわ
86nobodyさん:2012/01/23(月) 08:34:14.66 ID:???
>>57
で、なんとなくクラスの使い方がわかりました。ありがとうございます。
でも、今自分の作っているもののうち、どういうものをクラスに作ったらいいのか
まだいまいち把握できません。どんなときにクラスにするんですか?
87nobodyさん:2012/01/23(月) 09:40:19.55 ID:???
そろそろまとめサイトつくろうぜ
88nobodyさん:2012/01/23(月) 10:08:47.85 ID:???
>>87
がんばってね
89nobodyさん:2012/01/23(月) 10:22:28.44 ID:???
どんなときにクラスとかどういうものをクラスとかいう概念を捨てろ
全部クラスにしないといけないそういう言語もあるんだぞ
というわけでオブジェクト指向の概念を勉強したいなら
一度JavaなりC#の初心者向けサイトを訪問してきな
9086:2012/01/23(月) 15:30:40.66 ID:???
>>89
ひー、ますますわからなくなりました。
オブジェクト指向の概念 がんばって読んできます。
91nobodyさん:2012/01/23(月) 18:09:04.87 ID:NlIjtP0L
【OS名】Windows 7 Home Premium SP1 (64bit)
【PHPのバージョン】5.3.9
【連携ソフトウェア】Apache 2.2.21

(php.ini)
mbstring.internal_encoding = UTF-8
mbstring.http_input = UTF-8
mbstring.encoding_translation = On


不正な UTF-8 を出来る限り防ぎたいと思っています
htmlspecialchars のように無効な文字を削除する関数で、'<' (小なり) や '>' (大なり) を変換しない関数は無いでしょうか
$str = htmlspecialchars_decode(htmlspecialchars($str, ENT_COMPAT, ''), ENT_COMPAT) のように書くのが適切でしょうか
92nobodyさん:2012/01/23(月) 18:15:58.21 ID:???
不正な UTF-8 ってなんでしょう・・・
htmlspecialcharsは 無効な文字を削除する関数ではありませんし。
9391:2012/01/23(月) 18:47:20.79 ID:NlIjtP0L
>>92
すみません
PHP 5.2.12 / 5.3.2 以降の htmlspecialchars で、冗長なUTF-8表現などが含まれると空文字を返す機能のことです
94nobodyさん:2012/01/23(月) 18:47:43.83 ID:???
>>91
mb_convert_encoding("\xC0\xBC", 'UTF-8', 'UTF-8')
95nobodyさん:2012/01/23(月) 19:17:30.77 ID:HHu7F5nF
時刻の計算について教えてください
何かを行った際にその時の現在時刻を取得し、DBなどに格納しておいて、
その後に、3日以上経っていたら削除するような事をしたいのですが、
どのように書けばいいのでしょうか?

自分はまず先にdate('Y/m/d H:i:s');でDBに格納
->次に(3日以上経ったとして)、現在時刻を取得し、DBに格納した値と比較
と考えたのですが、計算方法が分かりません
strtotime()とか考えたのですが、解決には至りませんでした
96nobodyさん:2012/01/23(月) 19:21:52.27 ID:???
っunixtime
9791:2012/01/23(月) 19:23:42.04 ID:NlIjtP0L
>>94
ありがとうございます
PHP 5.4 では、5〜6 バイト表現を mbstring 系でブロック出来るようですが
PHP 5.3 では、htmlspecialchars を使うしかないのでしょうか
98nobodyさん:2012/01/23(月) 19:34:36.35 ID:???
1、DBには日付型で入れてSQLで三日経過の判別
2、dbにタイムスタンプtime()でいれて、 現在時刻のタイムスタンプから3日前の値より小さかったら消す。
time() - 3 * 24 * 60 *60 な
99nobodyさん:2012/01/23(月) 19:52:48.40 ID:???
>>97
自分で取り除いてやるしかないね
RFCに許容するシーケンスがあるから簡単に出来ると思うよ
http://tools.ietf.org/html/rfc3629#section-4
10091:2012/01/23(月) 20:12:10.22 ID:NlIjtP0L
>>99
htmlspecialchars と htmlspecialchars_decode を通すことにします
ありがとうございました
101nobodyさん:2012/01/23(月) 21:08:58.00 ID:FIQlOImm
PHPでページの出力するとき、関数やメソッドにechoやプリントを仕込んでおいて
それを呼ぶことで出力する方法と、直接埋め込み式で書き連ねていく方法が
あると思うのですが、どのようにするのがよいのでしょうか?

内容はfor文やメソッド呼び出しがこまめに使われてて150行ぐらいです
インクルードファイルまで見ないといけないということを考えると、
やはり多少複雑になってもそのまま直に書くのが望ましいのでしょうか?
102nobodyさん:2012/01/23(月) 21:16:13.86 ID:HJ0fqWO2
こういう書き方があることを今日知ったんですが、問題ないですよね?

<?php
$a = 2;
if ( $a == 1 ) { ?>
hogehoge<br />
<?php
} else {
die();
}
?>
103nobodyさん:2012/01/23(月) 21:16:59.61 ID:???
>>101
スタイルは人それぞれだからなんとも言えない
好きなようにせい

書いてるうちにだんだん変移してそのうち自分にぴったりな方法が見つかるさ
俺も最初はスクリプトに<<<EOF〜EOF;ってかんじに書いてたが
今じゃ全部テンプレートよ
104nobodyさん:2012/01/23(月) 21:21:33.12 ID:???
>>102
動くなら問題ないですよ
105nobodyさん:2012/01/23(月) 21:51:53.79 ID:???
>>103
ありがとうございます何かよい方法を考えてみます
106nobodyさん:2012/01/23(月) 23:02:15.95 ID:HJ0fqWO2
>>104
ありがとうございます。
コードは汚いけど便利です。
HTMLの文法チェックも働くし。
107nobodyさん:2012/01/24(火) 15:34:10.51 ID:ZLZzoB2p
ファイルの更新内容をリアルタイムに監視するにはどうすればいいですか?
たとえば、アパッチのログファイルを常に読み込み(監視)して、変更があればクライアントに伝えたいです。
108nobodyさん:2012/01/24(火) 16:10:40.82 ID:???
嫌がらせとしか思えないw
109nobodyさん:2012/01/24(火) 16:33:52.13 ID:???
環境依存にしたくないのなら、定期的にファイルが更新されていないか見に行く
110nobodyさん:2012/01/24(火) 16:41:15.31 ID:???
クライアントにはどうやって伝えるんだ
111nobodyさん:2012/01/24(火) 17:20:37.04 ID:???
apacheログの内容をリアルタイムでクライアントに伝えて何がしたいん
112nobodyさん:2012/01/24(火) 19:40:41.93 ID:QFJ8TOos
楽しんご「ああっぁぁあぁぁっっ!!たのチンポおおおぉぉぉおお!!!」
113nobodyさん:2012/01/24(火) 19:40:57.76 ID:QFJ8TOos
間違えました
114nobodyさん:2012/01/24(火) 20:24:28.04 ID:???
>>107
監視用のデーモン作れば?
PHPで作るよりベターな方法があるだろうけど
115nobodyさん:2012/01/24(火) 20:55:04.18 ID:???
>>107
ajaxでやれば?
116nobodyさん:2012/01/24(火) 20:56:19.19 ID:???
ajaxはありえない
117nobodyさん:2012/01/24(火) 20:56:56.54 ID:???
jaxa
118nobodyさん:2012/01/24(火) 21:01:38.07 ID:???
はやぶさ
119nobodyさん:2012/01/24(火) 23:25:13.13 ID:???
phpからシェルスクリプト叩けばなんとかなるかもよ。
120nobodyさん:2012/01/25(水) 00:33:12.95 ID:???
>>107
http://www.php.net/manual/ja/book.inotify.php
ぶっちゃけこれ入れるぐらいならinotify-toolsでよくね?ってなるけど
121nobodyさん:2012/01/25(水) 02:14:37.08 ID:ElXWLH0v
$s = 'foo';
で、$s[0]と呼び出すと'f'が返りますが
これは比較的新しいバージョンでの対応でしょうか。
以前はこうは書けなかったような記憶もあり・・
122121:2012/01/25(水) 02:36:53.81 ID:ElXWLH0v
マニュアルの中に該当個所見つかりました
http://www.php.net/manual/ja/language.types.string.php#language.types.string.substr
特にバージョンの注記はないようなので、前からできたのかもですね
123nobodyさん:2012/01/25(水) 04:10:38.16 ID:???
そうすると君の記憶はいったい・・・!?
124nobodyさん:2012/01/25(水) 15:48:03.14 ID:e1p5NWxB
$pid = getmypid();
が1の値になることってありますか?
pid1はUNIXでは特別な番号らしいのですがLINUX上のPHPでも
getmypid()は1にはならないですか?
125nobodyさん:2012/01/25(水) 16:03:02.66 ID:???
1はinit
でもそれを聞いてどうすんだ
126nobodyさん:2012/01/25(水) 16:15:08.29 ID:e1p5NWxB
処理前→0
処理後→1
で処理前から処理後までの一時的な番号をpidで付与しようと思ってまして
確認させてもらいました。
127nobodyさん:2012/01/25(水) 17:54:45.67 ID:vhcdno6F
PHPを勉強しようと思い、ApacheとPHPをインストールしようとしている初心者です。
インストールしている途中で問題が発生し、先に進めなくなってしまいました。どなたかアドバイスをお願いいたします。

PHPに関しては、PATHの設定をするところまでは終わっています。
Apacheに関しては、単独で動かせばルートディレクトリが正常に表示される状態です。
ここで、Apacheのhttpd.confにPHPのphp.iniのディレクトリを指定し、
Apacheを起動しようとすると以下のメッセージが表示され、Apacheが起動しません。

Invalid command 'PHPIniDir', perhaps misspelled or defined by a module not included in the server configuration

php.iniの記述内容は、php.ini-developmentのデフォルトの内容のままです。
ApacheとPHPそれぞれのインストールしたバージョンは以下の通りです。

Apache 2.2.21
PHP 5.3.9

どうかよろしくお願いいたします。
128nobodyさん:2012/01/25(水) 18:05:32.63 ID:???
>>127
とりあえずエラーメッセージを機械翻訳するところから始めようか

> Invalid command 'PHPIniDir', perhaps misspelled or defined by a module not included in the server configuration
ミススペルしてね?もしくはモジュール読み込めてなくね?
129127:2012/01/25(水) 18:15:05.58 ID:vhcdno6F
>>128

モジュールの追加をしていないことが原因でした。
これからは、エラーメッセージをしっかり読みます。
どうもありがとうございました。
130nobodyさん:2012/01/25(水) 19:41:39.09 ID:???
勉強しようと思ってるのに何故エラーメッセージすら読まないのか理解に苦しむ
本に書いてある手順をトレースするのが勉強か?
131nobodyさん:2012/01/25(水) 19:55:07.88 ID:???
>>130
初心者は、人が読んでも意味が無い物だと思ったりするもんだよ
132nobodyさん:2012/01/25(水) 22:17:35.21 ID:???
そういう事だな
自分で調べて解決でき始めたらもう初心者じゃねぇ
133 忍法帖【Lv=5,xxxP】 :2012/01/25(水) 22:18:20.00 ID:???
掲示板などで書きこまれたコメントの数を先頭に表示させたいんですが
後ろで宣言した変数を前に表示させることってできますか?
134nobodyさん:2012/01/25(水) 22:44:32.95 ID:???
日本語でおk
135nobodyさん:2012/01/25(水) 22:52:57.29 ID:???
前もって数えて、先に出力するか
あとに出力したいものを、あとで出力するようにするか
出力処理を後半にまとめる
<?php
いろいろ処理
?>
いろいろ出力
<?php echo $コメントの数 ?>
いろいろ出力
136 忍法帖【Lv=5,xxxP】 :2012/01/25(水) 22:53:12.45 ID:???
たとえば
<p>コメント数(<?php echo $x; ?>)</p>
<?php
// 掲示板のプログラム
$x // コメント数の変数
?>
ってのがあったときプログラムの下で宣言している変数を上で使いたい場合ってどうすればいいのかなと
htmlのなかにphpを書いてると思ってください
137 忍法帖【Lv=5,xxxP】 :2012/01/25(水) 23:04:44.50 ID:???
>>135
やっぱりそうするしかないんですかね
コメント数をwhile文のなかに入れて数えているんですが
処理を分けると2回同じ事をしなくてはならないので冗長な感じがします
138nobodyさん:2012/01/25(水) 23:12:03.21 ID:???
>>137
whileのなかで数えつつ、カウント以外の出力データを変数にためていけばいいよ。
while
カウント
出力データ作成(追加)

カウント出力
出力データ出力
139 忍法帖【Lv=5,xxxP】 :2012/01/25(水) 23:24:01.38 ID:???
>>138
できました
ありがとうございます!
140 忍法帖【Lv=40,xxxPT】 :2012/01/25(水) 23:25:42.47 ID:???
おめでとう。
141nobodyさん:2012/01/26(木) 01:51:46.71 ID:???
とりあえずスレタイは読もうな
142nobodyさん:2012/01/26(木) 03:48:43.25 ID:LhppUY8R
DOMやsimpleXMLElementのオブジェクトの階層が簡単に分かる方法ってないの?
var_dumpしたオブジェクトと生xml(html)ソースを見比べて目的の要素までのパスを探してるけど、
めっちゃ面倒くさいわ

var_dumpしたときに->もついてればいいのに
143nobodyさん:2012/01/26(木) 03:49:24.15 ID:???
あるけど質問者として態度はわきまえような
144nobodyさん:2012/01/26(木) 03:53:21.83 ID:???
分かんないならレスしないでくれる?
145nobodyさん:2012/01/26(木) 04:02:43.02 ID:ZvFchlGT
凄い初歩的な質問だと思うのですが、

$string = 'あ'; // utf-8
if ($string == 0xe38182) {
}

これがtrueにならないのは何故でしょうか?
146nobodyさん:2012/01/26(木) 04:11:57.67 ID:???
文字コード値型ではなく文字列型だから
147nobodyさん:2012/01/26(木) 04:15:56.06 ID:???
慇懃な質問でもこの程度か
148nobodyさん:2012/01/26(木) 04:19:08.44 ID:???
慇懃?どこがだ。最低限だろ。
149nobodyさん:2012/01/26(木) 04:21:38.30 ID:???
他人に最低限を求めるならお前の最低限の口のききかたしろよ
150nobodyさん:2012/01/26(木) 08:38:28.76 ID:???
php.net繋がる?
今朝から海外(たぶんアメリカ)の鯖に繋がらないんだが・・・
151nobodyさん:2012/01/26(木) 08:40:56.82 ID:???
余裕で繋がる
152nobodyさん:2012/01/26(木) 08:41:27.06 ID:???
トンクス
ということはOCNの経路障害か
153nobodyさん:2012/01/26(木) 08:42:15.72 ID:???
154nobodyさん:2012/01/26(木) 09:10:52.29 ID:???
>>145
if ($string == "\xe3\x81\x82") {
155nobodyさん:2012/01/26(木) 13:33:32.38 ID:S/vWMEY8
セッションIDが重複する事はあり得るのでしょうか?
156nobodyさん:2012/01/26(木) 14:29:50.07 ID:???
mb_convert_kana は他のマルチバイトを扱うもの同様に
mbstringが入っていないと使えないということでしょうか?
157nobodyさん:2012/01/26(木) 15:02:27.69 ID:???
>>155
常識的に考えてみなよ
158nobodyさん:2012/01/26(木) 16:04:40.67 ID:???
発行するセッションが0-9の一桁なら11人同時に使ったら重複だな
159nobodyさん:2012/01/26(木) 16:23:22.22 ID:tvfPoK0+
test
160nobodyさん:2012/01/26(木) 16:36:17.38 ID:???
apache2.2.21
php ver 5.3.8
os xp

教えてください。

$str には文字列が入っています
下の 'あいうえお' のところに
$strの文字列をいれたいのですが
どうしたらいいでしょうか?

'$str' といれても 文字列ではなく
$strが入ってしまいます。

$ex->abc = 'あいうえお';
161nobodyさん:2012/01/26(木) 16:40:09.05 ID:???
>>1
162nobodyさん:2012/01/26(木) 16:42:52.94 ID:tvfPoK0+
apache2.2.21
php ver 5.3.8
os xp

教えてください。

$str には文字列が入っています
下の 'あいうえお' のところに
$strの文字列をいれたいのですが
どうしたらいいでしょうか?

'$str' といれても 文字列ではなく
$strが入ってしまいます。

$ex->abc = 'あいうえお';
163nobodyさん:2012/01/26(木) 16:49:51.12 ID:???
変数が文字列中に展開されるためには
シングルクオテーションではなくダブルクオーテーションを使わないといけない
164nobodyさん:2012/01/26(木) 16:56:14.38 ID:???
>>163
ありがとうございます
165nobodyさん:2012/01/26(木) 17:11:57.96 ID:9mO7LzsI
PHPからデーモンを起動することは出来ますか?
コマンドでは php deamon.php となりますが、これをPHPプログラムから起動したいです。
その時にクライアントにデーモンを起動したことを伝えたいので、起動後にPHPプログラムの方は終了させたいです。
166nobodyさん:2012/01/26(木) 17:39:32.93 ID:+EnTjdmH
cURL_multiのマニュアルのコードについて質問させてください
$active = null;
// ハンドルを実行します
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);

while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
do {
$mrc = curl_multi_exec($mh, $active);
} while ($mrc == CURLM_CALL_MULTI_PERFORM);
}
}
上記のように書かれていますが、挙動が理解できません
何故全く同じdo~whileを2回も行わなければいけないのでしょうか?
$mrcをvar_dump()などしてみたのですが、追えませんでした
while ($active && $mrc == CURLM_OK) {
if (curl_multi_select($mh) != -1) {
が何をしているのかも分かりませんでした
167 忍法帖【Lv=40,xxxPT】 :2012/01/26(木) 18:15:55.53 ID:???
>>164
単に入れたいだけなら
$ex->abc = $str;
168nobodyさん:2012/01/26(木) 20:26:10.63 ID:???
>>165
exec('php daemon.php &')
でもすればいいんじゃない?
169nobodyさん:2012/01/26(木) 20:30:01.24 ID:???
>>166
multiの実行完了とサブ接続の実行完了の違いじゃない?
170nobodyさん:2012/01/26(木) 21:05:45.47 ID:KeppCWac
mb_convert_variablesで文字コードを変換できません。
mb_convert_encodingだとなぜかうまくいきます。
この2つの関数って同じ挙動にならないもんなんでしょうか?


$s="ああああ";
mb_convert_variables('EUC-JP','UTF-8',$s);
print $s;


$s="ああああ";
$s=mb_convert_encoding($s, 'EUC-JP','UTF-8');
print $s;
171nobodyさん:2012/01/26(木) 21:52:18.90 ID:???
<?php
$ip = gethostbyname("ドメイン");
if($fp = @fsockopen($ip, 5121,$un,$sinn,2)) {
echo("Map:<font color="#00DD00">online</font>");
fclose($fp);
} else {
echo("Map:<font color="#DD0000">offline</font>");
}
if($fp = @fsockopen($ip, 6121,$un,$sinn,2)) {
echo("  Char:<font color="#00DD00">online</font>");
fclose($fp);
} else {
echo("  Char:<font color="#DD0000">offline</font>");
}
if($fp = @fsockopen($ip, 6900,$un,$sinn,2)) {
echo("  Login:<font color="#00DD00">online</font>n");
fclose($fp);
} else {
echo("  Login:<font color="#DD0000">offline</font>n");
}
?>

複数のサーバーのオンライン状況をチェックできる鯖ステを作りたいのですが、このソースじゃダメみたいで
エラーが出てしまいます。

Parse error: syntax error, unexpected T_STRING in : eval()’d code on line 5

172nobodyさん:2012/01/26(木) 21:58:01.26 ID:???
>>171
鯖ステってなんですか?
MRTGじゃだめなの?
173nobodyさん:2012/01/26(木) 21:59:53.07 ID:???
>>171
マジレスわすれてた。
> echo("Map:<font color="#00DD00">online</font>");
エスケープしてないから。
174nobodyさん:2012/01/26(木) 22:10:24.57 ID:Rab6N0OA
どこをどうエスケープすればいいのでしょうか
175nobodyさん:2012/01/26(木) 22:19:23.72 ID:???
ガンホーに通報しますた
176nobodyさん:2012/01/26(木) 22:29:51.83 ID:???
自分の鯖ならいいけどこれって他所様の鯖でしょ
ポートから察するにラグナロクオンラインみたいだけど
DOS攻撃もいいところだわ
自分の鯖だったらエミュ鯖だろうからそれはそれで問題だけどな
177nobodyさん:2012/01/26(木) 22:30:19.28 ID:???
>>171
エミュ鯖おつ
178nobodyさん:2012/01/26(木) 22:32:09.91 ID:???
ゴミクズどもぶっ殺すぞ
179nobodyさん:2012/01/26(木) 22:37:11.28 ID:???
180nobodyさん:2012/01/26(木) 22:37:16.58 ID:???
>>170
上のはどうなるの?
181170:2012/01/26(木) 22:43:39.42 ID:KeppCWac
>>180
まったく変換されてないです。

$s="ああああ";
print $s;

と同じ結果になります。


あ、実際$sの中身はsimplexml_load_file($url)でRSSから持ってきた文字列です。
これ、なんか関係ありますかねぇ?
182nobodyさん:2012/01/26(木) 22:44:41.41 ID:???
再現するコードを出せ
嘘書くな
183nobodyさん:2012/01/26(木) 22:48:56.17 ID:???
>>181
下のはいいというのはよくわからないけど、RSSの文字だと、そもそも文字コードの変換が
出来ないような文字かもしれないよ。
変換前のとかを、ソースでみてみ。
184170:2012/01/26(木) 23:04:19.58 ID:KeppCWac
>>182
おっしゃるとおりですね。すみません(´д`;)

>>183
mb_convert_encodingだと問題なく変換されます。

↓この人と同じ状態です。解決できてないっぽいけど・・・
http://okwave.jp/qa/q4403628.html
185nobodyさん:2012/01/26(木) 23:06:43.46 ID:???
>>176
DOS攻撃かどうかは使い方によるが。
186nobodyさん:2012/01/26(木) 23:15:53.75 ID:???
>>184
まず問題を切り分けなよ。
関数の問題なのか、RSSから持ってきた文字列の問題なのか
187nobodyさん:2012/01/27(金) 00:07:52.97 ID:???
DOSどうこうというより
エミュ鯖は犯罪だから
188nobodyさん:2012/01/27(金) 00:18:59.00 ID:???
DOS攻撃も犯罪ですから
189nobodyさん:2012/01/27(金) 00:35:24.65 ID:???
通報した
190nobodyさん:2012/01/27(金) 00:37:01.03 ID:???
やべーな
今著作権に厳しいからな。
191 忍法帖【Lv=5,xxxP】 :2012/01/27(金) 01:00:20.03 ID:nAJWCuso
ネットでphpファイルを書くと文法の間違いとか括弧閉じ忘れとかを指摘してくれるサイト/ツールってないかな
192nobodyさん:2012/01/27(金) 01:28:51.51 ID:???
おとなしくIDE使え
193nobodyさん:2012/01/27(金) 01:56:57.61 ID:???
はい
194nobodyさん:2012/01/27(金) 02:23:46.73 ID:???
なんだかんだROって浸透してるなぁ
195nobodyさん:2012/01/27(金) 03:16:50.05 ID:???
@ head 部に記述された jQuery の $(document).ready(function(){ 〜 }); でCSSを弄ってimg要素に加工をするコードと、
と、
A body 部に記述された php のechoで吐かれた <img src='http://graph.facebook.com/".$prof_img_facebook."/picture?type=large' width='".$prof_img_size."'> のコード
(facebook APIを使ってfacebookのプロフ画像ととってくるコード)

ってどっちのが先に実行されますか?
困ってます。。。どなたか詳しい人いましたら教えて下さいm(_ _)m
196nobodyさん:2012/01/27(金) 03:20:39.84 ID:???
readyがいつ実行されるのかを調べるが吉
197170:2012/01/27(金) 05:49:06.74 ID:GnO4EGnm
自己解決(?)しました。

引数の型がobject(SimpleXMLElement)#1〜(?)みたいなオブジェクトだと
変換されないっぽいです。(mb_ detect_ encodingでちゃんと判定されるのに)
stringsにキャストしたら普通に動きました。

mb_convert_variablesは引数にObjectも渡せるはずなのに謎ですね。
http://php.net/manual/ja/function.mb-convert-variables.php
198nobodyさん:2012/01/27(金) 07:24:12.54 ID:???
上で文字列っつってたのも嘘かよ
199nobodyさん:2012/01/27(金) 17:28:49.70 ID:ydVf8Xd1
PHPで登場する「 -> 」とは、どういう意味かネットで検索しようとしたのですが、
「 PHP -> 」のキーワードでは検索プログラムの何かの記号と混同してしまうのか
まったく意中の結果を得られませんでした
「 -> 」の意味を教えてください

ちなみに、こういった場合どういうキーワードで検索するのが
正解なのか教えて頂けると、とても嬉しいです
200nobodyさん:2012/01/27(金) 17:53:44.03 ID:???
アロー演算子です。
マニュアルに一通り目を通すといいよ。
201nobodyさん:2012/01/27(金) 19:29:41.13 ID:???
PHPってUnicodeでの正規表現書けますか?
preg_match('/[\u4e00-\u9fa5]/', ...)
といった記述がしたいのですが、マニュアルに\uのオプションが見つかりませんでした。
もしない場合は、utf-8とかに変換してからチェックするしかないのでしょうか。
202nobodyさん:2012/01/27(金) 21:45:47.62 ID:???
>>198
正確にはオブジェクトの中の配列の中の文字列?
文字列と言えば文字列なわけで。普通にprintできるし。
203nobodyさん:2012/01/27(金) 22:43:29.14 ID:???
>>202
俺に聞かれても知らん
204nobodyさん:2012/01/27(金) 22:44:32.42 ID:???
205nobodyさん:2012/01/28(土) 01:26:13.34 ID:GUwt9u3U
$_SERVER['REMOTE_ADDR']を表示したら「::1」となります。
ローカル環境でXAMPP上で開発しているのですが、
どうしたら「127.0.0.1」のように表示できるのでしょうか?
206nobodyさん:2012/01/28(土) 05:47:04.91 ID:???
>>205
XAMPP IPv6 でググってみましたか
207nobodyさん:2012/01/28(土) 07:46:45.02 ID:???
初心者はXAMPP使うな
208nobodyさん:2012/01/28(土) 12:00:43.80 ID:???
>>205
apacheのhttpd.confをテキストエディタで開いて、
「Listen 80」をコメントアウトし、
Listen 0.0.0.0:80を有効にしてください
209nobodyさん:2012/01/29(日) 05:55:15.43 ID:???
テスト
210nobodyさん:2012/01/29(日) 12:50:10.50 ID:???
複数のURLのソースをいっぺんに取得する方法ってありますか?

foreach($RSS_data as $value){
$URL[]=$value->URL;
}

for ($i = 0, $n = count($URL); $i < $n; $i++) {
echo $URL[$i] . "<br />";
}

これで欲しいURLの一覧は出せるのですが、それぞれのページのHTMLソースが欲しいです。
211nobodyさん:2012/01/29(日) 13:23:48.44 ID:???
file_get_contents()使えよ捗るぞ
212nobodyさん:2012/01/29(日) 13:52:54.80 ID:???
213nobodyさん:2012/01/29(日) 14:04:55.94 ID:???
>>210
file_get_contents()使えよ捗るぞ
214210:2012/01/29(日) 14:24:05.99 ID:axP+ilea
>>213file_get_contentsってループでも使えたんですね
ありがとうございます。
215nobodyさん:2012/01/29(日) 14:51:42.25 ID:???
ループで使えない関数とか謎
216nobodyさん:2012/01/29(日) 14:53:32.26 ID:???
オープン/クローズが必要なの物をクローズせずにループで使って
痛い目にあったんじゃないかと想像w
217nobodyさん:2012/01/29(日) 14:58:48.98 ID:???
fopenを1回だけ、fgetsをループの中でやろうとしたとかそんなんじゃない?
218nobodyさん:2012/01/29(日) 15:00:04.77 ID:???
Accept-Encoding defaultにしとかないとバイナリが送られてくるからな最近は
gzip対応とか面倒だよな
219nobodyさん:2012/01/29(日) 15:54:40.03 ID:eROgtd9q
分散トランザクション機能つきのアプリケーションサーバーには
どのようなものがありますか?
220nobodyさん:2012/01/29(日) 16:32:15.19 ID:???
>>219
MySQL
221nobodyさん:2012/01/29(日) 17:56:53.21 ID:eROgtd9q
>>220
アプリケーションサーバーです。
222nobodyさん:2012/01/29(日) 18:13:06.68 ID:???
>>219
分散トランザクション機能を実装したプログラムを置いてやれば
どんなサーバOSでもいいじゃね
223nobodyさん:2012/01/29(日) 18:26:42.05 ID:???
話がかみ合ってない、聞くとこ間違えてない?
224nobodyさん:2012/01/29(日) 20:27:41.75 ID:eROgtd9q
>>222
phpの仮想マシーンレベルではサポートされていないのでしょうか?
225nobodyさん:2012/01/29(日) 21:19:04.95 ID:???
トランザクションってなんですか?
226nobodyさん:2012/01/29(日) 21:28:23.43 ID:???
虎のくしゃみです
227nobodyさん:2012/01/29(日) 21:30:31.10 ID:???
たぶんガンダムに出てくるモビルスーツのことだ
228nobodyさん:2012/01/29(日) 21:31:33.98 ID:???
マイケルジャクソンみたいなもんだ
229nobodyさん:2012/01/29(日) 21:36:45.42 ID:???
俺は>>226を評価する
230nobodyさん:2012/01/29(日) 21:39:39.80 ID:???
phpのバージョンアップってなんで頻繁なんですか?
231nobodyさん:2012/01/29(日) 21:47:48.84 ID:???
>>230
おまえも早くバージョンアップしないと世の中についていけないぞ
232nobodyさん:2012/01/29(日) 22:10:16.37 ID:???
>>231
バージョンアップすると劇的に変わるもんでしょうか?
233nobodyさん:2012/01/29(日) 22:21:56.26 ID:???
生き残ることができるのは変化できる者だけらしいよ
完成は死を意味する
234nobodyさん:2012/01/29(日) 23:10:47.75 ID:???
>>230
PHPのバージョンアップは単なるバグフィックスだよ。
235nobodyさん:2012/01/29(日) 23:14:26.75 ID:???
人間は死んではじめて完成するんだね
236nobodyさん:2012/01/29(日) 23:21:07.44 ID:???
>>235イキロ
237nobodyさん:2012/01/29(日) 23:45:27.73 ID:???
また分散アプリケーションサーバ厨か
238nobodyさん:2012/01/30(月) 00:03:38.66 ID:XqkYh1fq
>>237
phpでFacebookを作る方法を教えて下さい。
239nobodyさん:2012/01/30(月) 00:21:21.90 ID:???
>>238
あいつら特許とったからパクらないほうがいいよ
240nobodyさん:2012/01/30(月) 01:33:55.01 ID:???
>>239
facebookはphpで作られているのですか?
241nobodyさん:2012/01/30(月) 01:54:53.10 ID:???
Facebookは欲望と創造性、人間の夢のようなモノで作られている

242nobodyさん:2012/01/30(月) 02:17:13.75 ID:???
>>241
拡張子はphpですが、実際は別の言語で作られているのでしょうか?
243nobodyさん:2012/01/30(月) 02:22:27.40 ID:???
>>242
hiphopで検索しろ
244nobodyさん:2012/01/30(月) 02:51:36.93 ID:???
>>230
どこかだよ
おせーっつの
245nobodyさん:2012/01/30(月) 07:50:54.83 ID:Tb4TsYt/
PHPでメール送信スクリプトを書いています。
ファイルを添付して送信したいのですが、既存ファイルを指定するのではなく、
動的に生成して添付したいのですが、メモリ上にファイル(に相当するもの?)を作成するには
どうすればいいんでしょうか。
一時ファイルを保存=>添付してメール送信=>ファイル削除、の流れも考えられますが
ディスクに保存しないやり方があれば知りたいです。
246245:2012/01/30(月) 08:01:45.99 ID:Tb4TsYt/
質問直後で申し訳ないです。今こちらに情報が見つかりました。
http://docs.php.net/manual/ja/wrappers.php.php
php://memoryを利用することで通常のファイルと同様に扱えるようです。
失礼しました。
247nobodyさん:2012/01/30(月) 08:35:17.19 ID:S8XrH54p
PHP(linux+apache上)でチャットを作ろうと思うのですが、
ブラウザに数秒毎にリフレッシュさせるか、Comet方式で作るか迷っています。
cometは同時接続数が多くなってサーバに繋がらない状況になったりしないか心配してるのですが
不特定多数がチャットを使用するとしか見積もれない場合は数秒毎リフレッシュのほうがいいのでしょうか?
248nobodyさん:2012/01/30(月) 09:01:56.34 ID:???
客の要望と、機器スペックとかの話。
PHP関係ないので、自分で決めて。
249nobodyさん:2012/01/30(月) 09:29:40.18 ID:???
失礼しました。
他のところで相談してきます。
250nobodyさん:2012/01/30(月) 23:01:20.09 ID:???
>>247
まずHTML5のWebSocketsで作る。
PHPのチャットは遅すぎてありえない。
251nobodyさん:2012/01/30(月) 23:26:05.77 ID:???
EventSourceでもいいと思うよ
252nobodyさん:2012/01/31(火) 00:16:37.72 ID:???
253nobodyさん:2012/01/31(火) 08:06:53.36 ID:dTfxPGSX
Cのstaticと同じように関数で2度目に呼ばれた時に値を保持できる方法ってありませんか?
グローバル以外で><
254nobodyさん:2012/01/31(火) 08:10:56.32 ID:???
>>253
static
255nobodyさん:2012/01/31(火) 08:13:12.55 ID:dTfxPGSX
256nobodyさん:2012/01/31(火) 08:18:06.09 ID:???
257nobodyさん:2012/01/31(火) 08:26:37.17 ID:dTfxPGSX
>>254>>256
失礼しましたm(__)m
258nobodyさん:2012/01/31(火) 13:02:51.47 ID:6KRZikfh
ttp://www.vector.co.jp/soft/unix/net/se334908.html
ごちゃまぜRSSリーダーforPHP -ver1.3
を、さくらのレンタルサーバーで動かしています。
このごちゃまぜリーダーでは件数指定と日付表示が無かったので
★〜★の欄を追加して日付表示と件数指定をしています

<?php
require_once 'phplib/main.inc';
$rss = sox_fetch_rss();
while ( ★$i <=19 and ★ list($k,$v) = each($rss)) {
$p_title = $v->getMainTitle();
$url = $v->getURL();
$title = $v->getTitle();
★$item = $v->getDate();;
$item = strtotime($item);
$itemday = date('Y-m-d H:i:s',$item); //2009-04-24 22:25:34★
echo "<li><a href=\"$url\"><h1>$title</h1><p>$p_title</p><p>★$itemday★</p></a></li>\n";
★$i++;★
}
?>

この場合、件数指定表示もうまくいき RSSの日付表示も行われるのですが
日付はRSS1.0のものしか表示されず RSS2.0(主にアメブロ)のものは 1970-01-01 等を統一表示されてしまいます。

getDate()が関連してると思い、main.inc内を見てみたところ

  function getDate(){
  return $this->item['dc']['date'];
  }

の部分が関連してるのがわかりました。 dc dateはRSS1.0の場合でRSS2.0はpubdateでないといけないようです。
この場合、RSSの種類によって適切に日付情報をgetするにはどうしたらよいでしょうか?
259nobodyさん:2012/01/31(火) 15:12:12.35 ID:???
>pubdateでないといけない
PHPと関係ないけどそんなこたぁない
pubDateでもいいがdc:dateでもいい

$this->item['dc']['date'];が1970-01-01のものに対しては
pubdateを取得できるか調べてあれば取得なければ1970-01-01を返す
という処理を書けばいいんじゃねえの
260nobodyさん:2012/01/31(火) 15:54:23.45 ID:6KRZikfh
>>239
そのif文の構築方法がわからないんです。
main.incの
  function getDate(){
  return $this->item['dc']['date'];
  }

おそらくここで if 条件文を入れると思うのですが
何を基準に pubdateがあるか・無いかの入れ子を入れるのかがサッパリで

dcdate pubdate 日付 等の単語を入れて構文を一通り見たのですが
ごちゃまぜRSSリーダーに添ったのがなかったのでこちらへ質問投下しました。






一応別の解決策としてRSS2.0のものはRSS1.0で読み込むようにする という手法をとって
2.0を全部排除する事で日付の不正表示は解決しています。
261nobodyさん:2012/01/31(火) 16:07:29.23 ID:???
おまえなそれ丸投げじゃないか
改造スレはスレチ
262nobodyさん:2012/01/31(火) 16:39:35.77 ID:???
>>258スレ移動しました
263nobodyさん:2012/01/31(火) 17:08:59.31 ID:jn5j2DcL
JAVAアプレットのようにWEB上で自分のウィンドウを持って、
プログラムを起動して、その中でリアルタイムに他のユーザーやサーバーと
メッセージのやりとりや対戦をしたいのですが、どのような言語や仕組みが
最適でしょうか?
一部にFLASHを使うのはありですが、なるべくJAVA系を使う方向が助かります
ただし、今回はJAVAアプレットはいまいち古いという理由で使えないです
264nobodyさん:2012/01/31(火) 18:11:35.07 ID:???
スレタイ
265nobodyさん:2012/01/31(火) 18:23:22.58 ID:???
【】の中は副題みたいで見落としちゃう事はよくある
266nobodyさん:2012/01/31(火) 19:40:56.46 ID:???
副題もちゃんと読めよ
267nobodyさん:2012/01/31(火) 19:47:27.41 ID:???
>>263
Flashをviewにして内部はJavaでよいのでは?
BlazeDSでFlexとJavaで連携させたら簡単だよ。
268nobodyさん:2012/01/31(火) 19:54:53.86 ID:???
てすと
269nobodyさん:2012/01/31(火) 19:55:15.20 ID:???
ごめんまちがえたm(_ _)m
270nobodyさん:2012/01/31(火) 20:29:05.34 ID:???
>>264-266
すみません、PHPの部分に気づいていませんでした
該当スレのほうに移動します

>>267
ありがとうございます
少し調べてみると、かなりいい感じだったのでよく調べて検討してみようと思います
271nobodyさん:2012/02/01(水) 00:34:48.86 ID:???
ひさしぶりのリハビリ課題として、
ちょっとこれ↓を作ってみようと思うんだけど、

http://www.pixiv.net/member_illust.php?mode=medium&illust_id=24745244

どういう構造にしようかな。

ローカルタイムを取得して、
上と下に2行に分けて表示するだけでいいかな。
272nobodyさん:2012/02/01(水) 00:59:21.63 ID:???
>>1
273nobodyさん:2012/02/01(水) 04:18:59.21 ID:???
誰かOSQA使ってまとめサイト作ってくれませんか?
質問も回答もOpenIDで編集できるんで適してると思うんですが
274nobodyさん:2012/02/01(水) 05:36:22.73 ID:???
>>273
誰か、じゃなくてお前が作れ。
言い訳はいいから、早く作れ。
275nobodyさん:2012/02/01(水) 06:41:01.44 ID:???
作る直前まで言ったんだけどpythonは無理でした
276nobodyさん:2012/02/01(水) 07:18:31.31 ID:???
>>275
言い訳はいいから、早く作れ。
277nobodyさん:2012/02/01(水) 07:26:17.86 ID:???
誰か作って
278nobodyさん:2012/02/01(水) 07:32:28.84 ID:???
osqaって何?
279nobodyさん:2012/02/01(水) 07:43:18.42 ID:???
280nobodyさん:2012/02/01(水) 11:16:30.88 ID:IMdwWgiD
相談させてください

$person= array("のび太","ジャイアン","スネ夫");
$music = array("ハーモニカ","太鼓","バイオリン");
$fruits = ("みかん","りんご","メロン");

こういう配列に、「のび太、、バナナ(変更)」とか「しずか、ピアノ、いちご(追加)」
「スネ夫、引越(削除)」というデータを受け取って更新しようと思います。
それで自分の考えた処理の流れは間違っている感じがするのですが、
どうしたらいいのでしょうか。

つづく
281nobodyさん:2012/02/01(水) 11:17:38.56 ID:IMdwWgiD
$shori = ""; $person2 = array(); $music2 = array(); $fruits2 = array(); //初期化

for ( $i = 0; $i < count($person); $i++ ){

  if ( $person[$i] === $_POST["person"] ){    // すでに登録があるとき

    if ( $_POST["hikkoshi"] == 1 ){        // 削除 (配列に入れない)
      $shori = $person[$i] . "を削除しました";
  } else {                     // 変更
      array_push($person2, $person[$i]);
      array_push($music2, $_POST["music"]);
      array_push($fruits2, $_POST["fruits"]);
      $shori = $person[$i] . "を変更しました";
  }

} else {                      // 新規
      array_push($person2, $_POST["person"]);
      array_push($music2, $_POST["music"]);
      array_push($fruits2, $_POST["fruits"]);
      $shori = $person[$i] . "を追加しました";
}

}
$person = $person2; $music = $music2; $fruits = $fruits2;
echo $shori;

つづく
282nobodyさん:2012/02/01(水) 11:19:36.40 ID:IMdwWgiD
※ これだと、「ジャイ子、引越し」が来たとき(配列にない人物登場)
エラーをだせない。
※ そもそもforループを、配列の人数の数で回したら、新規の人(現在の
人数プラス1)のときに、ループを脱出してしまう?

考えているうちにどんどんわからなくなってしまって・・・。よろしくお願いします。
283nobodyさん:2012/02/01(水) 11:32:29.85 ID:???
if ( isset( $person[ $_POST["person"] ] ) {
//あるとき
} else {
//ないとき
}
284nobodyさん:2012/02/01(水) 11:38:34.36 ID:IMdwWgiD
>>283
ありがとうございます。
でも、if ( isset( $person[ $_POST["person"] ] ) で調べたら、全部
あるとき になりそう。
285nobodyさん:2012/02/01(水) 11:40:42.09 ID:IMdwWgiD
あっ、間違えました。
配列 person の中に、$_POST["person"] があるかどうかを
調べてるんですね。
286nobodyさん:2012/02/01(水) 11:49:25.84 ID:IMdwWgiD
if ( isset( $person[ $_POST["person"] ] ) {
if( 引越し ){
    配列に入れない
} else {
    配列にいれる
}
} else {
  if( 引越し ){
    エラー
  } else {
    追加
  }
}

こんな感じでいいんでしょうか。
287nobodyさん:2012/02/01(水) 11:56:49.09 ID:???
何をしたいのかが正確にはこちらには分からないので
まずやってみればいいんじゃないでしょうか。
288nobodyさん:2012/02/01(水) 12:07:53.27 ID:IMdwWgiD
>>287
そうですね。似た処理を繰り返してしまうようですが、やってみます。
ありがとうございました。
289nobodyさん:2012/02/01(水) 13:36:51.57 ID:???
こっちをつかう。
http://manual.xwd.jp/function.array-search.html

>>283
$personのキーはインデックスしかないようだよ
290nobodyさん:2012/02/01(水) 14:22:33.02 ID:0PT+5Q34
クラスの書き方について質問です
以下のtest1のようなクラスの書き方を今までしてきたのですが、
偉い人の書いたクラスやここ最近のフレームワークなんかのクラスを
眺めているとtest2のような書き方をよく目にするんですがどう言った
ご利益があるんでしょうか?

class test1{
function __construct($str="") {
self::test1($str);
}
function test1($str){
echo $str."\n";
}
}
new test1("hoge");

class test2{
function __construct($str="") {
echo $str."\n";
}
function gc($str){
return new test2($str);
}
}
test2::gc("hage");
291nobodyさん:2012/02/01(水) 14:46:30.12 ID:???
例がおかしいが雰囲気から察するにたぶんシングルトンだろ
デザインパターン入門本でもあさるといい
292280:2012/02/01(水) 15:27:21.00 ID:IMdwWgiD
>>289
array_searchという関数もあるんですね。

もしこれを使うとしたら、こんな感じになるのでしょうか。すごくすっきり!
ありがとうございます。(動くかどうか、これからやってみます。)
293280:2012/02/01(水) 15:29:02.25 ID:IMdwWgiD

if( 引越し ){
  $key = array_search( $_POST["person"] , $person );
  if( $key ){
    unset ( person[$key] );
    unset ( music[$key] );
    unset ( fruits[$key] );
    $shori = $_POST["person"] . "は、引越ししました";
  } else {
    die( "そんな人はいません" );
  }
}
if ( isset( $person[ $_POST["person"] ] ) {
//あるとき
  $key = array_search( $_POST["person"] , $person );
  $music[$key] = $_POST["music"];
  $fruits[$key] = $_POST["fruits"];
  $shori = $_POST["person"] . "を変更しました";

} else {
//ないとき
  array_push( $person, $_POST["person"] );
  array_push( $music, $_POST["music"] );
  array_push( $fruits, $_POST["fruits"] );
  $shori = $_POST["person"] . "を追加しました";
}

echo $shori;
294nobodyさん:2012/02/01(水) 15:31:55.30 ID:???
どうせ遅かれ早かれDB使うことになるんだろうし、そっち覚えたほうが早そうだな
295nobodyさん:2012/02/01(水) 15:52:50.73 ID:0PT+5Q34
>291
デザインパターンのシングルトンって言うんですね
調べてみます。ありがとうございました。
296動きました!:2012/02/01(水) 16:08:24.79 ID:IMdwWgiD
if($_POST["hikkoshi"] == 1 ){
$key = array_search( $_POST["person"] , $person );
if( $key ){
unset ( $person[$key] );
unset ( $music[$key] );
unset ( $fruits[$key] );
$shori = $_POST["person"] . "は、引越ししました";
} else {
die( "そんな人はいません" );
}
} else {
if (array_search( $_POST["person"] , $person)) {
//あるとき
$key = array_search( $_POST["person"] , $person );
if($_POST["music"]) { $music[$key] = $_POST["music"];}
if($_POST["fruits"]) { $fruits[$key] = $_POST["fruits"];}
$shori = $_POST["person"] . "を変更しました";

} else {
//ないとき
array_push( $person, $_POST["person"] );
array_push( $music, $_POST["music"] );
array_push( $fruits, $_POST["fruits"] );
$shori = $_POST["person"] . "を追加しました";
}
}
echo $shori."<hr>";
for ($i=0; $i<count($person);$i++){
echo $person[$i]." は ".$music[$i]." を嗜み ".$fruits[$i]." がスキです<br>";
}
297280:2012/02/01(水) 16:09:34.76 ID:IMdwWgiD
無事希望通りに動くようになりました。
>>293ではポロポロミスがあったので、動いたものを貼っておきます。
ありがとうございました。
298ああ、タブが orz 書き直しました:2012/02/01(水) 16:12:44.52 ID:IMdwWgiD
if($_POST["hikkoshi"] == 1 ){
  $key = array_search( $_POST["person"] , $person );
  if( $key ){
    unset ( $person[$key] );
    unset ( $music[$key] );
    unset ( $fruits[$key] );
    $shori = $_POST["person"] . "は、引越ししました";
  } else {
    die( "そんな人はいません" );
  }
} else {
  if (array_search( $_POST["person"] , $person)) {
    //あるとき
    $key = array_search( $_POST["person"] , $person );
    if($_POST["music"]) { $music[$key] = $_POST["music"];}
    if($_POST["fruits"]) { $fruits[$key] = $_POST["fruits"];}
    $shori = $_POST["person"] . "を変更しました";

  } else {
    //ないとき
    array_push( $person, $_POST["person"] );
    array_push( $music, $_POST["music"] );
    array_push( $fruits, $_POST["fruits"] );
    $shori = $_POST["person"] . "を追加しました";
  }
}
echo $shori."<hr>";
for ($i=0; $i<count($person);$i++){
  echo $person[$i]." は ".$music[$i]." を嗜み ".$fruits[$i]." がスキです<br>";
}
299nobodyさん:2012/02/01(水) 16:22:03.39 ID:???
$name=array("music","fruits","shori");
$key = array_search( $_POST["person"] , $person );
if(引越し){
    if($key)foreach($name as $val)unset($$name[$key])
    else die("そんな人はいません");
    $shori=$_POST["person"]."は、引っ越しました";
}
if($key)foreach($name as $val)$$val[$key]=$_POST[$val];
else foreach($name as $val)$$val[]=$_POST[$val];
$shori=$_POST["person"]."を".($key)?"変更":"追加"."しました";

edho $shori;

俺が書くならこんな感じかな
特別に書いたわけじゃなくて普段からこんな感じで
300nobodyさん:2012/02/01(水) 16:28:54.51 ID:???
上から4行目はunset($$name[$key])
じゃなくてunset($$val[$key])か
301nobodyさん:2012/02/01(水) 17:53:41.04 ID:???
普段からキーを活用しないし、すぐエンバグするのか
302nobodyさん:2012/02/01(水) 19:30:07.31 ID:???
>>299
書き方がきたねぇ
303nobodyさん:2012/02/01(水) 19:48:25.00 ID:???
シングルトンはphpでは意義は少ないよ。公式サイトにも書いてるやん。今、php向けのデザインパターン本てあるのかな?
304nobodyさん:2012/02/01(水) 19:49:29.66 ID:???
意義が少ないからとか多いからという理由でやるやらないを決めるの?
305nobodyさん:2012/02/01(水) 19:52:10.71 ID:???
>>299だけど、じゃぁ誰か書いてみてくれよwwwww
306nobodyさん:2012/02/01(水) 19:59:04.52 ID:???
デザインパターンはphpに限定して考えるべき。間違ってもネット上にあふれているJavaの情報に頼らないこと。
307nobodyさん:2012/02/01(水) 20:08:36.44 ID:???
参考もだめかな?
理由を教えてくれると嬉しいです。
308nobodyさん:2012/02/01(水) 20:10:09.75 ID:???
>>305
要件的に名前がユニークっぽいし、後続のコードもそれが前提みたいだから
$arr['のびた'] = array('music' => '鼻歌', 'fruits' => 'きんつば');
って入れといたほうが楽じゃね?ってことなんだけど。
309nobodyさん:2012/02/01(水) 20:22:44.52 ID:???
>>305
ifの括弧省略するなってことなんだけど
スペースがなくて読みづらいところ大杉ってことなんだけど
日本語を変数名に使うなってことなんだけど
310nobodyさん:2012/02/01(水) 20:26:12.49 ID:???
>>309
・どうでもいい
・どうでもいい
>>293のせい
311nobodyさん:2012/02/01(水) 20:34:47.13 ID:???
コーディング規約も知らんレベルかw
312nobodyさん:2012/02/01(水) 20:39:55.52 ID:???
このスレのコーディング規約ってあんの?
313nobodyさん:2012/02/01(水) 20:43:05.99 ID:???
なんでもいいし初心者なんだし
314nobodyさん:2012/02/01(水) 20:46:32.31 ID:???
初心者なら仕方がない
315nobodyさん:2012/02/01(水) 20:49:20.80 ID:q9L1uqO/
localhost にて「Notice: Undefined index: submit in 〜」だらけで困っています
なんとか消えるようにしたいのですが、とりあえず一番最初の部分を挙げると

//
$csv_dir = './';
$csv_file_name = 'data.csv';
$disp_size = 100;
$item_index = 'ID,Name,URL,Data';

$csv_file_name = $csv_dir. $csv_file_name;

if ($_REQUEST['submit'] == "add_exec") {$msg = AddNewData($csv_file_name);}
elseif ($_REQUEST['submit'] == "edit_exec") {$msg = Editdata($csv_file_name, $item_index);}
elseif ($_REQUEST['submit'] == "delete") {$msg = DeleteData($csv_file_name, $item_index);}
elseif ($_REQUEST['submit'] == "direct_edit_exec") {$msg = DirectEditdata($csv_file_name);}
elseif ($_REQUEST['submit'] == "backup") {$msg = BackupData($csv_file_name, $csv_dir);}

$data = file($csv_file_name);
$index = 0;
$all_size = sizeof($data);
if (sizeof($data) > $disp_size) {
$index = floor(sizeof($data) / $disp_size);
}

if ($item_index) {
$data = array_reverse($data);
array_push($data, $item_index . "\n");
$data = array_reverse($data);
}

らへんがダメっていってるみたいです
よろしくお願いします
316nobodyさん:2012/02/01(水) 20:50:17.41 ID:???
>>314
コードが汚い読めないって言うのも初心者だよな
317nobodyさん:2012/02/01(水) 20:51:08.61 ID:???
>>315
リクエストパラメータにsubmitってキーがあるかどうか調べてから処理をするようにする。
318nobodyさん:2012/02/01(水) 21:06:06.74 ID:???
PHP本体の組み込み関数ですらコーディング規約が守られてないのにw
319nobodyさん:2012/02/01(水) 21:07:02.18 ID:???
>>315
error_reporting(0);
を最初につける
320315:2012/02/01(水) 21:13:18.96 ID:q9L1uqO/
>>317
ありがとうございます
>>319
ありがとうございます
今はこれで十分です

ありがとうございました
321nobodyさん:2012/02/01(水) 21:21:27.32 ID:???
今度はエラーも出ずに処理がとまるんです、と嘆くんだな
322nobodyさん:2012/02/01(水) 21:28:55.03 ID:???
phpのコードは汚い
323nobodyさん:2012/02/02(木) 00:41:57.24 ID:???
>>316
読めないなんて言ってないじゃんw
>>315のコードのほうがよっぽど読みやすいよw
324nobodyさん:2012/02/02(木) 04:09:39.15 ID:???
>>323 = >>319
325nobodyさん:2012/02/02(木) 04:31:23.55 ID:???
俺の気に入らないレスは全部同一人物()
326nobodyさん:2012/02/02(木) 06:11:51.40 ID:???
読みやすい読みにくいしか言わずに、質問に回答すらしない態度を非難した。
327nobodyさん:2012/02/02(木) 06:12:47.32 ID:???
と思ったけど、回答待ちの質問者かもしれないか
328nobodyさん:2012/02/02(木) 09:49:16.50 ID:???
>>308
配列の要素の中にも配列をいれられるの?知らなかったー。
>>308のきんつばをとりだすときにはどうするの?
329nobodyさん:2012/02/02(木) 10:11:46.89 ID:???
$arr['のびた']['fruits']
330nobodyさん:2012/02/02(木) 10:19:22.97 ID:???
>>329
もしかして、これが二次元配列?っていうやつ?ちょっとぐぐってくるー。
331nobodyさん:2012/02/02(木) 10:30:05.55 ID:???
またドラエもんかよ
ったく
332nobodyさん:2012/02/02(木) 12:57:50.80 ID:???
きんつばってフルーツなの?和菓子じゃないの?
333nobodyさん:2012/02/02(木) 13:03:12.77 ID:???
ついにそのツッコミが
334nobodyさん:2012/02/02(木) 14:04:18.61 ID:???
PHPバージョン5.2.17、EasyBotterを使ってbot作成中です
一通りの基礎はできたので時間分けをしようとしたところでハマりました

//基本のポスト構造
if(date("i") <= 3){
$response = $eb->postRandom("data.php");
}
$response = $eb->reply(8,"reply.php","reply_pattern.php");
の上に、

//昼用ポスト構造
if(date("G") == 12) || (date("G") == 13) || (date("G") == 14)
else if(date("i") <= 3){
$response = $eb->postRandom("hiru_data.php");
}
$response = $eb->reply(8,"hiru_reply.php","hiru_reply_pattern.php");

を置いてみたんだが、手動で実行すると500エラーが出ます
昼用ポスト構造を削除して、基本ポスト構造のみにすると、手動でもCronからでも動くのですが
他のif構造を作って置いても、やはり置いた時点で駄目
そろそろ心が折れそうですorz 誰か助けて…
335nobodyさん:2012/02/02(木) 14:05:09.37 ID:F8NQ2fKh
失礼、sageにチェックが入ってた
336nobodyさん:2012/02/02(木) 14:14:59.05 ID:???
・一通り基礎ができていない
・サポセンじゃないのよ非標準ライブラリは作者にお聞き
337nobodyさん:2012/02/02(木) 14:24:13.17 ID:???
if (date("G") == 12 || date("G") == 13 || date("G") == 14) 
338nobodyさん:2012/02/02(木) 14:35:54.74 ID:F8NQ2fKh
>>336
すまん、マジモンの初心者なんだ
もう少しここで勉強させて

>>337
コピペで修正してみましたが同じ結果でした
何が原因なんだろう…
339nobodyさん:2012/02/02(木) 14:57:00.77 ID:???
>>338
何はともあれエラーが見られるようになってなきゃ話にならん
レンタルサーバーでやってるならエラーログについて問い合わせる
340nobodyさん:2012/02/02(木) 15:12:43.50 ID:???
>>339
わかった、ありがとう
サーバーに問い合わせて、もう少しがんばってみるよ
またお世話になるかもしれないので、そのときはよろしくお願いします
341nobodyさん:2012/02/02(木) 15:13:11.77 ID:F8NQ2fKh
だからsageチェックは外せとあれほど… すまんかった
342nobodyさん:2012/02/02(木) 15:15:50.78 ID:???
サーバに問い合わせるとか以前に
レンサバで開発するなドアホウ
343nobodyさん:2012/02/02(木) 19:25:40.59 ID:ZbQr3Kg2
http://www.ustream.tv/channel/livech2013
このお姉さんかわいい。
ひげのおっさんがphpをdisっている。
でも意味が分からない。
phpのバージョンでエラーがでるなら直せばいいし、
フレームワークも自社で決めればいいのに。
phpはごちゃごちゃしてわからないからrubyでというのはおかしくない?
もっといえばjavaでいいじゃん。と思ってしまうのだが、
たまたまこの人がrubyが好きだからじゃね。と思ってしまうのだが
344nobodyさん:2012/02/02(木) 19:27:17.90 ID:ZbQr3Kg2
偉い人教えて。
僕の考え間違っている?
345nobodyさん:2012/02/02(木) 21:28:02.82 ID:???
つうか実況スレじゃないしタイムリーなこと書いてもレスのしようがないわけだが
ruby ヒゲ PHPでぃすってる
といえばruby開発者の松本か?
あいつはスルーしていい
346nobodyさん:2012/02/02(木) 22:12:30.69 ID:???
名前空間って利用されてますか?
あまり見かけませんが
347nobodyさん:2012/02/02(木) 22:14:46.18 ID:???
>>1
348nobodyさん:2012/02/02(木) 22:17:25.59 ID:???
IDだせって?
いやだよ〜〜〜んm9(^Д^)
349nobodyさん:2012/02/03(金) 00:06:20.70 ID:???
OSQAのまとめマダー?
350nobodyさん:2012/02/03(金) 00:17:17.09 ID:???
時間の無駄
金の無駄
351nobodyさん:2012/02/03(金) 02:36:27.90 ID:???
>>343
英語はわかりやすいです
スペイン語はわかりにくいのでダメな言語です
352nobodyさん:2012/02/03(金) 03:55:18.51 ID:JJuGjQNC
児童ポルノ画像集めるためにphpで掲示板作ってた友人が、
受験勉強に集中するって言って掲示板を閉鎖しました。
353nobodyさん:2012/02/03(金) 05:13:17.43 ID:q+s48ZyT
コードの後ろで宣言した変数をコードの前で使うことは可能ですか?
354nobodyさん:2012/02/03(金) 05:54:27.38 ID:???
無理
355330:2012/02/03(金) 11:44:01.78 ID:QL2/ase/
昨日さんざん二次元配列いじってみたよ。便利ですね〜これ。

ついでに報告しますと、>>298 で、

$key = array_search( $_POST["person"] , $person );

のところ、配列の0番目がPOSTされると、$keyが 0 になって、その次の
if文のelseの方にいっちゃいました (´・ω・`) で if( $key===FALSE ) みたいな
判定をすることにして、無事うまくうごきました。

みなさん、どうもありがとうございました!
356nobodyさん:2012/02/03(金) 18:22:41.42 ID:yTXNQKBG
Macのutf-8って濁音と半濁音の扱いが違いますよね?
ディレクトリに存在するファイルを検索している時に、濁音のファイルを探していると一致しません。
これを変換する関数ってありますか?
(sjis-winのutf-8-macみたいな)

<?php

//UTF-8のスクリプト

$file_name = ファイル名を取り出す関数();
if( $file_name == 'ダウンロード' ){
// OK
}else{
// NG
}
357nobodyさん:2012/02/03(金) 18:32:02.29 ID:???
358 忍法帖【Lv=7,xxxP】 :2012/02/03(金) 19:20:54.54 ID:???
phpファイルをHTML文書にincludeするとき頭に変なゴミが付くの何なんだ?
359nobodyさん:2012/02/03(金) 19:24:53.46 ID:???
>>358
BOM?
360nobodyさん:2012/02/03(金) 19:31:47.22 ID:???
361nobodyさん:2012/02/03(金) 19:45:36.52 ID:???
>>358
>>1
362nobodyさん:2012/02/03(金) 19:59:09.41 ID:yTXNQKBG
>>357
ありがとうございます。pearですか。
自分しか使わない場合はこれでいいんですが、配布のことを考えると微妙ですね。

>>360
ありがとうございます。しかし5.3以上なんですね。

pearでどうやってるか調べてみます。
無理そうなら5.3以上は正しく動作するという方向にします。
363nobodyさん:2012/02/03(金) 20:08:49.47 ID:???
macクソだな
364nobodyさん:2012/02/03(金) 20:09:29.69 ID:???
あ、ちなみにpeclなら5.2.0から使えるみたいよ
365nobodyさん:2012/02/03(金) 20:19:07.72 ID:???
5.3でもデフォルトでオンじゃないし、PEARのファイル同梱しとけば
366nobodyさん:2012/02/03(金) 20:26:52.05 ID:???
>>362
根本の対策じゃなくて、macのファイルの濁音の問題だけでいいなら
http://labs.unoh.net/2007/09/unicode-on-mac.html
みたいにやればいいわけで
367 忍法帖【Lv=7,xxxP】 :2012/02/03(金) 20:59:15.93 ID:???
>>359
それだ
ありがとう
368nobodyさん:2012/02/03(金) 22:13:55.66 ID:wKNTeG6h
はじめましてphp初心者です。
質問なのですがpostまたはgetでデータを送るときに、
データを送るファイルとデータを処理するファイルを別にすべきか否か悩んでいます。

つまり、 データ送る.html(php) と データ処理する.php か、
データ送る_処理する.php のどちらにすべきか(どちらが普通か)ということです。

宜しくお願いします。
369nobodyさん:2012/02/03(金) 22:19:11.03 ID:???
>>368
どちらでも。開発しやすい方やメンテしやすい方を選びなされ。
370nobodyさん:2012/02/03(金) 22:27:40.68 ID:???
>>369
やはりそこは好みの問題なんですかね。
私はファイル数が多いと嫌なので1ファイルで処理しようと思います。
ありがとうございます。
371nobodyさん:2012/02/03(金) 22:32:47.68 ID:???
好みの問題じゃなくてメリット・デメリットの問題
372nobodyさん:2012/02/03(金) 22:41:19.74 ID:???
初心者なんだからなんでもいいだろ
はい次
373nobodyさん:2012/02/03(金) 22:54:14.82 ID:???
なんでもよくないよ
374nobodyさん:2012/02/04(土) 00:46:21.55 ID:1holxMJc
【OS名】CentOS(ロリポのやつ)
【PHPのバージョン】5.2
【連携ソフトウェア】なし

phpで簡単にpost通信がしたくてphp post通信でググって出てきたのの1ページ目のはやったんですがデータが送られませんでした

以前ロリポで出来たので無理ではないと思いますがやり方をわすれてしまいました(たしかfile_get_contentsのだったはず)
375nobodyさん:2012/02/04(土) 00:48:38.20 ID:1holxMJc
>>374
追記

19を見てから投稿しました
376nobodyさん:2012/02/04(土) 00:49:56.36 ID:???
>>374
何を聞きたいのか分かりません
あと>>19がどう関係してるのか分かりません
377nobodyさん:2012/02/04(土) 00:52:05.19 ID:???
PHPって
378nobodyさん:2012/02/04(土) 01:00:29.61 ID:1holxMJc
>>376
>>5の19です
379nobodyさん:2012/02/04(土) 01:08:53.63 ID:???
>>378
で?
380nobodyさん:2012/02/04(土) 01:29:15.13 ID:???
アスペだなこれは
381nobodyさん:2012/02/04(土) 01:34:37.38 ID:???
自分の思考領域と他人の思考領域の区別が付かないんだろうな
382nobodyさん:2012/02/04(土) 01:34:42.95 ID:???
くそわろた
383nobodyさん:2012/02/04(土) 02:00:51.15 ID:U1eS11UE
>>363
Mac糞ですよ。

>>364-365
デフォルトONじゃないんならあんまり意味がないですね・・・
やっぱりpearがいいかもしれませんね・・・

>>366
あ、なるほど。確かにそれでもよさそうです。
ありがとうございます。
384nobodyさん:2012/02/04(土) 08:22:34.57 ID:???
>>383
デフォルトONじゃないんならあんまり意味がないってなんで?
385nobodyさん:2012/02/04(土) 10:37:06.19 ID:???
ruby使いはmac多いよね
386nobodyさん:2012/02/04(土) 13:20:31.56 ID:???
>>379-382
自演
387nobodyさん:2012/02/04(土) 13:57:05.22 ID:???
>>386
で?
388nobodyさん:2012/02/04(土) 14:32:14.11 ID:???
アスペだなこれは
389nobodyさん:2012/02/04(土) 15:00:53.01 ID:???
>>387-388
自演
390nobodyさん:2012/02/04(土) 15:10:31.66 ID:???
質問にならない質問されても答え用がない

いくら煽っても答えは返って来ませんよ
391nobodyさん:2012/02/04(土) 16:37:51.29 ID:???
>>390
自演
392nobodyさん:2012/02/04(土) 17:58:53.68 ID:???
PHP
時代遅れの言語
393nobodyさん:2012/02/04(土) 20:46:14.96 ID:???
Even obsolete Japanese. so u japanes ban.
394nobodyさん:2012/02/04(土) 21:54:40.60 ID:yD/6arhr
PHPとMySQLで掲示板を作ったのですが、セキュリティ対策で気を付ける事ってありますか?
XSSとSQLインジェクションは対策済みです
興味本位でHPを作ってみたものの、ハッキングが怖いです
395nobodyさん:2012/02/04(土) 22:22:41.42 ID:???
XSSとインジェクションがどういうものなのか説明してください
396nobodyさん:2012/02/04(土) 22:24:37.63 ID:???
397nobodyさん:2012/02/04(土) 22:28:59.97 ID:???
いや、>>394にいったのね
398nobodyさん:2012/02/04(土) 22:37:23.06 ID:Eguip8rZ
クリップボードに出力させる方法ってあるのかな
399nobodyさん:2012/02/04(土) 22:48:09.66 ID:???
>>394
url晒してください テストします
400nobodyさん:2012/02/04(土) 23:38:32.49 ID:???
ふと思ったんだがクラックってIDとかパスワードとか盗まないかぎり刑事事件にはならないのかな?
401nobodyさん:2012/02/04(土) 23:43:07.68 ID:K4OjxyJF
>>400
盗んでも内容変えなければ大丈夫じゃない?
402nobodyさん:2012/02/05(日) 01:01:57.08 ID:???
某図書館のサイトで蔵書データ調べて逮捕されたヤツいたな
立件されなかったけど1ヶ月くらい拘束されてたと思う
403nobodyさん:2012/02/05(日) 01:02:54.82 ID:???
全然かんけいねーw
404nobodyさん:2012/02/05(日) 01:21:03.96 ID:???
最近法改正だかなんかされたじゃん
不正アクセス禁止法かなんかで
パスワードを入手しようと試みる行為を罰する規定を設けるって
もしかしたらまだ立案段階かもしれないけどそんな話があったとだけ
405nobodyさん:2012/02/05(日) 01:21:53.98 ID:???
406nobodyさん:2012/02/05(日) 01:55:21.54 ID:???
IDパス盗まれるような奴らが国会で審議するのか
バカのためにバカがつくるバカ基準の法律
The government of the baka, by the baka, and for the baka
407nobodyさん:2012/02/05(日) 13:55:33.69 ID:???
で、お前らプログラミング歴何年なの?
408nobodyさん:2012/02/05(日) 14:24:31.30 ID:???
409nobodyさん:2012/02/05(日) 14:51:11.60 ID:???
>>402
元ネタ知ってるけど、ここまで話が変異するんだなw
410nobodyさん:2012/02/05(日) 16:22:03.34 ID:i7H07Acw
【OS名】Linux系
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL GD2
【質問内容】
PCとスマホ用のサイトを作りました。
ここまでは全てUTF-8で書いています。

今度はガラケー用のサイトを初めて作ることになって、
Shift JISで入出力するらしいのですが、どのように作ればいいでしょうか。
ぐぐったらsmartyというのでやるのが簡単と書いてあるのがありますが、
経験がありません。他に適当な方法がありますか?
基本的に、全キャリア共通サイトとして書くつもりです。
411nobodyさん:2012/02/05(日) 17:01:27.26 ID:???
UTF-8でおk
412nobodyさん:2012/02/05(日) 17:25:00.23 ID:???
>>410
mb_convert_encodingかければいいという話ではなく?
413nobodyさん:2012/02/05(日) 17:28:45.31 ID:???
>>410
文字コードに自信がない人はUTF-8使って下さい
SJISは潜在的なセキュリティリスクを孕んでるのでよくわからない人が使うのは危険です
ガラケーも今時UTF-8で問題ありません
414nobodyさん:2012/02/05(日) 22:14:06.28 ID:i7H07Acw
>>411-413
ありがとうございます。
ひとまずUTF-8で書いて確認してみることにします。

携帯サイトの開発者さんって3キャリア分の端末と契約持ってるんですか?
ウィルコムとEMnetはどうしたらいいでしょうか。
415nobodyさん:2012/02/05(日) 22:53:19.06 ID:xvPPfzP0
>>414
3社のはエミュレータ使うといいよ
416nobodyさん:2012/02/06(月) 00:36:16.14 ID:???
ちょっと古いauがなー
417nobodyさん:2012/02/06(月) 00:37:45.04 ID:O5qz7xhM
>>416
どのくらい古いとアウトですか?
418nobodyさん:2012/02/06(月) 01:00:04.26 ID:???
ちょっと古い
http://symple.jp/113.html
419nobodyさん:2012/02/06(月) 01:06:28.25 ID:O5qz7xhM
>>418
ありがとうございます。
よくわかってないんですが、最初からwordpress使えば
スマホ、携帯サイトも簡単にできちゃうんですかねえ?
420nobodyさん:2012/02/06(月) 02:39:19.20 ID:poXN+WMF
PHPを実行しているサーバーがMacか、環境変数などから自動的に判断するいい方法ってありますか?
Windowsは分かりやすいんですが、macとlinuxの切り分けが難しい。
421nobodyさん:2012/02/06(月) 02:41:27.00 ID:???
422nobodyさん:2012/02/06(月) 22:53:18.01 ID:C3dZcj35
最近PHP始めたんですが、Smartyってフレームワークはマニアックなんでしょうか?
423nobodyさん:2012/02/06(月) 23:13:44.85 ID:???
質問にならない質問はご遠慮下さい
424nobodyさん:2012/02/07(火) 01:32:37.59 ID:???
>>422
まじめ話アブノーマルだと個人的には思う
デザイナーとの仕事が分担できてない環境下だと
結局プログラマがHTMLに仕込んだりしてただただしんどいだけ
425nobodyさん:2012/02/07(火) 03:38:23.51 ID:???
フレームワークじゃないよって突っ込むところじゃないのか?
426nobodyさん:2012/02/07(火) 13:10:03.09 ID:???
【OS名】CentOS
【PHPのバージョン】6.0
【連携ソフトウェア】MySQL
【質問内容】
PHPからselect * INTO OUTFILE を行うと文字化けしてしまいます。
DBもスクリプトもUTF8で統一しているのですが、どのあたりから調査すればいいのか検討がつきません。
文字化け解消についてアドバイスいただけないでしょうか。
427nobodyさん:2012/02/07(火) 21:05:42.57 ID:???
428nobodyさん:2012/02/07(火) 23:02:38.45 ID:???
>>426
コンソール立ち上げて直接入れろそれ位
429nobodyさん:2012/02/07(火) 23:53:37.99 ID:+mH02aFr
>>424
デザイナーさんとの仕事分担ってどんな感じなんですか?
現状、デザイナーさんがデザインして、ファイルをもらい、
自分がそこにPHPのコードを埋め込んでいく感じですが、
普通の現場だとどうしてるんですかね。
430nobodyさん:2012/02/08(水) 01:08:26.67 ID:???
ようするにテンプレートが何かという質問だろそれ
smartyスレにでもいけよ
431nobodyさん:2012/02/08(水) 02:44:51.80 ID:???
スクリプト使えないデザイナーってなに?絵描きさんみたいなもんか
432 忍法帖【Lv=9,xxxP】 :2012/02/08(水) 03:13:14.01 ID:???
readfile()でダウンロードさせたいんですが
うまくダウンロードするウィンドウがでるときと
readfile()で読み込んだファイルの内容が出力されるときがあります
どうしてこのようになるのかわかりません
説明不足だと思いますがエスパーの方いたらお願いします
433nobodyさん:2012/02/08(水) 03:58:08.72 ID:???
gzipだから
434nobodyさん:2012/02/08(水) 03:59:26.28 ID:???
>>432
header('Content-Type: application/octet-stream');
435nobodyさん:2012/02/08(水) 10:22:32.40 ID:3EF2N74K
クッキーについてお尋ねします。

setcookie("TestCookie", "something", time()+3600);

で、クッキーをセットしているのですが、firefoxのアドオン View Cookies1.10.3 で見ると
Expires が Session になっています。ブラウザを閉じると全部消えます。
どんな間違いが考えられますか?
436435:2012/02/08(水) 10:26:44.75 ID:3EF2N74K
セッションスタートすると、そちらで上書きされてしまうってこともありますか?
437435:2012/02/08(水) 10:30:54.77 ID:3EF2N74K
すみません、解決しました。
ブラウザの設定の問題でした。
438nobodyさん:2012/02/08(水) 16:44:06.52 ID:vfdEsjRW
Smartyスレが見当たらない(消えた?)のでこちらで・・・

Smartyで外部ファイルを読み込む場合、テンプレートとして読み込む(include等)と
変数割り当て等の解析が必要ない場合でもコンパイルされて、
外部ファイルが(別プログラムによって)変更された場合などには、再コンパイルするコードが必要になってしまいます。
Smarty内でこれを解決する(解析不要でただ読み込む)ことって可能でしょうか。

単純にPHPスクリプトで読み込んで変数に割り当てる方法でも対応できますが、
Smarty内からの関数呼び出しで他のテンプレートと同じように扱えればと思いまして・・
439nobodyさん:2012/02/08(水) 17:59:23.48 ID:2t5iqwD7
マルチタスク(スレッド)の勉強をしているのですが、
curl系の関数を使う方法しかないんですかね?
curlだとURL指定で並列実行になりますが、
URLから実行せず、絶対パスで指定できたらと思っています。

curl以外の方法かライブラリがあれば教えてください。
440439:2012/02/08(水) 18:24:02.84 ID:2t5iqwD7
自己レスです。fsockopen使う方法で出来ました。
簡単なので、こちらの方法で行きます。
441nobodyさん:2012/02/08(水) 18:54:52.14 ID:???
PHPでマルチスレッドの話になるとすぐcurlってなってるけど、
平行してWebリソースにアクセスすることとマルチスレッドが同義であるという理解が広まってんのかな
442nobodyさん:2012/02/08(水) 19:06:03.75 ID:???
>>438
fetch
443nobodyさん:2012/02/08(水) 20:27:56.40 ID:???
>>441
じゃ、どうするのが良いの?
444nobodyさん:2012/02/08(水) 20:54:21.52 ID:???
>>443
何をするのに?
445nobodyさん:2012/02/08(水) 20:59:17.10 ID:???
>>444
いや、マルチスレッドの話だろ?
446nobodyさん:2012/02/08(水) 21:04:25.70 ID:???
アスペ注意
447nobodyさん:2012/02/08(水) 21:22:54.15 ID:???
アスペの意味を分かってないかわいそうな奴
448nobodyさん:2012/02/08(水) 21:29:29.38 ID:???
お前のことなんて分かりたくもないよw
449nobodyさん:2012/02/08(水) 21:33:05.09 ID:???
>>448
アスペ乙w
450nobodyさん:2012/02/08(水) 22:12:19.41 ID:skUmVjLK
>>444
こええ。わざとだよね?
451nobodyさん:2012/02/08(水) 22:48:45.68 ID:???
前も誰かが言ってただろ

PHPはマルチスレッドに対応していない
curlで出来るのはマルチスレッドモドキだって
452nobodyさん:2012/02/08(水) 22:51:01.40 ID:???
マルチスレッドキモイに見えた
453nobodyさん:2012/02/08(水) 23:44:16.03 ID:???
マルチタスクとマルチスレッドを混同する人、多いね。
454nobodyさん:2012/02/09(木) 01:41:30.50 ID:???
多い?
混同してるのは質問者だけじゃん
455nobodyさん:2012/02/09(木) 02:47:23.28 ID:???
ググったら混同している人が多いから、=多いという解釈でも良いと思う
456nobodyさん:2012/02/09(木) 02:54:23.71 ID:???
>>445,450
ん?並列処理を行うことが目的なの?
目的によって手段を変えるのは当たり前なんだから>>444は別におかしくないだろ
457nobodyさん:2012/02/09(木) 02:56:55.02 ID:???
>>441が言っている
「並列処理=並列してWebリソースにアクセスすること」
って考えしかないからそうなるのかな。
それが目的ならcurlでいいんじゃね、とは思うけれど。
458438:2012/02/09(木) 09:29:47.73 ID:vkcl0tGl
>>442
ありがとうございます。万事うまくいきましたー
459nobodyさん:2012/02/09(木) 10:48:15.39 ID:/qdirMi/
PHPerの常識

マルチタスク=マルチスレッド
460nobodyさん:2012/02/09(木) 11:01:18.23 ID:mqFxDq28
【OS名】OS問わず?
【PHPのバージョン】PHP5以降
【質問内容】

変数の未定義を注意されるので、自作のスクリプトで使用している変数・配列を
$value = NULL; で全て初期化していますが、関数によっては初期化しても勝手に未定義に戻されてしまうようです。
例えば以下のようなparse_urlがそのひとつなのですが、皆さんはどのように処理してますか?関数から得た値は全部isset等でチェックしています?それともerror_reportingを変えて無視してますでしょうか?
正直なところ、スクリプト内で使用されている関数を通した変数全部チェックするのはとても大変なのでそこまですべきか悩み中です。
php -l phpスクリプト ではチェックしてくれないですよね?

parse_urlを使ったスクリプト例
<?php

error_reporting(E_ALL);

$a = NULL;
$a['host'] = NULL;

$a = parse_url("www.google.com");

if ($a === false) print "parse_url is false\n";

print $a['host']."\n";

?>

実行結果
Notice: Undefined index: host in /home/test/test.php on line 12
461nobodyさん:2012/02/09(木) 11:16:27.50 ID:???
$a = NULL;
$a['host'] = NULL;
で、上の行は意味が無いし、
$a = parse_url("www.google.com");
で上の2行が意味なしになるのですが、分かります?
462460:2012/02/09(木) 11:19:34.68 ID:???
>>461
はい。値が上書きされてしまうので意味なしになるだろうとは思いました。
こういう場合、一般的にどう対応されているのかなー と思いまして。
463nobodyさん:2012/02/09(木) 11:26:51.20 ID:???
isset( $a['host'] ) でチェックかな。

あと、そもそものNotice: が出るのは、 
parse_urlの仕様では、'host'が必ず含まれるわけではないからだね。
初期化の話じゃないのよ。

http://php.net/manual/ja/function.parse-url.php
でhostが出るような例をみるといーよ。
464nobodyさん:2012/02/09(木) 11:48:50.45 ID:???
本当にくだらない質問なんだけど、皆は
<?php の次の行はインデントする派? しない派?
465460:2012/02/09(木) 11:56:22.30 ID:???
>>463
回答ありがとうございます。
やはり、怪しい関数は全て割り出してissetでチェックですかねー。

parse_urlでは'host'を使うなら'host'をissetでチェックして
セットされているか確認する必要がありそうですね。
上記の例では'path'にwww.google.comが入るみたいですね。
466nobodyさん:2012/02/09(木) 12:06:12.88 ID:vkcl0tGl
>>462
頻繁にではないけど、もともとの$aを初期値としてセットしといて
関数の戻り値を$aにマージするようなコードを書くことはあるよ。
$a = array('host'=>null); // 初期値
if (($b = parse_url('...')) !== false) {
$a = $b + $a; // or $a = array_merge($a, $b);
}
467460:2012/02/09(木) 12:52:42.76 ID:???
>>466
なるほど。そういう方法もあるわけですね。
468nobodyさん:2012/02/09(木) 14:13:49.01 ID:???
>>464
しない
469nobodyさん:2012/02/09(木) 15:55:27.21 ID:???
>>464
したことないなぁ。
470nobodyさん:2012/02/09(木) 18:16:16.58 ID:???
>>464
俺はしてる。
大した理由なんて無いよ、ただ何となく、見た目の問題。
471nobodyさん:2012/02/09(木) 19:45:03.31 ID:???
netbeansをデフォルトの設定で使ってるけどしてないな。
472nobodyさん:2012/02/10(金) 00:34:21.63 ID:???
>>464
してない
473nobodyさん:2012/02/10(金) 01:21:29.34 ID:???
>>464
ないわー
474nobodyさん:2012/02/10(金) 01:24:38.27 ID:???
やっぱしないほうが多数なのか。
俺もそうしよう。 回答有難う
475nobodyさん:2012/02/10(金) 01:31:09.96 ID:???
>>461
そんなことするなら
if(empty($a) && isset($a['host'])){
echo $a['host']."\n";
}else{
echo "parse_url is false\n";
}

でいいんじゃ?
476nobodyさん:2012/02/10(金) 12:33:14.85 ID:LrusZM1c
バグがでるのは仕方が無いことだと思うのですが、
バグを最小限に押さえるのに良い方法ってありますか。
477nobodyさん:2012/02/10(金) 13:33:19.68 ID:???
>>476
書く前によく考える
478nobodyさん:2012/02/10(金) 14:16:48.87 ID:LrusZM1c
>>477
考えて考えて、
とりあえず書いてみて 
でも、ゆわれるまで気づきません。

479nobodyさん:2012/02/10(金) 14:46:01.17 ID:???
>>476 圧縮バッグ
480nobodyさん:2012/02/10(金) 15:08:52.50 ID:???
超低レベルの質問で恐縮です。

配列の中身が
Array
という文字列で出力されてしまうのですが、これはどうしてでしょうか?
481nobodyさん:2012/02/10(金) 15:09:31.57 ID:???
中身が配列じゃないの?
482nobodyさん:2012/02/10(金) 15:30:01.53 ID:???
>>481
そのとおりでした。
ありがとうございます。
m(__)m
483nobodyさん:2012/02/10(金) 16:29:00.81 ID:LrusZM1c
http://d.hatena.ne.jp/tt_clown/20111025/ng_programmer
当てはまりすぎるんですが、ヤバイですか?
484nobodyさん:2012/02/10(金) 17:21:29.90 ID:???
いえ、キミはプログラマではないのでヤバくないです
485nobodyさん:2012/02/10(金) 18:45:58.39 ID:e8YNZNTF
>>483
プログラマと呼べるレベルじゃないのにほとんど当てはまらなかった
486nobodyさん:2012/02/10(金) 19:26:49.48 ID:???
>>483
これ面白いな。GJ
487nobodyさん:2012/02/10(金) 19:30:17.25 ID:???
逆に、こういうのを経験してこなかったプログラマ使い物にならん気もするけどな。
488nobodyさん:2012/02/10(金) 19:42:29.54 ID:???
>変数名が女の名前
これおまいらもやってるのか?www
489nobodyさん:2012/02/10(金) 21:44:07.87 ID:2T73dJDE
関数がFALSEを返すのFALSEはfalseと定義されてるけど、
FALSEがfalseではなくなるかもしれないから
FALSEであることを期待してfalseと比較なんかしちゃってると
痛い目に遭いますよという事で良いですよね?
490nobodyさん:2012/02/10(金) 21:49:35.75 ID:???
491nobodyさん:2012/02/10(金) 21:49:43.60 ID:???
>>489
falseと比較するときはFALSEを書くべきなんじゃまいか?
492nobodyさん:2012/02/10(金) 22:45:10.70 ID:2T73dJDE
あーわかった。
zend_constants.c上ではTRUE, FALSE, NULLと全部大文字で
定数に登録しようとしてるけど、大文字小文字は無視してるから
小文字に変換されて登録されてて、zend_compile.cで使う時も
小文字に変換し直してハッシュから定数を引っ張り出すだけだったw
493nobodyさん:2012/02/10(金) 22:47:02.97 ID:???
FALSEとfalseが違うものだと思ってたの?
494nobodyさん:2012/02/10(金) 23:47:10.19 ID:???
ところでFALSE って、なんて読んでる?
フォールス?フォルス?フォールズ?

うちじゃ、ホルスw って読んでる人が一番多いようなw
495nobodyさん:2012/02/11(土) 00:28:43.74 ID:???
フォルス一択
496nobodyさん:2012/02/11(土) 02:22:50.24 ID:nzSgga7d
フォルス
497nobodyさん:2012/02/11(土) 13:25:30.90 ID:dnJZM8FP
すみません、ここが適当でなければ誘導をお願いします。

Mac OS XのXAMPP環境にpeclでmemcacheをインストールしたのですが、有効になりません。
php.iniにはextension="memcache.so"が追加されています。(自動で追加されていた)

試しに、pecl install mongoしてみたら、こちらは問題なく有効になりました。(phpinfo()で確認)

何が原因か分かりますでしょうか?
498nobodyさん:2012/02/11(土) 13:46:54.27 ID:???
>>497
初心者はXAMPP使うな
499nobodyさん:2012/02/11(土) 14:06:29.61 ID:dnJZM8FP
すいません、初心者じゃないんで、XAMPP使います。
500nobodyさん:2012/02/11(土) 14:15:29.85 ID:???
じゃ好きにしてくれ
501nobodyさん:2012/02/11(土) 14:49:26.56 ID:???
>>497
vimwareでも買ってcentosでも入れて勉強した方が良いと思うな
502nobodyさん:2012/02/11(土) 15:08:08.04 ID:???
逆ギレくっど
503nobodyさん:2012/02/11(土) 15:12:31.66 ID:???
>>494
ファルセ
504nobodyさん:2012/02/11(土) 15:15:21.43 ID:dnJZM8FP
>>501
vimwareって何ですか?
505nobodyさん:2012/02/11(土) 15:32:18.38 ID:???
>>504
書き間違えって奴だ
506nobodyさん:2012/02/11(土) 15:55:57.42 ID:dnJZM8FP
あー書き間違いですか。
じゃぁ、CentOSってくだりも書き間違いかな?
CentOSはpeclでインストールするよりyumの方がいいから。
507nobodyさん:2012/02/11(土) 17:30:38.33 ID:???
有効になっていないことをどう確認したのかと、パスの通ったところにsoがあるのかを確認したらどうか。
508nobodyさん:2012/02/11(土) 18:05:45.75 ID:???
超くだ質ですが、英語の変数名・関数名だと長くなる場合、どうしてますk?

「設立日」の値を保存する変数があったとして、
$establishment_day → 英語変換
$est_day → 短縮
$setsuritsu → ローマ字

などに出来ますが、長すぎると読みづらいし、
短縮文字だとわかりづらい場合があります。
(messageをmsgにするなど、一般的な短縮文字ならわかるのですが・・・

みなさんはどうしてますか?
509508:2012/02/11(土) 18:06:06.37 ID:bam167aq
sageてました・・・
510nobodyさん:2012/02/11(土) 18:11:09.41 ID:dnJZM8FP
>>507
有意義なレスありがとうございます。
phpinfo();とclass_exists('Memcache');で確認しました。

XAMPP for Mac OS X のextensionは、以下のディレクトリに入ります。
/Applications/XAMPP/xamppfiles/lib/php/php-5.3.1/extensions/no-debug-non-zts-20090626/

上記に、pecl install memcache した memcache.so がインストールされています。
これが有効にならなくて悩んでいます。

試しに、pecl install mongo した mongo.so (phpinfo()で有効になっている)を
_mongo.so にリネームすると、無効になるので、このパスで合っているはず。

511nobodyさん:2012/02/11(土) 18:15:17.70 ID:dnJZM8FP
>>508
あまり一般的な短縮名でなければ、長いままにしておきます。
一々仕様書やコメントを読まなければいけないのは、他人に不便だと思うので。

長い関数名や変数名はスペルミスや覚えられないという問題もあると思いますが、
入力補完してくれるエディターを使えばいいと思います。
512nobodyさん:2012/02/11(土) 18:35:54.65 ID:dnJZM8FP
あ、わかったかも。
PHPのコンパイルオプションに、--enable-memcacheが付いてないからかな?
513nobodyさん:2012/02/11(土) 19:08:10.33 ID:F655tJI8
>>508
俺なら$e_day
514507:2012/02/11(土) 19:10:56.25 ID:???
>>512
> Newer PHP versions don't have a --enable-memcache options; simply installing the PECL package will be enough... so to be absolutely clear, you WON'T have to recompile PHP to use memcache.
ってのを見たので、configureのオプションにあるならつけないとだめかも
515nobodyさん:2012/02/11(土) 19:20:50.28 ID:???
>>513
俺もたぶんそうする。

ちなみに今使ってる変数名
$t_name
$t_t_name
$r_name

入力補完もあるし、他の人が読むことを考えると、
もっとわかりやすい方がいいんだろうけど。
516nobodyさん:2012/02/11(土) 20:08:28.77 ID:???
コメントに変数の正式な意味を書いておけばよさそう
517nobodyさん:2012/02/11(土) 20:22:41.21 ID:nzSgga7d
>>515
俺だけじゃなくてよかった
518nobodyさん:2012/02/11(土) 21:25:26.47 ID:???
キャメルケースにしないの?
519nobodyさん:2012/02/11(土) 21:31:29.08 ID:???
>>518
宗派の違いだな。
俺の宗教には位牌はない、みたいな。
520508:2012/02/11(土) 22:01:37.87 ID:bam167aq
$e_dayまで短縮するとは思いませんでした。
これだと自分の場合、「終了日」と誤解しそうで。

キャメルケースは関数名に使うことありますが、
変数名はないですね。

コメントとか仕様書に残せばある程度短縮文字でも良いんですかね。
さすがに$establishment_dayは長すぎてパッと見た瞬間分かりづらいし。
521nobodyさん:2012/02/11(土) 22:12:24.31 ID:???
>>520
関数名には使うことはあるけど変数名に使わないのはなんで?
522nobodyさん:2012/02/11(土) 23:53:10.01 ID:ec+1ByNd
xdebugを使ってデバックをしたいのですが、失敗続きです。

【サーバ環境】
CentOS6.2 + xdebug 2.1.3

php.iniの設定
[XDebug]
extension=xdebug.so
xdebug.remote_enable=1
xdebug.remote_autostart=1
xdebug.remote_port=9001 <- 9000ではNGという海外の書き込みを見て変更
xdebug.remote_handler=dbgp
xdebug.remote_host=192.168.0.100
xdebug.remote_mode=req

phpinfoでxdebugがenableになってるのを確認

【クライアント環境】
Windows 7 + Eclipse Indigo
ネットワーク設定->192.168.0.100/24 固定IP サーバからping確認
ファイアウォール設定->受信規則にポート9001を受け入れるように設定

下に続きます。
523552:2012/02/11(土) 23:53:35.89 ID:ec+1ByNd
【Eclipse Indigo設定】
[ウィンドウ]-[設定]-[PHP]-[DEBUG]
でXdebugを選択、ポートを9001に変更、serverもサーバのIPで設定、他はデフォルト
[デバッグの構成]
sever debugger->xdebug
phpserver -> 上で作成した設定を指定 File->デバックするファイルを指定、他はデフォルト

【症状】
デバックを実行すると、デバッグ用のパースペクティブになるのですが、
ブレークポイントで止まった感じも無く、実効結果がすぐに[内部webブラウザー]と[Debug Output]に表示されます。

どうしたら良いでしょうか・・。
524nobodyさん:2012/02/12(日) 17:42:49.77 ID:T+9lcsG5
filesizeで取得したファイルのサイズを
KBに直すには、1024を掛けるのでよろしいでしょうか?
1000を掛けるのでしょうか?
$size=@filesize($upload_name)/1024;
525nobodyさん:2012/02/12(日) 18:03:48.04 ID:???
>>524
KBにしたいなら1000を掛ける
KiBにしたいなら1024を掛ける
526nobodyさん:2012/02/12(日) 19:44:33.66 ID:???
割ってますけど。
527nobodyさん:2012/02/12(日) 21:47:54.78 ID:???
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;  filesizeで取得したファイルのサイズを
  ヾ;;;ハ    ノ       .::!lリ;;r゙  KBに直すには、1024を掛ける・・・・
   `Z;i   〈.,_..,.      ノ;;;;;;;;>  そんなふうに考えていた時期が
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f     俺にもありました
   ~''戈ヽ   `二´    r'´:::. `!
528nobodyさん:2012/02/12(日) 22:22:13.85 ID:E3xYO+Pk
二重投稿を防ぐスクリプトってcookieを使うって書いてるサイトが多々あるんですけど、
これってcookieを削除したら再投票可能ですか?
529nobodyさん:2012/02/12(日) 22:28:44.89 ID:???
ヤフーがそう
私もそう思う 私は思わない ってやつ
530nobodyさん:2012/02/12(日) 22:37:51.52 ID:???
>>528
オレならcookie無い場合スクリプト投稿と判断しカウントしない
てゆーか実験してみればいいじゃん
531nobodyさん:2012/02/12(日) 22:45:37.90 ID:E3xYO+Pk
>>530
ありがとうございます!
わざわざ書いて試すのがめんどーだったから尋ねたのですが教えてくれそうにないので試します
532nobodyさん:2012/02/12(日) 22:51:23.49 ID:???
>>529
cookie消せば数字増やせるけど、
IPも見てるみたいで一定以上は増えなかった記憶がある。
533nobodyさん:2012/02/12(日) 22:54:57.96 ID:???
丸投げ失敗でござる
534nobodyさん:2012/02/12(日) 23:05:15.68 ID:MdyL4A8R
WordPress、OpenPNE、
またsymfonyやCakePHPなどのフレームワークもみんな重いです。

これらの重さはPHPだから仕方がないの問題なのでしょうか?
535nobodyさん:2012/02/12(日) 23:10:11.35 ID:???
そういえばWordPressつかいのオネーチャンがバカッターで泣き入れてた
php6.0とかになって一斉に動かなくなったらワロリンコ
536nobodyさん:2012/02/13(月) 02:47:58.30 ID:???
>>534
基本的にフレームワークはソースを効率化する為に使う物で
その為に余計な処理も入るから重くなるんだよ。
重さを軽減させるために、キャッシュ機能を使うけどね。

開発効率か速度かどちらか重視して使えば良いんじゃないかな。
537nobodyさん:2012/02/13(月) 12:31:14.14 ID:???
>>536
重くなるのはPHPのインタープリタの特性と
キャッシュの貧弱さに由来すると思うけど。
PHPでオブジェクト指向のパフォーマンスはほんとにダメ。
538nobodyさん:2012/02/13(月) 13:57:31.22 ID:???
そんなこより天皇ヤバくて年号変わりそうだけど
優秀なオマエラならモジュールの結合テストもう済ませてるよな
539nobodyさん:2012/02/13(月) 14:10:49.16 ID:???
今上天皇はお前らより長生きするよ
540nobodyさん:2012/02/13(月) 15:01:11.94 ID:???
年号が変わるって何言ってんの?
541nobodyさん:2012/02/13(月) 17:05:49.64 ID:???
いまどき元号使ってるアホはポンドヤード厨と同レベ
542nobodyさん:2012/02/13(月) 17:13:35.56 ID:???
こんなのでオタつくのは、プログラマーじゃねーよ。
543nobodyさん:2012/02/13(月) 17:35:35.21 ID:???
昭和→平成の時、公文書の印刷だったから元号全部手直ししたが、
今はどうなんだろうな。
544nobodyさん:2012/02/13(月) 17:41:53.44 ID:???
うちは全部西暦だわ。
キリストが再臨すれば困ったことになるな。
545nobodyさん:2012/02/13(月) 18:00:01.82 ID:xFiWWsj/
陛下には申し訳ないが、平成早く終わってほしい。
バブルの崩壊、日本の失われた20年は平成になったあたりから始まった。
年号が、変われば、きっと日本は明るくなる。

次の年号は上世とか、登安とか、上ってく名前がいい。
546nobodyさん:2012/02/13(月) 18:45:44.80 ID:???
>>545
でも次の奴だって期待できそうにないyo!
もっと悪くなりそう orz
547nobodyさん:2012/02/13(月) 19:11:58.82 ID:???
>>545
次って今の皇太子が天皇になるってことだよな?それは明るい未来なのかい?
548nobodyさん:2012/02/13(月) 19:16:04.22 ID:???
>>547
皇太子はいいやつだと思う。
549nobodyさん:2012/02/13(月) 21:48:05.71 ID:dtlHANwt
@arsort($date_before);
foreach($date_before as $value){
$t=0;
$date_after[$t]=$value;
echo $date_after[$t].'<br>';//正常に表示
$t=$t+1;
//echo $value.'<br>';
}

for($t=0;$t<$i;$t++){
echo $date_after[$t].'<br>';//エラーが出る
}

何故エラーがでるのでしょう? どうしたらいいのでしょうか?
550nobodyさん:2012/02/13(月) 21:50:08.09 ID:???
$iがnullだから
551nobodyさん:2012/02/13(月) 21:53:34.84 ID:???
nullじゃねーだろ
552nobodyさん:2012/02/13(月) 21:56:57.73 ID:???
じゃ何?
553nobodyさん:2012/02/13(月) 22:03:58.95 ID:???
単に定義されてないだけだ。
554nobodyさん:2012/02/13(月) 22:04:01.85 ID:dtlHANwt
$iには50が入ってます。
$iを消して10にしましたが、エラーというか
一番先頭が値がありで、1〜9が値なしです。
555nobodyさん:2012/02/13(月) 22:06:33.47 ID:???
>>553
http://jp2.php.net/manual/ja/language.variables.basics.php
例1 初期化されていない変数のデフォルト値

<?php
// 設定も参照もされていない (使用中のコンテキストではない) 変数は NULL となります
var_dump($unset_var);

はい残念
556nobodyさん:2012/02/13(月) 22:07:18.05 ID:???
>>554
3行目で$t=0;してるから
557nobodyさん:2012/02/13(月) 22:52:56.00 ID:???
foreachの中で毎回 $t=0; をしているのはナゼ?

4行目に毎回 $date_after[0]=$value; をしているわけだが。
558nobodyさん:2012/02/13(月) 23:03:44.80 ID:dtlHANwt
>>556
foreach分の外に出すと、正常に表示されました。
皆様ありがとうございました。
559nobodyさん:2012/02/13(月) 23:10:55.97 ID:???
>>558
エラーが出たら、まずその内容を読んでみような
大抵の場合そこに原因や解決策が書いてある
560nobodyさん:2012/02/14(火) 01:51:59.94 ID:PYbwAQUM
echo '<input type="button" value="delete" onclick="blue(''$file_name[$image[$t]]'')"/>'
エラーが出ます。onclickで関数を実行でその引数を指定するときは
どのようにしたらいいのでしょうか?
561nobodyさん:2012/02/14(火) 02:05:09.73 ID:???
htmlの問題だろそれ
吐き出されるソースをよく見てみ
562nobodyさん:2012/02/14(火) 05:16:10.88 ID:???
>>560
>>559
喧嘩売ってんのか
563nobodyさん:2012/02/14(火) 05:20:47.07 ID:???
>>561
> blue(''$file
シングルクォートが2個らしいよこれ
なもんで、HTMLエラーじゃないと思う。なもんで>>559
564nobodyさん:2012/02/14(火) 05:32:22.93 ID:???
ほんとだシングルクオート2個だwww
よく気づいたな

ヒント:
エスケープ
PHPの文字連結はドット
565nobodyさん:2012/02/14(火) 10:32:18.76 ID:VUGkLJ/d
''を\'でいいんじゃない?
566nobodyさん:2012/02/14(火) 13:09:24.88 ID:???
SQLとごっちゃになったのかな。
567nobodyさん:2012/02/14(火) 13:10:25.69 ID:???
>>565
それだと変数が展開されないって嘆くことになる
568nobodyさん:2012/02/14(火) 14:54:11.43 ID:Tk30SVBq
phpを実行するとphpソースが表示されます
http://phpjavascriptroom.com/?t=php&p=apachephpwindows7
のインストール部分をC直下ではなくD直下に変えて他はそのままにして下記のプログラムを実行しました

<?php
phpinfo();
?>

何故でしょうか
569nobodyさん:2012/02/14(火) 15:05:52.59 ID:???
>>568
ずっと下の方の
LoadModule php5_module "C:\PHP\php5apache2_2.dll"
AddType application/x-httpd-php .php

この2つがあればそんな風にはならん。
Apache再起動したか?
570nobodyさん:2012/02/14(火) 15:13:14.59 ID:Tk30SVBq
>>569
はい、再起動しました
571nobodyさん:2012/02/14(火) 15:17:14.51 ID:???
errorlogにphpのバージョン表示出てる?
572nobodyさん:2012/02/14(火) 15:28:56.61 ID:Tk30SVBq
すみません
解決しました
Control Apache Server→Restart/start/stop のRestart/Stopが正常に動作していなかったようです
1回Windowsごと再起動してからもう1度起動するとできました
お騒がせしました
573nobodyさん:2012/02/14(火) 18:54:42.00 ID:VUGkLJ/d
>>567
''→'.
''→.'
こうか
574nobodyさん:2012/02/14(火) 18:58:30.06 ID:???
\''.$〜.'\'
575553:2012/02/14(火) 20:00:27.18 ID:???
>>555
「結果」は理由じゃないんだよ。
$iが定義されてないから

$iが定義されてないからNULLの値を見せる
は別なの
576nobodyさん:2012/02/14(火) 20:43:51.83 ID:???
>>575
それ原因同じじゃん
577553:2012/02/14(火) 21:01:40.14 ID:???
$iが定義されていて、かつNULLってのは考えない訳か
578nobodyさん:2012/02/14(火) 21:09:05.47 ID:???
へ?575で両方とも定義されていない場合って書いてるじゃん
579nobodyさん:2012/02/14(火) 21:39:24.82 ID:???
>>575
そもそも、$iが定義されてるかどうかが問題ではなかったんだけれど、その辺はどう
580553:2012/02/14(火) 22:40:54.39 ID:???
>>579
そういう風に詰めていくならもともとの質問は「エラーが出る」しか言ってないんだから、
NULLだという指摘は、<結果的にそれが原因>という可能性の一つになるだけ。
$iが(引用行外で)定義済みなら、NULLが入っているか、型が違ってるか、$iがarrayならそれがNULLではなくて
空か、ということが考えられる。他方$iがどこでも定義されてないなら定義してないからだ(NULLは単なる結果)、
という風になる。
なお578は論外の売り言葉買い言葉にすぎない。
581nobodyさん:2012/02/14(火) 22:43:48.45 ID:???
>なお578は論外の売り言葉買い言葉にすぎない。
何言ってんだwごまかしてるだけだろwワロタw
582nobodyさん:2012/02/14(火) 22:46:29.54 ID:???
>>580
http://jp2.php.net/manual/ja/language.types.null.php
NULL
特別な NULL 値は、ある変数が値を持たないことを表します。NULL は、NULL 型の唯一の値です。

変数は、以下の場合に NULL とみなされます。

■定数 NULL が代入されている場合。

■まだ値が何も代入されていない場合。

■unset() されている場合。

はい残念
583nobodyさん:2012/02/15(水) 00:09:17.17 ID:???
<?php
echo '<script type="text/javascript">';
echo 'alert("hello world 2012")';
echo "<\/script>";
?>
エラーになるますどうしたらいいですか?
584nobodyさん:2012/02/15(水) 00:16:41.08 ID:???
>>1

あと昨日のお礼がまだですよ
585nobodyさん:2012/02/15(水) 00:19:05.18 ID:???
>>583
\
586nobodyさん:2012/02/15(水) 02:50:37.77 ID:???
>>580
もうね、俺は本当にどうだっていいんだけど、これをみて$iにもっていく勇気が俺にはないだけなんよ。
> echo $date_after[$t].'<br>';//エラーが出る
587nobodyさん:2012/02/15(水) 05:27:01.38 ID:x/xi+W4J
<?php
//ファイルの取り出し
$file_name=$_FILES['filename']['name'];
//一時ファイル名の取り出し
$temp_name=$_FILES['filename']['tmp_name'];
// 保存先のディレクトリ
$dir = 'uploads/';
// 保存先のファイル名
$upload_name = $dir.$file_name;
// JPEG形式、GIF形式のファイルをアップロードする
// アップロード(移動)
$result = move_uploaded_file($temp_name, $upload_name);//これがないと失敗
echo ($result)?'アップロード成功':'アップロード失敗';
?>
<img src="<?php echo $upload_name; ?>">

において、全く同じ時間に画像アップロードした場合は
どうなるのでしょうか?
また、画像のファイル名をdate関数で作成したときなどは
どうなるのでしょうか?
588nobodyさん:2012/02/15(水) 05:29:24.65 ID:???
ファイル名を作成するロジックなんて見当たらないわけだが

ファイル名がかぶる可能性があるなら
連番で振るとか
すでに存在していたら画像の後ろに数字をつけるとか
いろいろ方法はあるでしょう
589nobodyさん:2012/02/15(水) 05:55:11.81 ID:x/xi+W4J
>>588
わかりました。

今、画像アップローダー作ってるのですが(6割ほど完成)
jpg、pjpeg、gif、png、bmpだけに対応でいいですかね?

590nobodyさん:2012/02/15(水) 06:01:50.75 ID:???
仕様なんて好きにすればええ
591nobodyさん:2012/02/15(水) 09:55:27.24 ID:GiPiqyn4
NULLについて質問させて下さい。
定義しない限りNULLは返らないと思っていたのですが
定義しなくてもNULLが返ってくるというのはどういう場合ですか?
592nobodyさん:2012/02/15(水) 10:17:02.48 ID:???
明示的に値を返さない関数とか
593nobodyさん:2012/02/15(水) 21:37:22.21 ID:???
PHP学習中なのでレベルの低い質問ですいません。

ずっとutf-8を使っていたのですが、
GDでの画像描画がutf-8だとうまくいかなかったので
(エラーも何も表示されない)
はじめてutf-8nを使ってみました。

•一般的に、PHPは8nで書いたほうが良いのでしょうか?
•逆に、8nを使うことで発生するトラブルはあるのでしょうか?
594nobodyさん:2012/02/15(水) 21:40:04.41 ID:???
>>593
質問の回答になってないけど、UTF-8でGD2使えたよ。
595nobodyさん:2012/02/15(水) 21:51:47.31 ID:???
>>593
質問の回答になってないけど、質問する時はスレのルールを守ったほうがいいと思うよ
596593:2012/02/15(水) 21:55:40.37 ID:5iudVdKB
sageてた。すいません。

>>594
まじすか。
なんでだろう…

PHP5.3.8でGD2.0.34。
以下のコードをTeraPadのUTF-8で保存するとページ真っ白
UTF-8Nで保存すると意図通りの四角が出ます。
<?php
Header ("Content-type: image/png");
$image = imagecreate(50, 50);
$shikaku = imagecolorallocate($image, 0, 0, 0);
imagepng($image);
imagedestroy($image);
?>
597nobodyさん:2012/02/15(水) 21:56:54.78 ID:???
>>596
BOMが付いてるからじゃない?
598593:2012/02/15(水) 22:19:48.19 ID:???
>>593>>596 です。

>>597
レスありがとう。
最初にsage忘れたせいでややこしくて申し訳ないんだけど、
BOMのせいでページが真っ白だった、というのは理解できています。

知りたいのは、
•もうPHP書くときはずっとutf-8n使った方が幸せになれるか
>>594はどうしてutf-8で使えたのか
です。
599nobodyさん:2012/02/15(水) 22:21:38.02 ID:???
>>598
質問の回答になってないけど、質問する時はスレのルールを守ったほうがいいと思うよ
600593:2012/02/15(水) 22:24:04.09 ID:5iudVdKB
>>599
本 当 に 申し訳ありません…

>>593>>596 です。

>>597
レスありがとう。
最初にsage忘れたせいでややこしくて申し訳ないんだけど、
BOMのせいでページが真っ白だった、というのは理解できています。

知りたいのは、
•もうPHP書くときはずっとutf-8n使った方が幸せになれるか
>>594はどうしてutf-8で使えたのか
です。
601nobodyさん:2012/02/15(水) 22:27:49.65 ID:???
UTF-8のBOMは非推奨だから、PHPだろうが何だろうが使わない方が良い
602nobodyさん:2012/02/15(水) 22:34:15.78 ID:???
>>600
質問の回答になっているけど、UTF-8Nという呼称自体が元々日本独自の呼称で
最近その日本でもほとんど使用されなくなってきていることから
一般的にUTF-8と言った場合はBOM無しを指すという業界の共通認識があるので
>>594はBOM無しのUTF-8を指していると思うよ。
あと1つ目の質問だけど今時はBOM有りに何らメリットはないのでBOM有りのことは忘れよう。
603593:2012/02/15(水) 22:42:20.59 ID:5iudVdKB
>>593>>596>>600 です。

>>601 >>602
回答本当にありがとう!
TeraPadのデフォ設定ばっちり変更しました。
さよならBOM。

無駄にレス消化しちゃってごめんね。
解決できて感謝してます。
604nobodyさん:2012/02/16(木) 02:36:52.86 ID:???
TeraPadのUTF-8対応ってたしかまだ不完全だろ
605nobodyさん:2012/02/16(木) 04:18:49.73 ID:???
UTF-8に完全に対応してるテキストエディタってあるん?
606nobodyさん:2012/02/16(木) 05:03:04.18 ID:???
スレチ
607nobodyさん:2012/02/16(木) 06:14:28.88 ID:???
不完全ってどういうことなんだろ。よくわからんけどスレチだからいいか
608nobodyさん:2012/02/16(木) 07:48:03.60 ID:UroJIk1P
すいません、質問です。
最近PHPを勉強しはじめたばかりです。ある書籍を使って学んでいます。
ttp://pastebin.com/Y1mU93jq

上記サイトにソースをコピーしました。
DBから商品リストを取得する際に、5カラムごとに表示させるというものですが、
一応問題なく動きます。ですが、index.phpにそのまま入るとエラーで

Notice: Undefined index: page in D:\xampp\htdocs\shop\index.php on line 3

と、出ます。原因は想像がつくのですが対処法がわかりません。書籍のサンプルを実行したところ
同様のエラーがでていまして。。。

お手数ですが、どうのようにすれば良いのでしょうか?
609nobodyさん:2012/02/16(木) 07:53:32.53 ID:???
質問お願いします。

フォームから、0216 または 2/16 と入力されるデータを
02/16に統一したいんですが、どんな関数を使ったらいいんでしょうか?
str_replace とか preg_match とか、いろいろありすぎてよくわかりません。
springf で %d を使ってみたのですが、スラッシュ以降が捨てられてしまいました。orz

一文字ずつ文字か数字か調べて、二文字目にスラッシュがでてきたら、最初にゼロを加えて・・・
みたいな処理を書いてもいいんですが、PHPなら一発でやってくれる関数がありそうですよね。
どなたかご存知でしたら教えてください。よろしくお願いします。
610nobodyさん:2012/02/16(木) 07:58:11.14 ID:???
>>608
$page = '';
if (isset($_REQUEST['page'])) {
$page = $_REQUEST['page'];
}

もしくは
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : '';

611nobodyさん:2012/02/16(木) 08:00:13.36 ID:???
612nobodyさん:2012/02/16(木) 08:00:28.97 ID:???
>>608
初心者はXAMPP使うな
613608:2012/02/16(木) 08:10:51.64 ID:UroJIk1P
>>610
>>612

返信ありがとうございます。
なるほど・・・。if分と初期化までは浮かんだのですが、$pageじゃなくてpageだしなぁ・・・と考え込んでました。
さっそく試したらばっちりでした。ありがとうございました!。

xamppだめですか; 安全性とかからでしょうか?。。。
614nobodyさん:2012/02/16(木) 08:22:39.74 ID:???
xampp使うなって言いたいだけだから放置でおk
Undefined index〜ってエラーは配列のキーの値が見つからなかった時によく見るエラーだから覚えとくといい
Noticeだから人によっちゃエラーリポートをきって無視するって人もいるが
>>610のissetで最初にチェックする対処法が王道
615609:2012/02/16(木) 08:25:27.77 ID:Dbcdet1T
あ、すみません、sageてましたね ageます
616nobodyさん:2012/02/16(木) 08:28:44.34 ID:???
xamppはセキュリティーの設定がデフォルトで緩いんで公開サーバーとして使ってはいけないってだけで
ローカルでテストする分には問題ないよ
617nobodyさん:2012/02/16(木) 08:30:59.90 ID:???
>>615
/を除去してsprintf %04dして最後に真ん中に / 付ければいいんじゃない?
もっと簡単な方法があるかは知らんけど

618nobodyさん:2012/02/16(木) 08:34:59.14 ID:+jbHYpFg
>>610
$page = isset($_REQUEST['page']) ? $_REQUEST['page'] : '';
この?と:ってどういう意味ですか?
619nobodyさん:2012/02/16(木) 08:35:48.18 ID:???
614は素人だな
620608:2012/02/16(木) 08:44:05.91 ID:UroJIk1P
おお、たくさんの返信ありがとうございます。

評価の高かった書籍だったので(ほかの書籍は実は途中で挫折)購入してやってみると
phpっておもしろいなぁと初めて思えていますw

聞いて良かったです。書籍の答えもエラーなので放置してる人もいそうですが、気持ち悪かったもので;
本当にありがとう。

xamppはローカルのみなので大丈夫かな。ありがとうございました。
621nobodyさん:2012/02/16(木) 08:56:43.50 ID:???
>>618
if (A) { B } else { C }
の略

$page = A ? B : C;
622608:2012/02/16(木) 08:58:51.66 ID:UroJIk1P
あーもしかして、書籍はエラーリポートを切ってるから、何も触れてないのか・・・。
そういえばxampp設定時にiniを触りましたね。。。てことは、デフォルトでは切れてたのか・・・。
なるほど、すごく納得しました。

ありがとう、連投すいません。
623nobodyさん:2012/02/16(木) 09:08:57.78 ID:???
昨夜の人と同じ人?
624608:2012/02/16(木) 09:15:50.47 ID:UroJIk1P
>>623
私?別人です。
625nobodyさん:2012/02/16(木) 09:20:25.11 ID:Dbcdet1T
>>617
ありがとうございます。それでやってみます!
626625:2012/02/16(木) 09:22:23.87 ID:Dbcdet1T
あ、だめだ・・・

最初に スラッシュを取り除くと、 1/27 と 12/7 の区別がつかなくなってしまうんです。
入力する人たちに統一してもらえたらいいんですが・・・。
627nobodyさん:2012/02/16(木) 09:26:37.06 ID:???
0127や0101はいるけど127とか11と入力する人はいないの?
628nobodyさん:2012/02/16(木) 09:30:16.32 ID:+jbHYpFg
>>621
へえ、そういう記法があったのですね。ありがとうございます。
629nobodyさん:2012/02/16(木) 09:35:11.87 ID:???
三項演算子っていうんだがif文の代わりに使いまくるのはやめましょうね
630nobodyさん:2012/02/16(木) 09:39:59.90 ID:???
>>609
作れるなら素直につくってください
631nobodyさん:2012/02/16(木) 13:02:15.76 ID:???
>>626
スラッシュつきを先にやれば問題ないでしょ。
あと環境かいてないから提供されてる関数については教えられず。
632nobodyさん:2012/02/16(木) 13:33:51.23 ID:RNA+7C4L
csvの比較して抽出する物を作りたいのですが

csvA

[email protected],田中太郎
[email protected],山田花子
[email protected],鈴木太郎

csvB
[email protected]
[email protected]

と、2つのCSVがあるとして

phpを実行すると

csvC
[email protected],田中太郎
[email protected],鈴木太郎

というようにcsvBに一致する行を抽出して別csvに保存出来る物を作りたいです
どうすれば出来ますでしょうか?

お願いします
633nobodyさん:2012/02/16(木) 13:43:19.73 ID:???
csvを配列A、Bにぶち込んで
foreachで回して適合したヤツを別の配列Cにぶち込んで
配列Cをcsvで吐き出すかんじか

DBつかったほうがサバに優しいと思う
634nobodyさん:2012/02/16(木) 13:58:17.91 ID:???
>>633
レスありがとうございます
一度試してみます!

ローカル環境で使用するつもりなのでphpで行いたいと思います
635nobodyさん:2012/02/16(木) 14:11:37.35 ID:???
phpでDB使うのが一番。
すぐ慣れるしできることが広がる
636nobodyさん:2012/02/16(木) 14:14:14.01 ID:2CwemWqC
AをDBにいれてやったほうが確実によろしい
637nobodyさん:2012/02/16(木) 14:23:58.88 ID:RNA+7C4L
>>635
>>636
レス有難うございます

当方php初心者な者で・・・
mysql+phpでinsertくらいは出来るのですが
イマイチ今やりたい事がどうやれば出来るのかがわからないです;
638nobodyさん:2012/02/16(木) 14:31:36.91 ID:???
DBならtableA、Bをつくって いい感じに結合する
論よりrunっていうじゃん
とりあえずコード書いてみて動かなければスレ住人がアドバイスくれると思う

丸投げなら5000円でやってあげなくもない
639nobodyさん:2012/02/16(木) 15:07:23.79 ID:kcwNwXq8
>>631
なるほど。strposでスラッシュを探して、ありやなしやで処理を変えて
strtotimeとdateあたりで、できそうですね。ありがとうございました。
640nobodyさん:2012/02/16(木) 15:08:59.12 ID:kcwNwXq8
ID変わってました、>>639 = 625です、ありがとうございました。
641nobodyさん:2012/02/16(木) 15:09:33.74 ID:???
>>639
いったん全部同じフォーマットにしてしまうという方法もある。
数値型にしてしまうとか、日付型にしてしまうとかね
642nobodyさん:2012/02/16(木) 15:12:07.26 ID:ySUB6ST3
サクラちゃん!オレにエロい幻術をかけてくれってばよ!!
643nobodyさん:2012/02/16(木) 15:18:32.11 ID:???
$a = file("a.csv",FILE_IGNORE_NEW_LINES);
$b = file("b.csv",FILE_IGNORE_NEW_LINES);
$fp = fopen('c.csv', 'w');
foreach(file("a.csv") as $var){
$l=str_getcsv($var);
if(in_array($l[0],$b))fputcsv($fp, $l);
}
fclose($fp);
644nobodyさん:2012/02/16(木) 16:09:17.55 ID:???
もれそうです
ぶちゅーぶりぶり
645633:2012/02/16(木) 18:14:40.57 ID:RNA+7C4L
>>643
ありがとうございます;;
助かりました
646nobodyさん:2012/02/16(木) 18:22:00.74 ID:???
あそこ直して使ってね・・・
647633:2012/02/16(木) 18:44:18.58 ID:???
>>646
そのまま使えたのですが
直すところってあるのでしょうか?
648nobodyさん:2012/02/16(木) 18:47:40.34 ID:???
$aどこでつかってるのとかw
649nobodyさん:2012/02/16(木) 21:29:38.02 ID:???
CSVが1レコード1行と思ってる辺りも使えない
650nobodyさん:2012/02/17(金) 07:27:18.28 ID:uCAZxDKu
おはようございます。昨日、Notice: Undefined index〜 のエラーについて質問したものです。
今回も同じような質問で恐縮なのですが、Notice: Undefined index〜エラーが連発しました。
元ソースです ttp://pastebin.com/JcAYvrmH

エラ− Notice: Undefined index〜 line 36 37 45 46 54 55

そこで、昨日教えて頂いたので、自分なりに追記し、エラーを掃かなくなりました。
4行目と27行目に追加 ttp://pastebin.com/F3xP74Yx

この書き方で良いのでしょうか?
少し疑問に思ったのは、今回のような場合の大きいフォームの時に、冒頭に多数の配列のキーを書いていくことになるのでしょうか?
他に方法があるのでは?と、ご教授願いたく質問させて頂きました。

よろしくお願いします。
651nobodyさん:2012/02/17(金) 07:29:20.07 ID:???
>>650
マニュアル読んだことある?
652650:2012/02/17(金) 07:34:52.02 ID:uCAZxDKu
>>651
返信ありがとうございます。

マニュアルは、はい、一応見てはいます。見てはいるんですが、なかなか理解が。。。
それで、別のブログ?とかで説明して頂いてるようなサイトも見たり。

理解が乏しくてすいません。
653nobodyさん:2012/02/17(金) 07:38:07.95 ID:???
XAMPPで楽に環境作って開発始めるのはいいけど、
それで手を抜いてマニュアル読まないようじゃ、本末転倒だと思うよ
654650:2012/02/17(金) 08:03:12.13 ID:uCAZxDKu
>>653
返信ありがとうございます。

あの、とても質問しにくいのですが、
マニュアルとはarrayについてなのでしょうか、それとも、追記のそのものが違うということなんでしょうか。

arrayは、キーが整数ならば多少の省略ができるみたいですが、文字列となると単純には難しい感じなのかな。
連想配列のキーが何であっても空を入れるような・・・というより$errorはキーさえも入ってない状況?だから
どうでにもできないのかな?

とマニュアルを見て思いました。
655nobodyさん:2012/02/17(金) 08:11:36.95 ID:???
今回の件とXAMPPになんの関係があるんだよw
>>650
$error = array('name' => '', 'email' => '', 'password' => '');
これ入れると22行目で常に空じゃなくっていつまでも確認ページにジャンプされないんじゃない?

俺なら先頭に
$data = array('name' => '', 'email' => '', 'password' => '');
// $_POSTからname email passwordがあれば入れる
foreach (keys($data) as $key) {
 if (isset($_POST[$key])) {
  $data[$key] = $_POST[$key];
 }
}
でそれより下の$_POSTを全部$dataに置き換えする
656nobodyさん:2012/02/17(金) 08:18:41.12 ID:???
>>654
PHPの公式マニュアルは難しい参考書や問題集ではなく、入門向けの基礎ドキュメントになってる。
「はじめに〜機能」まではPHP開発者なら当然抑えておくべき知識。上級者でなく初心者のね。
最低限「はじめに〜言語リファレンス」までは理解していないと質問の会話も通じないし既存サンプルコードも理解できない。
読んで基礎を身に着けてから開発したほうがいいよ。
(一通りとかじゃなくて、ちゃんと理解して)
657nobodyさん:2012/02/17(金) 08:19:04.20 ID:???
追記
関数リファレンスは、最低限主要な関数くらいは見ておいたほうがいい
658nobodyさん:2012/02/17(金) 08:19:39.49 ID:???
てか質問と関係ないこと答えたな
フォーム関係だと、値を確認しないと危ないからどうしても長くなるよ
659650:2012/02/17(金) 08:46:33.43 ID:uCAZxDKu
みなさん、ありがとうございます。

>>655
ご指摘どおり動きませんでした。
エラーが消えて喜んでいたので、このまま参考書通り進めていったら気がつかなかったと思います。
たぶんエラーが消えたので、その箇所が問題だと疑問に思ってなかったと思うのです。
ぜひ参考にさせて頂こうと思います。foreachは浮かんだのに、そこからが出て来ないという。


>>656-658
あー、見てないです・・・知らなかったです。辞書のようなものだと思って
検索エンジンから関数入力して、直接その関数だけのを見てました。
トップページ見たことなかったです。。。
これは、嬉しい。必ず見て理解しながら、今の参考書をやろうと思います。

稚拙な質問ですいませんでした。ほんとにありがとうございました。
660nobodyさん:2012/02/17(金) 09:23:09.19 ID:???
>>659
俺は657-658だけど、ぶっちゃけ書籍とかいらない。
情報古いし誤記はあるし公式マニュアルの方が詳しいし。
今回みたいなことが発生する度にここで質問してたら一向に先に進まないから
基礎を身に付けてある程度自分で考えたり調べられるようになったほうがいいよ
661nobodyさん:2012/02/17(金) 10:15:08.87 ID:???
Notice: Undefined indexは最初無視していいよ
実際にサイトに設置するスクリプト書いた時直せばいい
662nobodyさん:2012/02/17(金) 16:27:16.33 ID:w/M88VPz
MVCって、view が、コントローラーありきじゃないですか。
となると、デザイナーが、
「ここ2ページふやしたいな」
「ここ、ディレクトリかえたいな」
とかなったらいちいちプログラマーがコントローラを
書き換えないとダメなんですか?
663nobodyさん:2012/02/17(金) 16:51:20.31 ID:UxdMuJ4N

コントローラがViewのインターフェイスに依存してる
664nobodyさん:2012/02/17(金) 19:36:37.46 ID:7dv+Ag3y
PDOのインスタンス「$dbh」のスコープについて質問です。
ファイルの先頭で、PDOインスタンスを生成して、DB操作をしています。
しかし、関数内では、ローカル領域のため、そのまま$dbhを使用したくても無視されます。

関数内で、DB操作するための解決策として、
1.「global $dbh」のようにグローバル宣言をする
2.「$dbh」を関数の引数で渡す
のように考えたのですが、どうするのがベストなのでしょうか?
665nobodyさん:2012/02/17(金) 20:07:52.04 ID:???
どっちでも
666nobodyさん:2012/02/17(金) 20:55:18.79 ID:???
俺なら関数内で
$dbh = $GLOBALS["dbh"];
とかかな
667660:2012/02/17(金) 20:55:35.29 ID:???
656-657だった
668650:2012/02/17(金) 21:27:24.10 ID:uCAZxDKu
>>660
ありがとうございます。がんばります!
669nobodyさん:2012/02/17(金) 22:58:30.87 ID:MzraE+7u
メール送信について教えて下さい。

機種依存文字とか半角カナに対応する場合、
mb_send_mailよりmail関数で送信する方が良いのでしょうか?
また、iso-2022-jpよりUTF-8の方が文字化けリスクは少ないのでしょうか?
670nobodyさん:2012/02/17(金) 23:22:09.91 ID:???
どこでそんな情報仕入れてきたんだ
671nobodyさん:2012/02/17(金) 23:39:23.76 ID:???
通信中の文字化けを減らす目的だったら再送するなどすれば?
672nobodyさん:2012/02/17(金) 23:44:54.56 ID:???
どういった文字化けなのか調べてから質問しろ。
送信関数のバグか、受信側のエンコード認識ミスなのか、回線に比べサイズが大きすぎて送受信にミスるのか。
いちばん手軽に実装できる方法でやってみてそのエラーを書け。
673nobodyさん:2012/02/17(金) 23:49:47.62 ID:MzraE+7u
どう言った文字化けと言いましても・・・「?」と表示されます。
UTF-8のファイルに、mb_send_mailで機種依存文字や半角カナを送り、
outlookやgmailで受信すると文字化けします。

というか>>669は間違いなんでしょうか?
ググってもmb_send_mailは文字化けするから使うなってあります。
実際文字化けするので、そうなのかとは思いますが、
単にコードの書き方が悪いのかも?と思い、質問した次第です。
674nobodyさん:2012/02/17(金) 23:51:27.34 ID:???
>>673
コードの書き方が悪いんじゃない?
675nobodyさん:2012/02/17(金) 23:54:35.00 ID:MzraE+7u
mb_language('japanese');
mb_send_mail($email, 'テストメール', 'アアア');

UTF-8のファイルに単純に上記を書いてテストしています。
日本語メールをそう指定しているので、iso-2022-jpになるわけですが、
上記のままだと文字化けします。
mb_language('uni');にしてmail関数で送ると文字化けしません。
だからUTF-8にしてmail関数で送るのが正しいのでは?と思い、質問した次第です
676nobodyさん:2012/02/17(金) 23:56:51.68 ID:???
languageがuni?
677nobodyさん:2012/02/17(金) 23:57:09.06 ID:???
mb_internal_encoding
678nobodyさん:2012/02/18(土) 00:04:31.94 ID:XbBhkQAF
とりあえず今のところ↓の書き方なら文字化けしません。
mb_send_mail使っても文字化けしない方法ってあるんですね。
もう少し調べてみます。

mb_internal_encoding("UTF-8");
mb_language('ja');
$to = "メールアドレス";
$subject = mb_encode_mimeheader('テストメール');
$body = mb_convert_encoding('アイウエオ', 'sjis-win', 'UTF-8');
mail($to,$subject,$body);
679nobodyさん:2012/02/18(土) 01:35:47.85 ID:???
エンコードの自動変換をミスっただけだろ。
要するに設定次第で上手くいく。
680nobodyさん:2012/02/18(土) 05:00:23.69 ID:QcioPwmz
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />
<input name="MyArray[]" />

これをHTTP_REQUESTでaddPostDataするにはどうしたら良いでしょうか?
681nobodyさん:2012/02/18(土) 05:12:01.30 ID:???
>>680
foreach ($_POST['MyArray'] as $v) {
 $req->addPostData("MyArray[]", $v);
}
682nobodyさん:2012/02/18(土) 10:29:51.01 ID:10KYAU7Y
ホストのIP変換が遅いのですが、早くする方法を教えてください。
さくらスタンダード、 PHP Ver5.2.17(CGI版)で、
$ipaddr=gethostbyname($domain);
の時間を測定すると、通常はマイクロ秒くらいの一瞬で終わるのですが、
ときどき5秒くらいかかることがあります。
同じドメインでも一瞬で終わるときと時間がかかるときがあるようです。
683nobodyさん:2012/02/18(土) 11:40:26.02 ID:???
それはPHP関係ないのでは
関数どうこうでなる問題じゃないでしょう
684nobodyさん:2012/02/18(土) 12:10:41.22 ID:10KYAU7Y
>>683
やっぱり無理ですか、残念ですがガマンすることにします。
ありがとうございました。
685nobodyさん:2012/02/18(土) 18:36:17.03 ID:Agr52FPR
URLのHTMLソースをそのまま取得する方法はありますか?
file_get_contentsだとタグ等を取得できません。
ソースをそっくりそのまま取得するにはどうしたら良いでしょうか?
686nobodyさん:2012/02/18(土) 18:37:10.00 ID:AZw1wiBM
どうでもいいじゃん、そんなこと
687nobodyさん:2012/02/18(土) 18:44:16.60 ID:???
file_get_contentsでタグを取得できない?なにいってんだ?
688nobodyさん:2012/02/18(土) 18:44:44.12 ID:???
403でも返ってきてるんだろ
689nobodyさん:2012/02/18(土) 18:46:05.98 ID:???
ローカルからやれば取得できるさ
690nobodyさん:2012/02/18(土) 18:47:33.53 ID:???
HTMLソースをそのまま取得しない方法を聞いてるんじゃね
691nobodyさん:2012/02/18(土) 18:58:51.71 ID:Agr52FPR
すいません、初心者なので変なこと聞いてしまっているかも知れませんが、
<?php
echo file_get_contents('http://www.yahoo.co.jp/');
?>

これだとソースではなくページを表示しますが、これを下のように

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
<meta http-equiv="content-style-type" content="text/css">
<meta http-equiv="content-script-type" content="text/javascript">
<meta name="description" content="日本最大級のポータルサイト。検索、オークション、ニュース、メール、コミュニティ、ショッピング、
など80以上のサービスを展開。あなたの生活をより豊かにする「ライフ・エンジン」を目指していきます。">
<title>Yahoo! JAPAN</title>
etc

とソースを表示させたいです、どうすればいいでしょうか?
692nobodyさん:2012/02/18(土) 19:03:43.03 ID:???
>>691
htmlspecialcharでもかませ
693nobodyさん:2012/02/18(土) 19:40:17.07 ID:Agr52FPR
>>692ありがとうございます、できました。
694nobodyさん:2012/02/18(土) 20:52:04.00 ID:GMcMwBnH
アップローダー作る場合は何か許可等はほしいのでしょうか?
また、利用規約は禁止事項、アダルト禁止や、児童ポルノ画像は
通報する等の警告を書かないとダメだったりしますか?
695nobodyさん:2012/02/18(土) 21:01:41.90 ID:???
>>694
アダルトはどこからアウトでどこからセーフかという問題があって難しいですね
少年漫画のパンチラレベルならおkなはずです
アダルト画像判別ライブラリがあるといいのですが
696nobodyさん:2012/02/18(土) 21:15:41.43 ID:AZw1wiBM
CGMはユーザがコンテンツをやり取りする場を提供するもの
他人のコンテンツは勝手にいじれない
規約に同意させて特定のコンテンツについて当事者に加えてもらえば自分のもんだから消し放題になる
697nobodyさん:2012/02/18(土) 21:20:25.30 ID:???
698nobodyさん:2012/02/19(日) 02:22:12.54 ID:wQztI7LL
phpでrssリーダーを作りたいんだが、titleを取得してリンクさせるまではできた。
だが、スマートフォンに対応してないニュースサイトがあるため、xmlの中のtitleとbodyを取得して、スマホ向けにデザインを変更したいんだがどうすればいい?
一時的にhtmlを自動生成すればいいの?やり方がわからぬ、、、。
699nobodyさん:2012/02/19(日) 02:23:30.04 ID:???
700nobodyさん:2012/02/19(日) 10:43:18.52 ID:DFHu3tLC
fopenのmodeパラメータですが、
書き込み用モードで開くと自動的に排他制御になるのでしょうか?
同じリソースを使って書き込み/読み込みをしようとa+を指定したとき、
読み込みでも排他制御されてるようです。
これは困るのですが読み込みと書き込みは、
別々のリソースで管理しないとだめなのでしょうか?
701nobodyさん:2012/02/19(日) 11:02:15.97 ID:???
>>700
flockは入れてるの?
702nobodyさん:2012/02/19(日) 11:14:52.49 ID:ULtF97rd
for文作ってるのですけど、

for(i=0; i<10; i++){
 $data["thanks$i+1"] = $i;
}

だとうまくいかないっす。
i+1をあそこに書くにはどうしたらいいんでしょうか?
703700:2012/02/19(日) 11:15:31.80 ID:DFHu3tLC
>>701
読み込みには入れてません。
704nobodyさん:2012/02/19(日) 11:23:10.10 ID:???
$t=$i+1;
$data["thanks".$t]=$i;
705nobodyさん:2012/02/19(日) 11:32:17.68 ID:???
>>704
ありがとう
ちなみに、文の中に数式を埋め込むのは不可なのですか。
関数だったら返り血使って普通にやりますよね?
706nobodyさん:2012/02/19(日) 11:35:07.23 ID:???
>>703
排他的ロックってのはロックしてる間読み込みも書き込みもできないようにするロックだよ
707nobodyさん:2012/02/19(日) 11:43:36.84 ID:???
>>705
汚いけどできるよ
$data["thanks".($i+1)]=$i;
708nobodyさん:2012/02/19(日) 11:52:20.82 ID:???
>>707
できました
あんまり好ましくはないようですね
先に教えてもらった方を使います
どもども
709nobodyさん:2012/02/19(日) 15:38:42.75 ID:???
返り血・・・血しぶき ドバーッ て感じだ。
710nobodyさん:2012/02/19(日) 22:01:19.96 ID:0c+jTY14
PHPアプリの二重ログイン防止策は、どうのように実装するのが良いのでしょうか?
有名SNSゲームが二重ログインのバグでサービス停止になったらしく気になります。
711nobodyさん:2012/02/19(日) 22:05:18.54 ID:???
>>710
その話詳しく
712nobodyさん:2012/02/19(日) 22:08:06.99 ID:???
ドリランドの件じゃなくて?
あれは二重ログインとはまた別の話だよね。
二重ログイン防止はセッションをDBで管理すればいいかな。
713nobodyさん:2012/02/19(日) 23:25:00.75 ID:TyCjVWx4
>>712
ドリランドの件です。
バグの利用だそうですが、「二つの機器のアカウントを同じにする」とあるので、
二重ログインにも関係していると思いました。
714nobodyさん:2012/02/19(日) 23:49:52.59 ID:???
トランザクションかけてなかっただけの話ではなく?
715nobodyさん:2012/02/20(月) 00:32:56.31 ID:0kztJ4Qe
>>711
ttp://blog.livedoor.jp/dqnplus/archives/1697409.html
遅れてすみません。

>>714
見る限り、トランザクションは関係ないようです。
デュープとかいう手法でアイテムを複製されるバグのようです。
716nobodyさん:2012/02/20(月) 00:51:48.56 ID:???
変数名に$をつけるとかめんどくせーな
717nobodyさん:2012/02/20(月) 01:11:59.90 ID:???
>>715
見れば見るほど関係あるように見えるが。
デュープとトランザクションが関係ないという理由は?
718nobodyさん:2012/02/20(月) 01:49:12.03 ID:???
>>715
トランザクションでググればみんなが言ってる事が理解できるよ
あんたもプログラマの端くれなら
憶測で物事を決め付けてかかる癖は直しなさい
719nobodyさん:2012/02/20(月) 03:43:08.72 ID:???
デュープとかトランザクションとか横文字に知るからゆとりが混乱するんだろうが
排他制御って書いてやれよ
720nobodyさん:2012/02/20(月) 10:15:38.36 ID:???
>>713
基本的にこの手のものは二重ログインは防止するものではないよ。
ユーザーがひどく不便になる。
721nobodyさん:2012/02/20(月) 12:18:04.55 ID:GErhC2S3
cURLのIDNを有効にするにはどうしたらいいんでしょうか
"curl idn enable"でggってみてそれらしきページはあったんですが何を言ってるのがサッパリでした
OSはwindows vistaでPHPはver.5.3.8、cURLは7.21.7です
722nobodyさん:2012/02/20(月) 12:56:17.89 ID:???
>>721
何を言ってるのかサッパリならわからない単語でさらにぐぐらないと。
そうやって技術書をスタックにつんでこそ。
723nobodyさん:2012/02/20(月) 14:12:46.11 ID:???
うおー、PHP.netがつながらない。困った。

でも俺だけっぽいな?
724nobodyさん:2012/02/20(月) 14:14:15.72 ID:???
ほんとだつながらない
725nobodyさん:2012/02/20(月) 14:19:42.73 ID:7zywTD2d
>>723
俺も繋がらないよ (千葉県でOCN回線)
726723:2012/02/20(月) 14:23:06.17 ID:???
>>724-725
うちは、都内でflet's + Interlinkだ。
普通にさば落ちかな。
727nobodyさん:2012/02/20(月) 14:34:51.94 ID:???
www.php.net→タイムアウト
jp.php.net→変なメッセージが出る
jp2.php.net→サーバが見つからない
728nobodyさん:2012/02/20(月) 14:37:32.11 ID:???
usの2つは繋がる
http://us.php.net/
http://us2.php.net/
729nobodyさん:2012/02/20(月) 14:40:31.59 ID:???
DNS浸透の問題じゃないか?

php.net
繋がらないPCだと[64.246.30.37]
繋がるPCだと[69.147.83.197]
730nobodyさん:2012/02/20(月) 14:42:50.02 ID:???
ドドランド詳しく
731nobodyさん:2012/02/20(月) 15:44:56.71 ID:???
>>716
同感

普段他の言語使ってるから
PHPで依頼されるとき$にイライラする
732nobodyさん:2012/02/20(月) 15:56:02.91 ID:???
そしたらvarで変数定義して、あとで変数に$を付けるスクリプト作れ。
733nobodyさん:2012/02/20(月) 16:01:28.31 ID:???
$がないPHPもつくれるだろうが人間の利便性より、解析処理速度を優先したんだろ。
内部コードがUTF16のPHPも作れるが、計画して進展しないのはやはりソースの解析速度だろ。
734nobodyさん:2012/02/20(月) 16:09:55.54 ID:???
perlの変数に$がついてるからだろ
735nobodyさん:2012/02/20(月) 16:15:07.69 ID:???
JavaScriptには付いてないけど。
PHPはperlに元にしてるのか。
736nobodyさん:2012/02/20(月) 16:15:38.57 ID:???
文字列中の展開とかあるしな。
使える記号も選べるほどないし
737nobodyさん:2012/02/20(月) 16:39:46.15 ID:???
ドのはなぁ…
規模が小さければトランザクションだ〜とかで済むけど
規模が大きくなると基本が通じなくなる事もあるみたいだしな

ttp://d.hatena.ne.jp/iad_otomamay/20110808/1312805917
見たいな事象もあったりするし

それならそれで手を考える必要はあるんだろうが
その手のライブラリをしっかりと整備出来ていなかったのが痛いな
738nobodyさん:2012/02/20(月) 17:21:34.54 ID:???
だから、現金で取引されるようなデータには
固有の値をいれとけとあれほd
739721:2012/02/20(月) 19:29:31.34 ID:???
>>722
ウウッ(´;ω;`)ヒントだけでも頼むよぉ・・・
740nobodyさん:2012/02/20(月) 19:35:40.43 ID:???
>>739
英語だけじゃなくて日本語も読めないの?
741nobodyさん:2012/02/20(月) 19:42:12.40 ID:???
PHP.net復活したくさ。
742nobodyさん:2012/02/20(月) 20:14:43.94 ID:???
>>721
再コンパイルの仕方がわからないならxamppからPHP抜いて試してみるとよかろう
俺の使ってるXAMPP Lite 1.7.3のPHP5.3.4はONになってる
最新バージョンがどうかは知らないが
最新のxampp1.7.7はPHP5.3.8だし試してみる価値はあるだろう
743nobodyさん:2012/02/20(月) 20:18:08.26 ID:???
画像アップロードがほぼ完成して、自分が作ったソースファイルを
読んでたのですか、ifとelseを多用して非常に読みにくくなってました。
php歴2年ですが、これって素人がよくやるようなことなのでしょうか?
なにか解決策はありますか?
744nobodyさん:2012/02/20(月) 20:30:10.23 ID:???
745nobodyさん:2012/02/20(月) 20:43:06.11 ID:NoHq1hRP
正規表現で特定の文字の間の文字を取り出すことはできますか?
例えば、
あいうえおあ
という文字列があったら、あとあの間の文字の(いうえお)を表示する。と言うことは可能でしょうか?
746nobodyさん:2012/02/20(月) 20:46:16.34 ID:???
747nobodyさん:2012/02/20(月) 20:46:30.08 ID:???
可能
748nobodyさん:2012/02/20(月) 20:49:21.61 ID:???
>>743
今度からは>>1よめ

ifelse多様してるならswitch文が速いらしい
749743:2012/02/20(月) 21:09:36.19 ID:Hy6/Os+0
すいません、下げてました。

>>748
switch文をを試してみます。
750nobodyさん:2012/02/20(月) 23:39:14.07 ID:???
>>747ありがとうございます。
751nobodyさん:2012/02/21(火) 00:33:40.75 ID:???
NginXとFastCGIで、
a.phpで
<?php echo file_get_contents("http://localhost/b.php"); ?>
として、

b.phpで
<?php echo "hello"; ?>

とすると、固まってしまう。
b.phpで、file_put_contentsとかしてみると出力はあるから、アクセスはしてるんだけど、
レスポンスが取得できてないくさい。
fopenやstream_socket_clientもダメだった。
ちなみにa.phpでhtmlやtxtなどの静的コンテンツは取得できた。
a.phpをコマンドラインで実行すると普通にレスポンス返ってきてるんだが・・・
何が原因なのかさっぱりわからん。
752nobodyさん:2012/02/21(火) 01:13:11.18 ID:???
753nobodyさん:2012/02/21(火) 01:20:19.98 ID:???
>>752
>>751のどこに質問と書いてある?
754nobodyさん:2012/02/21(火) 02:58:29.45 ID:???
>>737
ねえ、そのリンク先のだとトランザクション管理できないって言ってる?
そうじゃないなら何でそれ出したの?
755nobodyさん:2012/02/21(火) 06:54:25.99 ID:6SIN0kwR
WikipediaのSingletonのJavaで書かれた項目をPHPに移植したいのですが、
http://ja.wikipedia.org/wiki/Singleton_%E3%83%91%E3%82%BF%E3%83%BC%E3%83%B3

1つ目の例の書き方だと問題ないのですが、
2つ目の例の書き方の2行目をPHPで書くのは無理でしょうか?
同期化コストってのはようするにif文を毎回呼ぶのがよくないってことだと思うのですが、
2つ目の例の2行目の書き方がPHPでだめだとして、改善方法はありますか?

final class Singleton {
    private static final $instance = new Singleton();
    private function __construct() {}
    public static function getInstance() {
        return Singleton::$instance;
    }
}
$s = Singleton::getInstance();
$s2 = Singleton::getInstance();
var_dump($s);
var_dump($s2);

Fatal error: Cannot declare property Singleton::$instance final〜
そこで$instanceのfinalを取ると
Parse error: syntax error, unexpected T_NEW in〜
となります。

外からアクセスできるので質が違いますが、
private static finalに近そうなconstも試して見ましたが同様のエラーが出ます。
756nobodyさん:2012/02/21(火) 07:18:35.44 ID:???
>>755
コンストラクタ内でやればいいのでは?
757nobodyさん:2012/02/21(火) 07:19:30.05 ID:???
ああごめん、違うか
758nobodyさん:2012/02/21(火) 07:20:50.57 ID:???
final外すとか
759nobodyさん:2012/02/21(火) 08:11:46.42 ID:???
答える側も基本的な事すら調べないのな…

>>755
> 同期化コストってのはようするにif文を毎回呼ぶのがよくないってことだと思うのですが、
違う、同期化コストはJavaのsyncronized修飾子に対しての言葉
PHPではif文で毎回調べるのが常套手段となっている

http://www.php.net/manual/ja/language.oop5.properties.php
> 宣言時に初期値を設定することもできますが、初期値は定数値でなければなりません。
> つまり、コンパイル時に評価可能な値でなければならず、
> 実行時の情報がないと評価できない値であってはいけないということです。
760751 :2012/02/21(火) 08:31:30.02 ID:???
自己解決した。単純な話だった
761nobodyさん:2012/02/21(火) 10:14:06.04 ID:???
ルール無視したまま退散か、このlocalhost野郎
762nobodyさん:2012/02/21(火) 10:14:54.16 ID:???
ルール守った所でお前みたいな無能には一生わからないからな
763755:2012/02/21(火) 10:19:56.57 ID:???
>>756-759
レスありがとうございます。

>>759
なるほどそういう意味でしたか。
syncronizedがどういうものかはよくわかりませんが、
PHPでは最初の例が常套手段ということは理解しました。

比較対象のため少しJavaの勉強もしてみようと思います。
どうもありがとうございました。
764nobodyさん:2012/02/21(火) 10:24:44.01 ID:otlrgE39
基本的なことかもしれませんが、教えてください。

ftp_get関数を使って、リモートのファイルをローカルに保存したいのですが
うまくいきません。

リモートでPHPの動かしていると、オフィシャルマニュアルのいうところの
「ローカル」というのは、動いている場所を指してしまうのですか?

具体的に書くとレンタルサーバー上のtest.phpの中で、ftp_get関数を使うと
レンタルサーバーの/home/hoge/に「C:\temp\downloaded.txt」 という名前のファイルが
できてしまってローカルには何もダウンロードされないのですが、これは仕様ということですか?
765nobodyさん:2012/02/21(火) 10:37:35.23 ID:???
Java知らないのにJavaのコードを移植しようとはこれいかに
766nobodyさん:2012/02/21(火) 10:40:04.48 ID:???
んな難しいことじゃないだろ
Javaなんて知らんでも>>755程度ならPHPある程度やってるやつなら誰でも移植できる
767nobodyさん:2012/02/21(火) 10:43:47.00 ID:???
でもつまづいてるのは、知らないからだというw
768nobodyさん:2012/02/21(火) 10:57:28.75 ID:???
>>764
ローカルとは実行してるコンピュータのこと
当然レンタルサーバーでftp_getを使えばftp_getの引数で指定した先からサーバー(ローカル)にダウンロードされ保存される

769nobodyさん:2012/02/21(火) 10:59:15.38 ID:otlrgE39
>>768
やっぱりそうでしたか、目の前の箱だと思っていたのが間違いでしたね。汗
ありがとうございました。べつな方法を考えてみます。
770nobodyさん:2012/02/21(火) 14:39:44.56 ID:???
PHPでのチェックボックスでの値の受け取り方や配列の扱い方よくわからないので教えて下さい。htmlの部分で
<input type="checkbox" name="checkbox01[]" value="0"> 〜 <input type="checkbox" name="checkbox01[]" value="2">
とチェックボックスをつくりました。そしてPHPの処理部分では

// チェックボックスに値があれば
if($_GET["checkbox01"]){
foreach($_GET["checkbox01"] as $val){
if($val==0){
$data["A"]='あ';
}
elseif($val=1){
$data["B"]='い';
}
elseif($val=2){
$data["C"]='う';
}
}
// $dataがアレばそれぞれ
if($data["A"]){
print_r($data["A"]);
}
if($data["B"]){
print_r($data["B"]);
}
if($data["C"]){
print_r($data["C"]);
}
}
771nobodyさん:2012/02/21(火) 14:41:32.79 ID:???

としたのですが、チェックすべてに値をつけても 「あい」 までしか表示されません。試しに // チェックボックスに値があれば の前で 
print_r( $_GET["checkbox01"]); 
としたら 
Array ( [0] => 0 [1] => 1 [2] => 2 )
と表示され、// $dataがアレばそれぞれ の前でも
print_r($data);
としたら
Array ( [A] => あ [B] => い )
と表示されたため、foreach文ないがおかしいとはおもうのですが解決方法がわかりません。
どのようにしたらいいのでしょうか?

長くなってしまったので連投してすみません、どなたかお知恵をかしてください。
772nobodyさん:2012/02/21(火) 14:43:28.71 ID:???
$val=1  → $val==1
$val=2 → $val==2
773nobodyさん:2012/02/21(火) 15:08:48.42 ID:???
これは質問者が間違って書いたから訂正してるのか、
別の人の解答なのかどっち?
ID無いからわからんな
774770:2012/02/21(火) 15:21:10.42 ID:???
>>772
ありがとうございます。こんな凡ミスなんて・・・
あと調べててin_array関数というのもみつけたのですが、foreachで繰り返して探すより

if(in_array("0", $_GET["checkbox01"] ){
}
if(in_array("1", $_GET["checkbox01"] ){
}

といったように内容は同じだとおもうのですがin_arrayで調べたほうがいいのでしょうか?
775nobodyさん:2012/02/21(火) 15:37:57.26 ID:???
>>774
全部処理するならforeach使うけどなぁ
in_arrayは検索する時だけ
776770:2012/02/21(火) 16:07:46.92 ID:???
>>775
ありがとうございます。
結局この場合はどちらがいいのでしょうか?
777nobodyさん:2012/02/21(火) 16:17:22.51 ID:???
>>776
この場合はforeach
778nobodyさん:2012/02/21(火) 16:19:18.56 ID:???
if($val==0){
$data["A"]='あ';
}
elseif($val=1){
$data["B"]='い';
}
elseif($val=2){
$data["C"]='う';
}

こんなことするなら最初からvalueにあいう入れればいいのに
779nobodyさん:2012/02/21(火) 16:59:54.36 ID:???
>>773
質問内容を理解してないから分からないんじゃないのか?
よって君はチェリーボーイ
780nobodyさん:2012/02/21(火) 17:07:19.21 ID:???
>>779
>>1読めって言ってんのがわかんねーやつは引っ込んでろよ
781770:2012/02/21(火) 17:08:17.74 ID:???
>>777
ありがとうございます。
そうじゃない場合はどんなときでしょうか?
782nobodyさん:2012/02/21(火) 17:15:36.37 ID:???
>>781
配列にひとつの値があるか検索する時
783nobodyさん:2012/02/21(火) 23:58:50.45 ID:QmooF5El
PHPの遅さを解消する方法はありますか?
784nobodyさん:2012/02/22(水) 00:03:26.59 ID:???
あなたの頭の回転の遅さを解消しましょう
785nobodyさん:2012/02/22(水) 00:07:59.95 ID:???
>>783
無駄な動作をなくせばいい
786nobodyさん:2012/02/22(水) 01:07:04.45 ID:HjiaSrjv
>>785
CakePHPを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。

WordPressを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。

OpenPNEを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。

symfonyを早くするためにはどうしたらよろしいでしょうか?
デフォルトの状態です。
787nobodyさん:2012/02/22(水) 01:09:47.45 ID:???
また発作か
788nobodyさん:2012/02/22(水) 01:39:15.45 ID:HjiaSrjv
結局、言語自体が遅い気がします。
789nobodyさん:2012/02/22(水) 01:42:23.62 ID:???
今時体感できるほど遅いなら単にサーバがしょぼいだけだろ
790nobodyさん:2012/02/22(水) 01:44:59.53 ID:HjiaSrjv
>>789
他の言語に比較して遅いです。
比較はJavaとPythonです。
791nobodyさん:2012/02/22(水) 01:46:11.48 ID:HjiaSrjv
PHPもページ単位で処理が終わるものなら早いですが、
オブジェクト指向を始めると途端にパフォーマンスが悪くなるようです。
792nobodyさん:2012/02/22(水) 01:48:41.94 ID:HjiaSrjv
>>789
ローカル環境でも遅いのでどうしようもありません。
793nobodyさん:2012/02/22(水) 01:54:46.01 ID:???
じゃ窓からPCでも捨てればいいと思うよ
794nobodyさん:2012/02/22(水) 01:57:04.91 ID:HjiaSrjv
PHPでセッションにオブジェクトを格納することは少ないのでしょうか?
アプリケーションスコープが無いのはわかっていますが、セッションはありますよね。
WordPressしかり、Cakeしかり、symfonyしかり、オブジェクト格納場所として
セッションは考えられていないようです。これが結果としDBへの
余分なアクセスを増大させているようです。
795nobodyさん:2012/02/22(水) 01:58:42.03 ID:HjiaSrjv
>>793
たとえばOpenPNEが稼働しているサイトで機敏に動くところはありますか?
自分が知っている限り無いと思いますが・・・。
796nobodyさん:2012/02/22(水) 02:10:14.28 ID:???
OpenPNE使ってるサイトなんて画像が多かったりコード量が多いサイトがほとんどだろ
なんでもかんでもPHPのせいにすればいいってもんじゃない
797nobodyさん:2012/02/22(水) 02:18:02.00 ID:???
>>789
さすがにそれは無いわ。サーバがしょぼいの敷居がよほど高くなければ。
798nobodyさん:2012/02/22(水) 02:18:21.92 ID:HjiaSrjv
>>796
書いていますが、デフォルトの状態ですでに重いのです。
一切カスタマイズしていない状態です。ちなみに3.6系の最新版です。
デバックモードで起動するとものすごい数のSQLクエリが発行されています。
>>794についてはどう思われますか?
799nobodyさん:2012/02/22(水) 02:20:08.85 ID:HjiaSrjv
PHPのインタープリタが遅いのは承知していますが、
それ以上にクエリをムダに発行しているように思えるのです。
800797:2012/02/22(水) 02:20:36.63 ID:???
>>798
PHP部に限って言うならopコードキャッシュ使う。
DBアクセス数が多くて、コネクション生成コスト、クエリコストが原因で遅いのであれば、PHP自体の問題ではなくなる
801nobodyさん:2012/02/22(水) 02:21:25.34 ID:???
本当にそれが無駄なのであれば改善すれば世界中の人に喜ばれるよ。
802nobodyさん:2012/02/22(水) 02:22:22.14 ID:???
>>794についてはどう思われますか?

一人だけで使うなら別にいいんじゃね
803nobodyさん:2012/02/22(水) 02:23:07.36 ID:HjiaSrjv
PHPのリソースの捉え方が非常に大雑把で困惑しています。

たとえばJavaであれば
1.アプリケーションスコープ
2.セッションスコープ
3.リクエストスコープ

以上の3スコープに欲するデータが無い場合のみDBへアクセスしますが、
CakeやWordPress、OpenPNEなどの場合はお構いなしに毎回DBへアクセス
しているのが不思議です。
804nobodyさん:2012/02/22(水) 02:26:05.08 ID:???
>>803
Webサーバを複数使うことを想定してそうなってるわけじゃなくて?
設定とかで変えられないの?ってか、変えられないからそのように断定しているんだろうけれど。
805nobodyさん:2012/02/22(水) 02:30:02.12 ID:???
>>803
ちなみに期待するレスポンスはどの程度で、現状はどれくらい?
同時接続クライアント数など、必要なものを列挙してほしい。ベンチの結果でもいい。
806nobodyさん:2012/02/22(水) 02:32:41.04 ID:???
それがわからないから管を巻いてんじゃねえかな
807nobodyさん:2012/02/22(水) 02:40:30.48 ID:HjiaSrjv
>>805
>>806
PHPの主要フレームワークやCMSのソースコードリーディングに基づき、
このスレを書き込みしています。実践というわけではありません。

気づいたことはオブジェクトの一時保存場所としてセッションが
使用されていないのが不思議なのです。だからSQL発行が非常に多い。
これはなぜですか?
808nobodyさん:2012/02/22(水) 02:41:22.45 ID:???
>>807
>>804の1行目は理解できる?
809nobodyさん:2012/02/22(水) 02:43:20.60 ID:HjiaSrjv
>>808
PHPは分散オブジェクトは対応していないのですか?
810nobodyさん:2012/02/22(水) 02:46:14.38 ID:???
>>809
Javaのスコープの話が出てきた時点でこうなりそうな気はしていたが。

今後の話をわかりやすくするために「分散オブジェクトに対応する」というのがどういうことか伝えてもらえるかな。
811nobodyさん:2012/02/22(水) 02:50:27.92 ID:HjiaSrjv
>>810
複数のコンピュータ間で同じオブジェクトを同一マシーン上で処理が済むことと同じようにすることですよね。
812nobodyさん:2012/02/22(水) 02:53:35.00 ID:HjiaSrjv
OpenPNE,WordPress、CakePHPはセッションへオブジェクトを格納する設計になっていないのでしょうか?
813nobodyさん:2012/02/22(水) 02:54:02.25 ID:???
>>811
それでいいのなら、対応してる。
814nobodyさん:2012/02/22(水) 02:55:12.88 ID:???
>>812
ソースコードリーディングは諦めたの?
815nobodyさん:2012/02/22(水) 02:56:50.78 ID:HjiaSrjv
>>812
なぜ同じクエリを何度も発行しているのでしょうか?
OpenPNE3.6系です。
816nobodyさん:2012/02/22(水) 03:00:29.37 ID:???
いらなクエリをコメントアウトすればいいんじゃね?
817nobodyさん:2012/02/22(水) 03:02:33.49 ID:HjiaSrjv
>>816
その論法で行くと全部コメントアウトになりますが・・・。

私の質問はPHPでは答えにくのでしょうか?
818nobodyさん:2012/02/22(水) 03:04:26.65 ID:???
そろそろしんどい。

>>815, 817
繰り返すが、それが本当に無駄なら報告すれば多方面から感謝されるからそうしたらいい。
819nobodyさん:2012/02/22(水) 03:08:04.96 ID:HjiaSrjv
>>818
そんなに大げさなことでしょうか?
OpenPNEを試されたことがありますよね?
デバックモードで起動するとSQL発行数がわかりますが、すごい量です。
これはなぜですか?と言っているだけです。だから遅いんじゃないでしょうかと。
820nobodyさん:2012/02/22(水) 03:09:29.52 ID:HjiaSrjv
セッションにオブジェクトを格納しない理由があるのでしょうか?
昔はシリアライズのバグの話は聞いたことがありますが、さすがに今は解消しているはずです。
821nobodyさん:2012/02/22(水) 03:09:46.81 ID:???
>>819
デバッグモードじゃなければ発行されないの?
何のために使われるクエリなのかは調べてないの?
OpenPNEは使ったこと無いよ。使ったこと無いならレスしないでっていうことなら喜んでレスやめる。
822nobodyさん:2012/02/22(水) 03:09:49.44 ID:???
セッション切れるまでリソース保持とかどんな罰ゲーム
823nobodyさん:2012/02/22(水) 03:09:54.82 ID:???
x86命令セット渡しても文句言いそうだな
824nobodyさん:2012/02/22(水) 03:11:44.08 ID:???
どういう学び方をしたらこんなこじらせた頭になるんだ?
825nobodyさん:2012/02/22(水) 03:11:56.60 ID:HjiaSrjv
>>821
デバッグモードで起動するとSQLクエリの発行数がわかります。
826nobodyさん:2012/02/22(水) 03:13:20.43 ID:HjiaSrjv
>>822
それならそれでいいんです。
PHPでは罰ゲームレベルという理解でよろしいのですね。
827nobodyさん:2012/02/22(水) 03:13:21.46 ID:???
こんなとこで使ったこと無い人相手にがんばるくらいならコード読み進めてみたら?
828nobodyさん:2012/02/22(水) 03:14:30.57 ID:HjiaSrjv
結局のところ、
PHPではセッションにオブジェクトを格納するのは一般的ではないという結論ですね。
829nobodyさん:2012/02/22(水) 03:15:13.92 ID:???
>>826
Javaだと放置セッションのリソースはいつ破棄されるの?
830nobodyさん:2012/02/22(水) 03:15:30.89 ID:???
>>826
だから言っただろ
一人だけで使うなら別にいいんじゃね
って
831nobodyさん:2012/02/22(水) 03:15:45.98 ID:HjiaSrjv
よくわかりました。道理でセッションが使用されていないわけだ。
832nobodyさん:2012/02/22(水) 03:16:55.71 ID:HjiaSrjv
>>829
アプリケーションサーバーの設定による。
ただし、プログラムレベルでは細かく殺してリソースのムダ遣いを減らします。
833nobodyさん:2012/02/22(水) 03:17:02.95 ID:???
他人のコードを読む時の絶望感といったら言葉にならない
らーらーらー ららーらー 言葉になら〜ない
834nobodyさん:2012/02/22(水) 03:17:23.17 ID:???
PHPだけの問題じゃないでしょうに
Javaだって同じ事
835nobodyさん:2012/02/22(水) 03:17:48.03 ID:???
>>832
PHPも一緒だよ。
836nobodyさん:2012/02/22(水) 03:18:45.31 ID:???
基礎知識が足りなさすぎるだろ
もっと幅広く勉強しろよ
837nobodyさん:2012/02/22(水) 03:19:08.08 ID:HjiaSrjv
もう大丈夫です。
PHPではセッションにオブジェクトを格納するのは一般的ではないということが
よくわかりました。
838nobodyさん:2012/02/22(水) 03:20:04.33 ID:???
どういたしまして。
839nobodyさん:2012/02/22(水) 03:24:16.48 ID:HjiaSrjv
セッションにオブジェクトを格納するのはPHPでは一般的では
ないとわかりましたが、それはPHPプログラマにとって尺に触ることでしょうか?
840nobodyさん:2012/02/22(水) 03:27:56.08 ID:HjiaSrjv
尺に触ったのであればすみまんでした。特に悪気はありません。
841nobodyさん:2012/02/22(水) 03:30:45.46 ID:???
癪に障るかってどういうことだろ。
たとえば一般的ではないことを強要されたら癪に障るかも知れないけれど。
842nobodyさん:2012/02/22(水) 03:38:58.82 ID:???
もしかして煽ろうとしていたのか…?
843nobodyさん:2012/02/22(水) 03:57:13.25 ID:???
>>840
キレてないっスよ
ペチパーキレさせたら大したもんスよ
844nobodyさん:2012/02/22(水) 04:52:15.14 ID:???
PHPでC言語の実装するとか言ってたのはどうなったんだ?
845nobodyさん:2012/02/22(水) 06:32:14.02 ID:???
PHPだからとかJavaだからとか関係ないから。
Webアプリケーションの設計の話でしょ。
846nobodyさん:2012/02/22(水) 07:41:18.69 ID:???
>>795
JavaとPythonで比較してるなら、OpenPNEに相当するJavaとPythonで実装されたもので
機敏に動くものを知りたい。
847nobodyさん:2012/02/22(水) 08:55:42.21 ID:???
もう大丈夫です。
PHPではセッションにオブジェクトを格納するのは一般的ではないということが
よくわかりました。
848nobodyさん:2012/02/22(水) 09:00:26.08 ID:???
PHPでなくても一般的ではない
849nobodyさん:2012/02/22(水) 09:03:48.77 ID:???
>>848
嘘つくなw
850nobodyさん:2012/02/22(水) 09:10:04.74 ID:???
コネクションプーリングってのはそもそもアプリケーション鯖が対応してなければ使えない
851nobodyさん:2012/02/22(水) 09:13:27.28 ID:???
>>850
当然。だからphpではコネプール不可。
852nobodyさん:2012/02/22(水) 09:15:30.80 ID:???
セッションの話はどうでもいいが、openpneが激重なのは同意。
かなりヤバイレベル。バージョン2の時代はマシだった。
853nobodyさん:2012/02/22(水) 09:17:48.11 ID:???
んでコネクションプーリングを実現するのにセッションが必要なんて
そんなヴァカな話があるのか
854nobodyさん:2012/02/22(水) 09:24:03.91 ID:???
>>853
たしかに、唐突にコネクションプーリングの話は変だとは思った。
その逆も必要ないかと。
話の流れとは関係ないw
855nobodyさん:2012/02/22(水) 10:49:21.91 ID:???
>>852
可能です。
以上。
↓次どうぞ
856nobodyさん:2012/02/22(水) 11:04:16.02 ID:yvJnpOho
>>783
CGIじゃなくてモジュールで動作させれば早いと書いてあった。
今のところはCGIで動作の仕様になってる。
857nobodyさん:2012/02/22(水) 11:17:37.00 ID:???
頭大丈夫 ?
858nobodyさん:2012/02/22(水) 11:27:57.48 ID:???
もう手遅れかと
859nobodyさん:2012/02/22(水) 15:35:04.94 ID:???
コネクションプーリングは言語レベルのサポートは無い。
860nobodyさん:2012/02/22(水) 15:37:33.90 ID:???
Javaのようなオブジェクト指向言語では普通にオブジェクトをセッションへ格納する。
861nobodyさん:2012/02/22(水) 17:05:21.76 ID:???
いいえアプリケーションで管理するのが普通です
862nobodyさん:2012/02/22(水) 17:34:31.83 ID:???
setcookie();の挙動について悩んでいます
a.phpで
echo $_COOKIE['testvar1'];
var_dump($_COOKIE);
---
b.phpで
setcookie('testvar1', 'bbb') //a.phpでbbbが出力される
---
c.phpで
setcookie('testvar1', 'ccc') //a.phpでcccが出力されない
setcookie('testvar2', 'xxx') //a.phpでtestvar2自体が確認出来ない

と、以上のようにしてる時、b.php → a.php の順番でアクセスするとechoもvar_dumpも正常な結果を返すんですが、その後
c.php → a.php の順番でアクセスするとechoはbbbを返し、var_dumpは追加したtestvar2自体を返さずtestvar1のみbbbとして返します
※c.php自体の中で echo $_COOKIE['testvar1'];すればcccを返します。また、c.phpのsetcookie();の返り値は1です
※また、b.phpの中でクッキーに入れる値を変更した場合はa.phpで変更後の値が確認出来ますが
c.phpの中で値を変更しても上書きされません(c.phpの中での確認です)

ドメインは全て同じで、原因が全くわかりません
何か考えられる対処法やチェック箇所あるでしょうか?
申し訳ないですが、どなたかご意見お願いします
863nobodyさん:2012/02/22(水) 19:09:47.20 ID:???
ブラウザを初期化する
864nobodyさん:2012/02/22(水) 19:28:43.76 ID:???
ありがとうございました!
865nobodyさん:2012/02/22(水) 19:35:22.61 ID:???
最近は、ID出さなくても答えて貰える様になったのか。
これがゆとりか。
866nobodyさん:2012/02/22(水) 19:44:07.26 ID:???
ID指摘したかったら、回答しつつ、ID出すように促せよ。
IDID言うやつ、回答しないんだよな。
867nobodyさん:2012/02/22(水) 19:46:05.87 ID:???
>>1
868nobodyさん:2012/02/22(水) 19:46:44.23 ID:???
昨日のチェリーボーイが居ますね
869862:2012/02/22(水) 20:41:14.26 ID:culdIBNJ
すみません、今気づきましたID出してなかったです。すみませんでした
その後もブラウザ再起動などしてやったんですが
やはりc.phpでsetcookie();した値はc.php以外で確認出来ません
なんなんでしょうか?
870nobodyさん:2012/02/22(水) 20:44:30.18 ID:???
>>869
問題が再現するコード出して
871nobodyさん:2012/02/22(水) 20:50:21.88 ID:???
>>869
たぶんpath
872nobodyさん:2012/02/22(水) 21:49:26.94 ID:???
HTTPのヘッダも確認してみれば
873nobodyさん:2012/02/22(水) 22:14:17.30 ID:???
fastcgiの動作確認なのですが
php-cgi -b 127.0.0.1:9000 &
として
telnet 127.0.0.1 9000
とかでなんか叩いて動作チェックって出来るものでしょうか?

874862:2012/02/22(水) 22:42:10.50 ID:culdIBNJ
>>870-872
その後、全てのsetcookie()を setcookie('time', date('Y-m-d H:i:s'), 0, '/', 'example.com');として
有効時間、パス、ドメインを指定したところ解決しました
質問して良かったです、助かりました
本当にありがとうございました
875nobodyさん:2012/02/22(水) 22:51:44.23 ID:???
いいってことよ
876nobodyさん:2012/02/22(水) 22:55:02.14 ID:???
ほい
877nobodyさん:2012/02/22(水) 23:24:44.58 ID:qmf6D6+H
get_included_files()に含まれてないファイルがrequire_onceで読み込まれないんですが、
原因としては何が考えられますか?
878nobodyさん:2012/02/23(木) 00:42:33.05 ID:???
>>877
パス間違ってるとかパーミッションがマズイとか。
ちょっと情報少なすぎ。
warningかnoticeも出てないの?
879553:2012/02/23(木) 01:24:46.92 ID:???
含まれていないんだから、読み込まれないのは問題無いだろw
880nobodyさん:2012/02/23(木) 02:36:14.38 ID:???
CakePHPは重いですね
881nobodyさん:2012/02/23(木) 02:52:55.61 ID:???
マシンパワーアップしようぜ
i7っでサックサクにしようぜ
882nobodyさん:2012/02/23(木) 07:04:30.49 ID:???
>>879
ん?
883nobodyさん:2012/02/23(木) 11:23:14.79 ID:???
>>880
同意。WordPressも激重。
884nobodyさん:2012/02/23(木) 11:28:18.18 ID:???
スレチ
885nobodyさん:2012/02/23(木) 11:29:42.88 ID:???
チッ
886nobodyさん:2012/02/23(木) 11:35:04.06 ID:GMJguUp1
セッションを利用したログイン認証について質問です。
ログインページでは、ID(メアド)とパスワードの一致をもって、認証OKとしています。
その後、各ページでは何をもって認証OKとすれば良いのでしょうか?

入門書では、
1.ログイン時に、各ユーザー情報をセッションに保持し、各ページでは、それがあれば認証OKとする。
2.ログイン時に、暗号化した認証キーを作成してセッションに保持し、各ページで再度、認証キーを作成し、セッションの認証キーと照会する。
3.ログイン時に、セッションID(session_id())をセッションに保持し、各ページでは、そのページでのsession_id()と照会する。

などの方法を確認しました。個人的には、1の方法で足りると思うのですが、2や3の方法のほうがセキュリティーは高まるのでしょうか?
887nobodyさん:2012/02/23(木) 12:26:00.63 ID:???
ログインフラグだけで十分
888877:2012/02/23(木) 13:56:23.63 ID:QQ9YytJp
>>878
パスは間違ってないようです パーミッションもちゃんと644になってます
直接関わるwarning・noticeは出ていないようです

情報が少なすぎるとのことなので問題の背景を説明します

レンタルサーバでXOOPSを使いサイトを運用しています
ある日すべてのページが500 Internal Server Errorになるようになりました
"php_flag magic_quotes_gpc Off"とだけ書かれたXOOPS_ROOT_PATH/.htaccessがあったのでこれを削除したところ、
だいたいのページは元通り見られるようになりました

しかし、管理メニューの互換モジュールで
Fatal error: Class 'Legacy_ActionFrame' not found in XOOPS_ROOT_PATH/modules/legacy/admin/index.php
とエラーが発生します
該当する.phpファイルではそのクラスを定義しているXOOPS_ROOT_PATH/modules/legacy/class/ActionFrame.class.phpをrequire_onceしているようなので、
このファイルにでたらめな文字列を書き足してSyntax errorを期待したのですが結果は変わりませんでした
また、require_onceの下にvar_dump(get_included_files());を書き足しても、このファイルは含まれていませんでした
以上にもかかわらず、require_onceの戻り値は1( != FALSE)でした

どうすればこのファイルはrequire_onceで読み込まれるようになるでしょうか?
よろしくお願いします
889nobodyさん:2012/02/23(木) 14:11:01.61 ID:???
>>886
どんな入門書読んだのか知らんが、2と3は明らかにおかしなこと言ってるぞ。
もう一回しっかり読め。
セッションとクッキーは別物だということを頭に置いてな。
890nobodyさん:2012/02/23(木) 15:06:37.39 ID:pOv6kBFH
smp.tsv
あああ\\t2012.01.23\\tききき\\n
いいい\\t2012.01.23\\tくくく\\n
ううう\\t2012.01.23\\tけけけ\\n
えええ\\t2012.01.22\\tこここ\\n
おおお\\t2012.01.22\\tさささ\\n
かかか\\t2012.01.21\\tししし\\n

今日 = 3
昨日 = 2
一昨日 = 1

このような値を取り出したい場合はどのような手順になるのでしょうか?
よろしくおねがいします。
891886:2012/02/23(木) 15:11:52.08 ID:AL17q7mx
>>887 889 レスありがとうございます。
3.のコードです。関数化されてます。
これは間違いなのでしょうか?

<?php
##### セッションの開始
function session_idset() {
  session_start();
  $_SESSION['auth'] = session_id();
}

##### セッションのチェック
function session_check() {
  session_start();
  $rtn = TRUE;
  if($_SESSION['auth'] != session_id()) {
    $rtn = FALSE;
  }
  return $rtn;
}
?>
892886:2012/02/23(木) 15:23:33.04 ID:AL17q7mx
2.のコードです。これもおかしいですか?

//セッションの開始
$_SESSION['login_id'] = $_POST['login_id'] ;
$_SESSION['auth'] = md5($salt . $_POST['login_id']) ;

//セッションの確認
function auth() {
  global $salt;
  if (md5($salt . $_SESSION['login_id']) == $_SESSION['auth'] ) {
    return TRUE;
  } else {
    return FALSE;
  }
}
893nobodyさん:2012/02/23(木) 16:00:34.17 ID:???
1〜3は比較する情報が違うだけでやってること同じじゃん
894nobodyさん:2012/02/23(木) 16:26:52.69 ID:???
おかしいというか、扉に同じ鍵で開く鍵穴が2つあるみたいなもん。
やるんであれば、例えば、ランダム文字列を生成してクッキーに保存
その文字列をハッシュかけてセッションに保存
確認のときはクッキーのデータにハッシュかけたものとセッションのデータが一致するか
ってやればセッションハイジャックに対して少しは強くなりそう。
895nobodyさん:2012/02/23(木) 16:36:47.58 ID:???
>>891
本当にその入門書がその通りに書いているなら今すぐ燃やして他の本から学ぶべきだな

>>894
効果のないものを初心者に教えるな
896nobodyさん:2012/02/23(木) 16:40:30.49 ID:???
>>888
requireでは読み込めるってこと?
897894:2012/02/23(木) 17:08:07.42 ID:???
>>895
何で効果がないのか教えてくれ
898nobodyさん:2012/02/23(木) 17:22:52.85 ID:???
>>897
もしかして、セッションファイルを一般ユーザが見られる場所に
保存するシステムを前提に、ローカルユーザからの攻撃対策の話をしてる?
それだと、サーバの設定を見直した方がいいような……
899nobodyさん:2012/02/23(木) 17:29:45.68 ID:???
>>897
sidについて触れない時点でハイジャックには何の効果もないんじゃないの?それ
900nobodyさん:2012/02/23(木) 17:31:23.55 ID:sgcZLa3B
>>899
セッション固定攻撃に対しては効果があると思うけど。
901nobodyさん:2012/02/23(木) 17:38:14.99 ID:???
何で効果があるのか教えてくれ
902nobodyさん:2012/02/23(木) 17:39:09.99 ID:???
>>890
一行読んで、\tで分けて、二つ目の要素の日付調べて、該当する日のカウント増やす
903886:2012/02/23(木) 17:59:29.91 ID:+MEbH08X
1.のコードです。遅れてすみません。
やはり、このシンプルなコードが妥当なのでしょうか?

//$rowにDB取得データ代入済み
// ログイン情報を記録
$_SESSION["login"] = array("user_id" => $row["user_id"]," login_time" => time())

// ログインしているかどうか調べる関数
function is_logined() {
   return isset($_SESSION["login"]);
}
904nobodyさん:2012/02/23(木) 18:09:26.05 ID:???
>>890
fgetcsv
array_count_values
905894:2012/02/23(木) 18:21:05.98 ID:???
>>898
仮にセッションIDが漏れた場合とか想定してるんだけど。
セッションIDだけじゃなくて、発行時のクライアントのチェックとして有効じゃない?
886の対案として出してるだけだから、ベストの方法とは思わんけど。

>>899
論点がぜんぜん違う
906nobodyさん:2012/02/23(木) 18:24:58.57 ID:pOv6kBFH
$lines = file($tsv);
for($i = 0; $i < count($lines); $i++){
list(,$day,,)=explode("\t",$lines[$i]);
$today = date("Y.m.d");
$match_tday = preg_match("/$today/",$day);
}

今一歩前へ進めません。次のヒントお願いします。
907nobodyさん:2012/02/23(木) 18:41:27.89 ID:???
PHPSESSID決め打ちでそれだけが盗まれたら〜ってこと?
908nobodyさん:2012/02/23(木) 18:42:59.47 ID:???
>>900
session_regenerate_id(true)で済む話だろJK…
909nobodyさん:2012/02/23(木) 18:49:26.85 ID:???
>>906
$lines = file($tsv);
for($i = 0; $i < count($lines); $i++){
list(,$days[],,)=str_getcsv($lines[$i],"\t");
}
print_r(array_count_values($days));
910877:2012/02/23(木) 20:38:51.67 ID:QQ9YytJp
>>896
試してみました
requireに書き換えると、多少崩れたページが表示され、
Fatal errorではなくなりました
911nobodyさん:2012/02/23(木) 20:40:13.32 ID:???
session_registerって使っちゃまずいらしいけど
じゃあ代わりに何を使えばいいの?
912nobodyさん:2012/02/23(木) 20:54:09.81 ID:???
>>911
非推奨なのを知ってるということは
マニュアルを途中まで読んだな?
もっと下まで読めば書いてあるだろw
913nobodyさん:2012/02/23(木) 20:57:03.04 ID:???
最近は、ID出さなくても答えて貰える様になったのか。
これがゆとりか。
914nobodyさん:2012/02/23(木) 21:00:17.68 ID:???
回答しない自治気取り君お疲れ様です。
俺、アンタみたいな人嫌いですw
915nobodyさん:2012/02/23(木) 21:10:37.40 ID:???
お前が言うな
916nobodyさん:2012/02/23(木) 21:44:28.17 ID:P+2F5uLF
正規表現で既に取得しているものは取らない方法はありますか?

<?php
$data=
ABCDABCD;
$match='/A|B/';
preg_match_all($match, $data, $matches[0]);
print_r($matches[0]);
?>

結果
Array ( [0] => Array ( [0] => A [1] => B [2] => A [3] => B ) )

これを、AとBをそれぞれ一つだけ取得したいです。 1回取得したものと同一のものは取得しない方法はありませんか?
preg_matchを2回使うと一応できるのですが、それだと

結果
Array ( [0] => A )
Array ( [0] => B )

このようにそれぞれ別になってしまいます。
何かやり方はないでしょうか?
917nobodyさん:2012/02/23(木) 22:13:07.95 ID:???
print_r(array_keys(array_flip($matches[0][0])));

print_r(array_unique($matches[0][0]));
918nobodyさん:2012/02/23(木) 22:28:16.08 ID:???
>>913
主気取り乙。ずっとこんなところにばかりいないで他いくといいとおもう
919nobodyさん:2012/02/23(木) 22:44:37.14 ID:???
自己紹介おつ
920nobodyさん:2012/02/23(木) 22:48:53.56 ID:???
>>866です。レスありがとうございました。
>>894さんの「おかしいというか、扉に同じ鍵で開く鍵穴が2つあるみたいなもん」
というご指摘で、2.3.のおかしな点がよく理解できました。

ランダム文字列クッキーを認証に利用する方法は、自分も考えたのですが、
XSSでJSによりクッキーを盗まれる場合には、セッションクッキーとともに
そのランダムクッキーも盗まれるので効果が無いと思いました。
また、セッション固定化攻撃には、>>908 さんのいうsession_regenerate_id(true)が
適切だと考えます。それとともに、php.ini、.htaccessでセッション付きリンクを
使用不可にするのがよいのかなと。
921nobodyさん:2012/02/23(木) 22:51:08.67 ID:???
>>920
スレのルールは守ろうな
922886:2012/02/23(木) 23:14:53.15 ID:NC9JkONA
>>921 失礼しました。>>920 は886です。
923nobodyさん:2012/02/23(木) 23:58:21.36 ID:P+2F5uLF
>>917ありがとうございます、できました。
924nobodyさん:2012/02/24(金) 00:05:55.32 ID:???
ルール厨うぜー
925nobodyさん:2012/02/24(金) 00:12:55.29 ID:???
>>924
スレのルールは守ろうな
926nobodyさん:2012/02/24(金) 00:25:39.45 ID:???
おまえがいうな
927nobodyさん:2012/02/24(金) 07:08:08.38 ID:???
守ってるじゃん
928nobodyさん:2012/02/24(金) 08:26:18.43 ID:???
>>894
それ意味ないじゃん
ハッシュ化したところでクライアントの情報(そのハッシュ化したランダムな文字列)が盗まれれば意味がない
あとその処理自体にセッションハイジャックに強くなる要素が見当たらない

サーバ側でセッションハイジャックされないような対策を考える場合XSSだけに気をつければいい
結局ハイジャックされるかどうかはクライアント側の行動次第
リンクにセッション情報を含めないほうがいいのはクライアント側の行動次第では漏れる可能性が高いから
クライアント側がそれなりの知識を持ってるならリンクにセッション情報を含めても問題ない
929nobodyさん:2012/02/24(金) 08:36:25.74 ID:???
>>873
自己解決しますた。
telnetじゃムリでした。
<? phpinfo(); ?>がスルーされたのがそもそもの発端だったんだけど、5.3.8と5.2.13ではshort_open_tagが違うんですね。
pukiwikiとかwordpressって律儀に<?php 〜 ?>ってやってるのかな?
930894:2012/02/24(金) 09:27:38.22 ID:???
>>928
前半の
>>ハッシュ化したところでクライアントの情報(そのハッシュ化したランダムな文字列)が盗まれれば意味がない
に関しては同意だけど、セッションIDとクライアントの情報を合わせて
盗まれなければ意味があるじゃん。
セッションIDだけ盗まれるってケースは意外とあると思うぞ。
>>920の言うようにクッキーまるごと盗まれたらしょうがないけど。

後半は同意できない。
931nobodyさん:2012/02/24(金) 09:38:18.08 ID:???
実質的にセッションIDが漏れるってことはクッキーが漏れることと同義だろ
どこの実装もほぼ100%クッキーでやってるんだから
932nobodyさん:2012/02/24(金) 10:29:02.94 ID:BAbDqRA5
eclipse3.7のphpで開発しているのですが、CVSからファイルを持ってきた時に文字化けをしてしまいます。
その為、使用するファイル(Sfit-JIS)を一つずつ選択し、プロパティーから文字化けしないUTF-8に変換しているのですが、
一括ですべてUTF-8にする方法はあるのでしょうか。
使用するフォルダ選択⇒プロパティー⇒リソース⇒テキスト・ファイルのエンコードから修正しても
だめでした。
933nobodyさん:2012/02/24(金) 11:10:06.07 ID:???
>>930
それ同じこと思った。
なんでクッキーとセッションが別腹的な考え方なんだろ。
素人の俺にはわからん。
TLSかけるなりしてクライアントとPCの通信の盗聴防がなきゃ意味ない気が。
934nobodyさん:2012/02/24(金) 11:18:03.05 ID:???
最新式の複雑な鍵を使ったとしても、
鍵盗まれたら困るってことの対策にはならんもんね。
935877:2012/02/24(金) 12:51:09.28 ID:i01HfJfE
>>877,888,910です
解決策ありませんか?
936nobodyさん:2012/02/24(金) 14:00:59.55 ID:???
>>935
requireで読めたんならそれでいいだろ
2回以上読み込むファイルをrequire_onceで読み込むのがおかしい
937nobodyさん:2012/02/24(金) 17:03:51.32 ID:???
>>932
>使用するフォルダ選択⇒プロパティー⇒リソース⇒テキスト・ファイルのエンコードから修正しても
だめでした。
それエクリプスの設定をUTFにしてるだけだし…

PHPでそのPHPファイルをfile_get_contentsで読み込んでエンコード変えて同じファイルに書き出すくらいじゃね?
938nobodyさん:2012/02/24(金) 18:34:59.75 ID:???
939nobodyさん:2012/02/24(金) 20:44:15.85 ID:???
>>929
毎回<?php って書いてるよ。
<?= とか便利かもって思ったこともあったけど、それが便利だと思える場面に遭遇しなくなった
940nobodyさん:2012/02/24(金) 20:51:14.32 ID:???
コードアシストで解決
941nobodyさん:2012/02/24(金) 22:22:57.58 ID:???
>>932
nkf使うとか。
942nobodyさん:2012/02/24(金) 23:20:35.88 ID:???
$file_name="p/1.html"となってる時、
p/の部分だけを取り除いて、
$file_name2="1.html"とすることはphpでは可能ですか?
943nobodyさん:2012/02/24(金) 23:23:49.74 ID:gMrEIIb2
$file_name="p/1.html"となってる時、
p/の部分だけを取り除いて、
$file_name2="1.html"とすることはphpでは可能ですか?


すいません、上げてました。
944nobodyさん:2012/02/24(金) 23:34:42.08 ID:???
>>943
basename()がある
945nobodyさん:2012/02/24(金) 23:34:43.65 ID:???
実際はディレクトリをのぞいてファイル名だけにしたいとかなんだろうけど
そんな質問の仕方だと
substrで三文字目以降を切り出せとか
p/を空文字に置き換えろとかいう答えが返ってくるぞ
946877:2012/02/24(金) 23:48:54.24 ID:i01HfJfE
>>936
requireで読むとFatal errorはなくなりますが、ページの表示が正常ではありません
2回以上読まれるかどうかは未検証ですが、
require_onceの前後のどちらでも、get_included_files()に該当するファイルが含まれないのは問題だと思います
947nobodyさん:2012/02/24(金) 23:51:09.90 ID:kLSGsgF4
phpから現在動いているmtaが何か取得する方法ってありますか?
sendmailか否かさえ分かればいいのですが。
948nobodyさん:2012/02/24(金) 23:54:48.93 ID:gMrEIIb2
>>944
ありがとうございました。
>>945
そうです、ディレクトリ名だけとっぱらいたかったんです。
なんか、適当に作ってたら、mysqlに入れた値が"p/1234.html"
となっていたんです。これはこれで表示されないデータなら
扱いやすいのですが、表示されるデータにディレクトリ名って
欲しいのか?という疑問にぶつかりました。basename()って便利な
関数ですね。
949nobodyさん:2012/02/25(土) 00:21:03.84 ID:???
>>946
requireで読めて、require_onceで読めないファイルがあるってことだよね。
それがわかっているなら後は何が原因なのか、どんどんコードを削っていけばたどり着くと思うんだけど
950nobodyさん:2012/02/25(土) 00:55:13.78 ID:???
>>947
Linuxなら、exec関数で "ps ax | grep sendmail" を実行して、その出力をチェックする
951nobodyさん:2012/02/25(土) 01:14:42.48 ID:a/GXX7hd
メールを連続で送信する場合、マニュアルには、

>mail() 関数は、大量のメールをループ内で送信するには 向いていないことに注意しましょう。
>この関数は 1 通のメールを送信するたびに SMTP ソケットをいったん閉じて開きなおします。これは非効率的です。
>大量のメールを送信する場合は、 ≫ PEAR::Mail および ≫ PEAR::Mail_Queue パッケージを参照ください。

と記述してありますが、PEARを使いたくない場合、
ソケット関数で自分でSMTP処理を書くしか無いですよね?
952nobodyさん:2012/02/25(土) 02:43:21.75 ID:???
実現できる方法でどうぞ。
「しか無い」ってのはよほどのことが無い限り無いと思ったほうが。
953nobodyさん:2012/02/25(土) 02:47:59.67 ID:???
PEAR::Mail および PEAR::Mail_Queue で必要な箇所を参考・コピペする。
954nobodyさん:2012/02/25(土) 18:02:10.27 ID:???
>>912
session_register()使う代わりに
$_SESSION に値をぶっこむのね
ありがとう!
955nobodyさん:2012/02/25(土) 18:56:47.63 ID:1lZdYX8R
たとえばですが、
wire.jpというサイトがあります。
内容的には好きなんですが、相当重いサイトです。
こういったPHPで作られたサイトのパフォーマンスを
上げるためにはどうしたらよろしいでしょうか?
956nobodyさん:2012/02/25(土) 19:08:41.43 ID:???
キャッシュでも作れば?
957nobodyさん:2012/02/25(土) 19:09:58.04 ID:r6BFdbus
RSSからforeachで値を取得したのですが、それをループの外で一つの変数として扱いたいのですが、どうしたらいいでしょうか?

<?php
$array=array(1,2,3,4,5,);
foreach ($array as $value) {
$a=$value;
}
echo $a;
?>

例えばこのようにすると、当たり前ですが結果はループで上書きされて5と表示されます。
foreachで取得したものを一つの変数に入れることは出来ませんか?
958nobodyさん:2012/02/25(土) 19:25:22.22 ID:???
>>957
よく分からんけど仮に3つ目の値が取りたいなら
echo $array[2];
959nobodyさん:2012/02/25(土) 19:53:18.83 ID:???
>>957

print_r($array);
して表示結果を見てみなはれ

その上で$array[x] ←xのところに対応した数字をいれる。
で出てくる。
960nobodyさん:2012/02/25(土) 20:48:35.56 ID:???
$a=$value;を $a[] = $value;
961nobodyさん:2012/02/25(土) 21:26:32.82 ID:r6BFdbus
>>960ありがとうございます。
962nobodyさん:2012/02/26(日) 00:47:29.55 ID:???
いいってことよ
963nobodyさん:2012/02/26(日) 00:48:27.77 ID:???
ほい
964nobodyさん:2012/02/26(日) 00:52:26.79 ID:nCX4lbdW
>>956
キャッシュとはどのようなキャッシュですか?
965nobodyさん:2012/02/26(日) 01:35:13.43 ID:nCX4lbdW
キャッシュとは言語レベルのサポートですか?

wire.jpはWordPressみたいですから
WP Super Cacheプラグインみたいなプログラムレベルの
キャッシュのことを意味していますか?
966nobodyさん:2012/02/26(日) 01:42:08.72 ID:???
( >д<)、;'.・ キャッシュン
967nobodyさん:2012/02/26(日) 01:47:59.96 ID:nCX4lbdW
>>956
例としてあげてwired.jpはW3 Total Cacheが入っているようです。
それでも遅い場合はどうしたらよろしいのでしょうか?
968nobodyさん:2012/02/26(日) 01:48:34.31 ID:???
>>966
bless you
969nobodyさん:2012/02/26(日) 01:53:36.51 ID:???
Thank you!
970nobodyさん:2012/02/26(日) 01:58:30.12 ID:???
phpでデータベースを扱うには、何かと方法がありますが
エクセルのシートで外部参照するみたいに、この列はこっちの
データベースから引っ張って、この列はこっちから
というように複数のデータベースから情報を引っ張って
統合して表示、または登録変更をするためには、どんな
方法を使うのが最も適しているのでしょうか?
971nobodyさん:2012/02/26(日) 02:07:02.73 ID:???
>>967
オーバークロックしかないな
972nobodyさん:2012/02/26(日) 02:16:44.23 ID:oisclph1
質問させてください。
自動返信メールの内容に値を持たせたいんですが
値の入っていないものは表示させないようにしたいです。

<?php
$MESSAGE = "
注文がありました。

商品    個数
[[りんご]]  [[1]]
[[みかん]]  [[0]]
[[ぶどう]]  [[3]]
";?>

実行すると

りんご1個
ーー(みかんの注文が0なので表示されず空白だけできてしまう)ーー
ぶどう3個

というメールが来てしまうで、みかんの部分を上に詰めさせたいです。

メールが来る仕組みなどは人がしたものなのでよく分かってません。
よろしくお願いします。
973nobodyさん:2012/02/26(日) 03:04:07.86 ID:???
>>972
$cart=array("りんご"=>"1","みかん"=>"0","ぶどう"=>"3")

$MESSAGE = "注文がありました。\n\n商品    個数\n"
foreach($cart as $key => $val){
  if ($val>0){                          //$valが0以下の時は処理しない
    $MESSAGE.="[[$key]] [[$val]] \n"
  }
}

備考 POST情報はクライアント側で詐称できるので 値段を表示させる場合はPOSTさせないでDBに取りに行ったほうがいいと思うよ
974nobodyさん:2012/02/26(日) 03:34:02.05 ID:oyzRHeH9
俺は自分でも結構オブジェクト指向イケてるんじゃないかと思ってたんだが、
今日クラスを作成していたときにクラス名に悩んで、
候補のものをググってたら、C#の同名のクラスが出てきたんだ。
どんなメソッドがあるのかな?とチラっとみてみたら、
俺がクラスに含める予定だった処理が別クラスで処理されていた。
徹底的に細かくオブジェクトを分けていることに俺はショックを受けて絶望した。
これが本当のオブジェクト指向なのかと。
自信が一気になくなった俺はこれからやっていけるでしょうか?
975nobodyさん:2012/02/26(日) 04:34:33.44 ID:???
細かく分けることがオブジェクト指向・・・?
976sage:2012/02/26(日) 09:48:27.16 ID:???
>>974
そもそも論として
phpでオブジェクト指向実装は後付けの中途半端だし、
最適化されていないのでパフォーマンス悪いよ。

それだったらJava、C#みたいな強制的オブジェクト指向言語で
勉強して方がいい。他の言語で役に立つから。
977sage:2012/02/26(日) 09:49:49.71 ID:???
>>975
PHPerから見ると、
オブジェクト指向言語のクラス設計はすべてが細かく見えるかと。
978nobodyさん:2012/02/26(日) 10:03:42.64 ID:???
他の言語って、これからいくつ覚えるつもりだよ
一生勉強ってかw
979sage:2012/02/26(日) 10:15:37.18 ID:???
>>978
これからもphpオンリー?
スマホアプリとか大丈夫?

サーバーサイドオンリーの人だとしても、
phpだけだったら守備範囲が狭くならないかい?

たとえばfacebookみたいに

phpで作りました。

でもユーザー増えて負荷に耐えられなくなりました。

基幹をC++やJavaに切り替えました。

というケースは無いの?
980nobodyさん:2012/02/26(日) 10:22:20.60 ID:???
>>977
そこが本質じゃないのにね
981nobodyさん:2012/02/26(日) 10:29:56.54 ID:???
一生勉強って当たり前だろ
982nobodyさん:2012/02/26(日) 10:34:22.17 ID:???
いや本質だろ。
継承や再利用を考えると重要。

それより次スレ
983sage:2012/02/26(日) 10:38:06.83 ID:???
そもそも論として、
細かく設計するとPHPの場合すぐパフォーマンスが悪くなる。
いずれにしてもPHPのオブジェクト指向は中途半端で使いにくい。
984nobodyさん:2012/02/26(日) 10:39:22.25 ID:???
例えばチャットクラスで
書き込みを行うwriteというメソッドがあったとする

PHPerの場合
ここに渡す引数はString型の$messageである

C#erの場合
ここに渡す引数は別クラスで作成したメッセージオブジェクトである
985nobodyさん:2012/02/26(日) 11:12:49.13 ID:yp5CCX+k
メールアドレスの「@」より前を取得したいんですけど、自分では
$tmp = explode('@', $email);
$name = $tmp[0];
という書き方しか思い浮かびません。
もっと簡単にできる方法があれば教えて頂きたいです。
986nobodyさん:2012/02/26(日) 11:18:26.38 ID:???
echo substr($email, 0, strpos($email, "@"));
複数行になるのが簡単ではないと考えてるなら考えを改めるべし
987nobodyさん:2012/02/26(日) 11:28:57.23 ID:???
四年前の爺さんの背広からメガビックボーイが出てきたんだが
一生現役ってことを考えると一生勉強くらい普通だと思った。
988nobodyさん:2012/02/26(日) 11:31:05.44 ID:???
preg_replace("/(?=@).*/","",$mail);
とか

explodeでいいと思うけどな
989nobodyさん:2012/02/26(日) 11:34:48.98 ID:???
replaceだと元データのメアド使えなくなるやん
990sage:2012/02/26(日) 11:35:02.59 ID:???
勉強したくないなら
なぜ潰しが効かない、汎用性が低いphpなのか不思議。
汎用性が高い言語選べばよかったのに。
991nobodyさん:2012/02/26(日) 11:39:39.13 ID:???
どの言語でもできることとできないことがある
1つの言語習得すれば金輪際勉強せずに済む言語なんて皆無
992nobodyさん:2012/02/26(日) 11:46:01.70 ID:???
993nobodyさん:2012/02/26(日) 11:49:03.94 ID:???
しょうがないから建ててくるか
994nobodyさん:2012/02/26(日) 11:52:02.39 ID:???
995nobodyさん:2012/02/26(日) 11:56:49.85 ID:yp5CCX+k
>>986
ありがとうございます。助かりました。
複数行というより、わざわざ配列にするのが気持ち悪くて…。
996sage:2012/02/26(日) 12:01:13.12 ID:???
>>974
phpのオブジェクト指向はなんちゃってレベルだから。
他の言語ではphpの経験は生かせないよ。
997nobodyさん:2012/02/26(日) 12:03:36.76 ID:???
そいういうこと書いてるようじゃ
大してオブジェクト指向の考えというのを理解できてないな
998nobodyさん:2012/02/26(日) 12:08:49.02 ID:???
>>996
>phpのオブジェクト指向
どれだけあほなこと言ってるかわかるか?もっと勉強しろ。
999sage:2012/02/26(日) 12:24:07.98 ID:???
phpのオブジェクト指向機能の実装
1000sage:2012/02/26(日) 12:25:05.67 ID:???
PHPer、ダメポ。
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。