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

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

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

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

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2011/09/29(木) 02:57:05.72 ID:???
■過去ログ
【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/
【PHP】下らねぇ質問はID出して書き込みやがれ 102
http://hibari.2ch.net/test/read.cgi/php/1292670453/
【PHP】下らねぇ質問はID出して書き込みやがれ 101
http://hibari.2ch.net/test/read.cgi/php/1289793607/
【PHP】下らねぇ質問はID出して書き込みやがれ 100
http://hibari.2ch.net/test/read.cgi/php/1288168893/
【PHP】下らねぇ質問はID出して書き込みやがれ 99
http://hibari.2ch.net/test/read.cgi/php/1286938893/
3nobodyさん:2011/09/29(木) 02:57:26.56 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さん:2011/09/29(木) 02:57:40.46 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さん:2011/09/29(木) 02:57:55.05 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さん:2011/09/29(木) 05:14:38.44 ID:J3X6JJQX
Windowsで共有フォルダ上のファイルにアクセスするとき
file_exists("//pcname/sharefolder/filename");
でファイルの有り無しは確認できるのですが
file関数等でファイル操作ができません。
$lines = file("//pcname/sharefolder/filename");
failed to open stream: No such file or directory

共有フォルダ上のファイルを直接操作する方法はありますか?
7:2011/09/29(木) 11:07:49.43 ID:???
file_get_contentsなら / でもいけるけど、なぜか file は / 区切りだと とおさねーのな。
"\\\\pcname\\sharefolder\\filename" なら通るよ。
8nobodyさん:2011/09/29(木) 17:31:26.90 ID:???
つまり
'\\pcname\sharefolder\filename'
でいいってことか?
9nobodyさん:2011/09/29(木) 21:24:56.44 ID:J3X6JJQX
>>7
試したけどダメでした…、何故だ。
10nobodyさん:2011/09/29(木) 22:07:17.49 ID:???
共有フォルダは単純なフォルダじゃねーからな
共有フォルダの見た目は通常のフォルダとそう変わらないが、
ネットワーク上のリソースだということ
ネットワーク上にあるのだからたとえ接続先がlocalhost(自分自身)であっても
ソケットで接続しなければならないのは必然
しかもただネットワーク上にあるだけではない
共有フォルダにアクセスするにはMicrosoftのSMBプロトコルに準拠する必要がある
WebDAVについてもSMBがHTTPプロトコルの拡張機能という違い以外は同じことがいえる


C言語(Win32API)レベルで見れば通常のファイルと共有フォルダが違うものだということがわかる
通常のファイルであれば、fopen関数で開けるものを
共有フォルダのファイルはWNetAddConnection2という見慣れない関数で
『接続』を確立してからアクセスする
11nobodyさん:2011/09/29(木) 22:36:43.55 ID:???
>>10
その差を吸収するのがAPIの役割だろ
何言ってんの
12nobodyさん:2011/09/30(金) 08:24:15.07 ID:???
吸収しきれないんだろう
13nobodyさん:2011/09/30(金) 16:25:36.30 ID:jn39aScn
http://php.s3.to/data/#rar の
ReverseAccessRankingなんですけど
ページアクセスランキングに使おうと思っているのですが
アクセスされたら指定したURLだけを送るにはどうしたら良いでしょうか?

<img src="./rar.php?http://a.net/page1/" border=0 width=1 height=1>
<img src="./rar.php?http://a.net/page2/" border=0 width=1 height=1>

見たいにしてもhttp://a.net/page1/での記録ではなく普通のアクセスを拾うだけになってしまいます
どうぞよろしくお願いします<(_ _)>
14前スレ994:2011/09/30(金) 16:37:49.32 ID:???
前スレ994です。
javascriptで読み込ませるか
キャッシュされない位置にコードを移動すればいけるかもしれませんね。
ちょっとやってみます。
15nobodyさん:2011/09/30(金) 20:30:00.57 ID:KaRekCLi
先ほどJava入門みたいな記事読んでたらコンパイル処理の説明がありました
それでふと思ったんですが、PHPはコンパイルってしてるんでしょうか?
16nobodyさん:2011/09/30(金) 20:50:35.34 ID:???
してるよ
17nobodyさん:2011/09/30(金) 21:00:52.03 ID:???
>>13
公式サイトあるんだから作者に直接聞けよ。
なんでここで聞くのかわからん。
18前スレ994:2011/09/30(金) 21:03:13.56 ID:???
>>前スレ998
キャッシュの問題であればアクセス数全体の誤差は解消されそうですが、
サイト別のリファラの割合がおかしいんです。何か他に考えられる原因ってありますか?
19nobodyさん:2011/09/30(金) 22:14:08.98 ID:jn39aScn
>>17
メール送っても返信こないです(´;ω;`)
20nobodyさん:2011/09/30(金) 22:24:21.51 ID:???
>>18
前スレ998だけど、キャッシュの問題でそうなると思えるんだけど、何が不思議なんだろう?
21nobodyさん:2011/09/30(金) 22:51:52.73 ID:???
>>19
じゃぁ自分で何とかしろ。出来なきゃ諦めろ。
特定のフリーソフトの質問をここでするのはこの俺が許さん
22nobodyさん:2011/09/30(金) 23:12:19.15 ID:???
>>20
すみません。私がよく理解してないだけかも。
APCでググったんですけど理解不能です。
WPのキャッシュプラグインが原因である可能性もありますか?
23nobodyさん:2011/09/30(金) 23:37:12.76 ID:???
>>22
実際のアクセス数 100
実際のアクセスのリファラ google:yahoo = 8:2
キャッシュを返したのが90、ロジックが動いたものが10

という状態だとして

ってなったときに、PHPで出力しているアクセス解析の結果が
googleが8でyahooが2になってないのが気に入らない、という話だと思ったんだけど、違ってる?

もし違うならちゃんと伝えてほしい。
24nobodyさん:2011/09/30(金) 23:54:20.55 ID:jn39aScn
>>21
適切なスレ誘導お願いします(´;ω;`)
25nobodyさん:2011/10/01(土) 00:00:50.96 ID:???
>>24
■ 使用方法
以下のコードを挿入
 <PHPページ内の場合>
<?include("rar.php");?>
の意味理解してる?で、それと同等のことをしてる?
26前スレ994:2011/10/01(土) 00:04:42.35 ID:???
>>23
まさにおっしゃるとおりです。
サイトによって他のアクセス解析の結果とほとんど同じ物もあれば(多いパターンは多分無い)
異常に少ない場合があります。分母はおそらく十分ありますので誤差の範囲ではないです。
27nobodyさん:2011/10/01(土) 00:21:13.88 ID:???
>>26
いろいろ言いたいこともあるけれど、わかりやすそうな例を作ってみる。
>>23の例で、キャッシュを返したのが99だとするよ。

このとき、ロジックが動くのは1回(最初のアクセス)になるよね。
それでもgoogle8割yahoo2割の結果になってほしいって言ってるのが今の状態。

キャッシュを再作成するタイミングで誰がアクセスするかなんてわからないよ。
28nobodyさん:2011/10/01(土) 00:26:08.13 ID:???
WordPressスレで聞けばなんかわかるんじゃないの
29nobodyさん:2011/10/01(土) 00:32:13.44 ID:swP2fzC0
>>25
ここです
<img src="./rar.php?http://a.net/page1/" border=0 width=1 height=1>
一応アクセスカウントされてるので機能してると思います。
30nobodyさん:2011/10/01(土) 00:38:38.30 ID:???
>>26
ヘッダーってheader.phpのこと?
そんな所に埋め込んでも、wp-supercacheとかを入れてたら意味ない。
いつでもphpが動く場所に入れておかないと

APCはphpの中間コードをキャッシュするものなので、コードを書き替えたときに
ちゃんと反映される設定になってれば問題ないよ
31前スレ994:2011/10/01(土) 00:42:55.21 ID:???
なるほど!
キャッシュの問題であれば
<SCRIPT Language="JavaScript">
<!--
document.write("<img src='hogehoge.com/log.php?refer=");
document.write(document.referrer+"' border=0 alt='axs'>");
// -->
</SCRIPT>
を埋め込んで前のphpスクリプトでリファラをGETすれば毎回取得できますか?
32前スレ994:2011/10/01(土) 01:23:44.64 ID:???
↑間違ってるっぽい
phpが動いてない
33nobodyさん:2011/10/01(土) 01:28:00.61 ID:BqE8SzGp
クラスのメソッドで自分自身を殺すにはどうしたらよいのでしょうか
例えば
$c=new classname();
$c->throwError();//ここでクラス内でエラーが起きて
$c->doFunction();//これ以降このクラスは無いものとしたい

クラスにisErrorプロパティ作って、全てのメソッドにその値をチェックする処理を入れるしか無いのでしょうか
unset($this)みたいな事がしたいのですが。
34nobodyさん:2011/10/01(土) 01:30:09.08 ID:???
>>32
wp-supercacheがフックを掛ける前に入れればいいんだよ
wordpress/index.php
なら、何を入れてあっても必ず読み込まれる
35前スレ994:2011/10/01(土) 01:41:03.78 ID:???
出来ました!!
index.phpの最後に入れて動作確認しました。
後は正常にリファラを取得できてるか確認してみます。

本当にありがとうございます
36nobodyさん:2011/10/01(土) 01:56:55.03 ID:???
>>29
それ全然違うことやってる
37nobodyさん:2011/10/01(土) 02:02:34.34 ID:ee5xhFK6
httpsでアクセスしたときに、アプリケーションが正常に動作するなら、
それはSSL対応アプリケーションということなんでしょうか?
38nobodyさん:2011/10/01(土) 02:07:29.67 ID:???
>>37
他ドメインと通信してるとかないならPHPが考えることじゃないよ
3937:2011/10/01(土) 02:13:47.95 ID:ee5xhFK6
>>38
ありがとうございます
PHP関係なさそうで安心しました
40nobodyさん:2011/10/01(土) 03:43:22.39 ID:UymdO/ZB
>>36
どうすれば良いか教えてください神様<(_ _)>
41nobodyさん:2011/10/01(土) 07:58:10.10 ID:???
>>40
少しは自分で考えろボケ
42nobodyさん:2011/10/01(土) 08:16:36.26 ID:???
>>40
神様はタダでは教えてくれないよ。
お賽銭を用意して出直しな。
43前スレ994:2011/10/01(土) 12:37:39.57 ID:???
ログを確認してみましたがやはり同じ割合で特定のサイトからの
リファラがとれていないようです。
javascriptで取得できてPHPで取得できないってあり得ないですよね?
アクセスを多く見せかけるためのこういった不正ってあり得ますか?
44nobodyさん:2011/10/01(土) 13:09:21.31 ID:???
>>43
余計な事をせず全てのアクセスのリクエストヘッダを記録してみれば原因がつかめるかもな
取得は $_SERVER ないし apache_request_headers() で
45nobodyさん:2011/10/01(土) 13:15:09.07 ID:???
>>44
了解しました。
やってみます。
46前スレ994:2011/10/01(土) 14:00:45.93 ID:???
ちなみに自分のPCとスマホで試したら
しっかりログ取れてました。
47nobodyさん:2011/10/01(土) 16:17:53.76 ID:aHB6C3Ad
>>41>>42
そこを何とかお願いします<(_ _)>
48nobodyさん:2011/10/01(土) 16:47:45.92 ID:bmbeJnMj
PHPのAutoloaderってのは便利ですが、個々にrequire_once()などを呼ぶよりもやはりオーバーヘッドがかなりあるものなのでしょうか?
必要ないものまで読み込むことになると思いますので。
キャッシュは出来るのでしょうか?
49前スレ994:2011/10/01(土) 17:02:56.56 ID:???
apache_request_headers()
で別のログを同時に出力するようにしたところ
リファラが極端に減ったと思われていたサイトが下のような形で頻繁に出てくるようになりました。
Cookie: の項目に__utmc=英数字の羅列(サイトドメイン)英数字の羅列(ドメイン以下)英数の羅列

ログを眺めても全く意味不明ですがちょっと調べてみます
50前スレ994:2011/10/01(土) 17:29:44.46 ID:???
大体Refererの項目とURLが表示されてますが
該当サイトからのアクセスにはRefererの項目自体が無いです
51前スレ994:2011/10/01(土) 17:43:16.28 ID:???
↑早とちりでした
自サイト内のURLがrefererの項目に表示されてます
52nobodyさん:2011/10/01(土) 18:08:03.41 ID:???
>>47
成りすましよくない
53nobodyさん:2011/10/01(土) 19:37:11.58 ID:???
>>52
ごめんなさい<(_ _)>
54nobodyさん:2011/10/01(土) 20:30:08.78 ID:???
煽りたいだけ、人を馬鹿にしたいだけの奴に粘着されたらもうおしまいだよ。
まともな人はそういうのはもう関わりたくなくなっちゃうからね。
昔はここまで酷くなかったんだけど、そういうキチガイが常駐するスレになっちゃったんだ。
今回はあきらめような。
55nobodyさん:2011/10/01(土) 20:41:58.27 ID:???
>>51
php以前に、httpの仕組みを調べてからのほうがいいよw
56nobodyさん:2011/10/01(土) 22:52:04.09 ID:???
>>55
自分もわかってないくせに
57nobodyさん:2011/10/01(土) 23:03:38.21 ID:???
>>56
自分だってわかってないくせに
58nobodyさん:2011/10/02(日) 01:16:15.34 ID:???
>>57
自分はわかってないくせに
59nobodyさん:2011/10/02(日) 01:52:02.86 ID:???
>>58
自分はわかってるくせに
60nobodyさん:2011/10/02(日) 02:33:20.62 ID:MdeRfVQT
暗号化についてですが、0〜9の数値のみで暗号化する方法とかってあるんでしょうか?
61nobodyさん:2011/10/02(日) 02:46:10.85 ID:???
知ってるか?
コンピューターは0と1しか理解できないんだぜ?
62nobodyさん:2011/10/02(日) 02:55:49.98 ID:???
マジで!?
コンピューターって超馬鹿じゃん!
63nobodyさん:2011/10/02(日) 03:02:21.59 ID:???
>>62
いやいや。
オレの方がもっと馬鹿だ
絶対に負けないんだぜ
64nobodyさん:2011/10/02(日) 03:09:04.61 ID:???
web上に表示される元にはHTMLがあって
そのHTMLの元にはテキストがあって、そのテキストは0と1で構成されていて
なんだかDNAの構造みたいなロマンがある
65nobodyさん:2011/10/02(日) 03:19:47.90 ID:???
>>60
どんな暗号方式だろうと3bitずつ区切れば0〜7の数値で表現できるよ
66nobodyさん:2011/10/02(日) 11:32:14.06 ID:???
>>60
俺はその質問に何の意味があるのか、
その疑問はどこから湧いて出るのか知りたいよ
銀行口座の4桁数字の暗証番号のような用途でもあるのか?
それともただのバカなのか?


なぜわざわざ暗号強度を下げることをする
(A) 0〜9の10通りで暗号化
(B) 0〜9とa〜zの36通りで暗号化
AとBでそれぞれ暗号化して5文字の暗号を生成したとしよう
それらのパターンは
(A) 10の5乗=100000通り
(B) 36の5乗=60466176通り

単純に考えれば、パターンの多いBの方が暗号強度が高いことがわかる
であれば、BはAに比べて生成する暗号 つまり、パスワードを入力するときに
入力する文字列を減らせる
暗記する文字列を減らせる
67nobodyさん:2011/10/02(日) 12:21:22.68 ID:MdeRfVQT
>>66
すみません、暗号化というより文字から特定の数値をランダムで吐き出すというものを作りたかったので
68nobodyさん:2011/10/02(日) 13:34:16.91 ID:???
>>67
何がすみませんなのか知らんがそれくらい自分で何とかしろ。
進数、アルゴリズムの初歩の初歩だろ。それくらいできなきゃプログラマの資格ない。
やってみてわからないことがあったら質問しろ。丸投げするな。
69nobodyさん:2011/10/02(日) 14:06:11.34 ID:???
>>67
特定なのかランダムなのかどっちなんだよ
具体的に何に使うのか話したほうがアホに絡まれずに済むぞ

ハッシュ値が欲しいなら
list(, $value) = unpack('l', hash('crc32', 'unko chink manko', true));
で符号1bitを含む32bit整数が手に入るので欲しい値の範囲に正規化する
CRC32なのでセキュリティに関与する箇所には使えないが
70nobodyさん:2011/10/02(日) 14:08:48.93 ID:???
う○ことかち○ことか下品な言葉を使うのはやめてください
71nobodyさん:2011/10/02(日) 14:16:21.16 ID:???
アマグラマなんだろ
なんちゃって
72nobodyさん:2011/10/02(日) 16:43:55.66 ID:???
16進数で吐き出されたのを不可逆なら10進数
可逆なら2進数や8進数にでも変換すればいいだろ
73nobodyさん:2011/10/02(日) 17:33:33.43 ID:???
お前ら親切すぎ。少しは自分で考えさせないと本人のためにならんぞ。
74nobodyさん:2011/10/02(日) 17:36:52.16 ID:???
>>68とか口が悪いが面倒見の良い人の典型だな
PHPスレはお人よしが多すぎる。別にいいんだけど
75nobodyさん:2011/10/02(日) 20:43:53.62 ID:E9/7d1Bi
【OS名】CentOS
【PHPのバージョン】6.0
【連携ソフトウェア】MySQL
【質問内容】
1から10までの数字をランダムにそれぞれ1回ずつ表示させたいのですが
rand関数だと範囲の指定は出来ても、登場回数までは当然コントロールできません。
一旦別の変数に登場した数を記録しておいて、乱数が表示される度に比較するという方法以外でよい方法があれば教えていただけないでしょうか。
76nobodyさん:2011/10/02(日) 21:09:39.32 ID:???
>>75
>一旦別の変数に登場した数を記録しておいて、乱数が表示される度に比較するという方法以外でよい方法があれば教えていただけないでしょうか。

なんで以前に出た値を変数や配列に保存して、今回の乱数の値と比較する方法がダメなの?
77nobodyさん:2011/10/02(日) 21:20:47.03 ID:???
78nobodyさん:2011/10/02(日) 22:17:41.92 ID:E9/7d1Bi
>>76
ダメではないんですが、最近細かいところを見直してまして、それでほかにも効率のよい方法があるのかな〜と

>>77
こんな関数があるのを知りませんでした。
これで解決しそうです。
79nobodyさん:2011/10/02(日) 22:30:51.07 ID:UYwChkh+
>>7
鯖をlightppdからnginxに変えたら
file_exists関数でもファイル認識しなくなった
80nobodyさん:2011/10/02(日) 22:39:02.35 ID:UYwChkh+
ちがった。
php 5.3.6だと動くけど
5.3.8で動かなくなってる
もうだめぽ
81nobodyさん:2011/10/02(日) 22:46:04.30 ID:???
>>75
ランダムというのは、大きな目で見れば均一だが
局所的には偏るのが当然
コインを投げれば表が10回連続で出ることもある
それがランダムだというのに、
ランダムの結果を任意に管理するというのか?
バカげてる
それはランダムではないし、ゆえにその目的においてランダムを使う意味も無い

1〜10の数字を配列に入れてシャッフルすればいい
82nobodyさん:2011/10/02(日) 22:49:15.65 ID:UYwChkh+
non thread safeにしたら5.3.8でも参照出来た。
ううむ…。
83nobodyさん:2011/10/02(日) 22:59:37.09 ID:???
>>81
そういう意図を込めた文面になってるじゃねーか
馬鹿はお前だ
84nobodyさん:2011/10/03(月) 01:43:05.12 ID:???
>>83
悪いけどお前の言ってることが全く理解できない
でも俺が馬鹿ではないことは俺が一番良く知ってる
てことは馬鹿なのはお前だということになる
85nobodyさん:2011/10/03(月) 04:53:13.77 ID:???
>>84
>でも俺が馬鹿ではないことは俺が一番良く知ってる

ttp://blog.livedoor.jp/goldennews/imgs2/0910/g1001001.jpg
86nobodyさん:2011/10/03(月) 07:05:41.31 ID:???
>>85
悪いけどお前の言ってることは完全に理解できる
でも俺が馬鹿だということはお前が一番良く知ってる
てことは馬鹿なのは俺だということになる
87nobodyさん:2011/10/03(月) 14:47:49.64 ID:???
悪いと思うならやめろ。
他人が嫌がることをするべきではない。
88nobodyさん:2011/10/03(月) 14:58:25.66 ID:TRRl/0eB
今更ながら、掲示板コミュニティを作ろうとしていますが
わからないところがあります。
2chなどにあるage機能はどのように書いているのでしょうか?
つまり、mail欄にsageを入力でスレの位置そのまま
それ以外を入力だとスレが先頭に上がるという機能のことです。
DBを使用していますか?

また、MySQLを使おうかテキストファイルで管理しようか迷っているのですが
MySQLだとトラフィックが増えると同時接続数の問題が出てきてしまうのでしょうか?
負荷を減らすためにMySQLからのレスポンスをキャッシュさせると新着レスがスムーズに表示されなくなりませんか?
89nobodyさん:2011/10/03(月) 15:11:24.72 ID:???
>>88
ageであればそのスレをリストの先頭に移動するだけだから、DBでもテキストでもどちらでも実現できるよね。
同時接続数の問題が生じるのはテキストで管理しても一緒でしょ。
負荷を減らすためにキャッシュのことを考慮するならMySQLのレスポンスもそうだけど
WEBサーバーのレスポンスも考えないとね。
90nobodyさん:2011/10/03(月) 15:23:46.45 ID:TRRl/0eB
>>89
>リストの先頭に追加
なるほど。
スレッド毎に数字か何かを振ってソートしているのかと勘違いしていました。

>テキストでも同時接続数の問題
どうやら同時接続数の意味をよく理解できていなかったようです。
試作してみて管理しやすい方でやってみます。

ありがとうございました。
91nobodyさん:2011/10/03(月) 15:24:35.32 ID:???
次の方どうぞー
92nobodyさん:2011/10/03(月) 17:09:28.67 ID:emr96KFI
$abc[10] => "123"
$abc[20] => "234"
$abc[30] => "345"
これから[]の中身を取り出したいのですが、取り出す関数などあったりするのでしょうか?
93nobodyさん:2011/10/03(月) 17:10:20.56 ID:???
XAMPPをインストールしなくてもPHPできますか?
XAMPPインストールしたんですが管理画面が表示されません。
94nobodyさん:2011/10/03(月) 17:25:38.60 ID:???
>>92
array_keys
9591:2011/10/03(月) 17:30:30.90 ID:emr96KFI
>>94
サンクス
こんな関数あるとは知らなんだ
リファレンス本でも買っといたほうがいいのかな
96nobodyさん:2011/10/03(月) 17:38:36.11 ID:LRWhYvIr
【OS名】Windows 7 Professional
【PHPのバージョン】5.2.17 Win32 VC6 x86
【連携ソフトウェア】Apache 2.2.21、MySQL 5.5
【質問内容】
文字化けに悩んでいます。
まず、データベースとPHPの文字コードの設定になります。

■データベース(下記はuseコマンドでDBを選択後にコマンドラインより実行)

------ SHOW VARIABLES LIKE "%collation%";
Variable_name | Value
----------------------+-----------------
collation_connection | utf8_general_ci
collation_database | utf8_general_ci
collation_server | utf8_general_ci

------ show variables like "char%";
Variable_name | Value
--------------------------+-------
character_set_client | utf8
character_set_connection | utf8
character_set_database | utf8
character_set_filesystem | binary
character_set_results | utf8
character_set_server | utf8
character_set_system | utf8
97nobodyさん:2011/10/03(月) 17:39:26.28 ID:LRWhYvIr
■PHP(php.iniで設定)

mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0

上記個所以外でロジックなどで文字コードを操作はしていません。
98nobodyさん:2011/10/03(月) 17:39:59.48 ID:LRWhYvIr
■現象
1.phpMyAdminでデータをインサートした場合
インサートしたデータはphpMyAdmin上では文字化けせずに見れる
インサートしたデータをphpで取得してブラウザで表示すると文字化け、mb_detect_encodingで調べると文字コードはASCIIとなっている

2.phpのプログラムからデータをインサートした場合
インサートしたデータはphpMyAdminで見ると文字化けしている
インサートしたデータをphpで取得してブラウザで表示すると文字化け、mb_detect_encodingで調べると文字コードは取得できない
※コマンドラインからもインサートされたデータを見ると文字化けしています。

■質問
今まで文字コードの設定は上記設定のみでUTF-8で統一することでうまくいっていたのですが、
MySQL5.5にしたとたん文字化けするようになり原因がわかりません。
プログラムでの入力も出力もUTF-8で統一、文字化けしないようにしたいのですが、どこの設定を変えればいいのでしょうか。
よろしくお願いいたします。

現象2でUTF-8でデータがインサートされていないっぽい理由も知りたいです。
99nobodyさん:2011/10/03(月) 17:51:02.26 ID:???
>>81
とりあえず、最終目的であるシャッフルを行うのにランダムは必要だけどね。
100nobodyさん:2011/10/03(月) 18:09:45.53 ID:???
>>98
show variables like "char%"; はPHPから発行して確認する
結果が>>96と同じならインサートするデータがUTF-8ではないという事になる
10196:2011/10/03(月) 18:27:22.12 ID:???
>>100
ありがとうございます。
PHPのプログラムで対象のDBに接続し、取得した結果をダンプしたら以下のようになりました。

Variable_name | Value
--------------------------+-------
character_set_client | latin1
character_set_connection | latin1
character_set_database | utf8
character_set_filesystem | binary
character_set_results | latin1
character_set_server | utf8
character_set_system | utf8

コマンドラインからDBに接続して確認した場合と、PHPから発行した場合で違うのはなぜなんでしょうか。
PHPからの場合、上記文字コードの設定になるのはどこの設定が影響しているんでしょうか。
10296:2011/10/03(月) 18:37:09.65 ID:???
>>100
すみません。
いろいろ調べていたら、下記記事を見つけました。

http://blog.cheki.net/archives/349

起きている現象がこの記事の理由と同じなのかよくわかりませんが、
似たような現象だったのでSET NAMES utf8をかましたら文字化けせず正常に表示されました。
PHPからshow variables like "char%"を発行したことはなかったので、勉強になりました。
ありがとうございました。
103nobodyさん:2011/10/03(月) 18:44:07.93 ID:???
104nobodyさん:2011/10/03(月) 18:47:58.19 ID:???
>>102
SET NAMES は使うなと何度言ったら
mysql_set_charset("utf8");
10596:2011/10/03(月) 18:53:20.05 ID:???
>>104
マニュアルに書いてありましたね
ありがとうございます!
106nobodyさん:2011/10/03(月) 21:37:31.87 ID:qFzsBTTU
コードの質問じゃなくて申し訳ないのですが
グループ開発を体験してみたいです
なんかそういうグループ開発初心者おk的な開発プロジェクトないですかね?
svnやgitなんかのバージョン管理の仕方や
フレームワークを使った開発の仕方なんかを実践で学びたいです
107nobodyさん:2011/10/03(月) 21:53:52.23 ID:???
>>106
一人二役
正しく動かないコードをコミットする役とかやってみるといい
108nobodyさん:2011/10/04(火) 00:26:35.22 ID:GRHx0QKk
前のページから入力した数字と選択した画像を送って
その画像を入力した数字分だけ並べたいのですがどうやればいいんでしょうか。
forを使ってやってみたのですが、前のページから取ってきた画像をどうやって表示させればいいかがわかりません。
109nobodyさん:2011/10/04(火) 01:54:17.42 ID:???
110nobodyさん:2011/10/04(火) 12:09:30.41 ID:aG7AxKA7
htmlの書き方がまずいのか他の原因なのか判別つきません

<a id="board_delete" href="<?php echo $url_deleteboard; ?>">
<input type="button" value="Delete" />
<input type="hidden" name="delete_board" value="delete" />
</a>

ボタンを押したときにhiddenで値を送るのは上記コードであっていますか?
111nobodyさん:2011/10/04(火) 13:11:59.64 ID:???
formの中でsubmitしないとだめ
112nobodyさん:2011/10/04(火) 15:28:08.35 ID:9X0aQkvy
今ハッシュを作成しているのですが
$sha1 = sha1("date('Ymd')"."12345"."100");
とやっても期待していた値が得られませんでした。
$sha2 = sha1("20111004"."12345"."$100");と同じものが得られる予定でした。
そこで
$date=date('Ymd');
$sha3 = sha1("$date"."12345"."100");とすると
$sha3=$sha2となり、期待していた値が得られました。

なぜ$sha1では期待していた値にならなかったのでしょうか?
113nobodyさん:2011/10/04(火) 16:39:38.99 ID:???
>>112
date('Ymd') を""で囲むと文字列 "date('Ymd')" になってしまうのでdate関数の返り値は得られない
$sha1 = sha1(date('Ymd')."12345"."100");
で試してみろ
114nobodyさん:2011/10/04(火) 17:18:51.11 ID:9X0aQkvy
なるほど。
関数も変数と同じように考えていました。
勉強になりました。ありがとうございました。
115nobodyさん:2011/10/04(火) 21:01:31.17 ID:xk8cds+A
PHPUnitをEclipse上でやる場合、どういうプラグインがいいのでしょうか?
MakeGoodというのが出てきましたが、あまりEclipse上でPHPUnit使う人がいないのかあんま情報無いようです
116nobodyさん:2011/10/04(火) 23:43:42.06 ID:???
>>110
<a>のURLの最後に ?delete_board=delete
つければ同じ効果だよ
117nobodyさん:2011/10/05(水) 00:27:26.02 ID:???
aphache2.2使ってて
php5.3インスコしようとしたらVC6ないので
5.2使うしかないっぽいですか?
118nobodyさん:2011/10/05(水) 01:21:47.24 ID:???
他から見つける事ができたので、
一応ここに残しておきます

ttp://sourceforge.jp/projects/sfnet_wdscript/downloads/Easy%20Web%20Server/PHP%205.3%20VC6/php-5.3.6-Win32-VC6-x86.zip/
119nobodyさん:2011/10/05(水) 01:27:28.95 ID:???
>>116
POST値しか見てなかったらどうすんだよ
120nobodyさん:2011/10/05(水) 02:11:56.87 ID:???
>>119
うるせーハゲ
121nobodyさん:2011/10/05(水) 02:33:39.24 ID:???
なんでVC6が欲しかったのかよくわからんままだが、リディストリビュータブルパッケージ入れたくなかっただけだろうと思おう
122nobodyさん:2011/10/05(水) 05:30:38.86 ID:???
>>120
お前、回答者気取りたいんならもう少しレベル上げてからにしとけよ
123nobodyさん:2011/10/05(水) 12:17:42.50 ID:l945nK0X
ある値を送ってもらってその値を使って処理をした後
処理結果を送り先に返したいんですが(返り値?)
送り先のURLなどがわからなくても返せるものなのでしょうか?
できるとしたらどのような関数を使えばよいのでしょうか?
回答よろしくお願いいたします。
124nobodyさん:2011/10/05(水) 12:23:48.53 ID:???
>>123
もうちょっと質問を具体的にした方が良いと思うよ
その質問に回答するならechoなりで出力すれば?だけで終わってしまうし、
きっとそんな事を聞きたいんじゃないと思うから
125nobodyさん:2011/10/05(水) 12:41:53.69 ID:l945nK0X
すみません。
PHPで作っているSNSサイトに他社の用意したゲームを実装したいと思っています。

他社のゲームサーバー側から,ゲームの得点結果に合わせたポイント情報がおりてくるので
それを当方でうけとり処理して,その処理結果を,ポイント情報の送り先である他社へ
HTTPのレスポンスボディに返せとのことです。
HTTPの通信系がよくわからないもので質問させてもらいました。よろしくお願いいたします。
126nobodyさん:2011/10/05(水) 12:43:06.94 ID:???
>>122
馬鹿発見
127nobodyさん:2011/10/05(水) 12:46:21.79 ID:???
>>126
うるせーハゲ
128nobodyさん:2011/10/05(水) 12:47:20.55 ID:???
>>125
urlで呼んだ時、ブラウザ上で表示されるのがhttpのレスポンスボディ
なので、それならechoで返せば問題無し
jsonだとかxmlだとかの指定があるなら変換してから出力ね
129nobodyさん:2011/10/05(水) 12:51:40.95 ID:???
>>125
他社のゲームサーバーを通常のブラウザに置き換えて考えればいい。
ゲームサーバーからGETなり何なりでポイント情報が送信されるから
その情報を処理してレスポンスを返す。
基本的に通常のWEBアプリの動作と同じ。
130nobodyさん:2011/10/05(水) 14:13:53.74 ID:l945nK0X
>>128,129
ありがとうございます。
さっそくやってみます。助かりました。
131nobodyさん:2011/10/05(水) 14:18:12.09 ID:???
お安い御用です。
132nobodyさん:2011/10/05(水) 15:10:11.44 ID:f846fttA
http://xxx.com/logo.jpg

ネット検索をすれば↑を自分のサーバ上に保存する方法はヒットするのですが
cドライブなどに保存する方法がみつかりません

そもそも、PHPでは無理なのでしょうか?
133nobodyさん:2011/10/05(水) 15:12:26.21 ID:???
>>132
・ローカルマシンにphpを入れて動かす
・ローカルマシンにftpdなりを入れてphpが動いてるサーバから転送
・ファイルに名前をつけて保存
134nobodyさん:2011/10/05(水) 17:28:58.10 ID:jn0bpQRB
携帯で簡易的なsnsを作ろうとしています。
pcだと頭にsession_start();を置いて必要なデータを$_SESSIONに入れておけばそのデータを使いまわせますが携帯だとそれができないようです。

質問ですが、携帯の場合どうすればいいのでしょうか?
携帯の個体識別番号をとって全てのページで認証をして、その都度必要なデータはhiddenでとばせばいいのかと思ったんですが、このやり方はどうなんですか?
これが正しいかどうかもわからないんですがもっと安全で簡単なやり方があれば教えてください。
135nobodyさん:2011/10/05(水) 17:42:18.17 ID:???
>>134
安全で簡単というのは無理なんで、
php 携帯 session cookie
あたりでググってからもう一度質問すると良いかもしれない
136nobodyさん:2011/10/05(水) 17:45:09.14 ID:jn0bpQRB
>>135
どうもです。もう一回それで調べて見ます。
もっと体系化されてる携帯開発の情報はないんですかね?
137nobodyさん:2011/10/05(水) 17:56:42.07 ID:???
>>136
ちゃんと纏まってるサイトは見た事ないなぁ
三者三様で内容がクソ過ぎるから、真剣に纏めてる人なんて希少なんじゃなかろうか

ちなみに携帯の問題ならphpに限らずどんな言語でも良いんじゃない?
charsetが何だとかcookieが使えないだとかはphpに限った問題じゃないからさ
138nobodyさん:2011/10/05(水) 18:07:57.57 ID:???
> 携帯で簡易的なsnsを作ろうとしています。

ふーん。携帯をサーバーにしてSNSを作るんだ…

なんか凄いことを考えますね。
139nobodyさん:2011/10/05(水) 18:11:57.22 ID:???
携帯でポチポチコーディングする
とは読めても
携帯をサーバにしてなんて読めるか?
140nobodyさん:2011/10/05(水) 18:19:22.04 ID:2INc0FrS
>>138
文盲ですんません。
正確には簡易的なSNSをパソコンと携帯とスマホで使えるようにしたいってことです。
パソコンのは大体できたので携帯で使えるようにしようとしてるとこです。

スマホはまだ何も手つけてないですけど、パソコンのコードのとこにスマホ用のcssを作って
phpでユーザーエージェントをもとにパソコンとスマホで振り分けすればいいと思ってます。

ただ携帯開発がはじめてなのもあるんですが、予想以上に携帯が特殊でここ最近ずっとはまってる状態です。

言語はperlとphpしかわからないので、基本はphpで作りたいです。
141nobodyさん:2011/10/05(水) 18:26:53.07 ID:???
>>138
うるせーハゲ
142nobodyさん:2011/10/05(水) 18:36:02.45 ID:???
OpenPNEじゃだめなの?と思ってしまう
まぁOpenPNEもあんまり使った事無いししらないけどw
143nobodyさん:2011/10/05(水) 18:44:13.59 ID:2INc0FrS
>>142
openpneで作ったものを運営してますが、自分で機能を絞ったものを作りたいんです。
それに今はどうなってかわからないですけど、スマホ対応してないですしカスタマイズもやり辛いし結構不便じゃないですか?
144nobodyさん:2011/10/05(水) 19:46:10.86 ID:???
>>121
アパッチだとVC9入れられないぽいじゃない?
だから、VC6欲しかった
145nobodyさん:2011/10/05(水) 21:12:30.16 ID:???
ああ、なるほど。
言われるままにVC6のPHPを入れるか、
誘導されるままにVC9のアパッチをいれるかの二択なんだね
おさわがせしますた
146nobodyさん:2011/10/05(水) 21:33:50.37 ID:???
http://gete.blog.shinobi.jp/Entry/20/
http://gete.blog.shinobi.jp/Entry/21/

○IIS を使うならVC9 でコンパイルされたパッケージ
○Apache を使うならVC6 でコンパイルされたパッケージ

ということらしい
147nobodyさん:2011/10/05(水) 23:06:32.15 ID:???
それは言われるままにVC6のPHPを入れるパターンだね

http://windows.php.net/download/

公式アパッチをつかうならこう
If you are using PHP with Apache 1 or Apache2 from apache.org you need to use the VC6 versions of PHP

大事なことなので(ry
Do NOT use VC9 version with apache.org binaries

VC9版公式PHPを使うならこう
VC9 versions of Apache can be fetched at Apache Lounge.

不安なあなたのために補足
We use their binaries to build the Apache SAPIs.
148nobodyさん:2011/10/05(水) 23:07:24.96 ID:???
VC6は廃止されたみたいだね
授業でちょっと触った程度の初心者だから
初心者サイトみながらやってみるよ
149nobodyさん:2011/10/06(木) 00:31:48.23 ID:???
pdflib使ってる奴いる?
日本語使えてる?
150nobodyさん:2011/10/06(木) 05:38:34.28 ID:???
使えてる
151nobodyさん:2011/10/06(木) 08:40:56.09 ID:???
>>149
人に物を尋ねるのに「奴」とは
>>1を読んで出直しなさい
152nobodyさん:2011/10/06(木) 10:08:49.71 ID:???
ジョブズが死んじまったな
PHPにはあんま関係なさそうだけど
153nobodyさん:2011/10/06(木) 10:26:30.36 ID:???
「www.pdflib.com」と大書きされるのは仕様か?
154nobodyさん:2011/10/06(木) 10:29:16.93 ID:???
>>1
155nobodyさん:2011/10/06(木) 12:42:17.61 ID:???
>>153
ライセンス
156nobodyさん:2011/10/06(木) 18:04:30.06 ID:???
>>152
いちいちうるさい、お前もついでに死ね
157nobodyさん:2011/10/06(木) 18:06:23.25 ID:???
>>156
うるせーハゲ
158nobodyさん:2011/10/06(木) 19:06:24.08 ID:???
iPhoneユーザのタイプミスの多さは異常
おかげでフォームでメールアドレス入力させるのやめた
今は知らんけど
159nobodyさん:2011/10/06(木) 19:15:03.96 ID:???
>>158
いちいちうるさい
160nobodyさん:2011/10/06(木) 20:10:23.22 ID:???
>>156
脅迫とみなして通報しておきました
161nobodyさん:2011/10/06(木) 21:34:50.89 ID:???
>>160
お前もついでにハゲ
162nobodyさん:2011/10/06(木) 22:16:32.01 ID:???
みんなそうカッカすんなよw
163nobodyさん:2011/10/06(木) 22:28:16.29 ID:???
ジョブズは本当こんなところまでクズ野郎だな
164nobodyさん:2011/10/06(木) 22:29:15.70 ID:???
カツオーーー
165nobodyさん:2011/10/07(金) 02:41:15.04 ID:???
>>156
こういうことを平然というやつがこのスレにいるとおもうと悲しくなるな
166nobodyさん:2011/10/07(金) 03:01:32.27 ID:???
そんなあなたにはこの鏡
167nobodyさん:2011/10/07(金) 06:07:33.54 ID:???
>>165
うるせー生ハゲ
168nobodyさん:2011/10/07(金) 06:20:06.00 ID:???
ジョブズとゲイツってどっちがすごいの?
169nobodyさん:2011/10/07(金) 06:44:11.87 ID:???
ジョブズがいる前提で、ゲイツのほうがすごい
170nobodyさん:2011/10/07(金) 06:58:04.69 ID:???
MacよりWindowsの方がすごいに決まってるだろ
171nobodyさん:2011/10/07(金) 07:13:50.63 ID:???
MacとWindowsは宗教なんで無視するとして
AppleとMicrosoftなら、Microsoftのほうが凄い
ってことじゃないの?
172nobodyさん:2011/10/07(金) 07:33:37.86 ID:???
ジョブズ
技術力 ★★★
経営力 ★★★★★★★★★★

ゲイツ
技術力 ★★★★★★★★★★
経営力 ★★★★★★★
173nobodyさん:2011/10/07(金) 07:37:52.19 ID:???
>>172

ジョブスは30歳から11年間会社から追放されてたと聞いてるが。
174nobodyさん:2011/10/07(金) 07:41:35.26 ID:???
>>172
その評価は逆だと思う。
ジョブズは根っからの技術者で経営センスは今ひとつと聞く。
ゲイツはMS-DOSのように元々他人が作った物をうまく取り入れて儲ける才覚があった。
175nobodyさん:2011/10/07(金) 08:53:28.06 ID:???
ゲイツは技術屋として天才
Windowsの基礎を作ったのはゲイツ
ジョブズとの違いについて自分は技術屋だが彼は違うといった趣旨の発言をしたことがある

ゲイツのデザインに対する強いこだわりが今のMacの基礎だが
技術屋としてのスキルはそれほど高くなく技術的な部分は丸投げ
176nobodyさん:2011/10/07(金) 08:55:50.33 ID:???
ゲイツはどっちかというとソフト専門で
ジョブズはハード専門
というイメージだな
177nobodyさん:2011/10/07(金) 09:11:16.44 ID:???
font屋だろ
178nobodyさん:2011/10/07(金) 09:13:59.65 ID:???
>>175
ゲイツがWindows作ったわけじゃねーぞ
作ったのはMicrosoftの社員
ゲイツは優秀な人材をMicrosoftに引き入れて儲けただけ
179854:2011/10/07(金) 09:18:18.44 ID:???
経営者ってそういうことだろw
180nobodyさん:2011/10/07(金) 09:23:57.75 ID:???
どうでもいいがジョブズとゲイツが混同してるぞw

まぁ一応ジョブズもゲイツも禿げもプログラマ上がり
支持崇拝されてる対象が違う
デザイナーがジョブズでプログラマーがゲイツ脱原発が禿げ
181nobodyさん:2011/10/07(金) 09:25:17.22 ID:???
なんで禿なんて下等生物引っ張ってくる必要があったんだ?
それならデブも入れてやれよ
182nobodyさん:2011/10/07(金) 09:30:57.43 ID:???
いや、ジョブズはMacの成功に技術面で功績を残したわけだが
ゲイツは単なる経営者でしかないということ
183nobodyさん:2011/10/07(金) 09:31:57.04 ID:???
スレ違い
184nobodyさん:2011/10/07(金) 09:36:11.92 ID:???
PHP以外の話題が禁止されているわけではないのでスレ違いではない
185nobodyさん:2011/10/07(金) 09:38:39.58 ID:???
わざわざ書かないと理解できないなんて某国の人並みの知能ですね
186nobodyさん:2011/10/07(金) 10:37:50.71 ID:???
極東の某島国の人並みの知能ですから
187nobodyさん:2011/10/07(金) 11:59:05.67 ID:???
ジョブズはソフ屋wikipediaぐらいでも見てこい
188nobodyさん:2011/10/07(金) 12:04:13.69 ID:???
ジョブズはハード面のデザインにぐだぐだ注文つけただけだろ
189nobodyさん:2011/10/07(金) 12:13:39.88 ID:???
どっちもいろんな面でトップレベルなんだろ。方向性が違うだけ
190nobodyさん:2011/10/07(金) 12:19:02.78 ID:???
まぁ1つ言えるのはお前らの手の届かないレベルに達してるやつらの話しても仕方ないことだ。
さぁ今日もシコシコしながらPHPでもやりなさい。
191nobodyさん:2011/10/07(金) 12:57:37.64 ID:???
http://japanese.joins.com/photo/389/1/75389.html?servcode=500§code=500
「弾丸がハッ差HS荒れる」って何?
192nobodyさん:2011/10/07(金) 12:58:17.31 ID:???
>>191
ID
193nobodyさん:2011/10/07(金) 12:58:53.79 ID:???
>>192
ID:???
194nobodyさん:2011/10/07(金) 13:00:04.32 ID:???
php関係ねえww
195nobodyさん:2011/10/07(金) 13:02:17.84 ID:???
>>191
北朝鮮の技術力に感服した。ジョブズなんて目じゃない。
196nobodyさん:2011/10/07(金) 23:05:56.11 ID:???
>>104
>>102
>SET NAMES は使うなと何度言ったら
>mysql_set_charset("utf8");

なんであかんの?理由を知りたい。
197nobodyさん:2011/10/08(土) 01:32:41.25 ID:???
198nobodyさん:2011/10/08(土) 04:51:31.37 ID:bwPKCXhO
packやunpackで
フォーマット文字のfの表現がマシン依存になってしまうのですが、
常にビッグエンディアンとして処理するにはどうすれば良いのでしょうか?

よろしくおねがいします。
199nobodyさん:2011/10/08(土) 05:25:52.30 ID:???
>>198
自分でpack後、unpack前に変換するしかなさげ
200nobodyさん:2011/10/08(土) 07:18:56.08 ID:???
FPDF使ってる奴おるか?
なんかしょぼくね。
201nobodyさん:2011/10/08(土) 08:45:21.31 ID:???
202nobodyさん:2011/10/08(土) 09:57:10.53 ID:???
さいきんひとの質問に>>1とかく人いますが何の意味ですか?
スレを荒らさないできちんと答えてあげるべきじゃないですか?
203nobodyさん:2011/10/08(土) 10:20:48.95 ID:???
204nobodyさん:2011/10/08(土) 10:37:46.29 ID:???
もういい加減にしてください
>>1って何なんですか?
人をからかって楽しいなんていい性格ですね
205nobodyさん:2011/10/08(土) 11:56:10.82 ID:???
>>204
・スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
とか>>1に書いてあるから質問するなら>>!に書いてあることを守れってことじゃね?
206198:2011/10/08(土) 12:18:44.44 ID:bwPKCXhO
>>199
バイトオーダーを判定して、
必要に応じて逆転させることで、とりあえずは対応できました。

あんまりスマートではないですが・・・
207nobodyさん:2011/10/08(土) 12:23:36.62 ID:???
すみませんが>>1に書いてあるという意味がわかりません
どこに書いてあるんですか?
あとメール欄とか専ブラのとか専門用語?で言われても何のことかさっぱりわかりません
208nobodyさん:2011/10/08(土) 13:18:57.62 ID:???
209nobodyさん:2011/10/08(土) 13:22:57.25 ID:???
いいかげんにしてもらえませんか?
わけのわからないことばかり
なんかむかつく
210nobodyさん:2011/10/08(土) 13:37:09.53 ID:6EZQGf54
【OS名】winxp xampp1.6.4
【PHPのバージョン】5.2.4
【連携ソフトウェア】なし
【質問内容】文字列を結合した参照渡しについて
$i="1";
$str ="カウント".&$i."番";
echo $str;
$i="2";
echo $str;

これだとエラーになってしまいます。
文字列とあわせて参照渡しする場合どうすれば良いでしょうか?
お願いします。
211nobodyさん:2011/10/08(土) 14:00:53.35 ID:???
それが出来るとしたらリテラルが登場するたびにメモリに残りまくりではないか
212nobodyさん:2011/10/08(土) 14:08:01.96 ID:???
>>197
ありがとー!
213nobodyさん:2011/10/08(土) 15:19:58.00 ID:???
お安い御用です。
214nobodyさん:2011/10/08(土) 15:40:32.47 ID:???
>>210
最終的に何がしたいのかわからんが、PHPの動作にいくつか誤解がある。
参照渡し &$i は変数 $i の内容が評価されるわけではない。
よって式 "カウント".&$i."番" は文字列として評価できない(エラーとなる)。
215nobodyさん:2011/10/09(日) 01:16:45.27 ID:???
>>210
$i= 1; //外部的にコントロールできないが、実は内部的に参照渡しされている。
$iii = &$i; //$iは参照渡しを外部的にコントロールできるようになった!
$str ="カウント".$iii."番"; //実は内部的に参照渡しされている
echo $str;
$i = 2; //外部的に参照渡しをコントロールできぞ変数
$str ="カウント".$iii."番"; //コントロールできない参照渡し。
echo $str;
とするしかない。
文字列と参照渡しをいっしょに処理することはできない。

X $str ="カウント".&$i."番";  文字列に参照渡しを含めることは出来ない
○ $iii = &$i;

基本的にphp5はデフォルトで参照渡しをしている。しかしコントロールのできない参照渡し
216nobodyさん:2011/10/09(日) 02:40:44.15 ID:???
>>215
意味不明。もっとわかりやすく。
217nobodyさん:2011/10/09(日) 05:07:27.45 ID:HrCbkB1S
カウンター用テキストファイルa.txtがあります
このテキストを読み込んでその値に+1してそこに書き込むファイルをA.phpとB.phpとします

例えばa.txtに7と書き込んであり、A.phpとB.phpがほぼ同時に処理を行い
A.phpが読み取り→Bが読み取り→Aが書き込み→Bが書き込みとなった場合
a.txtの値は9とはならず、8になってしまいます

fopen(a.txt)

fgets()

fputs(fgetsを+1した数字)

flose()
とやってるのですが、対策とかあるんでしょうか?
218nobodyさん:2011/10/09(日) 06:02:36.78 ID:???
>>217
flock
219nobodyさん:2011/10/09(日) 06:03:32.38 ID:???
>>217
ファイルロックをする【PHP】
ttp://www.programming-magic.com/20080211020413/
220nobodyさん:2011/10/09(日) 07:53:55.08 ID:???
extract()と配列ポインタの関係で疑問があります。

$fn = function($array)
{
 extract($array);
 current($array['id']); ★

 foreach ($array['id'] as $current) {
  echo current($array['id']); ☆
  exit;
 }
};

$fn(array('id' => array(1, 2, 3)));

current()はポインタを移さない筈ですが、
★がある場合、☆は2
★がない場合、☆は1

になります。何故でしょうか?
extractにオプションEXTR_REFS(変数を参照渡し)つければ
☆は必ず2を返します。
221210:2011/10/09(日) 08:11:00.58 ID:gr0/EXwl
>>214 >>215
どうもありがとうございました。
222nobodyさん:2011/10/09(日) 13:56:32.44 ID:ppXSAu3b
Windows XPで、localhostで色々やってるのですが

scandir()などで、半角スペースを含むパスにアクセスする方法ってありましたっけ?
(C:/Documents and Settings/ とか)

%sじゃないし…
223nobodyさん:2011/10/09(日) 14:18:48.12 ID:???
>>222

'でかこめばいいのよ。

/'Documents and Settings'/

"でもいいけど。
224nobodyさん:2011/10/09(日) 14:20:55.74 ID:???
>>222
"My Documents" → "MYDOCU~1" とか短い名前でアクセスできない?
知らんけど
225222:2011/10/09(日) 15:11:57.53 ID:ppXSAu3b
>>224
おお!
http://d.hatena.ne.jp/GARAPON/20080124/1201149409
を参考に、DOCUME~1 とするとうまくいきました!

>>223
scandir("C:/'Documents and Settings'/");
ってこと…? うまくいきませんでした。
…って、そういう意味じゃないですね、すみません。
どうやら文字列の連結および文字コードの辺りで問題があったみたいです。

scandir(mb_convert_encoding("C:/Documents and Settings/".$username."/日本語ディレクトリ名/","SJIS","UTF-8"));

で無事うまくいきました!
お二方、ありがとうございます。
226nobodyさん:2011/10/09(日) 15:30:38.35 ID:???
Windowsマシン上でもencodingが必要なんだ。
しかし、なぜUTF-8使ってるのだろう。
227kuma:2011/10/09(日) 16:08:15.27 ID:oauOAJK3
php始めました

phpと、mysqlで、検索をするプログラムを作ろうと思う

html 入力

 ↓→mysql 
↓←
php 表示

この状況の、phpファイルのつくりかたをわからない
mysqlと接続する方法は、わかりました。

htmlファイルで入力した検索の言葉を、どのように、
phpファイルで、受けて、表示したらよいでしょうか?
228nobodyさん:2011/10/09(日) 16:27:53.20 ID:???
htmlにphpコードを埋め込め
229nobodyさん:2011/10/09(日) 16:34:04.09 ID:???
>>227
$_GET
$_POST
230kuma:2011/10/09(日) 16:58:01.15 ID:oauOAJK3
htmlファイル

<html>
<head><title>1009.html</title></head>
<body>
検索 入力
<form action="10092.php" method="post">
<input type="text" name="name">
<input type="submit" value="検索">
</form>
</body>
</html>
231kuma:2011/10/09(日) 17:00:46.16 ID:oauOAJK3
phpファイル

<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');

$sql=
mysql_query($sql) or die(mysql_error());
?>
<p>検索結果
</p>

6行目の$sqlは、どのように書けばよいでしょうか?
232kuma:2011/10/09(日) 17:02:24.09 ID:oauOAJK3
>>231 のphpファイルが、htmlファイルの指定している10092.phpです

233nobodyさん:2011/10/09(日) 17:09:46.27 ID:???
$_POST['name']にinputのnameがnameの値が入ってるからそれを使ってクエリー発行
ただ直接SQL文の条件にするとSQLインジェクション等の可能性もあるから
適切にクオートするなりするように
234nobodyさん:2011/10/09(日) 18:41:29.23 ID:FIXEx2lV
PHP+mysqlwebシステム構築でもよんでみるといいよ。
基本的な検索の書き方が載っているし、たとえば10件以上あった場合
はつぎのぺーじにする考え方とかも載っている。
まあphp mysql 検索でもでてくるけど
まあ人それぞれだが、結構やさしめに書いてあるんで、おれはスーパー
サンプルよりそっちが好きだ。
ただこの本はXAMPで構築されているので、それはマネしないように。
235nobodyさん:2011/10/09(日) 20:28:50.70 ID:???
>>231
普通に"SELECT * FROM ~ "とか文字列で入れれる
変数入れる時は必ずエスケープ
236kuma:2011/10/09(日) 20:39:22.64 ID:oauOAJK3
>>233 postか。調べた。良くわからない。
  webで公開されているソースを、適当につなげて、作ってみた
phpファイル
<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');
//フォームで送られてきた条件を元にSELECT文を作成
$sql = "select id, bb from b" ;
//SELECT文を実行
if (!$res = mysql_query($sql)) {
   exit ;
}
//検索結果表示
echo "<tr><td>id</td><t>bb</td></tr>" ;
while($row = mysql_fetch_array($res)){
   echo ( "<td>" . $row["id"] . "</td>") ;
   echo ("<td>" . $row["bb"] . "</td>") ;
   echo ("</tr>") ;
}
echo ("</table>" );
mysql_query($sql) or die(mysql_error());
?>
<p>検索結果
</p>
結果は、データベースの情報は、phpファイルに、表示されなかった。
なぜでしょう?
>>234
良さそうな本ですね.
php超入門と、よくわかるphpの教科書と、headfirstphp4mysqlを読みました
次は、逆引きphpか、これか、スーパーサンプルか悩む
237nobodyさん:2011/10/09(日) 21:12:47.45 ID:???
>>236
フォームから送られてきた変数を受け取っていない
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
DBの構造がわからんけどこんな感じ
238nobodyさん:2011/10/09(日) 21:22:12.19 ID:???
>>236
> 逆引きphpか、これか、スーパーサンプルか悩む

phpマニュアルがネットにあるのでそれで十分になるよ。
239nobodyさん:2011/10/09(日) 21:25:29.64 ID:???
>>236
関係ないけど、最後の
mysql_query($sql) or die(mysql_error());
は、何か意味があってやってるの?
240nobodyさん:2011/10/09(日) 21:30:00.75 ID:???
そんなこと聞くのが分からん。
241nobodyさん:2011/10/09(日) 21:38:48.63 ID:???
>>237

if (!$res = mysql_query($sql)) {
の中に入れるのがいいんじゃね。
242nobodyさん:2011/10/09(日) 21:52:17.93 ID:F2aoiA/N
class test{
public static function hoge(){}
}
$test=new test();
$test->hoge();//1
test::hoge();//2

このtestクラスのhogeメソッドで、インスタンス化されたアクセスか、されていないアクセスかを判断するにはどうしたらよいのでしょうか
isset($this)かと思ったら、どちらの場合でもfalseでした
243nobodyさん:2011/10/09(日) 22:33:27.00 ID:teZ5cCjB
【OS名】win xp
【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
phpでソースをクリックしたら
使ってるcssのプロパティの一覧が表示される開発ツールってありますか?

ちょっと例えが悪くてすいません
イメージ的にはDreamWeaverでwebサイトを作るようにphpのソースを書きたいです
244nobodyさん:2011/10/09(日) 23:32:27.22 ID:???
DWでPHPのソース書けば良いよ
245nobodyさん:2011/10/10(月) 00:01:25.69 ID:???
>>244
返信ありがとう
今その方法も探してるんですが
ドリでソース書いててCSSとのプロパティ一覧がみれないです

そうなると編集するときも一度html+cssでページを作って、
閧ノphpのコードを入れ直すっていう感じになってしまいます
開発環境ととのえるのにオススメな本やサイトってありますでしょうか?
246nobodyさん:2011/10/10(月) 00:51:06.12 ID:???
>>242
どちらもクラスメソッドの呼び出しとして扱われる上に
debug_backtrace() でも情報が取れないので区別するのは無理だろう

http://www.php.net/manual/ja/language.oop5.static.php
> static なプロパティは、インスタンス化されたクラスオブジェクトから
> アクセスすることはできません (static なメソッドにはアクセスできます)。
247nobodyさん:2011/10/10(月) 01:31:43.81 ID:???
テクニック使えばできなくもない
248nobodyさん:2011/10/10(月) 01:57:59.46 ID:???
ふ〜ん
249nobodyさん:2011/10/10(月) 03:29:39.73 ID:???
>>236
>>104
htmlspecialchars
250nobodyさん:2011/10/10(月) 10:44:40.47 ID:p76b8Zow
ご回答お願いいたします。

[$_POST["reply○"]]
の○の部分に変数を入れたいです。
replyが1〜100まであってそれを変数で自動的に表示させたいのです。

[$_POST["reply".$a]]
などのようにしてみましたがエラーになりました。
よろしくお願いいたします。
251nobodyさん:2011/10/10(月) 10:52:17.57 ID:???
echo "[{$_POST["reply".$a]}]";

こうだろ?
252nobodyさん:2011/10/10(月) 11:09:33.55 ID:???
いいえ
253kuma:2011/10/10(月) 12:16:19.07 ID:a7jxBezb
>>237
>>241
駄目だ 表示されない
送られたphpファイルには、
echo "<tr><td>id</td><t>bb</td></tr>" ;と、
<p>検索結果</p>
は、表示されるが、
データベースの情報は、駄目だ。

続く
254kuma:2011/10/10(月) 12:17:03.93 ID:a7jxBezb
ソースコード

<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');
//フォームで送られてきた条件を元にSELECT文を作成
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
//SELECT文を実行
if (!$res = mysql_query($sql)) {
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
   exit ;
}
//検索結果表示
echo "<tr><td>id</td><t>bb</td></tr>" ;
while($row = mysql_fetch_array($res)){
   echo ( "<td>" . $row["id"] . "</td>") ;
   echo ("<td>" . $row["bb"] . "</td>") ;
   echo ("</tr>") ;
}
echo ("</table>" );
mysql_query($sql) or die(mysql_error());
?>
<p>検索結果</p>
255kuma:2011/10/10(月) 12:28:54.49 ID:a7jxBezb
私のこのソースコードについての理解

1〜4行目 データベースと接続
6〜7   フォームから送られた単語で、関数をつくる
      データベース内で、それを選ぶ 
9~10 実行 
12~最後  表示 

これのどこをおかしいでしょうか?
6~7,9~10をあやしいと思っていますが、ピンときません



256nobodyさん:2011/10/10(月) 12:30:57.13 ID:???
echo "<tr>";
が無い
ついでに言えば
if (!$res = mysql_query($sql)) {
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
   exit ;
}
ここのしたい事って何?発行されたSQLが知りたいなら
if (!$res = mysql_query($sql)) {
   echo $sql
   exit ;
}
こうだし
あと他のレスにもあったけど
最後の
mysql_query($sql) or die(mysql_error());
これは不要
257kuma:2011/10/10(月) 13:12:24.16 ID:a7jxBezb
>>256 ありがとう
改良した
<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');
//フォームで送られてきた条件を元にSELECT文を作成
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
//SELECT文を実行
if (!$res = mysql_query($sql)) {
   echo ($sql);
   exit ;
}
//検索結果表示
echo "<tr>";
echo "<tr><td>id</td><t>bb</td></tr>" ;
while($row = mysql_fetch_array($res)){
   echo ( "<td>" . $row["id"] . "</td>") ;
   echo ("<td>" . $row["bb"] . "</td>") ;
   echo ("</tr>") ;
}
echo ("</table>" );
?>
<p>検索結果
</p>
しかし、駄目だった
mysqlを悪いのだろうか?
続く
258kuma:2011/10/10(月) 13:15:12.12 ID:a7jxBezb
mysql
データベース内容
-- phpMyAdmin SQL Dump
-- version 3.2.4
-- http://www.phpmyadmin.net
--
-- ホスト: localhost
-- 生成時間: 2011 年 10 月 10 日 04:10
-- サーバのバージョン: 5.1.44
-- PHP のバージョン: 5.3.1
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
--
-- データベース: `a`
-
-- テーブルの構造 `b`
CREATE TABLE IF NOT EXISTS `b` (
`id` int(11) NOT NULL,
`bb` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- テーブルのデータをダンプしています `b`
--
-- --------------------------------------------------------
-- テーブルの構造 `c`
CREATE TABLE IF NOT EXISTS `c` (
`id` int(11) NOT NULL,
`cc` text NOT NULL
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
-- テーブルのデータをダンプしています `c`
259kuma:2011/10/10(月) 13:18:22.48 ID:a7jxBezb
257と、258は、の関係
257のphpファイルは、258のmysqlのデータベースから、データをもらっています。

どこがおかしいでしょうか?
260kuma:2011/10/10(月) 13:38:34.78 ID:a7jxBezb
>>258
データベースをわかりにくので、
図にしました

mysqlのデータベース
データベース名 a

    id bb
テーブル名 b  1 kuma
-----------------------------------------------------------------------
id cc
c 2 katsu
--
261kuma:2011/10/10(月) 13:50:36.69 ID:a7jxBezb
>>260 表が、ずれた
mysqlのデータベースについて、書き直し

データベース名 a

テーブル名 b
フィールド id bb
レコード名 1 kuma

テーブル名 c
フィールド id cc
レコード名 2 katsu

です
262nobodyさん:2011/10/10(月) 14:41:36.51 ID:???
>>261
>>236で、
$sql = "select id, bb from b";
の時にDBの内容が表示されなかったと言ってたよね。
DBにデータがちゃんとはいっていて、MySQLにちゃんと接続できてるなら、
テーブルの内容が全て表示されたはず。

「しかし、駄目だった」だけではわからんから、どんなエラーが出たのか書くように。
それと、「テーブルc」はこの際関係ないんだから書かないように。
263nobodyさん:2011/10/10(月) 14:44:37.60 ID:???
>>261
あと、>>256の「echo "<tr>"; が無い」を見て「echo "<tr>";」を追加したようだが、
それHTML的に間違ってるから。
正しくは「echo "<table>";」な。
それと、<t> じゃなくて <td> だから。
264243:2011/10/10(月) 16:28:22.20 ID:???
初心者的な質問ですいません

phpで
<div class="test">〜</div>と書かれたものをクリックした時に
クラスtestのプロパティがドリでも表示できますか?
それともcssファイルの中で使われているものを目で追っていくしかないのでしょうか

html、body、外divなどから継承しているcssも目で追っていくのは効率が悪いので
何か方法があればご教授ください
265nobodyさん:2011/10/10(月) 16:31:49.11 ID:???
266kuma:2011/10/10(月) 17:25:42.73 ID:a7jxBezb
>>262
>>236のときは、エラーはでないで、
idbb
検索結果
とでた。
データベースの内容は、でなかった
>>263
改良した
267nobodyさん:2011/10/10(月) 17:26:51.55 ID:a7jxBezb
>>266
続き
<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');
//フォームで送られてきた条件を元にSELECT文を作成
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
//SELECT文を実行
if (!$res = mysql_query($sql)) {
   echo ($sql);
   exit ;
}
//検索結果表示
echo "<table>";
echo "<tr><td>id</td><td>bb</td></tr>" ;
while($row = mysql_fetch_array($res)){
   echo ("<tr>" "<td>" . $row["id"] . "</td>" "</tr>") ;
   echo ("<tr>" "<td>" . $row["bb"] . "</td>" "</tr>") ;
   echo ("</tr>") ;
}
echo ("</table>" );
?>
<p>検索結果
</p>
268kuma:2011/10/10(月) 17:28:21.23 ID:a7jxBezb
>>267
実験したら、
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /Applications/XAMPP/xamppfiles/htdocs/10092.php on line 20
とでた
line20は、
echo ("<tr>" "<td>" . $row["id"] . "</td>" "</tr>") ;ここらへん

htmlおかしい?
269nobodyさん:2011/10/10(月) 17:31:48.99 ID:???
>>265
返信ありがとうです

htmlならこれができて、
phpファイルではcssパネルが見られないっていう質問だったんですが
スレ違いだったみたいですいません

地道に目で追っていこうと思います
270nobodyさん:2011/10/10(月) 20:30:14.24 ID:???
>>268
"<tr>" "<td>" . $row["id"] . "</td>" "</tr>"
この書き方が変
echoで受け付ける書き方は,区切りか.を使った連結とかぐらい。
空白で連結なんてもんはない。
'<tr><td>'.$row['id'].'</td></tr>'
こんな感じに直せ
271kuma:2011/10/10(月) 20:47:19.99 ID:a7jxBezb
>>270
改良した
<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');
//フォームで送られてきた条件を元にSELECT文を作成
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
//SELECT文を実行
if (!$res = mysql_query($sql)) {
   echo ($sql);
   exit ;
}
//検索結果表示
echo "<table>";
echo "<tr><td>id</td><td>bb</td></tr>";
while($row = mysql_fetch_array($res)){
   echo "<tr><td>".$row["id"]."</td></tr>";
   echo "<tr><td>".$row["bb"]."</td></tr>";
   echo "</tr>";
}
echo "</table>" ;
?>
<p>検索結果
</p>
駄目だー
エラー内容
Parse error: syntax error, unexpected T_CONSTANT_ENCAPSED_STRING in /Applications/XAMPP/xamppfiles/htdocs/10092.php on line 20
272nobodyさん:2011/10/10(月) 21:28:03.95 ID:???
インデントに全角スペース使ってないだろうね?

「駄目だー」などすぐに書きこむってのはプログラマーには向かないかもな
273nobodyさん:2011/10/10(月) 21:30:16.32 ID:???
>>271
ソースに全角スペースが入ってない?(echo の前のスペースとか)
あと while の中の echo "</tr>"; も不用だろ。
274nobodyさん:2011/10/10(月) 21:51:09.31 ID:???
HTMLまともに書けないのにこんな事やってるってのは
やっぱ宿題なんだろうな
275nobodyさん:2011/10/10(月) 22:09:42.16 ID:???
HTMLがめちゃくちゃだな
インデントに全角スペース入れちゃだめだよ
これでどう?


<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');
//フォームで送られてきた条件を元にSELECT文を作成
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
//SELECT文を実行
if (!$res = mysql_query($sql)) {
echo ($sql);
exit ;
}
//検索結果表示
echo "<table>";
echo "<tr><td>id</td><td>bb</td></tr>";
while($row = mysql_fetch_array($res)){
echo "<tr>";
echo "<td>".$row["id"]."</td><td>".$row["bb"]."</td></tr>";
echo "</tr>";
}
echo "</table>" ;
?>
<p>検索結果</p>
276nobodyさん:2011/10/10(月) 22:11:52.32 ID:???
>>274
最近ブログとか主流になってHTMLわからないままPHP等に入る人が多い。
277nobodyさん:2011/10/10(月) 22:15:28.29 ID:???
間違った
最後の<tr/>
いらないな

<?php
mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('a') or die(mysql_error());
mysql_query('SET NAMES UTF8');
//フォームで送られてきた条件を元にSELECT文を作成
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
//SELECT文を実行
if (!$res = mysql_query($sql)) {
echo ($sql);
exit ;
}
//検索結果表示
echo "<table>";
echo "<tr><td>id</td><td>bb</td></tr>";
while($row = mysql_fetch_array($res)){
echo "<tr><td>".$row["id"]."</td><td>".$row["bb"]."</td></tr>";
}
echo "</table>" ;
?>
<p>検索結果</p>
278nobodyさん:2011/10/10(月) 23:08:00.64 ID:???
明らかに意欲なし目的なしなところが宿題っぽい。
htmlspecialcharsなしは減点だろう。
あとth使ったりValidなHTMLにすればちょっと点数おまけしてくれそう。
279nobodyさん:2011/10/11(火) 01:13:10.45 ID:???
mysql_query('SET NAMES UTF8'); もな
280nobodyさん:2011/10/11(火) 02:03:38.78 ID:???
281nobodyさん:2011/10/11(火) 02:38:56.25 ID:???
なにそのアンカー
282kuma:2011/10/11(火) 03:01:03.85 ID:L7gbN7TV
>>277
できました!
ありがとうございます!
動くと気分良い!
htmlを勉強必要だ
あと宿題でない。私は無職。これからphp勉強してphpプログラマーになって、働きたい




283nobodyさん:2011/10/11(火) 03:02:56.05 ID:???
SET NAMES は使うなと何度言ったら
284nobodyさん:2011/10/11(火) 05:44:15.36 ID:???
>>282

画面表示ができたなら、あとは検索結果表をエクセル出力するボタンを付けたり、レコードの詳細を表示するボタンを付けたり、それをPDF出力するボタンを付けたりが楽しいぞ。
285nobodyさん:2011/10/11(火) 06:56:44.30 ID:???
しかし、データベース検索結果が多い場合に次のページに行ったり、前のページに戻ったりの矢印を作るやり方がわからん。
「逆引きPHP」でも買ったら載ってるかな。
286nobodyさん:2011/10/11(火) 09:09:56.66 ID:???
そういうのを自力で作れないならPGは諦めた方がいいぞ
そこまでいくとphpほとんど関係ないし
287nobodyさん:2011/10/11(火) 09:36:16.35 ID:???
XDomainRequest()を使ってドメイン越えをしようと思っているのですが、
postでsendしたパラメータがphp側で受信ができませんでした。
parse_strを使えば良い、という話を聞いたので以下のようにしてみたのですが、
それでも駄目で詰まっています。宜しくお願いします。
<クライアント側>
if(window.XDomainRequest){
xdr = new XDomainRequest();
if(xdr){
xdr.onload = alert_loaded;
xdr.open("post", PHPファイルパス);
xdr.send("key=value");
}
function alert_loaded(){
alert(xdr.responseText);
}

<サーバ側>
<?php
header("Access-Control-Allow-Origin:*");
header("Access-Control-Allow-Headers:Content-Type");
echo $_POST['key']; //駄目
parse_str($_POST);
echo $key; //こっちも駄目
?>
288nobodyさん:2011/10/11(火) 09:57:13.61 ID:???
289287:2011/10/11(火) 10:16:43.59 ID:???
>>288
そのリンク先のも私です。
向こうでも質問したのですが解決しなかったので、こちらで質問させて頂きました。
締め切ることを忘れていたので、先程締めてきました。
290287:2011/10/11(火) 10:16:53.84 ID:???
>>288
そのリンク先のも私です。
向こうでも質問したのですが解決しなかったので、こちらで質問させて頂きました。
締め切ることを忘れていたので、先程締めてきました。
291nobodyさん:2011/10/11(火) 10:27:14.75 ID:???
>>251
ありがとうございます。
助かりました。


あと文法を確かめたいのでお聞きしたいのですが
変数を{ }で囲むことをなんという文法でいうのでしょうか?
292nobodyさん:2011/10/11(火) 10:31:36.92 ID:???
>>290
よくわからんがこの辺とかは?
http://social.msdn.microsoft.com/Forums/eu/iewebdevelopment/thread/fe1570a0-8670-450d-90e6-1e03bd338569
後IDな

>>291
変数の展開とかそんな呼び方
293nobodyさん:2011/10/11(火) 10:52:48.32 ID:???
>>287
http://jp.php.net/manual/ja/wrappers.php.php

あとparse_strは第2引き数まで指定して使った方がいいよ
294291:2011/10/11(火) 10:56:23.41 ID:eYZf+P6I
>>292
ありがとうございます。
ググって確かめます。
295nobodyさん:2011/10/11(火) 11:08:14.43 ID:AuJ4TIiQ
>>292 >>293
できました!ありがとうございます!
$HTTP_RAW_POST_DATAというものがあることを知りませんでした。

IDはこれでいいのかな。以後気を付けます。
parse_strも第2引数を指定するようにします。
296nobodyさん:2011/10/11(火) 11:28:56.24 ID:OikSSdQv
GDを使って、指定した色数まで減色したいのですが、

255色程度だとうまく減色できるのですが、

imagetruecolortopalette($image, false, 5);

としても、5色ちょうどにならないときがあります。

また、それほど使われていないはずの#FFFFFFが入っているときがあります。

解決策をご存じの方がいましたら、よろしくお願いします。
297nobodyさん:2011/10/11(火) 12:30:16.95 ID:iobhURfX
サーバの文字コード取得するのって、
mb_internal_encoding() で良かったですよね?
298nobodyさん:2011/10/11(火) 12:33:17.77 ID:???
サーバの文字コードってなんだよ
299nobodyさん:2011/10/11(火) 12:35:42.78 ID:???
>>296
GDのバグか仕様じゃね

>>297
違うね
それはmb系の関数のデフォルトの文字コード設定みたいなもんだ。
300kuma:2011/10/11(火) 17:06:52.74 ID:???
>>284 それをつけると、
検索プログラムを、使いやすくなりそうですね。
逆引きphpの本欲しくなった。
301nobodyさん:2011/10/11(火) 17:25:11.71 ID:???
> 逆引きphpの本

この本に載っているかは知らないよ。
302nobodyさん:2011/10/11(火) 19:11:51.17 ID:iobhURfX
>>298-299
ではどう書けば良いんでしょうか?
サーバ側でEUC-JPになっていたりして、文字化けする時があります。
その際、エラーメッセージを出したいので、
サーバで指定されている文字コードを取得したいのです。
303nobodyさん:2011/10/11(火) 19:25:38.70 ID:???
サーバで指定されている文字コードって何だよ
何がEUC-JPになっているんだよ
ファイルの文字コード取得したいならmb_check_encodingでも使えば
304nobodyさん:2011/10/11(火) 20:37:39.05 ID:???
>>333
お前、意地悪いよ
素人にはそれなりの答え方してやれよ
305nobodyさん:2011/10/11(火) 21:04:09.47 ID:???
と素人が言ってもどうにもならんよ
素人じゃないならお前が答えればいいよ
306nobodyさん:2011/10/11(火) 21:25:01.95 ID:???
素人同士で喧嘩すんなよw
307nobodyさん:2011/10/11(火) 22:04:31.33 ID:???
>>333って誰なん
30896:2011/10/11(火) 23:09:46.44 ID:???
サーバーの文字コードってよくわからんな
httpd.confやphp.iniで設定している文字コードのことかな?

それに↓どういう方法で確認したんだろう

>サーバ側でEUC-JPになっていたりして
309nobodyさん:2011/10/12(水) 01:01:35.11 ID:yKO1SYOj
class test
{
function __construct(){}
function rep(){ return 'a';}
}

$te=new test();

function obh($buf)
{
global $te;
return $te->rep();
}

ob_start(obh);

これを実行した上でいろいろ出力した後には画面上に'a'とだけ出力されるはずだと思いましたがそうなりません
なにか間違っていますか?
310nobodyさん:2011/10/12(水) 01:13:01.92 ID:???
ob_startしっぱなしだから
311nobodyさん:2011/10/12(水) 01:47:04.89 ID:???
そうじゃなくて'a'を画面に出力するルーチンが存在しないからじゃないか?
312nobodyさん:2011/10/12(水) 01:54:58.99 ID:???
>>309
スクリプトが終了した後にハンドラが呼ばれているが、
GCによってtestオブジェクトが破棄されているのでハンドラ内でエラーになっている
逆に言えばGCされないように参照が残っていればいい

例えば無名関数に参照を持たせたり

ob_start(function ($buf) use ($te) { return $te->rep(); });

オブジェクトを直接ハンドラとして登録する

class test {
function rep() { return 'a'; }
function handle($buffer) { return $this->rep(); }
}
ob_start(array(new test(), 'handle'));
313nobodyさん:2011/10/12(水) 06:29:46.83 ID:???
鯖引越ししたら挙動が変わりまして困っています。

ログファイルの更新をCronでphp走らせていましたが、
何故か新しい環境だと更新ごとに最終行のログが消えて行く現象が起きます。

ファイルは次のとおりです
314313:2011/10/12(水) 06:32:28.22 ID:UYt0DClO
ID出すの忘れました。

$fname = 'data.txt';
$data = array();
$fp = fopen($fname, 'r');
if ($fp) {
while (!feof($fp)) {
$line = fgets($fp, 10000);
$line = rtrim($line);
$data[] = explode('<>', $line);
}
fclose($fp);
}
315313:2011/10/12(水) 06:34:37.78 ID:UYt0DClO

$renewDataString = array();
for ($i = 0; $i < count($data)-1; $i++) {
for ($j = 44; $j <= 47; $j++) {
$data[$i][$j] = $data[$i][$j+2];
}
$data[$i][48] = "";
$data[$i][49] = "";

$renewDataString[] = implode('<>', $data[$i]);
}
$writeDataString = join("\n",$renewDataString);
fclose($fp);
316nobodyさん:2011/10/12(水) 10:00:41.08 ID:???
count($data)-1 じゃなくてcount($data) じゃない?
つーか、foreachでいいと思う。
317nobodyさん:2011/10/12(水) 11:39:07.87 ID:???
>>312
後者で出来ました
ありがとうございます
318313:2011/10/12(水) 11:49:30.87 ID:UYt0DClO
>>316
無事更新出来ました。
ありがとうございます!
319nobodyさん:2011/10/12(水) 14:28:00.68 ID:???
curl_setoptで、無設定の状態に戻すにはどうしたらよいのでしょうか
例えば、CURLOPT_MAXREDIRSとか。
回数を指定するキーなのですが、defaultが無限なのです。
320nobodyさん:2011/10/12(水) 14:43:18.80 ID:???
手動でソース内に希望の数値を書き込む。
321nobodyさん:2011/10/12(水) 17:06:49.54 ID:???
if文の条件文を文字列として記述することは可能なのでしょうか?

例えば、
if (1 > 0) echo yes;
というif文であれば「1 > 0」の部分を文字列として渡したいのです。
よろしくお願いします。
322nobodyさん:2011/10/12(水) 17:17:47.20 ID:???
ヒント:eval
323nobodyさん:2011/10/12(水) 17:22:31.13 ID:QnHHI6Va
print('<table class="table">');

$sqlCommand = 'SELECT * FROM item where test="テスト" and category="test2" order by test3 desc';
$resultHandle = sqlite_query( $link, $sqlCommand );


for ($i = 0 ; $i < sqlite_num_rows($resultHandle) ; $i++){
$rows = sqlite_fetch_array($resultHandle, SQLITE_ASSOC);
print('<td class="table_image" rowspan="4">'.$rows['image'].'</td>');
print('<td class="table_url" colspan="2">'.$rows['url'].'</td></tr>');
print('<tr><td class="table_status"><span class="table_mozi">テスト:</span>'.$rows['test'].'</td>');
}

print('</table>');

SQLiteから取り出したデータをテーブルに入れて2列で表示させたいのですが、方法が思いつきません。
上記のやりかたで現在は
[1]
[2]
[3]
[4]
となってます。これを
[1][2]
[3][4]
こんな感じで表示する方法を教えてください。
324nobodyさん:2011/10/12(水) 18:18:23.97 ID:???
>>323
開始の<tr>が無いしrowspanやcolspanの組み合わせが合ってるようには見えないしで
テーブルの構造が全然わからん
もっと整理してから質問して
325nobodyさん:2011/10/12(水) 18:28:54.02 ID:???


whileとかのループ(データ数カウント/2の切り上げでループ終了)
 <tr>
  whileとかのループ(カウンタ i=2でループ終了)
     <td>$rows['url'].'</td>
</tr>
//ループ終了

でいいんじゃないの?
326nobodyさん:2011/10/12(水) 18:30:33.01 ID:pJZY/82v
カウンタを用意して1レコード毎に++しましょう。
カウンタが奇数時と偶数時で処理を分けます。
これ参考
http://translate.google.co.jp/translate?hl=ja&sl=en&tl=ja&u=http%3A%2F%2Fforums.digitalpoint.com%2Fshowthread.php
%3Ft%3D478550&anno=2
327nobodyさん:2011/10/12(水) 18:32:17.63 ID:QnHHI6Va
>>324
すみません文字数制限でソース削ったのでいい加減になってました
本来はこうです。
for ($i = 0 ; $i < sqlite_num_rows($resultHandle) ; $i++){
$rows = sqlite_fetch_array($resultHandle, SQLITE_ASSOC);
print('<td class="table_image" rowspan="4">'.$rows['image'].'</td>');
print('<td class="table_url" colspan="2">'.$rows['url'].'</td></tr>');
print('<tr><td class="table_status"><span class="table_mozi">テスト:</span>'.$rows['test'].'</td>');
print('<td class="table_status"><span class="table_mozi">テスト2:</span>'.$rows['test'].'</td></tr>');
print('<tr><td class="table_status" colspan="2"><span class="table_mozi">テスト3:</span>'.$rows['test'].'</td></tr>');
print('<tr><td class="table_status" colspan="2">'.$rows['test'].'</td></tr>');
}
328nobodyさん:2011/10/12(水) 18:34:09.08 ID:QnHHI6Va
>>325
>>326

ありがとうございます
やってみます
329nobodyさん:2011/10/12(水) 18:38:33.40 ID:???
>>327
相変わらず開始の<tr>が無いな。まぁいいけど。
スマートじゃないけど、これでどうよ。

for ($i = 0 ; $i < sqlite_num_rows($resultHandle) ; $i++){
$rows = sqlite_fetch_array($resultHandle, SQLITE_ASSOC);
$rows2 = sqlite_fetch_array($resultHandle, SQLITE_ASSOC);
print('<tr><td class="table_image" rowspan="4">'.$rows['image'].'</td>');
print('<td class="table_url" colspan="2">'.$rows['url'].'</td>');
print('<td class="table_image" rowspan="4">'.$rows2['image'].'</td>');
print('<td class="table_url" colspan="2">'.$rows2['url'].'</td></tr>');
print('<tr><td class="table_status"><span class="table_mozi">テスト:</span>'.$rows['test'].'</td>');
print('<td class="table_status"><span class="table_mozi">テスト2:</span>'.$rows['test'].'</td>');
print('<td class="table_status"><span class="table_mozi">テスト:</span>'.$rows2['test'].'</td>');
print('<td class="table_status"><span class="table_mozi">テスト2:</span>'.$rows2['test'].'</td></tr>');
print('<tr><td class="table_status" colspan="2"><span class="table_mozi">テスト3:</span>'.$rows['test'].'</td>');
print('<td class="table_status" colspan="2"><span class="table_mozi">テスト3:</span>'.$rows2['test'].'</td></tr>');
print('<tr><td class="table_status" colspan="2">'.$rows['test'].'</td>');
print('<td class="table_status" colspan="2">'.$rows2['test'].'</td></tr>');
}
330nobodyさん:2011/10/12(水) 18:40:04.90 ID:???
間違った。for文はこうな。

for ($i = 0 ; $i < ceil(sqlite_num_rows($resultHandle) / 2) ; $i++){
331nobodyさん:2011/10/12(水) 19:18:48.74 ID:???
rowspan とか colspanとか何したいのかよく分からんので、さっぱり無視して、
指定列数でテーブルに組むやつ。
$row['image']のとこに table入れればやりたいのができるんと違う?


$col = 2;
$num = sqlite_num_rows($resultHandle);
if ($num>0) {
print "<table>";
for ($i = 0 ; $i < $num ; $i++){
$row = sqlite_fetch_array($resultHandle, SQLITE_ASSOC);
if ( $i % $col == 0)
print "<tr>";
print('<td> '.$row['image'].'</td>');
if ( ($i+1) % $col == 0)
print "</tr>";
}
if ( $num % $col != 0) {
for ($i=0;$i<$col-$num%$col;$i++)
print "<td> </td>";
print "</tr>";
}
print "</table>";
}
332nobodyさん:2011/10/12(水) 20:39:09.75 ID:HvWSoqtR
wordpressでnoticeやwarningが消せません
eclipseのpdtで実行しています。

php.ini
error_reporting = 0
display_errors = Off
phpinfo()で確認済み

error_reporting(0);をコード中で設定
WP_DEBUGはfalse指定

あとどこをみたらいいですか?
333nobodyさん:2011/10/12(水) 23:58:59.95 ID:J0itFWoe
HTTPでさまざまなファイルをダウンロードできるモジュールを探しています。
簡単に使えて、ダウンロードサイズの上限を設定できるものが希望です。
HTTP_Requestでできそうでしたが、サイズ上限がListenerを使ってやらないといけない感じで、
複雑になりそうなので避けたいです。
よろしくお願いします。
334nobodyさん:2011/10/13(木) 03:44:12.06 ID:???
get_headersしてcontent lengthみて、大丈夫そうならfopenするのは?
335nobodyさん:2011/10/13(木) 09:32:58.52 ID:???
>>334
調べた感じ、get_headersでチェックしてからやるのがベストな気がします。
今後、content typeによって処理を変える必要性もでてきそうですし。

HTTP_Requestは、リダイレクト先にも自動で飛んでくれるのでよさげでしたが
マストではないのでget_headers方式でやってみようと思います。
ありがとうございました。
336nobodyさん:2011/10/13(木) 14:15:32.60 ID:???
"%AAAAAA%=1, %BBBBBB%=2"
という文字列があった場合、
最初の%は%_%に、後ろの%は@_@に置き換えすることはかのうでしょうか?

"%_%AAAAAA@_@=1, %_%BBBBBB@_@=2"
こんな感じです。

よろしくお願いします。
337nobodyさん:2011/10/13(木) 14:16:57.18 ID:???
>>336
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
338nobodyさん:2011/10/13(木) 15:17:28.87 ID:???
>>336
str_replace(array("%=", "%"), array("@_@=", "%_%"), "%AAAAAA%=1, %BBBBBB%=2");

>>337
正規表現が必要になればそうだけど、まだ必要じゃないよね
339nobodyさん:2011/10/13(木) 15:29:41.90 ID:???
>>338
逆だろw
340nobodyさん:2011/10/13(木) 15:31:10.55 ID:???
と思ったら俺の勘違いだった
341nobodyさん:2011/10/13(木) 16:31:24.99 ID:???
preg_replace("/%([^%]+)%/", "%_%$1@_@","%AAAAAA%=1, %BBBBBB%=2");

>>338 の方が俺には難しい
342nobodyさん:2011/10/13(木) 17:20:38.96 ID:0wvJ8J48
phpを書籍で勉強していたところ

<select name="age" id="age">
<?php
$i=10;
while($i<=70){
print('<option value="'.$i.'">'.$i.'歳</option>');
$i++;
}
?>
</select>

という記述がなされていたのですが、
<option value=".$i.">と記述してみても結果が変わりません(クォーテーションを外した)
<option value="'.$i.'">と記述する必要はあるのでしょうか?

また、その後の '.$i.'歳 という部分についてですが、
クォーテーションを外すと画面には「.$i.」と記載されます
結合演算子の後はクォーテーションが必要だと理解していいでしょうか?

質問が複数になってしまいますが、よろしくお願いします
343nobodyさん:2011/10/13(木) 17:40:43.88 ID:???
>>342
クオーテーションの組み合わせの勘違い
'<option value="'.$i.'">'.$i.'歳</option>'

これは、

'<option value="'
$i
'">'
$i
'歳</option>'

この5つの文字列を連結したものだからね。
ちなみに <option value="〜"> の " はHTMLのOPTIONタグの属性値をダブルクオーテーションで
囲むってことだがら、無くても動作するけど付けるべき。
344nobodyさん:2011/10/13(木) 17:59:30.81 ID:???
XHTMLかもしれんぞ
345342:2011/10/13(木) 18:02:45.35 ID:0wvJ8J48
>>343
なるほど!だいぶ理解できました!

もう1つだけ教えていただきたいのですが、

'<option value="'
$i
'">'

の部分で、$i前後のシングルクオーテーションを外しても同じ動作をするのですが
これはなぜですか?これもあってもなくてもいいものなのでしょうか?
346nobodyさん:2011/10/13(木) 18:57:48.74 ID:???
落ち着け。

>>342
> <option value=".$i.">と記述してみても結果が変わりません(クォーテーションを外した)
ブラウザの表示結果は変わらないかもしれないけど、
生成されたHTMLソースを見れば変わってるよ。
347nobodyさん:2011/10/13(木) 18:59:06.76 ID:???
>>341
そうなるとスレ違いらしいよ。
要件の詳細を聞くことで正規表現が必要になるかもしれないが、>>338で書いたように「まだ」必要じゃない。

スレ違いついでに、最短一致が使える処理系ならそれを使うほうがよくない?
preg_replace("/%(.+?)%/", "%_%$1@_@","%AAAAAA%=1, %BBBBBB%=2");
348nobodyさん:2011/10/13(木) 19:09:51.68 ID:???
正規表現の中身の話だとスレ違いっぽいけど
「この処理は正規表現が適切」って話題ならいいんじゃない?
349342:2011/10/13(木) 19:31:37.83 ID:0wvJ8J48
>>346
わかりました、どうもありがとうございました
350nobodyさん:2011/10/13(木) 19:47:45.02 ID:???
正規表現使わなきゃ!>>337
正規表現いらないよ!>>338
ってなってるだけで、どっちも別に難しいことかいてるわけでもないような

俺も正規表現持ち出すほどじゃないと思うけど、>>336次第かなー
351nobodyさん:2011/10/13(木) 20:03:27.20 ID:???
そんなに気を使って使うほどのモンでもなし、気楽に使えばいいよ。
すれ違いなのは、正規表現の式だけをどうこういう場合だけ。
352nobodyさん:2011/10/14(金) 11:48:54.10 ID:jx9FhAdH
質問です、よろしくお願いします

リアルタイムな格闘ゲームなどを作りたいのですが、PHPでも作れますか?
もしくは最も大人数を接続して高速で処理することを考えると
もっとも向いているのはどの言語だと思われますか?
353nobodyさん:2011/10/14(金) 11:53:00.33 ID:???
レスポンス性とかを重視するならJSとかの方が良いかもしれない
一般的にはjavaとかでしてる事が多いと思うけど
で、PHPで格ゲー作れるかと言われたら多分無理だろうと思う
354nobodyさん:2011/10/14(金) 12:07:06.52 ID:jx9FhAdH
>>353
クライアントのほうはjavascriptで作って、サーバー側の処理として
PHPとc++やJAVAやperlを選んでいるところです
JSというのはjavascriptのnode.jsなどでしょうか?
355nobodyさん:2011/10/14(金) 12:13:46.00 ID:oOJ5iuHv
MVCモデルってありますよね?
VはHTMLとか書いてあるところですよね?
Mは、書き込み 検索 置換 とか処理するところですよね?
Cは、なにするところがCなんでしょうか?

356nobodyさん:2011/10/14(金) 12:23:59.65 ID:???
PHPやjavascriptで作れるかよ。
通信速度については言語差はあまりないだろうが。
問題は通信でない格闘ゲームでさえ困難な点。
たとえばストリートファイターが作れるかよ。
357nobodyさん:2011/10/14(金) 12:25:23.59 ID:???
何で作ってるの?
358nobodyさん:2011/10/14(金) 12:28:24.04 ID:???
359nobodyさん:2011/10/14(金) 12:36:53.64 ID:jx9FhAdH
>>356
そこは頑張って作ります・・・
もし完成度が低かったとしても、趣味なので勉強になればよしかなと・・・

問題は、仕様的にPHPだとF5を押してようやく更新されるというイメージがあるので心配なのですが
そのあたりは大丈夫なのでしょうか?
リアルタイムと言う点についてはperl,C++,PHP,javaなどどれを選んでも大丈夫なのでしょうか?
360nobodyさん:2011/10/14(金) 12:42:18.69 ID:???
そのレベルから人に聞いてるようじゃどうせ無理
http://www.starruby.info/ja/about
361nobodyさん:2011/10/14(金) 12:53:17.86 ID:???
>>359
通信速度だけだったらリアルタイムはできるだろうが。
リアルタイムの2Dや3Dが無理っぽいだろ。これは努力とは関係ない。
362nobodyさん:2011/10/14(金) 13:02:36.11 ID:jx9FhAdH
>>360
RUBYという手もあるんですね
>>361
そのあたりはwebsocketを使えば基本的にはどの言語でも可能ということなのでしょうか・・・
PHPでのwebsocketの情報があまり見つからなかったのでもしかして
もっとメジャーな方法があるのかと思ったのですが・・・いけそう・・でしょうか?
頑張ってみます
363nobodyさん:2011/10/14(金) 13:10:39.88 ID:???
ネット機能は後にして、まずはただの格闘ゲームを作るのがいい。
通信は後から付け足せる。
364nobodyさん:2011/10/14(金) 13:20:27.79 ID:???
手軽にゲーム始めるならHSPとかでいいんじゃね?3Dとか通信のライブラリもあるみたいだし
365nobodyさん:2011/10/14(金) 13:27:40.98 ID:???
HSPをすすめる
366nobodyさん:2011/10/14(金) 13:30:53.19 ID:???
こういう手合いの阿呆にできるわけがないし、
「がんばる」等というくせには本当にやり通す意欲がないどころか、
結局のところすぐにぐだぐだになって自然消滅・雲散霧消・空中分解するのがオチだ
やたらと風呂敷を広げたがるのも厨2病ということかな


↓参考にされたし
2ちゃんねるでプログラマを募集するも誰も応募せず
「プログラマーさんが足りない」とぼやいて夢想するだけの
『SonicNewGameProject』
ttp://jbbs.livedoor.jp/otaku/14790/


何かを成し遂げたければ、口を動かさずに手を動かせ
367nobodyさん:2011/10/14(金) 13:38:46.66 ID:jx9FhAdH
今までもC++やってましたしゲームのほうはオレのほうでなんとかするので・・・
通信部分のネット言語での可能不可能を・・・教えてくだしあ・・・
368nobodyさん:2011/10/14(金) 13:43:32.59 ID:???
そしたらALLでいけよ。PHPはC++で作られている。PHPでできる事はC++でもできる。C++はさらに多くが出来る。
369nobodyさん:2011/10/14(金) 13:44:10.23 ID:???
訂正

そしたらALL C++でいけよ。
370nobodyさん:2011/10/14(金) 13:44:18.05 ID:???
F5を押して〜なんて言ってるレベルでんなこと言われてもな
371nobodyさん:2011/10/14(金) 13:45:15.17 ID:???
phpではやるな
tcpの通信ならnode.jsとかそこらを使えば良い
javaやらでも良いと思う
372nobodyさん:2011/10/14(金) 13:53:58.27 ID:???
何故誰もA.jaxのことを教えてあげないんだ?
PHPと比較したって明らかにAja.xに優位性があるだろう
373nobodyさん:2011/10/14(金) 14:01:02.95 ID:???
わざわざA.jaxとかAja.xとか、しょうもない努力するなよw
374nobodyさん:2011/10/14(金) 14:02:03.97 ID:???
ああ、もしかしてNG対策なのかこれw
375nobodyさん:2011/10/14(金) 14:03:10.41 ID:???
>>358
フリーって無料ってことか
376nobodyさん:2011/10/14(金) 14:37:21.79 ID:jx9FhAdH
ありがとうございます
PHPかALL C++やJAVA等いろいろ試して勉強します・・・
というか、リアルタイムということに関しては速度の問題意外では
仕様としてはどれでもいけると考えてよさそうですね
ありがとうございました
377nobodyさん:2011/10/14(金) 14:39:54.18 ID:???
実際のところどの程度できるのかは知らんっつーか高が知れてるっつーか、
まあ、C++できるっていうんならC++でサーバー作って、
PCアプリ側もC++&DirectXで作ればいいだろ
必要なタイミングで好きにサーバーとPC間で通信をすればいい


プログラミング言語は目的を達成するための手段・道具に過ぎない
プログラミング言語を覚えただけのプログラマはプログラマではない
指示通りにコーディングするだけの、ただのコーダーだ
378nobodyさん:2011/10/14(金) 14:45:17.95 ID:???
>>355
入力→Model→View→出力
「→」を担うのがControl
379nobodyさん:2011/10/14(金) 15:36:58.05 ID:oOJ5iuHv
回答ありがとうございます。
ということは
ififしてたりSwitchSwitchしてるところが
コントローラですね。
380nobodyさん:2011/10/14(金) 16:20:37.04 ID:1QDNnIHe
Yahoo知恵袋とここのスレはどっちがレベル高いですか?
381nobodyさん:2011/10/14(金) 16:25:39.63 ID:???
デザインレベルはYahoo知恵袋が高いな
382nobodyさん:2011/10/14(金) 16:48:22.22 ID:???
AHOO知恵遅れがどうしたって?
383nobodyさん:2011/10/14(金) 17:26:06.47 ID:???
回答者のレベルは質問者のレベルに依存する関係にある
夏ばて気味のザリガニに葛根湯を与えてみようなんて
殺す気だとしか思えない
マジ気狂い
気が狂っとる
384nobodyさん:2011/10/14(金) 17:29:43.79 ID:???
>>383
葛根湯の販売を行っている者です。
そのような書き込みは根拠なく葛根湯の評判を下げようとする行為で容認できません。
関係官庁には既に通報いたしました。
また損害賠償請求訴訟の準備を進めております。
385nobodyさん:2011/10/14(金) 17:45:36.16 ID:???
>>384
では、訴状を確認するまでレスは差し控えさせていただきます
遠方であった場合は移送申立もしなければなりません
関係官庁とはどちらでしょうか
当方、浅学寡聞ながら当該の機関に心当たりがありませんが?
386nobodyさん:2011/10/14(金) 18:19:00.84 ID:???
訴訟を起こすと言って実際に起こさなかったら脅迫罪が成立するんだぜ
あんまりふざけて書かないほうがいいよ
387nobodyさん:2011/10/14(金) 18:40:51.77 ID:???
実際に葛根湯の販売を行っているわけではない場合は身分詐称とかそういうのになるのかな
388nobodyさん:2011/10/14(金) 19:33:41.05 ID:???
>>386
> あんまりふざけて書かないほうがいいよ

そのような脅しには屈しません。
389nobodyさん:2011/10/14(金) 20:20:06.52 ID:???
>>386
脅迫罪が成立するのは「権利行使の意思がなく相手を畏怖させる目的で告知した場合」です。
つまり、結果として実際に訴訟を起こさなかったとしても、告知した時点で提訴する意思があれば
脅迫罪は成立しません。
中途半端な知識で適当なことを書くと恥をかくよ。

葛根湯の購入を行っている者です。
実際に購入を行っているので身分詐称には当たりません。
390nobodyさん:2011/10/14(金) 21:17:53.40 ID:???
必死
391nobodyさん:2011/10/14(金) 22:10:16.97 ID:???
##### 係争中の事案のため、被告人によるレスは差し控えられました #####
392nobodyさん:2011/10/14(金) 23:08:47.53 ID:???
 
393nobodyさん:2011/10/15(土) 00:12:57.83 ID:???
ともかく葛根湯を馬鹿にするなということだ
全ての元凶は>>383
394nobodyさん:2011/10/15(土) 00:15:43.63 ID:???
ザリガニが葛根湯で死ななければこんなことにはならなかった
395nobodyさん:2011/10/15(土) 03:10:30.32 ID:???
ザリガニが葛根湯で死んだという因果関係は立証されていない
396nobodyさん:2011/10/15(土) 08:11:59.16 ID:???
PHP5です。セッションについて教えてください。

同じドメイン下にform1.phpからform5.phpまで5つのページがあるのですが、他のページに移動した時に前のページのセッション($_SESSION[id]など)が残ったままになってしまいます。

セッション初期化処理を各ページ下に入れれば済む問題だと思ったのですが、それだとセッションが全て空になりますよね。
ページ1に一時的に書いていた情報はページ1にそのまま維持し(ページ2には表示しない)、ログイン情報のような一部セッションは保持したままにしたいです。

セッションIDやセッションファイルか同じなのが原因だと思うのですが、ページごとにセッションID、セッションファイルなどを分けることは出来ますか?
397nobodyさん:2011/10/15(土) 08:25:05.53 ID:???
>>396
$_SESSION['全域']['ログインユーザー名'] = 'foo';
$_SESSION['ページ毎'][__FILE__]['ほげ'] = 1;
$_SESSION['ページ毎'][__FILE__]['ふが'] = 2;
398nobodyさん:2011/10/15(土) 08:35:52.06 ID:???
>>397
セッション容量は結構膨大になりそうですが大丈夫ですか?
399nobodyさん:2011/10/15(土) 09:27:35.65 ID:???
>>398
セッションにばかすか入れりゃ当然負荷はかかる
問題になるなるようなら標準のセッションは一度忘れて
必要になったときに初めて読み込む仕組みを実装するだけ
400nobodyさん:2011/10/15(土) 09:28:53.85 ID:???
>>399
分かりました、ありがとうございます!
401nobodyさん:2011/10/15(土) 10:06:41.58 ID:WVUj974d
http://www.php-labo.net/
このスプリクト配布サイトのプログラムを参考にしようと
ソースを分析、解析してたのですが、
Smartyのテンプレートファイル内で、Smartyタグで
あったら価格表示… なかったら無料と表示… みたいな感じで
簡単なif条件等がたくさん書かれてました。

個人的には、あらかじめphpで 条件振り分けをしたものを
smartyに渡してやったほうがスマートなのでは?
と思ったんですが、実際
どっちの方法がいいでしょうか?
402nobodyさん:2011/10/15(土) 10:25:41.44 ID:???
おはよぉ〜

 PHPプログラマ〜の、お姉さんだよぉ〜
 今日は雨が降ってるから、セフレとのデートが中止になっちゃった
 暇だから、くだらない質問でオナニーするね。

 どんな質問が残ってるのかな?

403nobodyさん:2011/10/15(土) 11:27:58.08 ID:???
>>402
今日のパンツは何色ですか?
404nobodyさん:2011/10/15(土) 12:05:07.65 ID:???
おパンチュ♥
405nobodyさん:2011/10/15(土) 12:25:27.58 ID:???
$list = array("budou", "apple", "raamen");
$str = "study apple orange";

配列に含まれる値が文章中にあればその文字列を括弧で囲う方法を教えてください
406nobodyさん:2011/10/15(土) 12:29:53.81 ID:???
407405:2011/10/15(土) 12:34:30.37 ID:wr4+50u7
ID出し忘れました
よろしくお願いします
408nobodyさん:2011/10/15(土) 12:41:06.25 ID:???
$listにforeachかけて$strに1つずつ置換食わせればいいんでない?
409405:2011/10/15(土) 13:10:28.93 ID:wr4+50u7
それじゃあ配列の数がたくさんあったり文章の量が多かったらメモリの無駄遣いになります
410nobodyさん:2011/10/15(土) 13:32:25.67 ID:???
$pattern = '/('.implode('|',array_map(function ($str) {
return preg_quote($str,'/');
},$ary)).')/';

preg_replace($pattern, '"$1"','対象の文字列');

こんなんでいいんじゃないの?

define('REGEXP_DELIMITER','/');
$patterns = array_map(function ($str) {
return REGEXP_DELIMITER.preg_quote($str,REGEXP_DELIMITER).REGEXP_DELIMITER;
},$ary);
preg_replace($patterns, '"$0"','対象の文字列');

こんなのでもできるけどAppleとAppleStoreみたいにかぶった時は変になるしおすすめしない
411nobodyさん:2011/10/15(土) 16:16:18.59 ID:CzCq/m3j
Apacheの設定でhttpd.conf
addDefaultCharset UTF-8
をOffに変更するとmysqlに接続できなくなりました。
mysql_connectにエラーが出ます。エラー文は以下のとおりです。

mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

だれか原因を教えて下さい
412nobodyさん:2011/10/15(土) 16:22:46.98 ID:???
Apacheの設定でhttpd.conf
addDefaultCharset UTF-8
をOffに変更したことが原因だと思うな
413nobodyさん:2011/10/15(土) 16:49:16.36 ID:CzCq/m3j
>>412
Offにしてもmysqlに接続できる方法を教えて下さい!
414nobodyさん:2011/10/15(土) 17:07:33.65 ID:???
デフォルトの文字コードを設定しないなんてありえない
415nobodyさん:2011/10/15(土) 17:07:57.37 ID:???
>>413
・UTF-8とかOnに戻して正常に接続できるかどうか試したか?
・ApacheとMysqlを再起動してみたか
416nobodyさん:2011/10/15(土) 17:10:14.24 ID:???
>>414
AddDefaultCharset なんて使わなくても大丈夫だから
417nobodyさん:2011/10/15(土) 17:28:52.97 ID:???
マジかよ
俺もaddDefaultCharset使ってるんだが
418nobodyさん:2011/10/15(土) 17:32:22.70 ID:dF1cg2Wa
今データベースの接続について設定しているのですが、ZendFrameworkの使用時も含めてPDO系以外を使うメリット、有効な活用法とかを教えていただけませんでしょうか?
自分はSQL文を自分で書くのですが、prepare()->bindParam()execute()のような記述以外は使わないもので
何かmysqliとか個別のものを使用した場合と何が違うのかなと思いまして
SQL文を自分で書く場合、あまりアダプタによる機能は必要ないのですが、やはり処理速度とかが専用な分早いとかあるのでしょうか?
419nobodyさん:2011/10/15(土) 17:34:21.29 ID:CzCq/m3j
みなさん返信ありがとうございます
もう少し細かく状況を説明します。

OS SL6.0
apache yum で適当に入れたもの

もともと addDefaultCharset UTF-8 の設定で幾つかサイトを運営中 DBの接続も普通にできてる
ちょっとした仕事でsjisでhtml吐かないといけない案件がきた。
default charsetのためhtml内のcharsetを無視して文字化け

defaultCharset を Offにするとsjisのページは文字化けなく見られるが
もともとのDB使ったサイトで接続エラーが出る\(^o^)/

こんな感じです。
my.cnfとかの設定臭い感じはしている。。
420nobodyさん:2011/10/15(土) 18:05:55.36 ID:???
>>419
my.cnfのsocketはどうなってんの
421nobodyさん:2011/10/15(土) 18:11:49.32 ID:CzCq/m3j
>>420
こうなってます
socket=/var/lib/mysql/mysql.sock
下にmysqld部分全部貼ります

[mysqld]
datadir=/var/lib/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0
innodb_file_per_table
slow_query_log=ON
slow_query_log_file=mysql-slow.log
long_query_time=0.1
log_output=TABLE
422nobodyさん:2011/10/15(土) 18:13:19.02 ID:???
>>421
で、Mysqlの再起動はしてみたの?
socketファイルは存在してる?
423nobodyさん:2011/10/15(土) 19:06:59.31 ID:???
設定しない奴は文字コードに関してあまり深い知識がない人
424nobodyさん:2011/10/15(土) 20:13:22.06 ID:CzCq/m3j
>>422
mysqldを再起動したらいけました。。
ありがとうございます
425nobodyさん:2011/10/15(土) 21:48:37.60 ID:???
cacheliteのIDって、正規表現的な指定は無理だっけ。
'user_ほにゃらら' みたいな感じで、
特定の法則に基づいたキャッシュのみ再構築とかしたいのだけれど。
426nobodyさん:2011/10/15(土) 22:34:54.21 ID:???
>>409
やってみればわかると思うけど、ループのほうが早かったり、メモリ食わないんだなこれが。
1000000文字 でも 10000000文字でも 20倍ぐらいループのほうが早かった。
検索文字が増えても
427nobodyさん:2011/10/15(土) 22:41:04.45 ID:???
>>426
20倍!?ちょっとコード見せてよ
428nobodyさん:2011/10/15(土) 23:07:40.35 ID:???
上のサンプルだよ
429nobodyさん:2011/10/15(土) 23:43:28.93 ID:???
測り方絶対間違えてるよ。20倍なんて差は普通出ない。
430nobodyさん:2011/10/16(日) 00:13:59.94 ID:???
やりゃわかるよ。
対象文字列はa-zA-Z0-9のランダム文字列。

foreach( $list as $var )
$str = str_replace($var,"(".$var.")",$str);

20倍がありえないと思うのが俺には不思議。
431nobodyさん:2011/10/16(日) 00:54:26.65 ID:???
低速の機能を使う方法と
低速の機能を避ける方法で20倍程度の差はよくある
432nobodyさん:2011/10/16(日) 01:07:32.96 ID:???
パフォーマンス議論なんて不毛だよ
現状、鯖を増やせば手っ取り早いんだから
433nobodyさん:2011/10/16(日) 01:11:46.50 ID:???
パフォーマンスが不足するから分散処理するんだろ
議論しなきゃ始まらないじゃないか
434nobodyさん:2011/10/16(日) 01:13:12.16 ID:CNmy+DB1
効果測定をしたいと思うのですが、$_SERVER["HTTP_REFERER"]では
リファラのパラメータが無視されてしまいます。
良い方法がありましたらよろしくお願いします。


<?
$referer = $_SERVER["HTTP_REFERER"];
echo $referer;
?>


×××.com/index.php?link=01

×××.com/index.php (パラメータが無かった事になってる)
435nobodyさん:2011/10/16(日) 02:22:45.02 ID:???
>>434
そんな現象は聞いたことないな。
phpinfo()でHTTP_REFERER項目見てみた?
436nobodyさん:2011/10/16(日) 02:38:54.65 ID:CNmy+DB1
>>435
コメントありがとうございます
↓の部分でしょうか? これがどういう意味なのかは理解できませんが...


session.referer_check no value/Local Value no value/Master Value
※さくらレンタルサーバ
437434,436:2011/10/16(日) 03:10:05.29 ID:CNmy+DB1
すみません、関数を勘違いしてました。
↓で問題なく目的が達成できました。お騒がせしてごめんなさい。

<?
$filename = $_SERVER["PHP_SELF"]."?".$_SERVER['QUERY_STRING'];
echo $filename;
?>

×××.com/index.php?link=01

×××.com/index.php (パラメータが無かった事になってる)
438nobodyさん:2011/10/16(日) 03:17:00.48 ID:???
お安い御用です。
439nobodyさん:2011/10/16(日) 09:25:15.48 ID:???
>>430
正直これより早く&軽く出来るやり方思いつかない。何かある?
forもwhileもforeachに歯が立たないし、pregやeregよりstrの方が速いよな。
440nobodyさん:2011/10/16(日) 09:41:21.30 ID:???
どうもこのスレには正規表現のコストを無視しちゃう人がいるようだよ。
>>336からの流れもそうだったし。
441nobodyさん:2011/10/16(日) 10:21:51.61 ID:???
このスレには正規表現のコストを過大評価する人がいるようだよ。
442nobodyさん:2011/10/16(日) 13:29:34.22 ID:85Bgp1nu
PHPでプログラムを作成するとき、
”エラーログ”
みたいな エラーの足あとが残る
処理って何かしらいれてますか?
443nobodyさん:2011/10/16(日) 14:10:54.87 ID:???
エラー出るプログラムを組めないので入れてません
444nobodyさん:2011/10/16(日) 14:17:16.84 ID:???
そもそもプログラムを組めないので入れてません
445nobodyさん:2011/10/16(日) 14:44:07.94 ID:???
作成段階では放っといてもエラーがあれば画面表示してくれるから不要だなぁ
446nobodyさん:2011/10/16(日) 15:11:05.55 ID:???
>>442
エラー出たら勝手にエラーログに書き込まれるので使っていません
447nobodyさん:2011/10/16(日) 15:23:42.20 ID:TKoBrJts
PHPのソースでたまに->を見ますけどどういった意味ですか?
448nobodyさん:2011/10/16(日) 15:46:21.07 ID:???
C++のアロー演算子と同じでは
449nobodyさん:2011/10/16(日) 15:47:43.46 ID:???
450nobodyさん:2011/10/16(日) 15:53:31.54 ID:???
>>447
class A{public $a=1;public $b=2;private $c=3;public function d(){return $this->c;}}
$o=new A();echo $o->a;echo $o->b;echo $o->d();
//echo $o->c; # error
451nobodyさん:2011/10/16(日) 15:59:22.75 ID:???
>>447
- は減算代数演算子、> は比較演算子です。-> はそれらを組み合わせたものです。
452nobodyさん:2011/10/16(日) 16:36:52.15 ID:???
初心者が初心者に向けて嘘を教えないでください
->はアロー演算子です
453296:2011/10/16(日) 16:56:28.31 ID:C+pd3s/1
>>299
いまだ原因がわかりません・・・
おっしゃるようにGDのバグなんでしょうか?

検索してもそれらしいのは見つからないのですが・・・
454nobodyさん:2011/10/16(日) 17:23:02.18 ID:???
GDのバグじゃなくてRGBからHSVへの変換の過程で数字が崩れただけだろ
画像処理のコードはまずRGBからHSVへ変換するわけで
この変換した値は変換もとのデータと完全に互換があるわけじゃないぞ
その辺の色の知識がある前提でバグって言ってるなら黙っててやるが
455nobodyさん:2011/10/16(日) 18:01:14.27 ID:???
>>452
PHPに「アロー演算子」なんて無い
マニュアルを読んでから出直しな
456nobodyさん:2011/10/16(日) 18:16:22.27 ID:???
>>455
じゃあブログに実名載せて「->はアロー演算子ではない」って書いてみろよ
457nobodyさん:2011/10/16(日) 18:31:17.89 ID:???
458nobodyさん:2011/10/16(日) 18:42:29.05 ID:???
顔真っ赤になって検索結果まで持ち出してどこまでも恥ずかしいks野郎だな
->
ちなみにこれはアロー演算子とも矢印演算子とも言われているどちらも->の事をいう


http://jp.php.net/manual/ja/language.oop5.static.phpに書いてありますね
>矢印演算子 -> によりオブジェクトからアクセス することはできません。
バカは自分で調べも出来ないからもう一度言っておこうか
http://jp.php.net/manual/ja/language.oop5.static.phpに書いてありますね
>矢印演算子 -> によりオブジェクトからアクセス することはできません。
459nobodyさん:2011/10/16(日) 18:59:33.82 ID:???
>>455を100万回読み直せ
> PHPに「アロー演算子」なんて無い
460nobodyさん:2011/10/16(日) 19:00:38.81 ID:???
>>457
正式名称を特に定義してないってことを言いたいだけなんじゃないの。

>>458はアロー演算子といわないとダメだと言い張ってるようだけど
http://jp.php.net/manual/ja/tokens.php
をみると、オブジェクト演算子と言いたそうにも読めるよ。
461nobodyさん:2011/10/16(日) 19:20:39.22 ID:???
C++のアロー演算子は、ポインタとともに定義されるだろ。
PHPにポインタってあったか?
462nobodyさん:2011/10/16(日) 19:24:47.65 ID:???

C++ では変数からのメンバ関数呼び出しはドット演算子、
ポインタからのメンバ関数呼び出しはアロー演算子、と使い分けるのが特徴であり、
後に登場した Java や C# に比べると繁雑なところである。
Java や C# ではメンバ関数の呼び出しは全てドット演算子で統一されている。
http://brain.cc.kogakuin.ac.jp/~kanamaru/lecture/prog1/13-03.html


間接参照演算子'*'の優先順位が低いために、構造体ポインタl のメンバーdata を参照するのに、
*l.data だと、l.data がポインタであると解釈されて、それを間接参照しようとするので、意味論的エラーになる。
正しくポインタl を使って参照するためには、(*l).data とする必要があるが、
タイプしにくいために、l->data という記法が認められている。実質的には (*l).data と l->data の間には区別はない。
http://www.nurs.or.jp/~sug/soft/tora/tora7.htm
463nobodyさん:2011/10/16(日) 20:23:59.60 ID:???
それはちょっと論点ずれてるような
464nobodyさん:2011/10/16(日) 20:34:58.53 ID:85Bgp1nu
if(isset($hoge)){

}
if($hoge != ""){

}
if($hoge != null){

}
ってどれがスマートですか?
どれで書いてますか?
465nobodyさん:2011/10/16(日) 20:38:40.27 ID:???
>>464
$hoge = '';
ってしてからそのコードを書いてみてはどうか
466nobodyさん:2011/10/16(日) 20:47:38.44 ID:???
全部意味が違うの並べてスマートってなにさw
467nobodyさん:2011/10/16(日) 20:57:10.88 ID:???
>>464
if(strcmp($hoge,"")==0){

}
468nobodyさん:2011/10/16(日) 21:09:02.78 ID:???
>>464
緩い比較でやるなら
!= ""も!=nullは一緒
469nobodyさん:2011/10/16(日) 21:17:02.22 ID:???
ID:85Bgp1nu
かっこつける前に言語仕様と自分の目的をきちんと理解してください。
「このコードはなぜこう書いたのですか?」と質問されて「えっ?なんとなく」というのが一番かっこ悪いです。
470nobodyさん:2011/10/16(日) 21:20:29.40 ID:???
括弧付ける間にとか括弧悪いとか意味わかんない
471nobodyさん:2011/10/16(日) 21:21:50.69 ID:???
>>469
nullじゃない場合のif文はどれがいいのか聞いているんだよ。
それで、3つとも同じ処理をすると思っているのよ。
わかるだろ?
472nobodyさん:2011/10/16(日) 21:35:54.18 ID:???
わざわざID貼り付けてレスする奴きめえ
知恵袋にも低レベルな回答してるのに似たような事してる奴いるけど同一人物か
473nobodyさん:2011/10/16(日) 21:41:59.58 ID:???
そっすねw
474nobodyさん:2011/10/16(日) 21:53:08.96 ID:85Bgp1nu
if(isset($hoge))
if($hoge != "")
if($hoge != null)
ごめんなさい 違い 教えてください
475nobodyさん:2011/10/16(日) 22:16:37.34 ID:???
nullでないが実行されない

if($hoge != "")
false 0

if($hoge != null)
false 0 array()
476nobodyさん:2011/10/16(日) 23:40:52.05 ID:???
477nobodyさん:2011/10/17(月) 04:17:21.49 ID:???
それ、定期的に見直して、いつの間にか間違うようになってないか確認してるな。

ついでにissetとemptyもみるんだけど、毎度emptyの使い道が見つからずに終わるパターン
478nobodyさん:2011/10/17(月) 05:25:34.40 ID:???
' ' の中で 'を使いたい時ってどうすればいいですか?
\' 意味無いですよね・・
479nobodyさん:2011/10/17(月) 06:21:53.47 ID:???
何で意味がないと思ったんだろう。試したけどダメだった?

http://jp.php.net/manual/ja/language.types.string.php#language.types.string.syntax.single
とりあえずここ読んでみたらどう
480nobodyさん:2011/10/17(月) 06:21:53.51 ID:KSPkfapD
SQLite3でレコード数を得る方法ってありますか?
SQLiteDatabaseの numRows() のような関数を探してます。
481nobodyさん:2011/10/17(月) 06:24:34.56 ID:???
482nobodyさん:2011/10/17(月) 06:30:08.51 ID:???
ん、SQLite3は別のインターフェイスなのかな。
http://jp.php.net/manual/ja/pdostatement.rowcount.php
selectの場合はcount(*)を別に発行しろという残念なお知らせかも知れないです。
483nobodyさん:2011/10/17(月) 06:55:58.15 ID:KSPkfapD
>>482
なるほどcountで取得することにします!
ありがとうございました。
484nobodyさん:2011/10/17(月) 10:11:46.33 ID:O7ICnLpb
銅を使った部品の見積もりシステムを作りたいのですが
最新の銅ベースを取得できるAPIなどはないでしょうか?
既存のサイトの内容をPHPに取得させるしかないのでしょうか?
485nobodyさん:2011/10/17(月) 10:30:29.76 ID:???
金属の銅価格か
486484:2011/10/17(月) 10:47:57.57 ID:O7ICnLpb
>>485
はい 金属の銅の1t当たりの取引価格です

取り扱っている部品がほとんど銅の塊なので
変動を日毎に取得したいと考えています
487nobodyさん:2011/10/17(月) 10:49:14.99 ID:???
聞いた事ないから適当なサイトをクロールするしかないかもね
色々とアウトだろうけど
488nobodyさん:2011/10/17(月) 10:51:14.63 ID:???
金属市場のIT化とか全然わからんけど、スクレイピング考えたほうが早そう
489nobodyさん:2011/10/17(月) 11:08:10.45 ID:???
金、銀はそれなりにあるんだけどな・・・
490nobodyさん:2011/10/17(月) 11:17:48.00 ID:IhQxdaPx
$hoge = 0;
if($hoge == null){
echo ok;
}else{
echo ng;
}
実効したら "ok" ってでるんですけど
0ってnull なんですか?
0という値がはいってるからnull じゃないと思ったんですが…
491nobodyさん:2011/10/17(月) 11:20:13.17 ID:???
>>490
http://php.net/manual/ja/types.comparisons.php
==による緩やかな比較

===で比較するのが良いよ
492nobodyさん:2011/10/17(月) 11:48:09.12 ID:???
これが型の概念のないゆとり言語の弊害か
493nobodyさん:2011/10/17(月) 11:49:54.98 ID:???
ゆとり言語wwww
494nobodyさん:2011/10/17(月) 11:57:20.48 ID:???
比較演算子の仕様であって、変数に型が無いわけではない。
495nobodyさん:2011/10/17(月) 11:58:45.69 ID:???
>>492
これは恥ずかしい
496484:2011/10/17(月) 12:18:26.07 ID:O7ICnLpb
>>487>>488>>489
やはり無いですか・・・
外部のWEBの内容の自動取得がOKなのか不明ですが
技術的に可能か確認してみます・・・
497nobodyさん:2011/10/17(月) 13:54:45.76 ID:x7xkAlv7
Linux使っています
phpのプロジェクト/abcを作成し、/abc/public/imgフォルダ内にa.gifを入れました
で、ZendFramework、Smartyを使い/abc/application/~/p.tpl内で
<img src="/home/user/workspace/abc/public/img/a.gif" />のような絶対パスを指定したら表示されません
define('PUB', realpath(dirname(__FILE__)));
{$pub}/img/a.gifとかも試しました
パーミッションはrwxをapacheユーザに割り当てています
で、どうしてかなと思い、めんどくさいながらも相対パスにて何度も../../~のようにすると表示されました
498nobodyさん:2011/10/17(月) 13:59:26.19 ID:x7xkAlv7
相対パスはMVC構造で複雑になるときついというのと、キャッシュに不利なので、絶対パスを使いたいのですがどのようにすればいいのでしょうか?

・・・と書いた後調べるとHTMLは相対URIと絶対URI(http://~)しか書かれていません。
でもやはりディレクトリ構造の絶対パスの方が記述しやすいのでそうしたいのですが、皆さんはどのように対応されているのでしょうか?
499nobodyさん:2011/10/17(月) 14:15:01.55 ID:???
URLとサーバーのディレクトリがごっちゃになってる。
500nobodyさん:2011/10/17(月) 15:07:04.19 ID:???
apacheのドキュメントルートを/にしたら見えるんじゃない?
501nobodyさん:2011/10/17(月) 18:55:51.92 ID:???
それなんて釣り
502498:2011/10/17(月) 19:43:38.85 ID:???
確かにURLとサーバのディレクリがごっちゃになっているのだと思います
しかし、やっぱhttp://〜又は../../で指定しなければいけないのでしょうか?
MVC構造で公開フォルダを分けて作ると良く分からなくなります
503nobodyさん:2011/10/17(月) 19:53:39.83 ID:???
出力されたHTMLを見て、アクセスログを見ればよくわかると思うよ。
で、ドキュメントルートを/にしてみたかね
504nobodyさん:2011/10/17(月) 21:53:50.63 ID:x7xkAlv7
>>503
遅くなりました
今httpd.confのDocmentRootを上記のpublicに変更しました
で、アクセスしてみたのですが>>503さんが意図した事が恐縮ですが良く分かりません
DocRootがpublicになったため、自分が上で思っていた.tplファイルからの絶対パスから、相対パスが./img/a.gifになったのかなと思い
そのように指定したのですが表示されませんでした
ZendFramework使っているのでURIはhttp://localhost/hoge/foo/barとなっております
505nobodyさん:2011/10/17(月) 21:56:41.33 ID:x7xkAlv7
この場合、>>498で書いた相対URIもどのように書けばいいのかわからなくなりました
HTMLのソースを表示させてみたのですが分かりません
ちなみに.tplは/application/modules/hoge/views/scripts/foo内にあります
506nobodyさん:2011/10/17(月) 23:28:29.98 ID:???
マジレスするとドキュメントルートをあらわす定数を用意するか、BASE要素で指定するかじゃないか
507nobodyさん:2011/10/18(火) 00:22:58.16 ID:???
ドキュメントルートが
/home/user/workspace
だったら
<img src="/abc/public/img/a.gif" />

/home/user/workspace/abc/public
だったら
<img src="/img/a.gif" />

ドキュメントルートはtplの場所とは無関係。WEBサーバの設定で決まっている。
相対パスにしてもtplとはほぼ無関係。アクセスするURLに従ってブラウザが
URLを作ってアクセスする。だから外部からはどこにテンプレートがあるかとはわからん。

http://localhost/hoge/foo/bar
でアクセスしたHTMLの中に
<img src="../../img/a.gif" /> があった場合は
http://localhost/hoge/img/a.gif にあるとしてブラウザはアクセスする。
WEBサーバはそのリクエストから
/ドキュメントルート/hoge/img/a.gif を探して返す
508nobodyさん:2011/10/18(火) 03:37:01.86 ID:YMkWTgen
PHPで業務イントラ作ることになったのですが、PHPからPDFを作るのに
よいライブラリはありますか?
また、Java の SVF や JasperReports + iReport みたいに、
デザイナがあるとうれしいです。

ググったところ、PDFlib、FPDF、TCPDFというのを見つけましたが、
・PDFLib→商用利用の場合、費用が掛かる
・FPDF→日本語に弱い?
・TCPDF→なんかよさげ、デザイナはないけどテンプレートにHTMLを使える?

普段はJavaを使っているのですが、PHPだとあまりPDFをサーバサイドで
生成する、というニーズはないのかな。

デザイナまであるソフトウェアはなさそうですね・・・

なお、環境はLinuxです。
509nobodyさん:2011/10/18(火) 04:20:08.95 ID:???
>>508
> PDFLib→商用利用の場合、費用が掛かる

お金(18萬)が未払だとPDFLIB.COMとか勝手に印刷されるんじゃね。

>FPDF→日本語に弱い?

弱い?とは何?
ただし表とか作れたっけ?
510nobodyさん:2011/10/18(火) 08:35:45.52 ID:dXFVaHOB
PEAR(?)がmysql_query()より優れているのはどういう点でしょうか。
mysql_query()使ってたら友達にバカにされましてorz
511nobodyさん:2011/10/18(火) 09:07:02.12 ID:???
>>510
mysql以外へのDB対応が容易。
PHPのバージョン次第で動かなくなることもあるからmysql_queryで書く方が安心といえるが。
512nobodyさん:2011/10/18(火) 09:25:12.61 ID:???
ORマッパーとかでぐぐればいいんじゃね
まぁ速度的な面ではネイティブ関数にはかなわんし
パフォーマンスを求めてかつmysqlだけでいいなら
mysql関数でも別にいいんじゃないの
明確な目的があって使ってるならバカにされる理由なんてないんだが
513nobodyさん:2011/10/18(火) 09:41:12.21 ID:???
ORMと比べるのは間違ってるだろ
PDOやらMDB2等の抽象化レイヤーと比べるならまだしも・・・
514nobodyさん:2011/10/18(火) 10:10:39.21 ID:???
抽象化レイヤーは広義ではORMだけどな
515nobodyさん:2011/10/18(火) 10:19:26.99 ID:???
データベースの速度は遅い
ラッパー使っても大差なし
516nobodyさん:2011/10/18(火) 10:27:23.46 ID:???
金をケチる企業はクズしかいない
517nobodyさん:2011/10/18(火) 10:40:18.52 ID:???
開発者をケチって、MDB2でもつかってればいい、サーバー金かければいいというだけのやつばかりになるもんな。
DBに問い合わせするだけのためにPear呼んで、自分も100KB超えの無駄にでかく使わん機能てんこ盛りのを
これでいいんだとおもっちゃまうようなのをな。
518nobodyさん:2011/10/18(火) 10:43:10.04 ID:???
渾身のかみっぷりですね
519nobodyさん:2011/10/18(火) 10:45:08.96 ID:???
ゆくゆくはオラクルにするかもしれないと言っても
実際は移行作業の手間やらSQLでベンダ独自のクエリ書いてないかのチェックやからが大変で
結局移行しないっていうのは多いしな
520nobodyさん:2011/10/18(火) 10:47:05.25 ID:???
ま、初心者にはいいんじゃねーのw
521nobodyさん:2011/10/18(火) 11:05:09.26 ID:???
DB移行してみて動いたラッキーみたいな開発者割と多いよな
標準SQL書ける技術者がどの程度いるか疑わしい
だいたいPHPやってるやつはMySQL脳だからな
522nobodyさん:2011/10/18(火) 11:06:35.83 ID:???
特化したsql文があるなら使うべきだしな。
523nobodyさん:2011/10/18(火) 11:21:39.13 ID:???
MySQLスレでやってくれ
524nobodyさん:2011/10/18(火) 11:23:16.82 ID:???
やめてくれ MySQL関係ない
525508:2011/10/18(火) 11:53:37.91 ID:???
526nobodyさん:2011/10/18(火) 12:37:04.84 ID:???
>>525
まずはTCPDFいいんじゃね。

機能で不満が出てきたらPDFlibの18まんえんを払うことだね。
527nobodyさん:2011/10/18(火) 13:01:55.52 ID:???
けちな奴の特徴
・ブログで見ただけでそれが答えだと思い込む
・誰かが「出来る」といった後に誰かに「出来ない」と言われると自分で試しもせずに出来ない意見を尊重する
528nobodyさん:2011/10/18(火) 13:07:35.52 ID:???
PDFだのケチだのいってるやつまだいたのか
そろそろお帰り願いたい
それともAjax厨がまた別人格作ったんですか?
529nobodyさん:2011/10/18(火) 13:17:06.80 ID:???
>>528
NGわーど
530525:2011/10/18(火) 13:23:59.67 ID:???
レスどうもありがとうございます。

まずは TCPDF を試すか、
PDFlib の価格は、ウイングアークのSVFに飼いならされたJava厨としては
そんなに高くないので、PDFlib を試してよさそうであれば、ライセンスを購入しようと思います。
531nobodyさん:2011/10/18(火) 13:48:17.19 ID:???
オプションと対象OSによって値段変わるよ。
素のPDFlibをありがちな鯖OSに入れる場合がその値段かな。
ブロックプラグインだったかな、を使おうとすると、アクロバットも必要になるよ
532525:2011/10/18(火) 13:52:57.74 ID:???
どうもありがとうございます。

http://pdflib.hykw.tv/

http://pdflib.techstyle.jp/products/prices.html
あたりを、今読んでいます。
533525:2011/10/18(火) 13:57:48.61 ID:???
>531
> ブロックプラグインだったかな、を使おうとすると、アクロバットも必要になるよ

PPF(PDFlib Personalization Server)
http://pdflib.hykw.tv/#3-3
をつかう場合、
雛形のPDF(可変となる部分をブロック(変数)にしておく PDF)を作るのに Adobe Acrobat が必要であり、
実際のPHPが動くサーバには Acrobat は必要ない(PHP が PDF を生成するとき)、という理解でいいですよね?
534nobodyさん:2011/10/18(火) 14:26:25.26 ID:???
>>533
Linuxで動くAcrobatWriterってあるのかね。
Readerはあるけれど。
535nobodyさん:2011/10/18(火) 14:54:24.24 ID:???
fopenと@fopenは何が違うの?
536nobodyさん:2011/10/18(火) 14:59:41.11 ID:???
537nobodyさん:2011/10/18(火) 15:02:51.69 ID:???
>>533
うん、それであってる。雛形便利なのでほしくなるかもと思い。
538nobodyさん:2011/10/18(火) 15:05:06.64 ID:???
>>536
ありがとう
539533:2011/10/18(火) 15:20:19.65 ID:???
>>537
どうもありがとうございます。
PDFlib は PHP 以外の言語バインディングもあるみたいなので、
Java でも今度使ってみよう
540nobodyさん:2011/10/18(火) 15:24:13.94 ID:???
>>539
後学のためにハマった点があったらここで報告してもらえると助かります
541nobodyさん:2011/10/18(火) 15:28:44.49 ID:???
お安い御用です。
542533:2011/10/18(火) 16:14:00.86 ID:???
>>541 は自分じゃないですw

>>540
実装するのは少し後になりますが、何かあったらここに書くようにします。
543nobodyさん:2011/10/18(火) 18:16:59.52 ID:???
>>542 は自分じゃないですw
544nobodyさん:2011/10/18(火) 18:19:13.63 ID:???
何のためのID出しなのかとw
「お安い御用です。」は複数のスレ、複数の板にまたがってるからわかるよw
545nobodyさん:2011/10/18(火) 19:42:23.64 ID:???
数年ぶりに本屋いったけど
Tシャツきた白いひょろいメガネがPHP本読んでて
ちょっと悲しくなった
546nobodyさん:2011/10/18(火) 19:53:59.79 ID:Pgoz7r+6
windowsで製作してますか?
MACで製作していますか?
547nobodyさん:2011/10/18(火) 21:09:20.72 ID:L6EXgykq
ログインフォームは英語でそのままですが、登録フォームは英語で何て言うんですか?
ユーザ登録時とかのフォームです
Entry Form、SignUp Form、Register Fromとか考えたんですが・・・
548nobodyさん:2011/10/18(火) 21:33:24.72 ID:???
549nobodyさん:2011/10/18(火) 22:12:10.64 ID:???
他人が作ったPHPで作られたサイトの改善を頼まれたのが、

そのサイトは外部から多数のファイルを読み込んでいて、そこに定義してある「ユーザー定義関数」を
利用して作られている。

俺はその定義されてる関数の中身が見たいんだけど、ファイルが多すぎて一々ファイルを開いて検索するのは
時間が掛かり過ぎる。

読み込まれている外部ファイルも含めて簡単に関数を探し当てる方法ってありますか?

550nobodyさん:2011/10/18(火) 22:14:55.89 ID:???
grep
551nobodyさん:2011/10/18(火) 22:48:26.06 ID:L6EXgykq
>>548
ありがとうござます

ところで、皆さんはsessionをfile、database、どちらで保管していますでしょうか?
デフォルトはfileで、自分もわざわざデータベースへの接続は・・・って思っていたんですが、調べるとデータベースの方が多いようなので
552478:2011/10/18(火) 23:08:23.03 ID:???
>>479
ありがとうございます。
すみません遅くなりました。
つまり ' ' 内でも \'のエスケープは有効で \nなどが無効という認識でいいのですね
エスケープ自体ができないと思い込んでました。。
553nobodyさん:2011/10/18(火) 23:17:19.27 ID:???
>>549
tags
554nobodyさん:2011/10/18(火) 23:18:28.37 ID:???
>>552
そそ。
555nobodyさん:2011/10/18(火) 23:52:49.06 ID:???
お安い御用です。
556nobodyさん:2011/10/19(水) 06:09:39.29 ID:???
>>549
> ありますか?
ない。

include をgrepしてツリーを作る。
557nobodyさん:2011/10/19(水) 09:22:45.63 ID:???
>>549
知らないけどそういう機能ついてるIDEもありそうだね。おれはgrep
558nobodyさん:2011/10/19(水) 10:25:26.86 ID:???
おはよぉ〜

 PHPプログラマ〜のお姉さんだよぉ〜
 今日は有休で休んじゃった。
 暇だから質問に答えるよぉ〜

559nobodyさん:2011/10/19(水) 10:50:17.31 ID:???
答えないだろBBA
560nobodyさん:2011/10/19(水) 12:10:52.13 ID:PXmn+I34
変数名とか、POST名とか、DBフィールド名とか考えるのどーしてます?
あれ考えるのに作業時間の何分の1かが奪われるんですが。

英語圏人がうらやましい。
561nobodyさん:2011/10/19(水) 12:14:51.33 ID:???
562nobodyさん:2011/10/19(水) 12:21:10.32 ID:???
>>560
> 英語圏人がうらやましい。

英語ケンジンは変数名を考えるのに2分の1を割いている。
563nobodyさん:2011/10/19(水) 13:22:36.03 ID:???
気取らんで日本語にしろよ
わけわからないEngrish使うよりはましだろ
564nobodyさん:2011/10/19(水) 13:24:54.22 ID:???
そうだな。わけわからないingrissyu使うよりましだな
565nobodyさん:2011/10/19(水) 14:18:42.85 ID:YBpJRiZ7
PHPでどのファイルで何を実行したのかを逐一ロギングするエクステンションがあれば教えて下さい
566nobodyさん:2011/10/19(水) 14:29:08.27 ID:???
あぁxdebugについてるんですね・・・
もっと早く入れておけばよかった・・・
567nobodyさん:2011/10/19(水) 14:32:54.48 ID:???
最近同じような質問が繰り返されてるな
ちょっとずつ言い方こそ変えてるが
理解出来ないなら理解できないって言えばいいだけで
別人装って聞きなおさなくていいよ
568nobodyさん:2011/10/19(水) 15:00:43.61 ID:???
>>567
たとえばどの質問?
569nobodyさん:2011/10/19(水) 15:36:40.73 ID:???
質問はID出せ
570nobodyさん:2011/10/19(水) 16:09:31.08 ID:???
PHPでどのファイルで何を実行したのかを逐一ロギングするエクステンションがあれば教えて下さい
571nobodyさん:2011/10/19(水) 16:09:46.11 ID:???
お安い御用です。
572nobodyさん:2011/10/19(水) 16:10:01.96 ID:???
Ajaxです。
573nobodyさん:2011/10/19(水) 16:26:07.98 ID:???
下ネタが好きだからってそんなに喜ぶなよw
574nobodyさん:2011/10/19(水) 16:27:10.21 ID:YBpJRiZ7
xdebugのログ用ディレクトリですが
/tmp/xdebug等とするとディレクトリが作れないし
/tmpにするととっちらかります
みなさんどこにしてますか?
専用のディレクトリを作って起動時削除とかかな〜
575nobodyさん:2011/10/19(水) 16:39:32.63 ID:???
削除する必要があるなら好きにしたら
576nobodyさん:2011/10/19(水) 16:40:46.17 ID:???
/var/log/xdebug
にしました
たしかに開発機にしか入れないので毎回削除とかしなくてもいいかもですね
577nobodyさん:2011/10/19(水) 17:11:03.43 ID:???
PHPと関係ないかもしれないけど、mixiのつぶやきにwebサイト上から使用ユーザの名前で書き込みってできる?
あと、一緒に画像も貼り付けできますか?
578kuma:2011/10/19(水) 18:13:07.96 ID:N0wNQTCi
以前検索について質問したものです
http://fu-hou.com/
このようなサイトをつくりたいです

リンクしているところから、キーワードを探して、表示するということは、どのようにすれば良いでしょうか?
579nobodyさん:2011/10/19(水) 18:13:12.82 ID:???
>>577
>>1
板違いスレ違い
580nobodyさん:2011/10/19(水) 18:15:35.91 ID:???
>>578
質問が漠然としすぎていて、何が知りたいのかがわかりません。
PHPに関係のない質問だったら別のところでどうぞ。
581nobodyさん:2011/10/19(水) 18:50:59.15 ID:???
>>578
RSSあたりが楽でいいんじゃない
582kuma:2011/10/19(水) 18:52:42.58 ID:N0wNQTCi
>>580
すいません
キーワードをきめて、
ニュースサイトから、
自動で、必要な情報(キーワードに関係のあること)を取って表示するということは、どのようにしたらよいでしょうか?
583nobodyさん:2011/10/19(水) 19:11:13.10 ID:???
ニュースサイトってことはRSSかなんか配信されてるんだろ?
simplexmlあたり使ってxmlをパースして
そんで記事の本文中からキーワードを検索して
あとはわかるな?
584kuma:2011/10/19(水) 19:31:05.47 ID:N0wNQTCi
>>581
>>583

ありがとうございます
RSSを調べてきます

>>583
検索したものを
echoするですよね?
調べてきます
585nobodyさん:2011/10/19(水) 19:32:52.95 ID:???
お安い御用です。
586nobodyさん:2011/10/19(水) 20:34:22.04 ID:3Y/Xg53M
今PHPの講義受けてるんですが、曜日によって講師が代わって違うこと言われて困ってます
" の中で " を使う場合、A先生は\"でいいと言っていて、
B先生は、" の中で " は使えないから ' を使いなさい、と言っていました

例:
A先生 print"<img src=\"jpg\">"
B先生 print"<img src='jpg'>"

どっちが正しいんでしょうか?
実際、A、B両方表示できました

○○先生はこうやってましたとか聞きづらい空気なんで教えてください
587nobodyさん:2011/10/19(水) 20:39:59.50 ID:???
>>586
別にどっちでもいいだろ
俺は前者だけど
588nobodyさん:2011/10/19(水) 20:43:54.82 ID:xYuYvl/q
ストリームの意味が良く分かりません
マニュアル読んでもサッパリ分かりませんでした
具体的にはどういうものなのでしょうか?
他サイトとかと通信するような例文が書かれていましたが、TCP/IPとかそういうものの為のものなのでしょうか?
そうだとしても、cUrlとかあるので、違いが分かりません
589nobodyさん:2011/10/19(水) 20:54:38.57 ID:3Y/Xg53M
>>587
どっちでも問題ないんですね
ありがとうございます

自分も\が使いやすいので今日、\"の方でやっていたら
B先生に激しく否定されてしまったので、ダメなのかと思ってました
590nobodyさん:2011/10/19(水) 21:50:55.85 ID:???
エスパーすると
> B先生は、" の中で " は使えないから ' を使いなさい、と言っていました

B先生は、HTMLの" の中で " は使えないから ' を使いなさい、と言っていました
と予想。

× <input type="text" value="\"">
○ <input type="text" value='"'>
○ <input type="text" value=""">

だが
× <input type="text" value='''>
○ <input type="text" value="'">
○ <input type="text" value="'">

でもある。
"とかは「実体参照」というので、これらを道具にB先生と話してみてはどうか。
591nobodyさん:2011/10/19(水) 21:52:35.39 ID:???
ミス。

エスパーすると
> B先生は、" の中で " は使えないから ' を使いなさい、と言っていました

B先生は、HTMLの" の中で " は使えないから ' を使いなさい、と言っていました
と予想。

× <input type="text" value="\"">
○ <input type="text" value='"'>
○ <input type="text" value="&quot;">

だが
× <input type="text" value='''>
○ <input type="text" value="'">
○ <input type="text" value="&apos;">

でもある。
"とかは「実体参照」というので、これらを道具にB先生と話してみてはどうか。
592nobodyさん:2011/10/19(水) 22:04:14.12 ID:???
PHPを教えるやつはたいてい欠陥があるから
最終的には自分で判断しないとだめ

>>588
wikipediaを読んでもわからないなら今は諦めたほうがいい
そのうち分かるよ
593nobodyさん:2011/10/19(水) 22:12:01.67 ID:VUkV/Zvl
質問です

$hogeの文字列「aaa」を「bbb」に置換するとき
$hoge = preg_replace("/aaa/","bbb",$hoge);
としていますが、「aaa+改行」でも同じように置換するにはどうしたらいいでしょうか?
$hoge = preg_replace("/aaa\r\n/","bbb\r\n",$hoge);
を追加するだけでもできますが、これを1行でやりたいと思っています。
594nobodyさん:2011/10/19(水) 22:13:56.45 ID:???
595nobodyさん:2011/10/19(水) 22:19:33.54 ID:zH8RXMin
【OS名】windows7
【PHPのバージョン】5.3.6
【質問内容】


for文で別のページへのリンクを記述している場合に、
インデックスとして使っている変数をリンク先に引き継いで表示する方法を教えて下さい。

具体例としては、index.phpで「ナンバー4にジャンプ」をクリックした時にはnext.phpで「ナンバー4」と表示されるようにしたいと考えています。



【index.php】

<?php
for($i = 1; $i <= 10; $i++){
echo '<a href="next.php">ナンバー'.$i.'にジャンプ</a><br/>';
}
?>


【next.php】
<?php
echo '<h1>ナンバー'.$i.'</h1>';
?>
596nobodyさん:2011/10/19(水) 22:20:17.27 ID:YBpJRiZ7
何度もすみません
mb_convert_kanaを使って
「う゛」

「ヴ」
にするにはどうしたらいいでしょうか?
オプションを"CV"にしてもウ゛になってしまいます。
597593:2011/10/19(水) 22:51:40.54 ID:???
>>594
ありがとう
sを付ければいいんですよね?
ってどこに付ければいいかわからないです
598nobodyさん:2011/10/19(水) 22:54:10.76 ID:???
ヴヴヴヴヴヴィーンヴィーンヴィーン
599nobodyさん:2011/10/19(水) 23:15:34.24 ID:???
>>595

echo '<a href="next.php?no=$i">ナンバー'.$i.'にジャンプ</a><br/>';


<?php
$i = isset($_GET["no"]) ?: "err";
echo '<h1>ナンバー'.$i.'</h1>';
600nobodyさん:2011/10/19(水) 23:21:38.51 ID:???
>>594
誘導先間違えてない?
601nobodyさん:2011/10/20(木) 00:33:56.13 ID:???
>>597
最後に付ける
そのページの下の方のNotesの例文を見よ
602nobodyさん:2011/10/20(木) 00:34:59.37 ID:???
>>596
http://php.net/manual/ja/function.mb-convert-kana.php
V 濁点付きの文字を一文字に変換します。"K", "H" と共に使用します。
603nobodyさん:2011/10/20(木) 00:35:53.30 ID:???
>>596
http://php.net/manual/ja/function.mb-convert-kana.php
V 濁点付きの文字を一文字に変換します。"K", "H" と共に使用します。
604nobodyさん:2011/10/20(木) 00:40:59.53 ID:???
>>602-603
mb_convert_kanaで一度に変換するのは無理ということでしょうか
605nobodyさん:2011/10/20(木) 02:10:26.74 ID:???
>>588
様々なプロトコル(ローカルファイル、HTTP、FTP等)によるデータの入出力を
同じ方法で扱うための仕組みをPHPではストリームと呼んでいる

echo file_get_contents('/path/to/file'); # ローカルファイルの読み込み
echo file_get_contents('http://www.example.com/file'); # HTTP でダウンロード
echo file_get_contents('ftp://ftp.example.com/file'); # FTP でダウンロード

これが出来るのもストリームのおかげ
http://www.php.net/manual/ja/wrappers.php
606nobodyさん:2011/10/20(木) 02:23:45.32 ID:???
>>593
$hoge = preg_replace("/aaa/","bbb",$hoge);
これだけで望む結果が得られない理由がわからないので、例をお願いします。

少なくとも>>593だけじゃsオプションがどうとかいう話はまるで的外れなので…
607nobodyさん:2011/10/20(木) 03:38:53.23 ID:L7UL36cs
phpファイルの中から、それが直接実行されているか、
どこかのファイルからincludeされているかを
判定する方法を教えて下さい
608nobodyさん:2011/10/20(木) 03:39:37.61 ID:???
>>604
2段構えしかないだろうね。一度半角カタカナにしてから全角カタカナにする。
$a = "う゛";
echo mb_convert_kana(mb_convert_kana($a, "h", "UTF-8"), "KV", "UTF-8");
609nobodyさん:2011/10/20(木) 03:47:45.06 ID:???
>>607
echo $_SERVER["SCRIPT_FILENAME"];
echo __FILE__;
610nobodyさん:2011/10/20(木) 03:55:32.86 ID:???
>>607
realpath($_SERVER['SCRIPT_FILENAME']) === realpath(__FILE__)
611nobodyさん:2011/10/20(木) 05:56:15.74 ID:???
>>609-610
ありがとうございます。
612nobodyさん:2011/10/20(木) 06:40:57.39 ID:???
お安い御用です。
613nobodyさん:2011/10/20(木) 10:13:26.59 ID:???
>>596だが
難しく考えなくても単純に
$str = str_replace("う゛","ヴ",$str);
でいいと思うんだ
必要なのはそれ一個だけだろう?
614nobodyさん:2011/10/20(木) 11:08:16.46 ID:Pt54gQrO
スタティックメソッドの呼び出しをしたいのですが、
クラス名を変数に入れる必要があります。
<?
class TestClass{
public static function testMethod(){
echo "test";
}
}

$className = "TestClass";
$className::testMethod();
?>
上記だと
T_PAAMAYIM_NEKUDOTAYIMとかエラーが出てしまいます。
これ無理なんでしょうか?
615614:2011/10/20(木) 11:10:05.49 ID:Pt54gQrO
書くの忘れてました。
【OS名】CentOS
【PHPのバージョン】5.2
です。
616nobodyさん:2011/10/20(木) 11:22:44.70 ID:???
>>614
可変変数が使えるようになったのは5.3から
617nobodyさん:2011/10/20(木) 11:44:31.93 ID:???
$$className::testMethod();
じゃないかな
618615:2011/10/20(木) 12:01:23.80 ID:???
>>616
ご回答ありがとうございます。
諦めます。

>>617
それも駄目でした。。。
619nobodyさん:2011/10/20(木) 12:23:57.31 ID:???
620nobodyさん:2011/10/20(木) 17:10:24.99 ID:???
お安い御用です。
621nobodyさん:2011/10/20(木) 17:58:14.60 ID:???
function baka($ini)
{
$cnt=$ini;
return function()use ($cnt){return ++$cnt;};
}
$a=baka(10);
echo $a();
echo $a();

とやっても11 11と出力されていくだけで12 13みたいに繰り上がりません
教えてください
622nobodyさん:2011/10/20(木) 18:22:26.47 ID:???
>>621
useで使う変数の前に&を付けて明示的に参照にしてやる必要がある

function createCounter($init) {
return function () use (&$init) { return ++$init;};
}

$counter = createCounter(10);

echo $counter(),PHP_EOL;
echo $counter(),PHP_EOL;
echo $counter(),PHP_EOL;
623nobodyさん:2011/10/20(木) 18:24:49.35 ID:???
ありがとうワキガ
624nobodyさん:2011/10/20(木) 19:34:55.02 ID:???
JSPと"PHP+ACP"ってどっちが軽いか、誰かやってみてよ。

まあ、Cで書けば圧勝なんだけどさ。
625nobodyさん:2011/10/20(木) 19:44:19.08 ID:1ugFMr1j
【OS名】windows7
【PHPのバージョン】5.3.6
【質問内容】

YahooのフリーメールにPHPからメールが送れなくて困っているのですが、
POP before SMTPという方法でやろうとしても上手くいきません。
何処が悪いのか教えて頂けますでしょうか?
-------------------------------------------------------------
■php.ini

[mail function]
SMTP = smtp.mail.yahoo.co.jp
smtp_port = 587
sendmail_from = ユーザー名@yahoo.co.jp
-------------------------------------------------------------
※続きます。
626nobodyさん:2011/10/20(木) 19:44:52.29 ID:1ugFMr1j
※続きです。
-------------------------------------------------------------
■hoge.php
<?php
$fp = fsockopen ("pop.mail.yahoo.co.jp", 110, $errno, $errstr, 30);
if (!$fp) {
echo "Error msg in fsockopen is $errstr ($errno)<br>\n";
}
else {
fputs ($fp, "ユーザー名\r\n");
fputs ($fp, "パスワード\r\n");
fputs ($fp, "QUIT\r\n");
fclose($fp);
}

mb_internal_encoding("UTF-8");
mb_send_mail($to, $subject, $msg, 'From:' . $email);
?>
-------------------------------------------------------------
■結果
メールは送れず、エラー。
SMTP server response: 530 Sorry, please use SMTP-AUTH instead
-------------------------------------------------------------

宜しくお願いします。
627nobodyさん:2011/10/20(木) 20:26:19.39 ID:???
>>626
fputsだけじゃなくてfgetsして応答を受け取ってエラーチェック
628nobodyさん:2011/10/20(木) 20:56:25.64 ID:???
telnetで確認してみろ。
629nobodyさん:2011/10/20(木) 20:57:58.80 ID:1ugFMr1j

else {
fputs ($fp, "mohiojp\r\n");
fputs ($fp, "rinmaru\r\n");
echo fgets ($fp,128);
fputs ($fp, "QUIT\r\n");
fclose($fp);
}

としたところ、
+OK hello from popgate(2.35.19)
と出力されましたが、状況は変わりません。
630nobodyさん:2011/10/20(木) 21:02:04.08 ID:???
今って加入しているプロバイダ以外のSMTP使用してメール送信できるのか?
631nobodyさん:2011/10/20(木) 21:13:28.36 ID:???
>>629
コネクション時とコマンド送信毎に応答を受け取らないと先に進まないよ。
こんな↓感じ。
http://www.atmarkit.co.jp/fnetwork/rensai/tcp04/hyou1.html

詳細はRFC1939まで。
632nobodyさん:2011/10/20(木) 21:23:06.87 ID:1ugFMr1j
応答確認しながらやってみましたが、結果は変わらずでした。

■ソース
else {
    fputs ($fp, "USER ユーザー名\r\n");
    echo fgets ($fp,512) . "<br />";

    fputs ($fp, "PASS パスワード\r\n");
    echo fgets ($fp,512) . "<br />";

    fputs ($fp, "STAT\r\n");
    echo fgets($fp, 512) . "<br />";

    fputs ($fp, "QUIT\r\n");
    echo fgets($fp, 512) . "<br />";

    fclose($fp);
}

■出力
+OK hello from popgate(2.35.19)
+OK password required.
+OK maildrop ready, 1 message (2155 octets) (80554561)
+OK 1 2155

一応、この状態でメールを受け取ったらやはり1通来ましたので、
ログインはできていそうな感じなんですが…。
633nobodyさん:2011/10/20(木) 21:24:52.87 ID:1ugFMr1j
でも、password requiredって、
「パスワードが必要です」ってことで、間違ってるんですかね…。
634nobodyさん:2011/10/20(木) 21:30:04.34 ID:1ugFMr1j
>>631さんのサイト見直して、fsockopenの応答を受け取って
いなかったので、そちらも受け取るようにしたら↓になりました。
※メールは送れていませんが…。

+OK hello from popgate(2.35.19)
+OK password required.
+OK maildrop ready, 1 message (2159 octets) (80554565)
+OK 1 2159
+OK server signing off.
635nobodyさん:2011/10/20(木) 21:38:39.35 ID:???
メールの確認はtelnetで実際に対話する方が楽だぞ

あと>>629
>fputs ($fp, "mohiojp\r\n");
>fputs ($fp, "rinmaru\r\n");
これ大丈夫なのか?w
636nobodyさん:2011/10/20(木) 21:43:46.71 ID:1ugFMr1j
>>635
うぎゃぁぁ!
気を付けていたつもりだったんですが…。
パスワード変えました。
ご指摘ありがとうございます…!
637nobodyさん:2011/10/20(木) 22:08:29.89 ID:???
SubjectおよびFromに日本語を使うなら、ISO-2022-JPのエンコードが必要では
638614:2011/10/20(木) 22:12:11.65 ID:???
>>619
おお!こんな方法が!
無事できました。ありがとうございます。
639nobodyさん:2011/10/20(木) 22:20:17.03 ID:???
>>636
ini_set('SMTP', $smtp_host);
640nobodyさん:2011/10/20(木) 22:29:06.95 ID:1ugFMr1j
>>639

アドバイス有難うございます。
とりあえず↓のようにしてみましたが、動作は変わりませんでした。
意味もわからず挟んでみたの状態なので、ini_set()について
調べてみます。

fclose($fp);

ini_set('SMTP', "smtp.mail.yahoo.co.jp");

mb_internal_encoding("UTF-8");
mb_send_mail($to, $subject, $msg, 'From:' . $email);
641nobodyさん:2011/10/20(木) 22:33:59.60 ID:???
pearとか使って SMTP-AUTHで送ればいいじゃない。
642nobodyさん:2011/10/20(木) 22:59:06.51 ID:V3iH/iKb
質問
mysqlにこのような文字列が入ってます

「AAA





↑これ(AAA+改行5つ)をPHPで表示するとAAAだけ表示され、改行が消えてしまいます
最後の改行まですべて表示させることはできないのでしょうか?
643nobodyさん:2011/10/20(木) 23:01:33.34 ID:1ugFMr1j
初め、エラーメッセージの通りにSMTP-AUTHでやろうと思って調べたのですが、

SMTP-AUTHの場合、
ttp://www.codewalkers.com/c/a/Email-Code/Smtp-Auth-Email-Script/

の内容で試したのですが、最終的なメール送信の所で

451 See http://pobox.com/~djb/docs/smtplf.html

というエラーで詰まってしまっていました。


なかなか難しくて簡単にはできなかったので、POP befor SMTP の方が
簡単なのかな?と思ってこちらで進めている状態でした。
元々YahooのフリーメールにはPOP befor SMTPの方法では送信出来ない
ということだったのでしょうか?
644nobodyさん:2011/10/20(木) 23:09:42.58 ID:???
>>643
注意
メールの送信は、新着メールの「受信」後、インターネットへの接続を
切断せずに行ってください。送信前に接続を切断した場合は、再度接続して
メールの受信を行い、続いて送信を行ってください。

ってYahooに書いてあるんだけど、POP3でログアウトする前にメール送信する仕様じゃね
645nobodyさん:2011/10/20(木) 23:15:34.07 ID:???
>>642
改行コードが半角スペースになってしまいます
ttp://oshiete.goo.ne.jp/qa/1423513.html
646nobodyさん:2011/10/20(木) 23:18:28.43 ID:1ugFMr1j
親切に調べて頂いてありがとうございます。

POPのQUITの前に送信を持って行ってみましたが、エラーは変わらず
SMTP server response: 530 Sorry, please use SMTP-AUTH instead
でした。


ini_set('SMTP', "smtp.mail.yahoo.co.jp");
ini_set("smtp_port", 587 );

mb_internal_encoding("UTF-8");
mb_send_mail($to, $subject, $msg, 'From:' . $email);

fputs ($fp, "QUIT\r\n");
echo fgets($fp, 512) . "<br />";

fclose($fp);
647nobodyさん:2011/10/20(木) 23:22:22.10 ID:???
648nobodyさん:2011/10/20(木) 23:23:12.54 ID:???
>>644
それはない
649nobodyさん:2011/10/20(木) 23:36:56.79 ID:V3iH/iKb
>>645
ありがとうございます。しかし

「AAA

BBB





これだとAAAとBBBの間の改行はちゃんと表示されるのですが、BBB以降の改行が表示されないのです。
nl2brでも結果は同じです。最後まで改行を表示させるにはどうしたらいいでしょうか?よろしくお願いします。
650nobodyさん:2011/10/20(木) 23:38:56.47 ID:1ugFMr1j
引き続き調べてみて、

SMTP-AUTHではqdmailというライブラリを使って無事に送信できました。
$ver = & new という記述を $ver = new に置換する必要があったくらいでした。

皆さんも色々と調べて頂きましたが、
「YahooのフリーメールはPOP befor SMTP の方法ではメール送信できない」
という事で一旦納得ようと思います。
メールは送れましたし、popサーバにもつないだり、勉強にもなりましたので。

皆さん、親切に対応して下さって本当に有難うございました!
651nobodyさん:2011/10/20(木) 23:40:29.41 ID:???
>>649
どこかでトリミングしてるんじゃない?
652nobodyさん:2011/10/20(木) 23:44:30.56 ID:???
>>649
DBからデータ取ったあと、どっかでtrimしてんじゃないの?
ソースもっかい確認してみ
653nobodyさん:2011/10/20(木) 23:57:59.66 ID:V3iH/iKb
>>651-652
いえ、trimは真っ先に調べました。
htmlspecialcharsすらしてないです。
654nobodyさん:2011/10/21(金) 00:06:54.74 ID:???
>>653
ブラウザのtextareaが無駄な改行コードを消してるんじゃね
データベースに送らずに、まずフォームデータをPOSTして表示してみて

ところで、MySQLの管理ソフトを使って、データベース内のデータを確認をしてないっしょ
655nobodyさん:2011/10/21(金) 00:16:39.47 ID:???
>>643
文中の
LF (\n) を CRLFに 
(\r\n)にしろってさ。
656nobodyさん:2011/10/21(金) 00:23:41.77 ID:???
>>653
SQL中でもtrimしてない?(selct trim('〜') from 〜)
ソース晒さないとそれ以上は誰にもわからんよ
657nobodyさん:2011/10/21(金) 00:46:38.36 ID:???
ASCII文字とマルチバイト文字が混在してる文字列の文字数(バイト数では無い)
を数えたいのですが、どうすれば良いでしょうか?
658nobodyさん:2011/10/21(金) 00:52:01.90 ID:uhnPfxzb
PHPMailerでGmail通して送信すると
GmailのSMTP認証に使うユーザーが送信者になっちゃうんだけど
別途FromやSenderを定義しても無視されちゃう
どうすれば送信者を設定できますか?
659nobodyさん:2011/10/21(金) 01:14:18.36 ID:???
660nobodyさん:2011/10/21(金) 01:33:06.70 ID:???
ライブラリの使い方はスレチなんだけどな
661nobodyさん:2011/10/21(金) 01:37:35.81 ID:???
んなことねぇだろ
実質このスレしか機能してないんだし
662nobodyさん:2011/10/21(金) 02:38:07.77 ID:???
そんなことは理由にならない
663658:2011/10/21(金) 03:59:36.92 ID:???
自己解決したんでもうイイです
664nobodyさん:2011/10/21(金) 06:09:06.81 ID:???
あっそ
665nobodyさん:2011/10/21(金) 07:30:16.98 ID:???
おはよぉ〜

 PHPプログラマ〜のお姉さんだよぉ〜
 今日はどんな質問が残ってるのかな?
 暇だから質問に答えるよぉ〜

666nobodyさん:2011/10/21(金) 10:01:58.30 ID:???
「tokuhirom応援振興協議会」
http://hibari.2ch.net/test/read.cgi/prog/1312275688/

「akiyan.com撲滅振興協議会」
http://unkar.org/r/prog/1219967325

「小飼弾撲滅振興協議会」
http://hibari.2ch.net/test/read.cgi/prog/1258970886/

「amachang撲滅振興協議会」
http://hibari.2ch.net/test/read.cgi/prog/1291518728/
667nobodyさん:2011/10/21(金) 18:42:01.75 ID:???
PHP5.3で謎の現象が発生したので教えてくれください

$test = 'test';
if (isset($test['abc'])){
  echo 'key abc exists';
}

abcというキーは存在しないのでif内は実行されないことを期待したが違った!実行される!
var_dump($test['abc']); してみると't'と出る。どうやら1文字目が出るようだ。

一体どういうことなのか解説いただける方希望…
668nobodyさん:2011/10/21(金) 18:53:30.36 ID:???
>>1
669nobodyさん:2011/10/21(金) 19:27:03.80 ID:???
昔からの仕様
文字列に対してキーに文字列指定すると
文字列をintに変換するとかそんな感じ
670nobodyさん:2011/10/21(金) 19:50:54.75 ID:???
> 文字列をintに変換するとかそんな感じ

何言ってんの?w
671nobodyさん:2011/10/21(金) 19:54:24.52 ID:???
>>667
http://www.php.net/manual/ja/language.types.string.php
の中ほど「文字列への文字単位のアクセスと修正」を読め
あとID出せ
672nobodyさん:2011/10/21(金) 20:10:58.69 ID:???
>>669のであってるよ。
'abc'を数値として評価すると0になるという話。んで、これはそういう仕様。
$test[0]の結果が't'となることが理解できないのなら>>671

>>670は頭がおかしい
673nobodyさん:2011/10/21(金) 20:45:49.21 ID:???
>>672
ムキになんなよw
「とかそんな感じ 」みたいな曖昧な回答してんじゃねぇ、ってことだよ
674nobodyさん:2011/10/21(金) 21:29:13.44 ID:???
確かにわかんない人には不親切だねw
675672 != 669:2011/10/21(金) 23:25:23.91 ID:???
>>673
それを>>670で書いてれば最後の行を書いてなかったと思う
676669:2011/10/21(金) 23:28:32.72 ID:???
直前にID出せよみたいなレスがあったから
ID出してないしちょっと濁した回答にしたんだが
677nobodyさん:2011/10/21(金) 23:41:05.74 ID:???
関数がものすごく多くて気が滅入りそうなんだが
phpで飯食ってる奴はどれくらい覚えてるもんなの?

678nobodyさん:2011/10/21(金) 23:44:20.55 ID:???
見苦しくなるからもうやめておけ
別に責めているわけじゃない
どうでもいい
679nobodyさん:2011/10/21(金) 23:58:08.27 ID:???
680nobodyさん:2011/10/22(土) 00:11:37.27 ID:???
だな
681nobodyさん:2011/10/22(土) 00:49:28.90 ID:???
そうはいかん。この恨みは一生忘れない。
682nobodyさん:2011/10/22(土) 02:39:50.63 ID:???
回答もらえないからって訳わからんことつぶやくのはちょっと違うと思うよ
683nobodyさん:2011/10/22(土) 03:01:26.76 ID:???
ちょっとしか違わないんなら気にすんな
これが俺様の生き方だ
684nobodyさん:2011/10/22(土) 03:56:02.35 ID:f9N011rI
インスタンスを作成する時、そのクラスが無い場合は__autoload()が呼ばれて、外部クラスファイルを読み込む事が出来ますよね
同じように、関数を読み込む時、その関数が無い時、別ファイルをincludeして外部ファイルに記述してある関数を呼び出すにはどうしたらよいのでしょうか
685nobodyさん:2011/10/22(土) 09:30:15.00 ID:???
array_mapに渡す関数に引き数渡すのどうやるのでしょうか
686nobodyさん:2011/10/22(土) 09:54:03.65 ID:???
687nobodyさん:2011/10/22(土) 09:55:53.68 ID:???
>>685
>>1
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
688nobodyさん:2011/10/22(土) 18:32:40.58 ID:vHH0b5um
685です
大変しつれいしました
689nobodyさん:2011/10/22(土) 19:09:48.59 ID:FsQQxDVp
DBテーブルAを操作するclass Aと、
DBテーブルBを操作するclass Bがあります。
コンストラクトで共通のデータベースに接続する処理をいれているのですが、
スクリプト中でAとB両方使う場合、データベース接続処理が2回入り無駄になります。
うまい解決策を教えてください。
690nobodyさん:2011/10/22(土) 20:16:25.32 ID:???
お安い御用です。
691669:2011/10/22(土) 20:22:13.79 ID:???
>>689
DB接続というか問い合わせ関連のクラスを作る
692nobodyさん:2011/10/22(土) 20:22:43.75 ID:???
名前消し忘れたがな(´・ω・`)
693689:2011/10/22(土) 20:25:06.70 ID:FsQQxDVp
>>691
ありがとうございます。
でもそれだとラッパーをわざわざ作るようでどうも非効率かなぁと・・・
694nobodyさん:2011/10/22(土) 20:37:59.36 ID:???
>>693
動作の効率を重視するならクラスなんか使うなよ
695nobodyさん:2011/10/22(土) 20:44:04.99 ID:???
意味不明だから黙っとけ素人
696nobodyさん:2011/10/22(土) 20:54:29.09 ID:???
ならお前が答えてやれよ
クラスなどつかわず手続き型で組むのが最も動作効率が良いのはプログラミングの常識
697nobodyさん:2011/10/22(土) 21:10:54.87 ID:???
ラッパー作るのが非効率っていってるのに勝手に暴走してんなよks
698nobodyさん:2011/10/22(土) 21:26:49.17 ID:???
>>696
動作効率だけは確かにいいよな
クラスは無駄な処理大杉
699nobodyさん:2011/10/22(土) 21:31:28.49 ID:???
singletonパターンがなんかphpには合わないみたいに公式には書いてるけど
こういう時に使うものではないのかな
700nobodyさん:2011/10/22(土) 22:31:12.05 ID:???
singletonは関係ありそうで関係ないような
701nobodyさん:2011/10/22(土) 22:46:43.00 ID:???
シングルトソってDB接続以外に無理して使うとこある?
702nobodyさん:2011/10/22(土) 22:49:50.52 ID:???
>>697
クラスで充分非効率なのにラッパー1個ごときで非効率もクソもないだろ馬鹿
703nobodyさん:2011/10/22(土) 23:42:53.44 ID:???
データベース接続処理が2回入りって、別にいいんじゃねーのと。
使う直前につなぐ、終わったらすぐ切る。
704nobodyさん:2011/10/22(土) 23:48:34.52 ID:???
シングルトソって言いたいだけだけだから、DB接続で無理して使ってるんだけど、
他にも使ってたりしないと、煽られたときときかに、キリッってできないよな
705nobodyさん:2011/10/23(日) 00:02:55.44 ID:???
>>702
バカはお前だ
何をもって「非効率」といってるんだ馬鹿
お前はmysql_connect使うだけのものを
function connect()とかつくってかぶせる阿呆だろ
706nobodyさん:2011/10/23(日) 00:21:27.53 ID:???
window7 64bitでapache2.2(32bit) php5.3.8(32bit)は動かせますか?
PC購入で64bitのほうが欲しいのですが動かせない場合は32bitのほうを買います
707706:2011/10/23(日) 00:21:53.84 ID:46NA/uhd
id出し忘れました
708nobodyさん:2011/10/23(日) 00:55:28.77 ID:???
>>705
阿呆はお前だ
何をもって「非効率」じゃないといってるんだ阿呆
お前はmysql_connect使うだけのものを
class connectとかつくってかぶせる馬鹿だろ
709nobodyさん:2011/10/23(日) 01:27:06.66 ID:???
オウム返しするやつの反論はやっぱり低レベルだな
何を言いたいのか全く意味がわからんw
710nobodyさん:2011/10/23(日) 01:32:28.10 ID:???
全く意味が分からんのなら高レベルすぎるって可能性もあるなw
711nobodyさん:2011/10/23(日) 01:34:07.14 ID:???
class connectをつくってかぶせるとか意味不
712nobodyさん:2011/10/23(日) 01:43:59.33 ID:???
オウム返ししないやつの反論はやっぱり高レベルだな
何を言いたいのか凄く意味がわかるんw
713nobodyさん:2011/10/23(日) 01:47:05.90 ID:???
>>689
質問にまともに答えてもらえなかったからってID消してムキになんなよw
下らねぇ質問には下らねぇ回答しか付かないのさ
714nobodyさん:2011/10/23(日) 02:03:41.77 ID:???
馬鹿丸出しでムキになってんのは1人だろ
715nobodyさん:2011/10/23(日) 02:30:57.21 ID:???
そうだな。お前一人だけだな。
716nobodyさん:2011/10/23(日) 11:52:53.69 ID:???
おはよぉ〜

 PHPプログラマ〜のお姉さんだよぉ〜
 今日はどんな質問が残ってるのかな?
 暇だから質問に答えるよぉ〜
717nobodyさん:2011/10/23(日) 14:30:36.06 ID:???
相変わらずここも知恵袋のほうも同じ奴が回答していると思われるからレベル変わらないな
718nobodyさん:2011/10/23(日) 15:52:41.94 ID:???
質問の意味を理解しないで適当な回答するアホが多すぎる
719nobodyさん:2011/10/23(日) 15:56:16.10 ID:???
知恵袋によくある珍回答

・ggrks
・こっちで聞いてみた方がいいかも

分らないなら回答すんなよ^^
720nobodyさん:2011/10/23(日) 15:57:52.69 ID:???
>>689
基底クラスに持たせればいいよ。
721nobodyさん:2011/10/23(日) 16:38:25.27 ID:???
基底クラスに持たせても結局インスタンス2つ作成することになるし変わんないよ
722nobodyさん:2011/10/23(日) 16:48:18.48 ID:???
なんで知恵袋なんて見てるの?
あそこはググって引っ掛かってもスルーが基本だけど
723nobodyさん:2011/10/23(日) 19:55:07.95 ID:sva3+2fg
var_dump(new PDO($dsn));
としたとき
object(PDO)#5 (0) { }
って出ますが
#5ってなんですか?
724nobodyさん:2011/10/23(日) 20:09:08.10 ID:???
オブジェクトのハンドル(ID番号)
http://php.net/manual/ja/migration5.oop.php
725723:2011/10/23(日) 20:45:52.40 ID:sva3+2fg
>>724
ありがとうございます
そのページ読んできます
726nobodyさん:2011/10/23(日) 23:18:25.28 ID:???
>>723
なんでスルーするの?
親にそう教わったの?w
727nobodyさん:2011/10/23(日) 23:23:50.61 ID:???
今日も患者が湧いたか
728nobodyさん:2011/10/24(月) 00:22:39.21 ID:???
729nobodyさん:2011/10/24(月) 01:22:06.55 ID:???
>>726
むしろ1行目だけで納得するほうがクソなこともわからないのか
730nobodyさん:2011/10/24(月) 01:38:11.72 ID:???
説明とソース元が貼ってあればソース元も読むべきだろ・・・
スルーとは全然違うじゃないか
731nobodyさん:2011/10/24(月) 01:44:27.92 ID:???
プログラマじゃない人間が適当にあおろうとしてもダメな好例
732nobodyさん:2011/10/24(月) 09:14:37.58 ID:???
>>729-730
>>726の「>>723」は「>>722」の間違いだよ
めんどくさいから訂正しなかった
733nobodyさん:2011/10/24(月) 12:31:43.10 ID:Cx4UHjWV
test
734nobodyさん:2011/10/24(月) 12:32:20.32 ID:Cx4UHjWV
クラスはインスタンスさえ生成しなければリソースを喰う事はありませんよね?
クラス定義だけ大量にあって実際インスタンスを生成したり静的に参照することがあまり無いので少し不安に思うのですが
735nobodyさん:2011/10/24(月) 13:17:39.48 ID:IMcjICHD
再帰処理で2階層目までとか指定したいのですがどうすればよいでしょうか?
736nobodyさん:2011/10/24(月) 13:26:44.32 ID:???
現在の階層(階層増す事にインクリメント)と
指定階層を引数に入れればいいんじゃないの。

でも本当にそれ再帰必要なの?
737nobodyさん:2011/10/24(月) 13:31:34.39 ID:???
>>732
そんなんだからシンタックスエラー出しちゃうんだよ
738nobodyさん:2011/10/24(月) 13:36:33.06 ID:IMcjICHD
>>736
ああ引数で指定すればよかったんですね
ありがとうございました。
739nobodyさん:2011/10/24(月) 13:57:06.16 ID:???
>>734=>>735
ID変えて質問ご苦労
740nobodyさん:2011/10/24(月) 14:01:36.56 ID:Cx4UHjWV
不毛ですよね
741nobodyさん:2011/10/24(月) 14:28:20.92 ID:???
>>734
クラス定義するだけで当然メモリを消費する
http://codepad.org/jO9dWh8Y

が必要だからクラスを用意するんだし気にするほどでもない
どうしてもと言うのならオートローダーで使うクラスだけ読み込む
742nobodyさん:2011/10/24(月) 14:32:30.64 ID:2GJ+QKKa
UTC+3の時刻を表示する方法を伝授してください
743nobodyさん:2011/10/24(月) 14:38:20.76 ID:Cx4UHjWV
>>741
ありがとうございます
744nobodyさん:2011/10/24(月) 14:43:54.97 ID:???
>>742
echo date(DATE_RFC822,strtotime('UTC +3'));
745nobodyさん:2011/10/24(月) 14:46:24.84 ID:2GJ+QKKa
>>744
ありがとうございます
もしよろしければDateTimeを使ったケースもご教示お願いできませんか
746nobodyさん:2011/10/24(月) 14:48:36.00 ID:2GJ+QKKa
自己解決しました
747nobodyさん:2011/10/24(月) 18:10:46.93 ID:???
自己解決はいかんな
748nobodyさん:2011/10/24(月) 19:24:32.27 ID:DURSDYdt
cache_liteについて質問です
cleanでキャッシュを削除できるようなのですが、hashedDirectoryLevelを1以上に設定すると削除してくれません
うまく削除する方法はないでしょうか?
749nobodyさん:2011/10/24(月) 19:28:14.22 ID:???
cleanのオプションにもhashedDirectoryLevelを設定したらうまく削除することが出来ました

よく確認しないで書き込んでしまって申し訳ないです
750nobodyさん:2011/10/24(月) 19:35:32.94 ID:IROYR4Ps
下記のプログラムをもっと簡略化して書くことはできますか?
よろしくお願いします。

<?php
$Rprice[0] = null;
$Rprice[1] = null;
$A = 0;
$show = 0;

if($Rprice[0] == $A or $Rprice[1] == $A){
if($A !== NULL and $A !== 0){
if($A < 10000){$show = $A-200;echo '価格,'.$show.',';}
}
?>
751nobodyさん:2011/10/24(月) 20:59:16.20 ID:???
$Aが200未満のときはそれでいいの?
752nobodyさん:2011/10/24(月) 21:27:49.14 ID:???
if (($Rprice[0] === $A or $Rprice[1] === $A) and ($A > 0 and $A < 10000))
753nobodyさん:2011/10/24(月) 22:22:22.70 ID:???
$Rprice = array(null ,null);
754nobodyさん:2011/10/24(月) 22:56:25.00 ID:nLfKmno2
質問です

正規表現で([a-zA-Z0-9]+)にハイフン(-)とコロン(:)とセミコロン(;)を付け足したいのですが
([a-zA-Z0-9-:;]+)じゃダメでした。どうしたら良いでしょうか?
755nobodyさん:2011/10/24(月) 22:59:07.30 ID:???
>>754
正規表現に見えるが
756nobodyさん:2011/10/24(月) 23:10:50.60 ID:nLfKmno2
>>754補足です。

例えば

$a = "+++abc123-:;+++";

$a = preg_replace("/([a-zA-Z0-9]+)/","hoge",$a);

echo $a;

これだと結果が「+++hoge-:;+++」になってしまいますが
実際は「+++hoge+++」と結果が出るようにしたいです。
よろしくお願いします。
757nobodyさん:2011/10/24(月) 23:13:47.88 ID:???
758nobodyさん:2011/10/24(月) 23:17:44.67 ID:nLfKmno2
>>757
ども、ありがと。
759nobodyさん:2011/10/24(月) 23:24:36.34 ID:???
>>754
ハイフンを先頭か末尾に移動させる。
0-9-:
この部分で違和感を感じるべき。
760nobodyさん:2011/10/24(月) 23:59:31.15 ID:???
\-にすればいいだけだろ
761nobodyさん:2011/10/25(火) 00:12:47.00 ID:jz8uX3Je
>>754
[]の中で最後に-を書くときは¥いりません
[a-z0-9;:-]は正しいパターンですが[a-z0-9-;:]は間違ってます
正しく書くなら[a-z0-9\-::]でしょう
基本的にはハイフンを最後に書いてもちゃんと¥をつけるのがバグをなくすためい現場で行われています
762nobodyさん@PHP愛して10周年:2011/10/25(火) 00:19:43.62 ID:jz8uX3Je
kotehan
763nobodyさん:2011/10/25(火) 05:37:52.79 ID:NHilLcCk
【OS名】WiindowsXP-Pro(SP2) 【PHPのバージョン】PHP5.2.6
【連携ソフトウェア】Apache2.2 【ブラウザ】Firefox3.6.23

WebにあるBBSサンプルをApacheのlocalhostでそのまま動作させたところ
エラーが出て困ってます。
出典: http://1cc.jp/trykis
使ったコード: ttp://phpspot.net/php/html/tutorialbbs.phpss

サイトの通りbbs.phpと名付けて起動したところ
 Notice: Undefined index: mode in bbs.php on line 11
と出ました。 対象の行は if ($_POST["mode"] == "write") { です。

この状態で投稿ボタンを押すと
 Notice: Undefined variable: lines in bbs.php on line 20
と出ました。 対象の行は  for ($i=0;$i<count($lines);$i++) { です。

また「リロード」リンクをクリックすると
 Notice: Undefined variable: date in bbs.php on line 57
と出ました。 対象の行は $l_name - $l_message <$date><br> です。

出典ははphpspotという信頼できそうなサイトなんですが、元コードのどこに
問題があるのでしょうか?
764763:2011/10/25(火) 05:41:48.71 ID:???
すいません。出典の短縮URLが間違ってました。
正しくは http://1cc.jp/hgogho です。
765nobodyさん:2011/10/25(火) 05:55:27.90 ID:???
それらはみな、コードが雑だから。
phpspotは一見よさそうに見えるけど、すげえだめだから。
理由はくさるほどあるが、省く。
繰り返す。すげえだめだから、見てはいけない。

php関係なく、SEO対策とかを勉強したいなら見てもいい。
766nobodyさん:2011/10/25(火) 06:32:09.46 ID:???
なんか心配になったから書いとくよ。

安全性の問題
・キーの存在チェックをしていない
・name または message にカンマが含まれると意図しない出力になる
・サニタイジングを行っていない
・排他制御がない

一般的なコーディングと異なることによる速度低下
・ループの外に出せるcountをそのままにしている
・$i++じゃなくて++$i(この辺はまさにそのphpspotでも記載されていたと思うが)
・そもそもforeach
・ファイルの先頭に入れるのではなく、末尾にしたほうがI/O減る。
 この場合、forで末尾から出力するか、array_reverse→foreach

少なくとも上記の問題があるコード。
767nobodyさん:2011/10/25(火) 10:48:22.83 ID:???
>>764
イチイチURLを短縮しなくてもいいよ
みないからそういうの
768nobodyさん:2011/10/25(火) 10:54:10.52 ID:???
いちいち見ない宣言は要らない
769nobodyさん:2011/10/25(火) 10:55:13.76 ID:???
>>768=質問者
770nobodyさん:2011/10/25(火) 10:59:06.92 ID:???
同意。
質問するときに短縮URLなんて使うのは頭が狂ってる。
771nobodyさん:2011/10/25(火) 11:25:44.96 ID:???
質問者はエラーメッセージの文章をどの程度理解してるのか気になる
772nobodyさん:2011/10/25(火) 12:01:54.31 ID:iSM6PcDe
Phalanger - The PHP Language Compiler for the .NET Framework
http://ja.wikipedia.org/wiki/Phalanger
773763:2011/10/25(火) 12:38:41.80 ID:???
>>765-767
有難うございます。
Webで簡単なBBSサンプルを探していたところ、このコードを見つけたので
試しに使ってみました。

かなり駄目要素が含まれているようですが、このレベルの(つまり、名前用1行と
メッセージ複数行と履歴表示の3つ程度を表示の)簡単なサンプルを
探しています。

一応、手元に本は4つありますが、適当なサンプルの記述がありません。
どなたかお薦めのコード(サイト)を教えて下さい。


>>767-770
元のURLは
ttp://phpspot.net/php/pg%E6%8A%95%E7%A8%BF%E3%83%95%E3%82%A9%E3%83%BC%E3%83%A0%E3%81%AE%E4%BD%9C%E6%88%90.html
と長いと思ったので短縮しました。
今後はこの程度であればそのまま貼っておきます。
774nobodyさん:2011/10/25(火) 12:44:49.10 ID:???
>>773
エンコードされてない日本語で貼ればばいいんじゃね?
775nobodyさん:2011/10/25(火) 13:44:47.72 ID:???
>>774
お前は何を言っているんだ
776nobodyさん:2011/10/25(火) 13:53:04.62 ID:???
777nobodyさん:2011/10/25(火) 13:57:49.12 ID:???
デコードしちゃったURLから元のURLを一意に求めることは出来ない
778nobodyさん:2011/10/25(火) 14:06:35.12 ID:???
URLエンコードしたのが773でデコードしたのが776で一意じゃないの?
779nobodyさん:2011/10/25(火) 14:18:08.79 ID:???
文字コードによるから一意じゃない
http://ja.wikipedia.org/wiki/URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89

文字コードや予約文字の問題があるから、デコードしてしまったURLを張るのはやめたほうがいい
強いて言うなら、デコードは2chブラウザ等の仕事
780nobodyさん:2011/10/25(火) 14:41:02.14 ID:???
なるほど
781nobodyさん:2011/10/25(火) 17:03:22.62 ID:6LnwxfCE
sql文を作っています。php5.1です。
function insert_data($name, $age, $weight){
//insert data
$sql = "insert into user_info values(NULL, '$name', '$age', '$weight')";
$result_flag = mysql_query($sql);

if(!$result_flag){
die('failed to insert query'.mysql_error());
}

print('<p>insert table succeeded.</p>');
}

insert_data($_POST['name'], $_POST['age'], $_POST['weight']);

この中の$sql = "insert into user_info values(NULL, '$name', '$age', '$weight')";にある
シングルクォーテーションを除くとUnknown column 'なんちゃら' in 'field list' と怒られるのですが、これは何故でしょうか?
ダブルクォーテーションでくくってあると変数は値に変換されてsql文に入ると思ってたのですが違うのでしょうか?
782nobodyさん:2011/10/25(火) 17:05:40.47 ID:???
php関係ねえし
sqlの初歩から勉強しろ
783781:2011/10/25(火) 17:05:43.36 ID:???
すいません。テンプレ見てませんでした。
【OS名】fc14.i686
【PHPのバージョン】5.1
【連携ソフトウェア】apache,mysql
【質問内容】
>>781
784nobodyさん:2011/10/25(火) 17:06:23.88 ID:???
SQL文自体にがシングルクオートが必要なんだが
785nobodyさん:2011/10/25(火) 17:13:59.07 ID:???
>>782>>784
ありがとう!
786nobodyさん:2011/10/25(火) 17:43:28.96 ID:???
正解じゃない。
787nobodyさん:2011/10/25(火) 19:45:45.90 ID:???
SQLインジェクション余裕
788nobodyさん:2011/10/26(水) 01:25:16.57 ID:syv7O+5f
function a($str){
 return htmlspecialchars($str);
}

function b($str){
 return nl2br(htmlspecialchars($str));
}

という2つの関数があるとします。
a()はinputフィールド、b()はtextareaフィールドを意識したものですが、
inputフィールドはb()でも動作上問題ありません。
できれば出力する関数は統一したいので、b()に統一したいのですが、
inputフィールドにb()を使用した場合nl2brの処理が無駄になります。
こういう時みなさんはどうしますか?

テンプレートエンジンの出力ロジックのような感じなのですが、
実際の処理はb()に相当する部分はa()の3倍ほど遅くなります。
かといって単体では大して変わるわけではないのですが、
1画面に何十個(場合によっては100個を超える)もこの処理を記述することになります。
789nobodyさん:2011/10/26(水) 01:28:39.88 ID:???
textareaに<br />いらないっしょ
790nobodyさん:2011/10/26(水) 01:52:54.91 ID:???
br2nlじゃねーの?  brになってるデータってのも変だけどさ。
791788:2011/10/26(水) 02:02:23.49 ID:syv7O+5f
そのへんは気にしないで下さい。

言いたいことは使用者に速度を犠牲にしても書式を統一するか、
どういうデータが入ってるかまで把握してもらって使い分けてもらうか、
どちらにするのがいいのかな?という感じです。
792nobodyさん:2011/10/26(水) 02:26:13.39 ID:???
多態性で済ます
793788:2011/10/26(水) 02:58:21.04 ID:syv7O+5f
ポリモーフィズムですか。
よく耳にはしますが、難しそうな概念ですね。
データ型ということで言えば全てStringなのですが、
例えばある処理が必要な値なのかどうかということですね。(788の例だとnl2br。)

繰り返しになりますが、
ある処理が必要でない値でも、ある処理を入れても影響が出ないので、
全ての値において処理を統一することが可能です。(値によっては不必要な処理も入りますが。)
そこでちょっと悩んでいる感じです。
794nobodyさん:2011/10/26(水) 03:13:03.09 ID:???
そこまで難しいわけでもないよ。クラスでもいいしインターフェイスでもいいし。

> ある処理が必要でない値でも、ある処理を入れても影響が出ないので、
> 全ての値において処理を統一することが可能です。(値によっては不必要な処理も入りますが。)
というのが、すべての値において記述を統一することができ、必要な処理のみが行われるってなる。

けど、そういうことしたいなら既存のフレームワークとか当たったほうがいいかもしれないし、勉強がてら作ってみるのもいいかもしれない。
795788:2011/10/26(水) 03:21:04.46 ID:syv7O+5f
どうもありがとうございます。
おかげさまで少し賢くなった気がします。
とりあえず今回の件は統一することにしたいと思います。

アドバイス通りフレームワークも研究してみたいと思います。
夜遅くにお付き合い下さりありがとうございました。
796nobodyさん:2011/10/26(水) 03:44:48.42 ID:???
ただ、めんどくさいよ。
いろいろやってみるといいです。おやすみ
797nobodyさん:2011/10/26(水) 07:11:12.36 ID:???
PHPにはString.sliceが無いのだろうか?
これくらい言語が用意しろと思うんだが。。
798nobodyさん:2011/10/26(水) 08:11:16.47 ID:???
コード量が増えても速度優先するけどな。速度が速いということは負荷も軽くなるわけで。
799nobodyさん:2011/10/26(水) 08:49:23.34 ID:???
800nobodyさん:2011/10/26(水) 09:37:36.97 ID:FJmcVFvm
【OS名】
FreeBSD

【PHPのバージョン】
5.1

【連携ソフトウェア】
Apache2.2
Java+Android-SDKで作ったAndroid携帯用の自作チャットアプリ

【質問内容】
サーバー上のPHPに複数台の携帯に入れた自作アプリで同時にアクセスし、1台が発言したら他の携帯上の自作アプリに更新通知
を送りたいのですが、可能でしょうか?
可能なら詳細なやり方も教えてくださいm(__)m
801nobodyさん:2011/10/26(水) 09:53:54.38 ID:???
>>800
どうせ仕事で作らされてるかなんかか?
ソケットの勉強を位置から勉強しろ
802nobodyさん:2011/10/26(水) 10:31:58.32 ID:FJmcVFvm
801様 レスありがとうございます。
「ソケット」をキーワードに調べてみます。
803nobodyさん:2011/10/26(水) 12:04:03.70 ID:???
>>799
lengthの計算が入るからねえ。
sliceなんてよくある処理だし、実装してない言語なんてPHPくらいだよ。
804nobodyさん:2011/10/26(水) 12:23:18.37 ID:???
どの言語のこと言ってるの?
805nobodyさん:2011/10/26(水) 12:25:07.08 ID:???
>>803
lengthの計算が必要ってどういう事?
JSとかと同様の事は同じ手順だけでできると思うんだけど
806nobodyさん:2011/10/26(水) 12:29:58.41 ID:???
途中から末尾まで出すのに長さが必要な
javascriptの substring(!=substr)の仕様と勘違いしたとみた。
807nobodyさん:2011/10/26(水) 12:39:08.30 ID:???
>>805
startとendで切り取ることって多いだろ?
解析する時なんかもstrposで絶対的な位置を求めて、それを利用して切り取りたいとか。

>>806
単純になんでPHPには基本的なString.sliceが実装されてないのかな〜って話。
808nobodyさん:2011/10/26(水) 12:45:31.45 ID:???
>>807
他の言語で slice使ってやりたいことのサンプル出してみ。
809nobodyさん:2011/10/26(水) 12:52:24.35 ID:???
>>807
これはまぬあるに書いてある例だが

echo substr("abcdef", -1); // "f" を返す
echo substr("abcdef", -2); // "ef" を返す
echo substr("abcdef", -3, 1); // "d" を返す
echo substr('abcdef', 1); // bcdef
echo substr('abcdef', 1, 3); // bcd
echo substr('abcdef', 0, 4); // abcd
echo substr('abcdef', 0, 8); // abcdef
echo substr('abcdef', -1, 1); // f

これじゃ不満なのか
810nobodyさん:2011/10/26(水) 12:52:49.14 ID:tWrq9Ulq
【OS名】Chrome
【PHPのバージョン】5.3.8
【連携ソフトウェア】MySQL 5.5.16
【質問内容】
WAMPをPCにインストールしてローカルでWordpressのテーマ作成の練習をしています
書籍をもとに早速phpを書き始めたのですがいきなりエラーが出てしまいました
配布されているテーマは普通に動くのでサーバ自体は正常に動いています

一字一句間違えずに打ったので何が原因かわかりません
どなたか原因を教えていただけないでしょうか?

-------home.phpの内容-------
<?php get_header(); ?>

<?php get_footer(); ?>

-------header.phpの内容-------
<!DOCTYPE html>
<html>
<head>
<meta charset="<?php bloginfo ('charset'); ?>" />
<title><?php bloginfo('name'); ?><?php wp_title(); ?></title>
</head>
<body>

<!-- ヘッダー -->
<div id="header">
<h1><a href="<?php echo home_url(); ?>"><?php bloginfo('name'); ?></a></h1>
<p id="desc"><?php bloginfo('description'); ?></p>
</div>
-------エラー内容-------
Fatal error: Call to undefined function bloginfo() in C:\wamp\www\wordpress\wp-content\themes\sample\header.php on line 4 Call Stack #TimeMemoryFunctionLocation 10.0017676576{main}( )..\header.php:0
811nobodyさん:2011/10/26(水) 12:58:32.18 ID:???
>>808
807の用途で理解出来ないか?言語なんて関係ないだろうに。
構文解析するにしたって正規表現使わない限りはほぼ確実にsliceの需要はある。

>>809
関数定義すればいいが、endからlengthを割り出すのが面倒じゃね?ってこと。
それと個人的にはString.sliceは超基本的な関数だと思うからね。そんだけ。
812nobodyさん:2011/10/26(水) 13:10:03.16 ID:???
>>811
そっすね
813nobodyさん:2011/10/26(水) 13:10:03.67 ID:???
>>811
そもそもなんでlengthを必要とするの?
具体的に言いもせずに分かる訳無いだろ・・・
substrはlengthなくても使えるよ?
814nobodyさん:2011/10/26(水) 13:12:24.79 ID:???
>>813
2文字目から8文字目までを出したいときに、 substr(1,7)の 7の計算がめんどくさいらしいっすよ。
815nobodyさん:2011/10/26(水) 13:17:44.37 ID:???
>>813
文字列をstartとendで切り取るって言ってるだろうwなんだよ。。
俺はそうそう!みたいなのを期待してたのにこうも違うかね〜

>>814
だってさ、それをするのに文字列の長さ・引き算が必要なんだよ?実際には関数作れば済む話だが。
他の主要言語はみんな実装してるのに、PHPが実装しないのには訳があるのかなって思ってな。
816nobodyさん:2011/10/26(水) 13:19:48.62 ID:???
主要言語ねぇw
RubyとJavascriptと?
817nobodyさん:2011/10/26(水) 13:27:27.36 ID:???
JavaもPythonも実装してるだろう。
PHPは豊富な関数が取り柄みたいなとこもあるから、余計になんで?って思うんだよ。
818nobodyさん:2011/10/26(水) 13:39:06.52 ID:???
まああっても良さそうではあるよね
819nobodyさん:2011/10/26(水) 13:43:41.54 ID:???
>>815
具体的にしたい事を言わないから
やりたい事が理解してもらえないんだろ
startとendで切り取るって言っても
>>814の例だとjavascriptなんかでもやる事は同じだろ
無いとすればlengthプロパティだろ?

"test".slice(2) jsでこの結果はst
これをphpですると
substr("test",2)
こうなるだけだろ

何がしたいの?
"test".slice(1,3) jsでこの結果はes
これをphpですると
substr("test",1,3)

????
820nobodyさん:2011/10/26(水) 13:49:16.66 ID:???
質問者の意味が良くわかんないな
pythonやjsでいうsliceはsubstrで出来る
821nobodyさん:2011/10/26(水) 13:49:27.80 ID:???
>>819
いや、最後の 1,3だとestになるから 1,3-1にしなきゃいけないのがどうにも苦痛みたいなんだよ。
みんなになんでだと同意を求めたくなるほどに。
822nobodyさん:2011/10/26(水) 13:52:27.40 ID:???
別にphpに拘らず実装されてる言語でやれば?
823nobodyさん:2011/10/26(水) 13:55:01.43 ID:???
>>820
出来る、出来ないじゃなくて超基本的な処理なんだからPHPが用意しろよってこと。
>>815の文字列の長さはいらないね。カキコの時にミスってる。

>>819
lengthはsubstrの引数名な。
824nobodyさん:2011/10/26(水) 13:57:29.93 ID:???
意味が分らん奴だなまったく

puts "test".slice(1, 2)
print("test"[1:2])
echo substr('test', 1, 3);

おまえさんが求めてるpythonでやれば言いだけの話
rubyとphpに君は向いてないだけだ
825nobodyさん:2011/10/26(水) 13:58:00.09 ID:???
やりたいことっていうより、無いことを疑問に思っただけじゃね?
言語仕様についてここに答え持ってる奴はいないでしょ。
826nobodyさん:2011/10/26(水) 14:00:03.33 ID:???
やりたい事が伝わってないから答えようもないんだろ
827nobodyさん:2011/10/26(水) 14:01:03.91 ID:???
はてな匿名ブログにでも投稿して同意を求めてろってこったぁ
828nobodyさん:2011/10/26(水) 14:01:32.26 ID:???
js: str.slice(start, end);
php: substr(str, start, end-start+1);

上のほうが直感的で読みやすいし、PHPにしても利用する場合は関数にしてしまうと思う。
でも、みんなが独自に関数にするんだったらPHP側で用意しろってのは真っ当な意見だろ?

理解してくれそうにないんでここらへんで解散するわ。
829nobodyさん:2011/10/26(水) 14:01:46.62 ID:???
ないなら作るのがPHPerだろjk
830nobodyさん:2011/10/26(水) 14:04:54.22 ID:???
将来的にはPHPもオブジェクト指向で再編されると思うが、その頃には実装されてると思うよ。
確かにsliceの需要はあって、現状は各々が補っている状態だからね。
831nobodyさん:2011/10/26(水) 14:07:14.01 ID:???
substrがそれにあたるから改めて実装する予定もないし必要ないかな
832nobodyさん:2011/10/26(水) 14:11:15.13 ID:???
実現できればいい |壁| 綺麗なコードを書きたい
833nobodyさん:2011/10/26(水) 14:21:06.50 ID:???
言いたいことも、あってもいいだろまではわかるが、何で無いんだと言い出すのはさっぱり分からん。
しかも俺の思ったことに同意しろ、出来ないやつらばかりだからいやだみたいなのは変だろ。
834nobodyさん:2011/10/26(水) 14:22:29.14 ID:???
>>828
あれか、JSの場合sliceじゃなくJSのsubstrが欲しいという事だな
始点からn文字抜き出したいと
835nobodyさん:2011/10/26(水) 14:24:58.96 ID:???
hoge.func()形式にしろと言いたいだけちゃうんかと思ったわ
文字のカウント方式なんて言語間で異なるのが普通
配列のはじめが1からの言語もあれば0からの言語もあるしな
836nobodyさん:2011/10/26(水) 14:32:11.31 ID:???
いや、それ違う話
837nobodyさん:2011/10/26(水) 14:33:28.75 ID:???
アホばっかりでワロタ
838nobodyさん:2011/10/26(水) 14:33:52.24 ID:oGpVbHsj
htmlspecialcharsって第三者が書きこむ可能性を考慮してやるものですよね?
例えば管理画面から自分一人が使うものなら不必要ですか?
それとも管理画面に不正アクセスされることを考慮するべきでしょうか?
839nobodyさん:2011/10/26(水) 14:36:38.08 ID:???
>>838
セキュリティをhtmlspecialcharsだけで語るのは滑稽だが、心配なら通しとけ。
840nobodyさん:2011/10/26(水) 14:45:28.31 ID:???
>>838
ぽまえがトイレ言っている間に泥棒が侵入したり
ねこがキーボードの上を歩いたり
意図しない結果もあるから黙って考慮しておきたまえ
841nobodyさん:2011/10/26(水) 14:47:28.42 ID:???
俺がJavaScriptでslice覚えたのにPHPでも.slice(1,2)って書けるようにしろ
クレーマー乙
842nobodyさん:2011/10/26(水) 15:13:02.96 ID:/kGweZxN
PHPに限らないんですけど、GETにメールアドレスを入れるのってどうですか?
簡単なSNSで招待メールを送るときにどのデータベースに入れたらいいか思いつかなかったんで、なんとなくGETに入れてみたんですが。。
URLみたら違和感たっぷりでセキュリティ的にまずかったりするのかなと。
843nobodyさん:2011/10/26(水) 15:15:41.24 ID:???
別にgetにメールアドレスを入れる事自体はよくありますよ
844nobodyさん:2011/10/26(水) 15:25:49.87 ID:???
>>843
そうなんですか!ありがとうございます!
新しくテーブル作ってそこに入れようかとおもってたんですが、このままGETに入れることにします。
845nobodyさん:2011/10/26(水) 15:36:37.52 ID:???
>>833
オープンソースは必要な奴が実装するという事が分からない小学生か
コミッターに成れないコミュ障なんだろ
何の説明もなくsliceやlengthを出してドヤ顔する辺り、後者だと思うが
846nobodyさん:2011/10/26(水) 15:38:04.48 ID:???
全般的にかみ合ってなさすぎワロタ

startからendがほしいっても、こんな感じになって結局計算することにならね?
str.slice(str.strpos(startTag) + startTag.length, str.strpos(endTag))
擬似コードだが。

>>834
始点からn文字抜き出すのはJSのsubstr、PHPもsubstr
JSのsliceがPHPにないことが不満みたい
847nobodyさん:2011/10/26(水) 15:45:52.91 ID:???
>>846
それはsliceに焦点があってるから問題ないんじゃねーの。
848nobodyさん:2011/10/26(水) 15:47:18.59 ID:???
始端と終端両方をオフセットで指定したいのは分かるが
説明下手すぎ態度悪すぎで答える気になれないわ
849nobodyさん:2011/10/26(水) 15:48:12.54 ID:???
>>846
難しいかも知れないが、それは start と end の計算であって、slice自体に関わる計算じゃない。
850nobodyさん:2011/10/26(水) 15:53:05.99 ID:???
startからendが欲しいならsliceなんて必要ないのに
851nobodyさん:2011/10/26(水) 16:07:37.07 ID:???
>>850
その理論ならPHPから沢山の関数が消えることになるな。もうC言語に戻ればいいんじゃね。
852nobodyさん:2011/10/26(水) 16:12:58.26 ID:???
また極端な人が来たか
853781:2011/10/26(水) 17:32:33.76 ID:???
sqlインジェクションあるんですね!こわいです。
もうちょいちゃんと調べたら例外処理とsqlインジェクション対策は入れます。

複文使えないみたいだから、簡単には出来ないと思うけど必須ですね。
854nobodyさん:2011/10/26(水) 17:46:14.09 ID:???
prepared にするだけだろ?
855nobodyさん:2011/10/26(水) 18:19:33.34 ID:???
データのバリデーションをちゃんと行えばいいだけの話
856nobodyさん:2011/10/26(水) 19:57:27.03 ID:gnsMAu0s
file_get_contents()を使って対象サーバにメッセージと画像をpost送信したいんですが
うまくいきません

$url= "http://example.com/post/";
$postMsg = urlencode(mb_convert_encoding($postMsg, 'UTF-8'));
$params= array(
'status' =>"写真つきで投稿テスト",
'photo' =>"/path_to/img.jpg"
);
$headers = array('Content-Type: multipart/form-data',);

$requestOptions = array(
'http' => array(
'method' => 'POST',
'header' => implode('\r\n', $headers),
'content' => http_build_query($params)
)
);

//POST送信
$response = file_get_contents($url, false, stream_context_create($requestOptions));

以上のようにやっているんですが、どこが間違ってるんでしょうか
画像無しの文章だけのpostは成功しました
画像ありにするために変更した点は $headersのContent-Typeと、$paramsに'photo'要素を加えただけです
おかしい点があれば教えてもらえると嬉しいです。よろしくお願いします

※実はmixiのapiなんですが、access_tokenとか不要な情報が多いので上の用に書きました
http://developer.mixi.co.jp/connect/mixi_graph_api/mixi_io_spec_top/voice-api/#toc-10
857856:2011/10/26(水) 20:02:48.31 ID:gnsMAu0s
すみません、柿間違えがありました

↓この部分は
$postMsg = urlencode(mb_convert_encoding($postMsg, 'UTF-8'));
$params= array(
'status' =>"写真つきで投稿テスト",
'photo' =>"/path_to/img.jpg"
);

↓これが正しいです
$postMsg = "写真つきで投稿テスト";
$postMsg = urlencode(mb_convert_encoding($postMsg, 'UTF-8'));
$params= array(
'status' =>$postMsg,
'photo' =>"/path_to/img.jpg"
);
858nobodyさん:2011/10/26(水) 20:10:19.33 ID:???
ここはサポセンじゃないのよ
APIの使い方なんて自分で解決するか聞くべきところで聞いてください

APIの仕様は無視して自力で
>対象サーバにメッセージと画像をpost送信したい
を実装するならcURL使うとかアドバイスできるけども
859nobodyさん:2011/10/26(水) 20:13:36.20 ID:???
htmlspecialcharsはSQLインジェクション対策には使えないって聞いた気がしますが
$str = htmlspecialchars($str,ENT_QUOTES);
これだけで普通に対策になりますよね?
mysql_query("INSERT INTO table1 VALUES('$str');
例えばこれで。破れませんよね?
860nobodyさん:2011/10/26(水) 20:20:40.14 ID:???
>>1
861nobodyさん:2011/10/26(水) 20:26:49.64 ID:+IPZs/bK
array(
[foo]=>array(
[2]=>1
[3]=>1
[5]=>0
)
)
のような、中身は1か0といった配列で、
この中の中身が1である配列の[foo][bar]のbarを求めたいんですが、
どうしたらいいですか? よろしくお願いします
barは連番でもないし、順番もばらばらです
よろしくお願いいたします
862nobodyさん:2011/10/26(水) 20:27:25.85 ID:???
>>856
> file_get_contents

$urlでホストを指定する機能とかあるの?
863nobodyさん:2011/10/26(水) 20:42:54.47 ID:???
>>861
print_r(array_filter($array[foo]));
864nobodyさん:2011/10/26(水) 20:52:44.58 ID:???
>>858
知恵袋お決まりの○○で聞いてください乙
865856:2011/10/26(水) 20:58:41.25 ID:gnsMAu0s
>>858
すみません


じゃ、apiということは無視して、file_get_contents($url, false, stream_context_create($requestOptions));で
「リクエストボディを指定する」という場合、上記のように
$params= array(
'status' =>"写真つきで投稿テスト",
'photo' =>"/path_to/img.jpg"
);

$requestOptions = array(
'http' => array(
'method' => 'POST',
'header' => implode('\r\n', $headers),
'content' => http_build_query($params)
)
);
と、$params配列で指定することだという理解で良いんでしょうか?


>>862
出来るみたいです。画像無し投稿は実際成功しましたし
866nobodyさん:2011/10/26(水) 21:00:11.65 ID:???
867nobodyさん:2011/10/26(水) 21:10:25.82 ID:???
画像じゃなくて、 photoって名前で "/path_to/img.jpg" って文字列送信してるんだが
それでいいのかい?
868nobodyさん:2011/10/26(水) 21:14:57.17 ID:???
>>861
$array = array( "foo"=>array( 2=>1,3=>1,5=>0) ,"fooo" => array("x"=>1,3=>0) ,"fo"=>1 );
print_r( arrayKeyVal($array,1));

function arrayKeyVal($array,$targetVal) {
$ret =array();
foreach($array as $var=>$val)
if(is_array($val))
$ret += arrayKeyVal($val,$targetVal);
else
if($val==$targetVal)$ret[]=$var;
return $ret;
}
869856:2011/10/26(水) 21:17:12.66 ID:gnsMAu0s
>>867
!!!!
確かにそうかもしれません!!すごい!
ちょっと調べてみます!
870nobodyさん:2011/10/26(水) 21:18:44.51 ID:???
871nobodyさん:2011/10/26(水) 21:27:23.44 ID:???
>>870

これだとバイナリファイルは無理ということ?
872nobodyさん:2011/10/26(水) 21:37:57.87 ID:vp9BXm94
>>863
絞りたいのではなくてbarの値が知りたいのです
873nobodyさん:2011/10/26(水) 21:40:57.34 ID:???
>>871
jpg送ってるジャン。

>>872
該当するbarの配列が出ます。
874nobodyさん:2011/10/26(水) 21:48:52.02 ID:vp9BXm94
>>873
試したところ、
Array
(
[2] => 1
[3] => 1
)
となりました

この、2,3という値を取得したいんです
875nobodyさん:2011/10/26(水) 22:02:26.02 ID:vp9BXm94
foreach ($this->data['foo'] as $key => $value) {
if ($value == 1) {
echo ($key);
}
}
$keyで取得できました
キーの値って言葉がでてこなかったのでてこずりましたが解決しました
ありがとうございました
876nobodyさん:2011/10/26(水) 22:21:51.30 ID:???
>>875
なんというか、他の人よりも先にレスできていればよかったんだけれど。

print_r(array_keys($arr['foo'], 1));
877nobodyさん:2011/10/26(水) 22:43:35.43 ID:???
>>195
いやいやあそこの国のITは遅れすぎだろ
878nobodyさん:2011/10/26(水) 23:13:12.66 ID:???
一瞬2chでこんなエラー出たけど、何だったんだろうね?
っていうか、2chってphp使ってたっけ?

Warning: require_once(MIME/Type.php) [function.require-once]: failed to open stream: No such file or directory in /home/ulacloud6/public_html/_masuo/view.php on line 7

Fatal error: require_once() [function.require]: Failed opening required 'MIME/Type.php' (include_path='.:/usr/local/lib/php') in /home/ulacloud6/public_html/_masuo/view.php on line 7
879nobodyさん:2011/10/27(木) 01:35:53.03 ID:hA0CpkPW
A(B($hoge));
B(A($hoge));
という書き方で速度的に差異が出てくることはあり得るのでしょうか?
880856:2011/10/27(木) 01:45:51.27 ID:???
>>870
助かりました、できました
結局Pearに頼ってしまいましたが、、ありがとうございました
881nobodyさん:2011/10/27(木) 01:50:25.05 ID:???
>>879
あるかもしれないけど、誤差の範囲内
「速度」が気になる程度なら、最適化してますよってのが、中の人の言葉
882nobodyさん:2011/10/27(木) 02:25:35.49 ID:???
>>878
ああ、でてたねそれ。
read.cgiはcでかかれてたはずだけど…
883nobodyさん:2011/10/27(木) 06:24:13.65 ID:Ep9kwV/y
質問します
var_dump();すると以下のようになるオブジェクト($obj)があります
object(__PHP_Incomplete_Class)#127 (2) { ["__PHP_Incomplete_Class_Name"]=> string(23) "Zend_Oauth_Token_Access"
["_params":protected]=> array(4) { ["oauth_token"]=> string(5) "aaaaa" ["oauth_token_secret"]=> string(4) "bbbb"
["id"]=> string(3) "ccc" ["name"]=> string(4) "taro" } }

このオブジェクトからoauth_tokenなどの各要素を取り出すにはどうしたらいいですか?
$obj->oauth_tokenだと思ってやっても何も出力しません
var_dump($obj->oauth_token);の結果がNULLになります
884nobodyさん:2011/10/27(木) 07:08:20.87 ID:???
_params["oauth_token"]
885nobodyさん:2011/10/27(木) 07:34:34.51 ID:Ep9kwV/y
>>884
すみません、こういうことですか?
$obj->_params["oauth_token"];
var_dump()するとNULLが返るのですが…。var_dump($obj->_params);もNULLです
勘違いしてたらすみません
886nobodyさん:2011/10/27(木) 08:17:31.59 ID:???
session_start()の前にそのobjectのクラスの定義がされてないとかそういうこと?
それともそれを強引に取得したいの?
887nobodyさん:2011/10/27(木) 08:30:09.78 ID:???
>>886
>session_start()の前にそのobjectのクラスの定義がされてないとかそういうこと?

今ようやく解決しました! その問題でした
objectをserialize()してセッションに入れ、別ページでunserializeして->方式で引き出そうとして
失敗していたのでした。
unserializeするページでも、objectを生成したclassをincludeしなきゃいけなかったんですね
全然知りませんでした…
予想外で最初の質問じゃ状況の情報不足になっていたと思います。すみませんでした
ありがとうございました
888nobodyさん:2011/10/27(木) 14:24:23.89 ID:Ruj7eSu+
require_once("HTTP/Client.php");
error_reporting(E_ALL);
ini_set( 'display_errors', 1 );

$url = "http://www.example.com";

try{
$client = new HTTP_Client();
$res = $client->get($url);
$response = $client->currentResponse();
$response_body = $response['body'];
}catch(Exception $e){
var_dump($e);
}
echo $response_body


例外をcatchする方法が分かりません。
上のソースで例えばurlが間違っていたなどで、getが失敗している場合に
catch節で例外の内容を出力しようとしても何も表示されないです。

pearのHTTP_Client::get()のドキュメントを見てみたのですが
http://pear.php.net/manual/ja/package.http.http-client.http-client.get.php
PEAR_Errorという例外を投げるとの事だったので、
catch(PEAR_Error $e)ともしてみたのですが、ダメでした。

現在はPEAR::isError()という関数を見つけたので、try catchを使わずにエラーハンドリングは一応出来ていますが、
結局なぜ上記のコードで例外が捕まえられなかったのか分かりません。
phpの例外処理の問題というより、pearの例外処理方法が異なるためにうまくいかなかったということなのでしょうか?
889nobodyさん:2011/10/27(木) 16:21:32.01 ID:???
try-catchブロックを外してみてわざとエラーだしてみ
そこに何が書いてあるかだな
890nobodyさん:2011/10/27(木) 16:34:53.87 ID:HSowDPam
preg_replaceの引数にarrayを渡すことができますが、
preg_replace_callbackの場合はどのように渡せばいいのでしょうか?

preg_replace(array("/foo/", "/bar/"), array("hoge", "piyo"), $str);
preg_replace_callback(array("/foo/", "/bar/"), "callback_func", $str);

function callback_func($matches) {
 switch ($maches[1]) {
  case "foo":
   return "hoge";
  case "bar":
   return "piyo";
 }
}

今のところこんなのしか思い浮かばないのですが、おかしいと思うので、
どうすればいいのでしょうか?
891nobodyさん:2011/10/27(木) 17:18:28.26 ID:???
おかしいって何がおかしいの?
マニュアルに文字列か配列で渡せるって書いてあるんだからおかしくないだろ
892nobodyさん:2011/10/27(木) 17:31:26.65 ID:HSowDPam
第ニ引数のことです。
期待している動作としては、
array("/foo/", "/bar/")という第一引数patternにたいして、
fooはhoge、barはpiyoに置き換えたいのですが、
これをpreg_replace_callbackで行うにはどうしたらいいのかという質問です。
893nobodyさん:2011/10/27(木) 17:34:21.90 ID:???
その期待している動作はこのコードで十分なんじゃないの?
preg_replace(array("/foo/", "/bar/"), array("hoge", "piyo"), $str);

preg_replace_callbackを使いたくてしょうがない年頃かな。
894nobodyさん:2011/10/27(木) 17:36:14.24 ID:HSowDPam
>>893
もちろん実際の動作は違いますよ。
質問のために簡素化しただけです。
895nobodyさん:2011/10/27(木) 17:39:44.96 ID:???
第二引数を固定できないからコールバックにしたんじゃないの?
もっと伝える努力をしてほしいわ
896nobodyさん:2011/10/27(木) 17:42:33.19 ID:Ruj7eSu+
>>889
urlを存在しないものに変更して$resをechoしたところ

php_network_getaddresses: getaddrinfo failed: Name or service not known

とだけ表示されました。
ログを見てもこの部分のエラーは一切表示されていなかったので
pearが独自にあげた例外なのかと思いました。

http://pear.php.net/manual/ja/standards.errors.php
こういうページを発見したので、これに沿ってエラー処理を行おうかと思います
897nobodyさん:2011/10/27(木) 18:05:22.01 ID:???
>>890
<?php
$subject = '1foo2bar3';
$patterns = array('/foo/', '/bar/');
$callback_args = array('foo' => 'hoge', 'bar' => 'piyo');

# PHP >= 5.3
echo preg_replace_callback($patterns, function ($matches) use ($callback_args) { return $callback_args[$matches[0]]; }, $subject), PHP_EOL;

# PHP < 5.3
function my_callback_args($args = null) {
    static $store;
    return func_num_args() ? ($store = $args) : $store;
}
function my_callback($matches) {
    $args = my_callback_args();
    return $args[$matches[0]];
}
my_callback_args($callback_args);
echo preg_replace_callback($patterns, 'my_callback', $subject);
898nobodyさん:2011/10/27(木) 19:22:31.61 ID:???
無名関数にしただけで結果は同じだし
899nobodyさん:2011/10/27(木) 20:27:12.05 ID:???
そ、そうだね
900nobodyさん:2011/10/28(金) 00:25:57.08 ID:???
お、おう
901nobodyさん:2011/10/28(金) 02:50:47.24 ID:OTqbk3HF
配列なんかをループでまわすとき
一番最初のデータと一番最後のデータで特定の処理をするとき
$length=count($array);
for($i=0;$i<$length;$i++){
if($i==0){
最初の処理
}
if($i==$length-1){
最後の処理
}
}

って今やってるんですが
これってループするたびに中でifが2回実行されることになりますよね?

あいにく処理内容が

for(){
処理A
最初の処理
最後の処理
処理B
}

のようになってるので

最初の処理
for(){]
最後の処理
には出来ません

何かいい方法ないでしょうか?
902nobodyさん:2011/10/28(金) 03:07:05.10 ID:???
最初と最後も処理ABやる必要があるってこと?

処理A
最初の処理
処理B
for(){
処理A
処理B
}
処理A
最後の処理
処理B
903nobodyさん:2011/10/28(金) 03:08:10.88 ID:???
ただ、それをするほどにそれが遅いのなら。
904nobodyさん:2011/10/28(金) 03:09:28.56 ID:???
>>901
配列の最初と最後をとって、別の配列をforeachしたら?
で、処理Aと処理Bは関数化とか
おわったら、結合じゃだめかねぇ
905nobodyさん:2011/10/28(金) 03:55:38.26 ID:???
おはよぉ〜

 PHPプログラマ〜のお姉さんだよぉ〜

 今日はどんな質問が残ってるのかな?
 徹夜仕事も終わって、まったりしているから、
 どんな質問でも応えるよぉ〜


906nobodyさん:2011/10/28(金) 07:06:16.42 ID:???
>>905

徹夜明けだとパンツは汚れてますか?
907nobodyさん:2011/10/28(金) 07:44:50.95 ID:???
908nobodyさん:2011/10/28(金) 07:45:32.18 ID:???
>>905

セフレは何人いますか?
3Pは経験ありますか?
909nobodyさん:2011/10/28(金) 13:03:21.27 ID:???
array_系って実際使う機会ないですよね 無理して使う必要ないと思った
910nobodyさん:2011/10/28(金) 13:07:31.14 ID:???
array_mapは使います
911nobodyさん:2011/10/28(金) 13:17:39.10 ID:???
array_key_exists使う
912nobodyさん:2011/10/28(金) 13:22:27.11 ID:???
無理して使わない必要も無いな
913nobodyさん:2011/10/28(金) 13:23:55.16 ID:???
初心者にはハードルが高いから必要ないよね
914nobodyさん:2011/10/28(金) 13:31:57.63 ID:???
array_uniqueは使うね
915nobodyさん:2011/10/28(金) 13:37:26.18 ID:GC2HTreF
既存のSRPMを元に最新版をリビルドしたいと考えています
SRPMを見ると、かなりのpatchが同梱されていますが
これらのpatchはどこで公開されているのでしょうか?
916nobodyさん:2011/10/28(金) 17:40:31.05 ID:ZIFDplY1
php言語というか、開発についての質問です。
ローカルサーバーでphpを書いてテストして、完成したらそのphpをオンラインサーバーにアップロードするのが普通かと思いますが
そのphpが大量のデータを作成し、それを読み込むスクリプトの場合
実行しているオンラインサーバーには大量のデータが作成されますが
テストでしか使っていないローカルサーバーにはにはそれが無く、テスト時と実行時に環境の差が生じてしまいますよね
その場合、開発はどのように行えば良いのでしょうか。
開発時に毎回オンラインのサーバーのデータを全部ダウンロードして、ローカルサーバーとオンラインサーバーを完全に一致させる必要があるのでしょうか。
917nobodyさん:2011/10/28(金) 17:54:12.25 ID:???
そらそーでしょ。
918nobodyさん:2011/10/28(金) 18:09:08.66 ID:???
ファイル出力やDBを修正しないなら
サーバ上に同じようなテスト環境つくってもいい
テスト用のデータをあらかじめ作っておくってのもよくつかわれる
919nobodyさん:2011/10/28(金) 18:19:34.11 ID:???
こんなバカが多いスレで聞く質問じゃねえだろ
マ板で聞けよ
920nobodyさん:2011/10/28(金) 18:31:30.87 ID:X9Y4GnfI
>>916
だいたいあなたねーもう
windowsで動いていてもlinuxで動かない場合もあるんだから。
バージョンをかえただけでもうごかない可能性もあるし、
javaだってonce write any whereとかかっこいいこと言っているけど
実際バージョンを変えたらうごかなかったりして、先輩がtomcatで
エラーが出て真っ青になって、帰ってこなかったこともあるんだから
921nobodyさん:2011/10/28(金) 19:13:59.75 ID:Y9S4pT3o
Array
(
 [hoge] => Array
  (
   [0] => Array
    (
     [0] => 10
     [1] => 20
    )
   [1] => Array
    (
     [0] => 11
     [1] => 21
    )
   [2] => Array
    (
     [0] => 12
     [1] => 22
    )
  )
)


こんな感じの配列から、
hoge[n][0]を配列としてまとめたいのですが、
$new_array = array();
foreach ($array['hoge'] as $value) {
$new_array[] = $value[0];
}
より効率のいいやり方ないでしょうか?
922nobodyさん:2011/10/28(金) 19:28:54.20 ID:???
>>920
だれが開発マシンと本番マシンのOSが異なるって書いた?
923nobodyさん:2011/10/28(金) 19:48:59.01 ID:NR/rAN+G
質問させてください
データベースへの登録はPDOにてprepare()->bindParam()->execute()の流れで登録、
出力はSmartyにてdefault_modifiers = array('escape:"htmlall"')を設定した場合、
勝手にエスケープ処理してくれると思うのですが、
この場合、個別にaddslashes()やhtmlspecialchars()などを使用する必要があるのでしょうか?
924nobodyさん:2011/10/28(金) 19:54:16.22 ID:???
>>921
array_mapで回すと少しは速いかもしれんが、やってみないとわかんない
925nobodyさん:2011/10/28(金) 20:46:01.54 ID:???
>>921
そういう関数がまさしく用意されてるよ
配列関数のページよく読め
926nobodyさん:2011/10/28(金) 20:52:16.01 ID:9b9GvFAK
オブジェクトのメソッドの引数について質問させてください

$a = "dog";//string型
$b = "/var/path/hoge.jpg";//string型

$objX->act($a, $b);
class objX{
function act($a, $b){
//$a $bを使った処理
}}
とすると、処理が正常に行われず、以下のようにすると正常に処理されます
$objX->act($a);
class objX{
function act($a){
$b = "/var/path/hoge.jpg";//もしくは $b = $sessionFile;//セッションに入れておいた画像のパス
//$a $bを使った処理
}}
処理はtwitterに画像を投稿するものです
どちらもmethod内部まで引数の値をただしく持ち込めています
なぜ上は失敗して下は成功するのかわかりません
上が失敗するといっても、apacheのerrorログにfatal errorが出たりはしません
apiの操作部分(tmhOAuth利用)は全く同じです
オブジェクトの操作でルール違反のようなことをしてしまってるのでしょうか?
引数にパスを持たせられないなんてことないですよね…?

ソース全部のせるのは長過ぎるのでまとめました。わかりにくかったらすみません
よろしくお願いします
927nobodyさん:2011/10/28(金) 21:02:37.52 ID:GPFppW98
http://codezine.jp/article/detail/433?p=2
ここのページの
PDOStatementの主なメソッド(1/2)
のexampleのコードなんですが
$stmt = null;
という記述は必要なのでしょうか?
最初のinsertのあとには使ってなかったり
一番最後にも使ってなかったり
この$stmt = null;が何をしてるのかわかりません
どなたか解説していただけませんか?
928nobodyさん:2011/10/28(金) 21:08:12.52 ID:???
GCにやさしくしようとしたんじゃないの。
そのgdgdっぷりはただのミスだと思うよ
929nobodyさん:2011/10/28(金) 21:08:51.15 ID:???
>>926
気のせいだと思う
930nobodyさん:2011/10/28(金) 21:11:53.51 ID:???
>>923
Smartyスレで

>>926
そのコードに問題らしい部分はないので
再現する最小のコードを用意してくれ

>>927
GCを働かせて結果セットに使っているリソースを開放している
931927:2011/10/28(金) 21:22:17.97 ID:GPFppW98
ありがとうございます
$stmtを上書き(表現が悪かったらすみません)した段階で
GCは勝手にやってくれると思ってたのですが
こんな感じに入れないとだめなんですね
最初のはミスだとして
最後のはスクリプト終了でそこでGCが働いてくれるので入れてない感じでしょうか?
932nobodyさん:2011/10/28(金) 21:29:25.33 ID:???
>>931
上書きでも関数スコープを抜けたりしてもok
要はオブジェクトへの参照がなくなればいいんで
933nobodyさん:2011/10/28(金) 21:32:10.54 ID:???
だよなぁ。だから$stmt=nullなんてコードは本来必要ない
934931:2011/10/28(金) 21:40:15.22 ID:GPFppW98
>>932-933
ありがとうございます
ということは明示したい時に使う感じですかね
参考になりました
935nobodyさん:2011/10/29(土) 00:27:34.93 ID:hOXCKMki
curlでPOST送信させたいと思ってるんですが
送信するデータのkey=valueのvalue(文字列)が@で始まってる場合はどうしたらいいのかわかりません

$params = array("status"=>"@john hello!");
curl_setopt($c, CURLOPT_POSTFIELDS, $params);
というパターンです
このままやるとエラーを起こしてしまい送信できません
$params = array("status"=>"\@john hello!");
とすると、そのまま\@と送信されてしまいます

すみません、どなたか教えてください。よろしくお願いします
936926:2011/10/29(土) 00:48:15.19 ID:???
>>929-930
すごく下らないうっかりミスが原因でした
すみませんでした
937nobodyさん:2011/10/29(土) 01:15:05.74 ID:qiLS6tIX
php5.3.8
xdebug2.1.2

xdebug.auto_trace = 1
にしてphpMyAdminを表示しようとすると、
child pid xxxx exit signal Segmentation fault (11)
が出ます。
これ俺だけですか?
938nobodyさん:2011/10/29(土) 03:50:33.41 ID:B55r+SR2
関数を通してreturnでリファレンスの変数を渡すことはできない?

function GetHoge(){
$hoge = &$_SESSION['hoge'];
return $hoge;
}

$hoge = GetHoge();
$hoge['count']++;

print $_SESSION['hoge']['count']; // 増えない
939nobodyさん:2011/10/29(土) 08:03:29.31 ID:wKzusWO5
function a(){
$a = 1;
}

function b(){
global $a;
print $a;
}

この時$aに値が入っておらず表示されません。この場合function bの中で一度a()を実行するしかないのでしょうか?
940nobodyさん:2011/10/29(土) 09:13:34.85 ID:???
>>935
urlエンコードするでしょ。
941nobodyさん:2011/10/29(土) 09:16:43.43 ID:???
>>939
何がやりたいのかさっぱりわからないから基礎を勉強して下さい
きっとあなたに必要なのはreturn
942nobodyさん:2011/10/29(土) 09:26:12.31 ID:???
>>939
function a(){
global $a;
$a = 1;
}
943nobodyさん:2011/10/29(土) 09:26:54.59 ID:hOXCKMki
>>940
ありがとうございます
urlencode()はどのタイミングでしたら良いんですか?
$params = array("status"=>urlencode("@john hello!")); ってことですか?

cURLで他のサーバに転送するのが目的なんですが、urlencode()すればエラーが起きない代わりに
転送先のwebアプリにも %40john+hello  で登録されます
つまり文章が日本語だったらそれもurlencode()された状態で登録されてとんでもないことに…

curlのオプションも見てるんですがさっぱりわかりません…
944nobodyさん:2011/10/29(土) 09:46:30.79 ID:???
配列で渡すときの @付きのデータが特殊(ファイル指定)なので、@だけエンコードでいけないかな?
それか 5.2.0以後なら 配列じゃなくて "status=@john hello!" って渡すか。
945nobodyさん:2011/10/29(土) 10:29:58.47 ID:???
>>939
class T
{
private function a() {
static $a = 1;
return $a++;
}

public function b(){
echo $this->a(), PHP_EOL;
}
}
$t = new T();
echo $t->b();
echo $t->b();
echo $t->b();
946nobodyさん:2011/10/29(土) 10:45:37.89 ID:???
覚えたてのクラスを使いたくてしょうがなかったんだな
947nobodyさん:2011/10/29(土) 10:53:45.80 ID:???
と、クラスの使い方を知らない人が捨て台詞を行ってこの世を去りましたとさ
948nobodyさん:2011/10/29(土) 11:01:05.43 ID:???
たかがクラスの初歩を張っただけで噛み付いてくるのがこのスレのバカ差加減がよくわかるなwwwwwwwwwwwww
949nobodyさん:2011/10/29(土) 11:11:41.92 ID:???
クラスの初歩・・・?
950nobodyさん:2011/10/29(土) 12:39:05.38 ID:???
クラスが分らなくて嫉妬している奴がいるのは確かだな
951nobodyさん:2011/10/29(土) 12:47:12.97 ID:???
一人で頑張るな
話をややこしくしてるだけなのに擁護する理由がわからない
質問者が何を求めてるのか理解できないなら回答すべきでない
952nobodyさん:2011/10/29(土) 13:35:53.55 ID:???
くらすのべんきょうしなさいっていつもいわれてたでしょ!
953nobodyさん:2011/10/29(土) 13:44:28.49 ID:???
>>878
パスの名前は2ちゃんの管理会社が使いそうではある。
どこの画面で?
954nobodyさん:2011/10/29(土) 14:16:19.35 ID:???
beあたりじゃねーの?たしかあそこらへんがphpだったはずだけど
955nobodyさん:2011/10/29(土) 15:27:29.93 ID:???
>>951は何と戦ってるんだろう
956nobodyさん:2011/10/29(土) 15:31:59.30 ID:???
>>955は何と戦ってるんだろう
957nobodyさん:2011/10/29(土) 16:14:14.78 ID:???
>>938
function & f() { return $_SESSION['hoge']; }
$hoge =& f();
958nobodyさん:2011/10/29(土) 18:42:22.61 ID:hOXCKMki
>>944
@だけエンコードというのも駄目でした。アプリにわたす時点で@が%40になったままです
status=@john hello!というのはURLの最後につけてget方式でわたすわけですよね?
それもダメでした

curl_setopt($c, CURLOPT_POSTFIELDS, $params);
curlにパラメータをセットしてるので、これから先はPHPそのものをいじらなきゃいけなくなり
自分にはとても無理です
オプションの設定で解決できる、もしくは解決法がある問題なんでしょうか
curlのマニュアルを読んでると、コマンドラインから操作する場合はパラメータ1つ一つに
パラメータのテキスト;type=text/plain という形でデータ型を明示できるみたいですが
"@john hello!;type=text/plain"としたらくっつけたタイプ部分まで本文として送信してしまいました

何か良いアイディアないでしょうか…
959nobodyさん:2011/10/29(土) 18:55:50.54 ID:???
>>957
session_start();
960nobodyさん:2011/10/29(土) 19:44:44.39 ID:???
>>958
これで試してみ
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
961nobodyさん:2011/10/29(土) 20:07:18.84 ID:hOXCKMki
>>960
ありがとうございます
これはGETで対象サーバに送信することになるんですよね?
エラーを起こしたので調べてみたら相手側がPOSTのデータしか受け付けない仕様になってるようで
無理っぽいです
しょうがないですね…
残念ですが諦めます。他の人たちもありがとうございました

962nobodyさん:2011/10/29(土) 20:26:10.60 ID:TSLcC47t
書き方の相談で申し訳ないですが、上から下の書き方へ変えていきました。
1から2は共通処理の重複をなくして、
2から3はif文より早いとされるswitch文でかいてみました。
$hoge&&$piyoの状態では何もしません。
こんな感じでだんだんいい感じになってますでしょうか?
だめだしあればお願いします。

1.
if($hoge && !$piyo) 共通処理 処理 共通処理
elseif($piyo && !$hoge) 共通処理 処理 共通処理

2.
$a=0; $b=0;
if($hoge) $a=1;
if($piyo) $b=1;
if(($a+$b)==1)
 共通処理
 if ($a) 処理
 if ($b) 処理
 共通処理

3.
$todo=0; $count=0;
if($hoge) $todo=1; $count++;
if($piyo) $todo=2; $count++;
if($count==1)
 共通処理
 switch($todo)
  case 1: 処理 break;
  case 2: 処理 break;
 共通処理
963nobodyさん:2011/10/29(土) 20:27:17.74 ID:???
>>961
あきらめたら試合終了だよ
さぁfsockopenでゴリゴリ書こうか
964nobodyさん:2011/10/29(土) 20:42:56.15 ID:???
>>961
こっちじゃ出来るけど CURLOPT_POST = true と併せて試したか?
そもそもCURLを諦めてストリームコンテキストを使う手もある
http://www.php.net/manual/ja/function.stream-context-create.php
965nobodyさん:2011/10/29(土) 20:57:25.75 ID:???
>>962
お前コード動かしてないだろ
966nobodyさん:2011/10/29(土) 20:57:47.47 ID:UZeloiLz
人様に使ってもらうアプリケーションを作っています
設計に無理があるといったらそうなのですが
あるフォームでsubmitボタンを複数配置して
押されたボタンのname値によって処理を分けています
ようするにvalueは飾りなのですが
こういう設計ってありですか?
あと普通はブラウザから1つのボタンを押してnameが1つ送られてくるわけですが
例えば上の人みたいにcurl使って複数のnameをPOSTしてきた場合困るのですが
想定外の普通のブラウザからの操作以外も考慮してコーディングすべきでしょうか?
967962:2011/10/29(土) 21:02:16.86 ID:???
普段こういう書き方はしないのでそのままでは動くかはわかりません。
確かこんな書き方があったなぁと・・・32行に収めるために無理して書きました。
意味はだいたい分かって頂けると思ったのですが、
コードの意味が分からなかったらすみません。
968nobodyさん:2011/10/29(土) 21:08:28.71 ID:???
>>967
なるべくID出して
レスをたどりやすいから
969nobodyさん:2011/10/29(土) 21:23:02.90 ID:???
昔やったな
操作対象1つにつき1ボタン
if ($_POST['post']) {
} else if ($_POST['edit']) {
} else if ($_POST['delete']) {
}
上から重症になりにくい順で実行してた

セレクトボックス+ラジオボックスにして
操作選んで操作対象選んで
if ($_POST['mode'] == 'post') {
} else if ($_POST['mode'] == 'edit') {
} else if ($_POST['mode'] == 'delete') {
}
にしたほうがよかったのはわかってても
ワンクリの魅力があるから難しいね
970nobodyさん:2011/10/29(土) 21:44:33.98 ID:???
button要素にしてvalueで振り分ければ
971nobodyさん:2011/10/29(土) 21:53:47.02 ID:???
>>963,964
うう、ご親切にすみません
上で書いた箇所だけの問題だと思ったので書かなかったんですが
tmhOAuthを使ったOAuth認証とあわせてtmhOAuthの中で実行されるcURLの処理なんです
>>960さんのやり方だとパラメータの送信リクエスト自体はOKなようですが
oAuth認証が通らないといわれてしまい、大前提で失敗してました

しかし、PearのHTTP_request2とHTTP_OAuthを組み合わせたらいけるかも!
頑張ってみます
ありがとうございました
972nobodyさん:2011/10/29(土) 22:02:52.19 ID:???
>>957
ええっ!!そうなの!?
そんな記法はじめて知ったよ。
ありがとう!
973nobodyさん:2011/10/30(日) 01:58:47.46 ID:???
>>962
if (!!$hoge ^ !!$piyo) {
共通処理
if ($hoge) 処理
if ($piyo) 処理
共通処理
}
974nobodyさん:2011/10/30(日) 05:32:57.40 ID:3CLjR3Ux
複数のエラーコードを返すような関数ってphp的にあまりよくないでしょうか?
975nobodyさん:2011/10/30(日) 12:29:42.57 ID:???
用途によるので良くないも糞もないと思いますが
976nobodyさん:2011/10/30(日) 13:20:36.61 ID:ASGcT8eG
MySQLに同梱のlibmysqlclient.so.18と
php-mysqlが必要としているlibmysqlclient.so.15のバージョンが違うのですが
libmysqlclient.so.15をどこかから探してきて
ライブラリのディレクトリに入れるだけでちゃんと動きますか?
977nobodyさん:2011/10/30(日) 13:26:05.39 ID:M82Zs8HP
サーバのdateで返す時間とphpのdate()で返す時間が10分くらいズレてるんだけど
どうしたらいいですか?
php.iniで時間エリアの指定とかhttpd再起動とかはしたんですがなおりません
978nobodyさん:2011/10/30(日) 13:56:53.00 ID:???
そういうのはOSとか書けよバカ
979nobodyさん:2011/10/30(日) 15:34:46.50 ID:???
>>977
10分とかだと、時計が合ってない説が最有力
980nobodyさん:2011/10/30(日) 15:43:34.27 ID:???
PHPに
$array = $array.font(X=X[1] == "hit");
とかないんだっけ?
981nobodyさん:2011/10/30(日) 15:45:39.71 ID:???
あれ、なぜfont・・・
$array = $array.find(X=X[1] == "hit");
982nobodyさん:2011/10/30(日) 15:46:39.62 ID:???
あーもうやだ
わすれてくれ

=>
983nobodyさん:2011/10/30(日) 17:51:51.12 ID:???
>>966
フォーム以外からのPOST対策ってのはさすがに無理があると思う。
例えばDBの内容をアップデートするときとか、
値の型ぐらいは検査するにしても、アップデート対象の主キーが存在するかまで、
サブクエリでいちいちアップデート前検索とかやってられん。
かといってエラー起きるとログがたまるのも困るし難しいところ。
あらゆるケースを想定したプログラムも妥協点が必要だな。
984nobodyさん:2011/10/30(日) 18:01:18.76 ID:???
>>979
どことどこの時計が合ってないの?
985nobodyさん:2011/10/30(日) 20:22:30.33 ID:???
>>958
get方渡すわけじゃないよ。
配列いれるとこにそういう形式の文字列入れるんだが、もういっか。
986nobodyさん:2011/10/31(月) 00:59:24.06 ID:hS+EiQVL
PDOでのエラーハンドリングがうまくいきません

try{
$con = new PDO($dsn, $user, $password);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo $e->getMessage();
}

try{
$sql = "SELECT * FROM :table";
$stmt = $con->prepare($sql);
$stmt->bindValue(":table","testtable");
if($stmt->execute()){
$info = $stmt->fetch(PDO::FETCH_ASSOC);
var_dump($info);
}else{
throw new PDOException("sql error occured.");
}
}catch(PDOException $e){
echo $e->errorInfo();
}

最初の
$con = new PDO($dsn, $user, $password);
の時点でDBのユーザー名・パスワードが違うなどでエラーが発生した場合は、
PDOExceptionがthrowされて $e->getMessage() でエラーメッセージが取得出来ます。

ですが、sqlの文法が違う、指定したテーブルがないなど、SQL発行時点でのエラーメッセージが取得できません。
例外をキャッチすることは出来るのですが、$e->errorInfo() は空の配列が帰ってきてしまいます。
MySQLなどのDBが発行したエラーはどうやったら取得できるのでしょうか?
987nobodyさん:2011/10/31(月) 01:13:35.16 ID:4yF1+PIi
共有モジュールの互換性ってどのくらいまであるのでしょうか?
たとえばPHP5.2でコンパイルされたものを5.3で使うのはさすがにまずいと思いますが
PHP5.3.3用をPHP5.3.8に使うのは大丈夫でしょうか?
988nobodyさん:2011/10/31(月) 01:46:46.15 ID:???
>>986
ttp://www.php.net/manual/ja/class.pdoexception.php
>PDO が発するエラーを表します。あなた自身が書いたコードから PDOException をスローしてはいけません。 PHP の例外についての詳細な情報は、 例外 を参照ください。

>MySQLなどのDBが発行したエラーはどうやったら取得できるのでしょうか?
PDOStatement->errorInfo
989986:2011/10/31(月) 02:38:29.80 ID:hS+EiQVL
>>988
自分で例外スローはダメなんですね・・・
とりあえず例外使わないように以下のコードで試してみました。

try{
$con = new PDO($dsn, $user, $password);
$con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
}catch(PDOException $e){
echo $e->getMessage();
}

$sql = "SELECT * FROM :table";
$stmt = $con->prepare($sql);
$stmt->bindValue(":table","testtable");

$stmt->execute();

$err = $stmt->errorInfo();
print_r($err);


が、これでもやはり空の配列が帰ってくるだけです。。。
$stmt->errorCode()も00000というコードが帰ってきて終わりでした。。。
990nobodyさん:2011/10/31(月) 04:59:28.79 ID:RUtVjBFd
class Hoge {
 private $con;
 function __construct() {
  $this->con = new PDO(DSN);
 }
 function getTest() {
  $retval = array();
  foreach ($this->con->query("select test from t where 1") as $row) {
   $retval[] = $row["hoge"];
  }
  return $retval;
 }
}

これを

class Hoge {
 static function getTest() {
  $retval = array();
  foreach (MyDB::getResource()->query("select test from t where 1") as $row) {
   $retval[] = $row["hoge"];
  }
  return $retval;
 }
}

こんな感じに変えたいのですが、Hogeをインスタンス化して->でアクセスする既存のスクリプトに影響を与えず
インスタンス化しないでもアクセスできるように変えたいのですがどうすればよいでしょうか?
MyDB::getResource()はPDOインスタンスです。
可能であれば教えて下さい。
991990:2011/10/31(月) 05:01:17.77 ID:RUtVjBFd
他にも間違いあるかもしれませんが
>$retval[] = $row["hoge"];
ではなくて
$retval[] = $row["test"];
ですね。
すみません。

次スレ立ててきます
992990 忍法帖【Lv=7,xxxP】 :2011/10/31(月) 05:04:56.76 ID:RUtVjBFd
すみませんなんか立てれませんでした。
他の方お願いします。
993nobodyさん:2011/10/31(月) 05:12:09.73 ID:???
立てるわ
994nobodyさん:2011/10/31(月) 05:16:05.87 ID:???
try{
$stmt->execute();
}catch (PDOException $e){
$err = $stmt->errorInfo();
print_r($err);
}
995nobodyさん:2011/10/31(月) 05:16:34.24 ID:???
996nobodyさん:2011/10/31(月) 05:17:35.68 ID:???
997nobodyさん:2011/10/31(月) 06:22:01.79 ID:???
>>990
MyDBはシングルトンにすることで異論はないかと。

getTestメソッドについては、staticメンバメソッドをインスタンスメソッドとして呼び出す
(static function getTestとした場合に、 $obj->getTest() )
ことが可能ではあるけれど、これが合法だったか法の抜け穴だったか覚えてないので、こうする。
class Hoge {
 static function foo() {
  $retval = array();
  foreach (MyDB::getResource()->query("select test from t where 1") as $row) {
   $retval[] = $row["hoge"];
  }
  return $retval;
 }
 function getTest() {
return self::Hoge();
}
}
998986:2011/10/31(月) 10:15:55.08 ID:hS+EiQVL
>>994,>>996
そのソースをそのまま実行してみましたが、ダメでした。。。
空の配列が返ってきます。。。。
php.iniの設定とかでこれが必要だった、みたいなものってあるのでしょうか?
999nobodyさん:2011/10/31(月) 11:13:32.58 ID:???
>>998
・「正しい」sql文を発行した場合、予想通りの結果が返ってくるか?
・OS、PHPやDBのバージョンは?
・ちゃんと設定した?(オンラインマニュアルの「インストール手順」を参照 : ttp://php.net/manual/ja/book.pdo.php )
1000nobodyさん:2011/10/31(月) 14:24:57.91 ID:Z5/PdDI9
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。