【PHP】下らねぇ質問はID出して書き込みやがれ 111
レス数が1000を超えています。これ以上書き込みはできません。
過去スレ、関連スレ、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等)・フレームワークは各該当スレへ
0002nobodyさん
2011/09/29(木) 02:57:05.72ID:???【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/
0003nobodyさん
2011/09/29(木) 02:57:26.56ID:???■本家マニュアル 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/
0004nobodyさん
2011/09/29(木) 02:57:40.46ID:???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プログラムとして実行された結果になる。
0005nobodyさん
2011/09/29(木) 02:57:55.05ID:???→ 確認すべきは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に保存?
→ 好きにしてください
0006nobodyさん
2011/09/29(木) 05:14:38.44ID:J3X6JJQXfile_exists("//pcname/sharefolder/filename");
でファイルの有り無しは確認できるのですが
file関数等でファイル操作ができません。
$lines = file("//pcname/sharefolder/filename");
failed to open stream: No such file or directory
共有フォルダ上のファイルを直接操作する方法はありますか?
0007。
2011/09/29(木) 11:07:49.43ID:???"\\\\pcname\\sharefolder\\filename" なら通るよ。
0008nobodyさん
2011/09/29(木) 17:31:26.90ID:???'\\pcname\sharefolder\filename'
でいいってことか?
0009nobodyさん
2011/09/29(木) 21:24:56.44ID:J3X6JJQX試したけどダメでした…、何故だ。
0010nobodyさん
2011/09/29(木) 22:07:17.49ID:???共有フォルダの見た目は通常のフォルダとそう変わらないが、
ネットワーク上のリソースだということ
ネットワーク上にあるのだからたとえ接続先がlocalhost(自分自身)であっても
ソケットで接続しなければならないのは必然
しかもただネットワーク上にあるだけではない
共有フォルダにアクセスするにはMicrosoftのSMBプロトコルに準拠する必要がある
WebDAVについてもSMBがHTTPプロトコルの拡張機能という違い以外は同じことがいえる
C言語(Win32API)レベルで見れば通常のファイルと共有フォルダが違うものだということがわかる
通常のファイルであれば、fopen関数で開けるものを
共有フォルダのファイルはWNetAddConnection2という見慣れない関数で
『接続』を確立してからアクセスする
0012nobodyさん
2011/09/30(金) 08:24:15.07ID:???0013nobodyさん
2011/09/30(金) 16:25:36.30ID:jn39aScnReverseAccessRankingなんですけど
ページアクセスランキングに使おうと思っているのですが
アクセスされたら指定した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/での記録ではなく普通のアクセスを拾うだけになってしまいます。
どうぞよろしくお願いします<(_ _)>
0014前スレ994
2011/09/30(金) 16:37:49.32ID:???javascriptで読み込ませるか
キャッシュされない位置にコードを移動すればいけるかもしれませんね。
ちょっとやってみます。
0015nobodyさん
2011/09/30(金) 20:30:00.57ID:KaRekCLiそれでふと思ったんですが、PHPはコンパイルってしてるんでしょうか?
0016nobodyさん
2011/09/30(金) 20:50:35.34ID:???0018前スレ994
2011/09/30(金) 21:03:13.56ID:???キャッシュの問題であればアクセス数全体の誤差は解消されそうですが、
サイト別のリファラの割合がおかしいんです。何か他に考えられる原因ってありますか?
0019nobodyさん
2011/09/30(金) 22:14:08.98ID:jn39aScnメール送っても返信こないです(´;ω;`)
0022nobodyさん
2011/09/30(金) 23:12:19.15ID:???すみません。私がよく理解してないだけかも。
APCでググったんですけど理解不能です。
WPのキャッシュプラグインが原因である可能性もありますか?
0023nobodyさん
2011/09/30(金) 23:37:12.76ID:???実際のアクセス数 100
実際のアクセスのリファラ google:yahoo = 8:2
キャッシュを返したのが90、ロジックが動いたものが10
という状態だとして
ってなったときに、PHPで出力しているアクセス解析の結果が
googleが8でyahooが2になってないのが気に入らない、という話だと思ったんだけど、違ってる?
もし違うならちゃんと伝えてほしい。
0024nobodyさん
2011/09/30(金) 23:54:20.55ID:jn39aScn適切なスレ誘導お願いします(´;ω;`)
0025nobodyさん
2011/10/01(土) 00:00:50.96ID:???■ 使用方法
以下のコードを挿入
<PHPページ内の場合>
<?include("rar.php");?>
の意味理解してる?で、それと同等のことをしてる?
0026前スレ994
2011/10/01(土) 00:04:42.35ID:???まさにおっしゃるとおりです。
サイトによって他のアクセス解析の結果とほとんど同じ物もあれば(多いパターンは多分無い)
異常に少ない場合があります。分母はおそらく十分ありますので誤差の範囲ではないです。
0027nobodyさん
2011/10/01(土) 00:21:13.88ID:???いろいろ言いたいこともあるけれど、わかりやすそうな例を作ってみる。
>>23の例で、キャッシュを返したのが99だとするよ。
このとき、ロジックが動くのは1回(最初のアクセス)になるよね。
それでもgoogle8割yahoo2割の結果になってほしいって言ってるのが今の状態。
キャッシュを再作成するタイミングで誰がアクセスするかなんてわからないよ。
0028nobodyさん
2011/10/01(土) 00:26:08.13ID:???0029nobodyさん
2011/10/01(土) 00:32:13.44ID:swP2fzC0ここです
<img src="./rar.php?http://a.net/page1/" border=0 width=1 height=1>
一応アクセスカウントされてるので機能してると思います。
0030nobodyさん
2011/10/01(土) 00:38:38.30ID:???ヘッダーってheader.phpのこと?
そんな所に埋め込んでも、wp-supercacheとかを入れてたら意味ない。
いつでもphpが動く場所に入れておかないと
APCはphpの中間コードをキャッシュするものなので、コードを書き替えたときに
ちゃんと反映される設定になってれば問題ないよ
0031前スレ994
2011/10/01(土) 00:42:55.21ID:???キャッシュの問題であれば
<SCRIPT Language="JavaScript">
<!--
document.write("<img src='hogehoge.com/log.php?refer=");
document.write(document.referrer+"' border=0 alt='axs'>");
// -->
</SCRIPT>
を埋め込んで前のphpスクリプトでリファラをGETすれば毎回取得できますか?
0032前スレ994
2011/10/01(土) 01:23:44.64ID:???phpが動いてない
0033nobodyさん
2011/10/01(土) 01:28:00.61ID:BqE8SzGp例えば
$c=new classname();
$c->throwError();//ここでクラス内でエラーが起きて
$c->doFunction();//これ以降このクラスは無いものとしたい
クラスにisErrorプロパティ作って、全てのメソッドにその値をチェックする処理を入れるしか無いのでしょうか
unset($this)みたいな事がしたいのですが。
0034nobodyさん
2011/10/01(土) 01:30:09.08ID:???wp-supercacheがフックを掛ける前に入れればいいんだよ
wordpress/index.php
なら、何を入れてあっても必ず読み込まれる
0035前スレ994
2011/10/01(土) 01:41:03.78ID:???index.phpの最後に入れて動作確認しました。
後は正常にリファラを取得できてるか確認してみます。
本当にありがとうございます
0037nobodyさん
2011/10/01(土) 02:02:34.34ID:ee5xhFK6それはSSL対応アプリケーションということなんでしょうか?
003937
2011/10/01(土) 02:13:47.95ID:ee5xhFK6ありがとうございます
PHP関係なさそうで安心しました
0040nobodyさん
2011/10/01(土) 03:43:22.39ID:UymdO/ZBどうすれば良いか教えてください神様<(_ _)>
0043前スレ994
2011/10/01(土) 12:37:39.57ID:???リファラがとれていないようです。
javascriptで取得できてPHPで取得できないってあり得ないですよね?
アクセスを多く見せかけるためのこういった不正ってあり得ますか?
0044nobodyさん
2011/10/01(土) 13:09:21.31ID:???余計な事をせず全てのアクセスのリクエストヘッダを記録してみれば原因がつかめるかもな
取得は $_SERVER ないし apache_request_headers() で
0046前スレ994
2011/10/01(土) 14:00:45.93ID:???しっかりログ取れてました。
0048nobodyさん
2011/10/01(土) 16:47:45.92ID:bmbeJnMj必要ないものまで読み込むことになると思いますので。
キャッシュは出来るのでしょうか?
0049前スレ994
2011/10/01(土) 17:02:56.56ID:???で別のログを同時に出力するようにしたところ
リファラが極端に減ったと思われていたサイトが下のような形で頻繁に出てくるようになりました。
Cookie: の項目に__utmc=英数字の羅列(サイトドメイン)英数字の羅列(ドメイン以下)英数の羅列
ログを眺めても全く意味不明ですがちょっと調べてみます
0050前スレ994
2011/10/01(土) 17:29:44.46ID:???該当サイトからのアクセスにはRefererの項目自体が無いです
0051前スレ994
2011/10/01(土) 17:43:16.28ID:???自サイト内のURLがrefererの項目に表示されてます
0054nobodyさん
2011/10/01(土) 20:30:08.78ID:???まともな人はそういうのはもう関わりたくなくなっちゃうからね。
昔はここまで酷くなかったんだけど、そういうキチガイが常駐するスレになっちゃったんだ。
今回はあきらめような。
0060nobodyさん
2011/10/02(日) 02:33:20.62ID:MdeRfVQT0061nobodyさん
2011/10/02(日) 02:46:10.85ID:???コンピューターは0と1しか理解できないんだぜ?
0062nobodyさん
2011/10/02(日) 02:55:49.98ID:???コンピューターって超馬鹿じゃん!
0064nobodyさん
2011/10/02(日) 03:09:04.61ID:???そのHTMLの元にはテキストがあって、そのテキストは0と1で構成されていて
なんだかDNAの構造みたいなロマンがある
0066nobodyさん
2011/10/02(日) 11:32:14.06ID:???俺はその質問に何の意味があるのか、
その疑問はどこから湧いて出るのか知りたいよ
銀行口座の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に比べて生成する暗号 つまり、パスワードを入力するときに
入力する文字列を減らせる
暗記する文字列を減らせる
0067nobodyさん
2011/10/02(日) 12:21:22.68ID:MdeRfVQTすみません、暗号化というより文字から特定の数値をランダムで吐き出すというものを作りたかったので
0068nobodyさん
2011/10/02(日) 13:34:16.91ID:???何がすみませんなのか知らんがそれくらい自分で何とかしろ。
進数、アルゴリズムの初歩の初歩だろ。それくらいできなきゃプログラマの資格ない。
やってみてわからないことがあったら質問しろ。丸投げするな。
0069nobodyさん
2011/10/02(日) 14:06:11.34ID:???特定なのかランダムなのかどっちなんだよ
具体的に何に使うのか話したほうがアホに絡まれずに済むぞ
ハッシュ値が欲しいなら
list(, $value) = unpack('l', hash('crc32', 'unko chink manko', true));
で符号1bitを含む32bit整数が手に入るので欲しい値の範囲に正規化する
CRC32なのでセキュリティに関与する箇所には使えないが
0070nobodyさん
2011/10/02(日) 14:08:48.93ID:???0071nobodyさん
2011/10/02(日) 14:16:21.16ID:???なんちゃって
0072nobodyさん
2011/10/02(日) 16:43:55.66ID:???可逆なら2進数や8進数にでも変換すればいいだろ
0073nobodyさん
2011/10/02(日) 17:33:33.43ID:???0075nobodyさん
2011/10/02(日) 20:43:53.62ID:E9/7d1Bi【PHPのバージョン】6.0
【連携ソフトウェア】MySQL
【質問内容】
1から10までの数字をランダムにそれぞれ1回ずつ表示させたいのですが
rand関数だと範囲の指定は出来ても、登場回数までは当然コントロールできません。
一旦別の変数に登場した数を記録しておいて、乱数が表示される度に比較するという方法以外でよい方法があれば教えていただけないでしょうか。
0076nobodyさん
2011/10/02(日) 21:09:39.32ID:???>一旦別の変数に登場した数を記録しておいて、乱数が表示される度に比較するという方法以外でよい方法があれば教えていただけないでしょうか。
なんで以前に出た値を変数や配列に保存して、今回の乱数の値と比較する方法がダメなの?
0077nobodyさん
2011/10/02(日) 21:20:47.03ID:???1-10入れて
http://php.net/manual/ja/function.shuffle.php
0078nobodyさん
2011/10/02(日) 22:17:41.92ID:E9/7d1Biダメではないんですが、最近細かいところを見直してまして、それでほかにも効率のよい方法があるのかな〜と
>>77
こんな関数があるのを知りませんでした。
これで解決しそうです。
0079nobodyさん
2011/10/02(日) 22:30:51.07ID:UYwChkh+鯖をlightppdからnginxに変えたら
file_exists関数でもファイル認識しなくなった
0080nobodyさん
2011/10/02(日) 22:39:02.35ID:UYwChkh+php 5.3.6だと動くけど
5.3.8で動かなくなってる
もうだめぽ
0081nobodyさん
2011/10/02(日) 22:46:04.30ID:???ランダムというのは、大きな目で見れば均一だが
局所的には偏るのが当然
コインを投げれば表が10回連続で出ることもある
それがランダムだというのに、
ランダムの結果を任意に管理するというのか?
バカげてる
それはランダムではないし、ゆえにその目的においてランダムを使う意味も無い
1〜10の数字を配列に入れてシャッフルすればいい
0082nobodyさん
2011/10/02(日) 22:49:15.65ID:UYwChkh+ううむ…。
0084nobodyさん
2011/10/03(月) 01:43:05.12ID:???悪いけどお前の言ってることが全く理解できない
でも俺が馬鹿ではないことは俺が一番良く知ってる
てことは馬鹿なのはお前だということになる
0085nobodyさん
2011/10/03(月) 04:53:13.77ID:???>でも俺が馬鹿ではないことは俺が一番良く知ってる
ttp://blog.livedoor.jp/goldennews/imgs2/0910/g1001001.jpg
0086nobodyさん
2011/10/03(月) 07:05:41.31ID:???悪いけどお前の言ってることは完全に理解できる
でも俺が馬鹿だということはお前が一番良く知ってる
てことは馬鹿なのは俺だということになる
0087nobodyさん
2011/10/03(月) 14:47:49.64ID:???他人が嫌がることをするべきではない。
0088nobodyさん
2011/10/03(月) 14:58:25.66ID:TRRl/0eBわからないところがあります。
2chなどにあるage機能はどのように書いているのでしょうか?
つまり、mail欄にsageを入力でスレの位置そのまま
それ以外を入力だとスレが先頭に上がるという機能のことです。
DBを使用していますか?
また、MySQLを使おうかテキストファイルで管理しようか迷っているのですが
MySQLだとトラフィックが増えると同時接続数の問題が出てきてしまうのでしょうか?
負荷を減らすためにMySQLからのレスポンスをキャッシュさせると新着レスがスムーズに表示されなくなりませんか?
0089nobodyさん
2011/10/03(月) 15:11:24.72ID:???ageであればそのスレをリストの先頭に移動するだけだから、DBでもテキストでもどちらでも実現できるよね。
同時接続数の問題が生じるのはテキストで管理しても一緒でしょ。
負荷を減らすためにキャッシュのことを考慮するならMySQLのレスポンスもそうだけど
WEBサーバーのレスポンスも考えないとね。
0090nobodyさん
2011/10/03(月) 15:23:46.45ID:TRRl/0eB>リストの先頭に追加
なるほど。
スレッド毎に数字か何かを振ってソートしているのかと勘違いしていました。
>テキストでも同時接続数の問題
どうやら同時接続数の意味をよく理解できていなかったようです。
試作してみて管理しやすい方でやってみます。
ありがとうございました。
0091nobodyさん
2011/10/03(月) 15:24:35.32ID:???0092nobodyさん
2011/10/03(月) 17:09:28.67ID:emr96KFI$abc[20] => "234"
$abc[30] => "345"
これから[]の中身を取り出したいのですが、取り出す関数などあったりするのでしょうか?
0093nobodyさん
2011/10/03(月) 17:10:20.56ID:???XAMPPインストールしたんですが管理画面が表示されません。
009591
2011/10/03(月) 17:30:30.90ID:emr96KFIサンクス
こんな関数あるとは知らなんだ
リファレンス本でも買っといたほうがいいのかな
0096nobodyさん
2011/10/03(月) 17:38:36.11ID:LRWhYvIr【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
0097nobodyさん
2011/10/03(月) 17:39:26.28ID:LRWhYvIrmbstring.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
上記個所以外でロジックなどで文字コードを操作はしていません。
0098nobodyさん
2011/10/03(月) 17:39:59.48ID:LRWhYvIr1.phpMyAdminでデータをインサートした場合
インサートしたデータはphpMyAdmin上では文字化けせずに見れる
インサートしたデータをphpで取得してブラウザで表示すると文字化け、mb_detect_encodingで調べると文字コードはASCIIとなっている
2.phpのプログラムからデータをインサートした場合
インサートしたデータはphpMyAdminで見ると文字化けしている
インサートしたデータをphpで取得してブラウザで表示すると文字化け、mb_detect_encodingで調べると文字コードは取得できない
※コマンドラインからもインサートされたデータを見ると文字化けしています。
■質問
今まで文字コードの設定は上記設定のみでUTF-8で統一することでうまくいっていたのですが、
MySQL5.5にしたとたん文字化けするようになり原因がわかりません。
プログラムでの入力も出力もUTF-8で統一、文字化けしないようにしたいのですが、どこの設定を変えればいいのでしょうか。
よろしくお願いいたします。
現象2でUTF-8でデータがインサートされていないっぽい理由も知りたいです。
0100nobodyさん
2011/10/03(月) 18:09:45.53ID:???show variables like "char%"; はPHPから発行して確認する
結果が>>96と同じならインサートするデータがUTF-8ではないという事になる
010196
2011/10/03(月) 18:27:22.12ID:???ありがとうございます。
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からの場合、上記文字コードの設定になるのはどこの設定が影響しているんでしょうか。
010296
2011/10/03(月) 18:37:09.65ID:???すみません。
いろいろ調べていたら、下記記事を見つけました。
http://blog.cheki.net/archives/349
起きている現象がこの記事の理由と同じなのかよくわかりませんが、
似たような現象だったのでSET NAMES utf8をかましたら文字化けせず正常に表示されました。
PHPからshow variables like "char%"を発行したことはなかったので、勉強になりました。
ありがとうございました。
0103nobodyさん
2011/10/03(月) 18:44:07.93ID:???http://hibari.2ch.net/test/read.cgi/mysv/1128262593/
あとID
0106nobodyさん
2011/10/03(月) 21:37:31.87ID:qFzsBTTUグループ開発を体験してみたいです
なんかそういうグループ開発初心者おk的な開発プロジェクトないですかね?
svnやgitなんかのバージョン管理の仕方や
フレームワークを使った開発の仕方なんかを実践で学びたいです
0108nobodyさん
2011/10/04(火) 00:26:35.22ID:GRHx0QKkその画像を入力した数字分だけ並べたいのですがどうやればいいんでしょうか。
forを使ってやってみたのですが、前のページから取ってきた画像をどうやって表示させればいいかがわかりません。
0109nobodyさん
2011/10/04(火) 01:54:17.42ID:???0110nobodyさん
2011/10/04(火) 12:09:30.41ID:aG7AxKA7<a id="board_delete" href="<?php echo $url_deleteboard; ?>">
<input type="button" value="Delete" />
<input type="hidden" name="delete_board" value="delete" />
</a>
ボタンを押したときにhiddenで値を送るのは上記コードであっていますか?
0111nobodyさん
2011/10/04(火) 13:11:59.64ID:???0112nobodyさん
2011/10/04(火) 15:28:08.35ID:9X0aQkvy$sha1 = sha1("date('Ymd')"."12345"."100");
とやっても期待していた値が得られませんでした。
$sha2 = sha1("20111004"."12345"."$100");と同じものが得られる予定でした。
そこで
$date=date('Ymd');
$sha3 = sha1("$date"."12345"."100");とすると
$sha3=$sha2となり、期待していた値が得られました。
なぜ$sha1では期待していた値にならなかったのでしょうか?
0113nobodyさん
2011/10/04(火) 16:39:38.99ID:???date('Ymd') を""で囲むと文字列 "date('Ymd')" になってしまうのでdate関数の返り値は得られない
$sha1 = sha1(date('Ymd')."12345"."100");
で試してみろ
0114nobodyさん
2011/10/04(火) 17:18:51.11ID:9X0aQkvy関数も変数と同じように考えていました。
勉強になりました。ありがとうございました。
0115nobodyさん
2011/10/04(火) 21:01:31.17ID:xk8cds+AMakeGoodというのが出てきましたが、あまりEclipse上でPHPUnit使う人がいないのかあんま情報無いようです
0117nobodyさん
2011/10/05(水) 00:27:26.02ID:???php5.3インスコしようとしたらVC6ないので
5.2使うしかないっぽいですか?
0118nobodyさん
2011/10/05(水) 01:21:47.24ID:???一応ここに残しておきます
ttp://sourceforge.jp/projects/sfnet_wdscript/downloads/Easy%20Web%20Server/PHP%205.3%20VC6/php-5.3.6-Win32-VC6-x86.zip/
0121nobodyさん
2011/10/05(水) 02:33:39.24ID:???0123nobodyさん
2011/10/05(水) 12:17:42.50ID:l945nK0X処理結果を送り先に返したいんですが(返り値?)
送り先のURLなどがわからなくても返せるものなのでしょうか?
できるとしたらどのような関数を使えばよいのでしょうか?
回答よろしくお願いいたします。
0124nobodyさん
2011/10/05(水) 12:23:48.53ID:???もうちょっと質問を具体的にした方が良いと思うよ
その質問に回答するならechoなりで出力すれば?だけで終わってしまうし、
きっとそんな事を聞きたいんじゃないと思うから
0125nobodyさん
2011/10/05(水) 12:41:53.69ID:l945nK0XPHPで作っているSNSサイトに他社の用意したゲームを実装したいと思っています。
他社のゲームサーバー側から,ゲームの得点結果に合わせたポイント情報がおりてくるので
それを当方でうけとり処理して,その処理結果を,ポイント情報の送り先である他社へ
HTTPのレスポンスボディに返せとのことです。
HTTPの通信系がよくわからないもので質問させてもらいました。よろしくお願いいたします。
0128nobodyさん
2011/10/05(水) 12:47:20.55ID:???urlで呼んだ時、ブラウザ上で表示されるのがhttpのレスポンスボディ
なので、それならechoで返せば問題無し
jsonだとかxmlだとかの指定があるなら変換してから出力ね
0129nobodyさん
2011/10/05(水) 12:51:40.95ID:???他社のゲームサーバーを通常のブラウザに置き換えて考えればいい。
ゲームサーバーからGETなり何なりでポイント情報が送信されるから
その情報を処理してレスポンスを返す。
基本的に通常のWEBアプリの動作と同じ。
0130nobodyさん
2011/10/05(水) 14:13:53.74ID:l945nK0Xありがとうございます。
さっそくやってみます。助かりました。
0131nobodyさん
2011/10/05(水) 14:18:12.09ID:???0132nobodyさん
2011/10/05(水) 15:10:11.44ID:f846fttAネット検索をすれば↑を自分のサーバ上に保存する方法はヒットするのですが
cドライブなどに保存する方法がみつかりません
そもそも、PHPでは無理なのでしょうか?
0133nobodyさん
2011/10/05(水) 15:12:26.21ID:???・ローカルマシンにphpを入れて動かす
・ローカルマシンにftpdなりを入れてphpが動いてるサーバから転送
・ファイルに名前をつけて保存
0134nobodyさん
2011/10/05(水) 17:28:58.10ID:jn0bpQRBpcだと頭にsession_start();を置いて必要なデータを$_SESSIONに入れておけばそのデータを使いまわせますが携帯だとそれができないようです。
質問ですが、携帯の場合どうすればいいのでしょうか?
携帯の個体識別番号をとって全てのページで認証をして、その都度必要なデータはhiddenでとばせばいいのかと思ったんですが、このやり方はどうなんですか?
これが正しいかどうかもわからないんですがもっと安全で簡単なやり方があれば教えてください。
0135nobodyさん
2011/10/05(水) 17:42:18.17ID:???安全で簡単というのは無理なんで、
php 携帯 session cookie
あたりでググってからもう一度質問すると良いかもしれない
0136nobodyさん
2011/10/05(水) 17:45:09.14ID:jn0bpQRBどうもです。もう一回それで調べて見ます。
もっと体系化されてる携帯開発の情報はないんですかね?
0137nobodyさん
2011/10/05(水) 17:56:42.07ID:???ちゃんと纏まってるサイトは見た事ないなぁ
三者三様で内容がクソ過ぎるから、真剣に纏めてる人なんて希少なんじゃなかろうか
ちなみに携帯の問題ならphpに限らずどんな言語でも良いんじゃない?
charsetが何だとかcookieが使えないだとかはphpに限った問題じゃないからさ
0138nobodyさん
2011/10/05(水) 18:07:57.57ID:???ふーん。携帯をサーバーにしてSNSを作るんだ…
なんか凄いことを考えますね。
0139nobodyさん
2011/10/05(水) 18:11:57.22ID:???とは読めても
携帯をサーバにしてなんて読めるか?
0140nobodyさん
2011/10/05(水) 18:19:22.04ID:2INc0FrS文盲ですんません。
正確には簡易的なSNSをパソコンと携帯とスマホで使えるようにしたいってことです。
パソコンのは大体できたので携帯で使えるようにしようとしてるとこです。
スマホはまだ何も手つけてないですけど、パソコンのコードのとこにスマホ用のcssを作って
phpでユーザーエージェントをもとにパソコンとスマホで振り分けすればいいと思ってます。
ただ携帯開発がはじめてなのもあるんですが、予想以上に携帯が特殊でここ最近ずっとはまってる状態です。
言語はperlとphpしかわからないので、基本はphpで作りたいです。
0142nobodyさん
2011/10/05(水) 18:36:02.45ID:???まぁOpenPNEもあんまり使った事無いししらないけどw
0143nobodyさん
2011/10/05(水) 18:44:13.59ID:2INc0FrSopenpneで作ったものを運営してますが、自分で機能を絞ったものを作りたいんです。
それに今はどうなってかわからないですけど、スマホ対応してないですしカスタマイズもやり辛いし結構不便じゃないですか?
0145nobodyさん
2011/10/05(水) 21:12:30.16ID:???言われるままにVC6のPHPを入れるか、
誘導されるままにVC9のアパッチをいれるかの二択なんだね
おさわがせしますた
0146nobodyさん
2011/10/05(水) 21:33:50.37ID:???http://gete.blog.shinobi.jp/Entry/21/
○IIS を使うならVC9 でコンパイルされたパッケージ
○Apache を使うならVC6 でコンパイルされたパッケージ
ということらしい
0147nobodyさん
2011/10/05(水) 23:06:32.15ID:???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.
0148nobodyさん
2011/10/05(水) 23:07:24.96ID:???授業でちょっと触った程度の初心者だから
初心者サイトみながらやってみるよ
0149nobodyさん
2011/10/06(木) 00:31:48.23ID:???日本語使えてる?
0150nobodyさん
2011/10/06(木) 05:38:34.28ID:???0152nobodyさん
2011/10/06(木) 10:08:49.71ID:???PHPにはあんま関係なさそうだけど
0153nobodyさん
2011/10/06(木) 10:26:30.36ID:???0158nobodyさん
2011/10/06(木) 19:06:24.08ID:???おかげでフォームでメールアドレス入力させるのやめた
今は知らんけど
0162nobodyさん
2011/10/06(木) 22:16:32.01ID:???0163nobodyさん
2011/10/06(木) 22:28:16.29ID:???0164nobodyさん
2011/10/06(木) 22:29:15.70ID:???0166nobodyさん
2011/10/07(金) 03:01:32.27ID:???0168nobodyさん
2011/10/07(金) 06:20:06.00ID:???0169nobodyさん
2011/10/07(金) 06:44:11.87ID:???0170nobodyさん
2011/10/07(金) 06:58:04.69ID:???0171nobodyさん
2011/10/07(金) 07:13:50.63ID:???AppleとMicrosoftなら、Microsoftのほうが凄い
ってことじゃないの?
0172nobodyさん
2011/10/07(金) 07:33:37.86ID:???技術力 ★★★
経営力 ★★★★★★★★★★
ゲイツ
技術力 ★★★★★★★★★★
経営力 ★★★★★★★
0174nobodyさん
2011/10/07(金) 07:41:35.26ID:???その評価は逆だと思う。
ジョブズは根っからの技術者で経営センスは今ひとつと聞く。
ゲイツはMS-DOSのように元々他人が作った物をうまく取り入れて儲ける才覚があった。
0175nobodyさん
2011/10/07(金) 08:53:28.06ID:???Windowsの基礎を作ったのはゲイツ
ジョブズとの違いについて自分は技術屋だが彼は違うといった趣旨の発言をしたことがある
ゲイツのデザインに対する強いこだわりが今のMacの基礎だが
技術屋としてのスキルはそれほど高くなく技術的な部分は丸投げ
0176nobodyさん
2011/10/07(金) 08:55:50.33ID:???ジョブズはハード専門
というイメージだな
0177nobodyさん
2011/10/07(金) 09:11:16.44ID:???0178nobodyさん
2011/10/07(金) 09:13:59.65ID:???ゲイツがWindows作ったわけじゃねーぞ
作ったのはMicrosoftの社員
ゲイツは優秀な人材をMicrosoftに引き入れて儲けただけ
0179854
2011/10/07(金) 09:18:18.44ID:???0180nobodyさん
2011/10/07(金) 09:23:57.75ID:???まぁ一応ジョブズもゲイツも禿げもプログラマ上がり
支持崇拝されてる対象が違う
デザイナーがジョブズでプログラマーがゲイツ脱原発が禿げ
0181nobodyさん
2011/10/07(金) 09:25:17.22ID:???それならデブも入れてやれよ
0182nobodyさん
2011/10/07(金) 09:30:57.43ID:???ゲイツは単なる経営者でしかないということ
0183nobodyさん
2011/10/07(金) 09:31:57.04ID:???0184nobodyさん
2011/10/07(金) 09:36:11.92ID:???0185nobodyさん
2011/10/07(金) 09:38:39.58ID:???0186nobodyさん
2011/10/07(金) 10:37:50.71ID:???0187nobodyさん
2011/10/07(金) 11:59:05.67ID:???0188nobodyさん
2011/10/07(金) 12:04:13.69ID:???0189nobodyさん
2011/10/07(金) 12:13:39.88ID:???0190nobodyさん
2011/10/07(金) 12:19:02.78ID:???さぁ今日もシコシコしながらPHPでもやりなさい。
0191nobodyさん
2011/10/07(金) 12:57:37.64ID:???「弾丸がハッ差HS荒れる」って何?
0194nobodyさん
2011/10/07(金) 13:00:04.32ID:???0196nobodyさん
2011/10/07(金) 23:05:56.11ID:???>>>102
>SET NAMES は使うなと何度言ったら
>mysql_set_charset("utf8");
なんであかんの?理由を知りたい。
0197nobodyさん
2011/10/08(土) 01:32:41.25ID:???http://hibari.2ch.net/test/read.cgi/db/1307760689/683
あと>>1
0198nobodyさん
2011/10/08(土) 04:51:31.37ID:bwPKCXhOフォーマット文字のfの表現がマシン依存になってしまうのですが、
常にビッグエンディアンとして処理するにはどうすれば良いのでしょうか?
よろしくおねがいします。
0200nobodyさん
2011/10/08(土) 07:18:56.08ID:???なんかしょぼくね。
0202nobodyさん
2011/10/08(土) 09:57:10.53ID:???スレを荒らさないできちんと答えてあげるべきじゃないですか?
0205nobodyさん
2011/10/08(土) 11:56:10.82ID:???・スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
とか>>1に書いてあるから質問するなら>>!に書いてあることを守れってことじゃね?
0206198
2011/10/08(土) 12:18:44.44ID:bwPKCXhOバイトオーダーを判定して、
必要に応じて逆転させることで、とりあえずは対応できました。
あんまりスマートではないですが・・・
0207nobodyさん
2011/10/08(土) 12:23:36.62ID:???どこに書いてあるんですか?
あとメール欄とか専ブラのとか専門用語?で言われても何のことかさっぱりわかりません
0209nobodyさん
2011/10/08(土) 13:22:57.25ID:???わけのわからないことばかり
なんかむかつく
0210nobodyさん
2011/10/08(土) 13:37:09.53ID:6EZQGf54【PHPのバージョン】5.2.4
【連携ソフトウェア】なし
【質問内容】文字列を結合した参照渡しについて
$i="1";
$str ="カウント".&$i."番";
echo $str;
$i="2";
echo $str;
これだとエラーになってしまいます。
文字列とあわせて参照渡しする場合どうすれば良いでしょうか?
お願いします。
0211nobodyさん
2011/10/08(土) 14:00:53.35ID:???0213nobodyさん
2011/10/08(土) 15:19:58.00ID:???0214nobodyさん
2011/10/08(土) 15:40:32.47ID:???最終的に何がしたいのかわからんが、PHPの動作にいくつか誤解がある。
参照渡し &$i は変数 $i の内容が評価されるわけではない。
よって式 "カウント".&$i."番" は文字列として評価できない(エラーとなる)。
0215nobodyさん
2011/10/09(日) 01:16:45.27ID:???$i= 1; //外部的にコントロールできないが、実は内部的に参照渡しされている。
$iii = &$i; //$iは参照渡しを外部的にコントロールできるようになった!
$str ="カウント".$iii."番"; //実は内部的に参照渡しされている
echo $str;
$i = 2; //外部的に参照渡しをコントロールできぞ変数
$str ="カウント".$iii."番"; //コントロールできない参照渡し。
echo $str;
とするしかない。
文字列と参照渡しをいっしょに処理することはできない。
X $str ="カウント".&$i."番"; 文字列に参照渡しを含めることは出来ない
○ $iii = &$i;
基本的にphp5はデフォルトで参照渡しをしている。しかしコントロールのできない参照渡し
0217nobodyさん
2011/10/09(日) 05:07:27.45ID:HrCbkB1Sこのテキストを読み込んでその値に+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()
とやってるのですが、対策とかあるんでしょうか?
0219nobodyさん
2011/10/09(日) 06:03:32.38ID:???ファイルロックをする【PHP】
ttp://www.programming-magic.com/20080211020413/
0220nobodyさん
2011/10/09(日) 07:53:55.08ID:???$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を返します。
0222nobodyさん
2011/10/09(日) 13:56:32.44ID:ppXSAu3bscandir()などで、半角スペースを含むパスにアクセスする方法ってありましたっけ?
(C:/Documents and Settings/ とか)
%sじゃないし…
0224nobodyさん
2011/10/09(日) 14:20:55.74ID:???"My Documents" → "MYDOCU~1" とか短い名前でアクセスできない?
知らんけど
0225222
2011/10/09(日) 15:11:57.53ID:ppXSAu3bおお!
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"));
で無事うまくいきました!
お二方、ありがとうございます。
0226nobodyさん
2011/10/09(日) 15:30:38.35ID:???しかし、なぜUTF-8使ってるのだろう。
0227kuma
2011/10/09(日) 16:08:15.27ID:oauOAJK3phpと、mysqlで、検索をするプログラムを作ろうと思う
html 入力
↓
↓→mysql
↓←
php 表示
この状況の、phpファイルのつくりかたをわからない
mysqlと接続する方法は、わかりました。
htmlファイルで入力した検索の言葉を、どのように、
phpファイルで、受けて、表示したらよいでしょうか?
0228nobodyさん
2011/10/09(日) 16:27:53.20ID:???0230kuma
2011/10/09(日) 16:58:01.15ID:oauOAJK3<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>
0231kuma
2011/10/09(日) 17:00:46.16ID:oauOAJK3<?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は、どのように書けばよいでしょうか?
0232kuma
2011/10/09(日) 17:02:24.09ID:oauOAJK30233nobodyさん
2011/10/09(日) 17:09:46.27ID:???ただ直接SQL文の条件にするとSQLインジェクション等の可能性もあるから
適切にクオートするなりするように
0234nobodyさん
2011/10/09(日) 18:41:29.23ID:FIXEx2lV基本的な検索の書き方が載っているし、たとえば10件以上あった場合
はつぎのぺーじにする考え方とかも載っている。
まあphp mysql 検索でもでてくるけど
まあ人それぞれだが、結構やさしめに書いてあるんで、おれはスーパー
サンプルよりそっちが好きだ。
ただこの本はXAMPで構築されているので、それはマネしないように。
0236kuma
2011/10/09(日) 20:39:22.64ID:oauOAJK3webで公開されているソースを、適当につなげて、作ってみた
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か、これか、スーパーサンプルか悩む
0237nobodyさん
2011/10/09(日) 21:12:47.45ID:???フォームから送られてきた変数を受け取っていない
$name = $_POST["name"];
$sql = "select id, bb from b where bb like '%".mysql_real_escape_string($name)."%'";
DBの構造がわからんけどこんな感じ
0238nobodyさん
2011/10/09(日) 21:22:12.19ID:???> 逆引きphpか、これか、スーパーサンプルか悩む
phpマニュアルがネットにあるのでそれで十分になるよ。
0239nobodyさん
2011/10/09(日) 21:25:29.64ID:???関係ないけど、最後の
mysql_query($sql) or die(mysql_error());
は、何か意味があってやってるの?
0240nobodyさん
2011/10/09(日) 21:30:00.75ID:???0242nobodyさん
2011/10/09(日) 21:52:17.93ID:F2aoiA/Npublic static function hoge(){}
}
$test=new test();
$test->hoge();//1
test::hoge();//2
このtestクラスのhogeメソッドで、インスタンス化されたアクセスか、されていないアクセスかを判断するにはどうしたらよいのでしょうか
isset($this)かと思ったら、どちらの場合でもfalseでした
0243nobodyさん
2011/10/09(日) 22:33:27.00ID:teZ5cCjB【PHPのバージョン】5.3
【連携ソフトウェア】
【質問内容】
phpでソースをクリックしたら
使ってるcssのプロパティの一覧が表示される開発ツールってありますか?
ちょっと例えが悪くてすいません
イメージ的にはDreamWeaverでwebサイトを作るようにphpのソースを書きたいです
0244nobodyさん
2011/10/09(日) 23:32:27.22ID:???0245nobodyさん
2011/10/10(月) 00:01:25.69ID:???返信ありがとう
今その方法も探してるんですが
ドリでソース書いててCSSとのプロパティ一覧がみれないです
そうなると編集するときも一度html+cssでページを作って、
閧ノphpのコードを入れ直すっていう感じになってしまいます
開発環境ととのえるのにオススメな本やサイトってありますでしょうか?
0246nobodyさん
2011/10/10(月) 00:51:06.12ID:???どちらもクラスメソッドの呼び出しとして扱われる上に
debug_backtrace() でも情報が取れないので区別するのは無理だろう
http://www.php.net/manual/ja/language.oop5.static.php
> static なプロパティは、インスタンス化されたクラスオブジェクトから
> アクセスすることはできません (static なメソッドにはアクセスできます)。
0247nobodyさん
2011/10/10(月) 01:31:43.81ID:???0248nobodyさん
2011/10/10(月) 01:57:59.46ID:???0250nobodyさん
2011/10/10(月) 10:44:40.47ID:p76b8Zow[$_POST["reply○"]]
の○の部分に変数を入れたいです。
replyが1〜100まであってそれを変数で自動的に表示させたいのです。
[$_POST["reply".$a]]
などのようにしてみましたがエラーになりました。
よろしくお願いいたします。
0251nobodyさん
2011/10/10(月) 10:52:17.57ID:???こうだろ?
0252nobodyさん
2011/10/10(月) 11:09:33.55ID:???0253kuma
2011/10/10(月) 12:16:19.07ID:a7jxBezb>>241
駄目だ 表示されない
送られたphpファイルには、
echo "<tr><td>id</td><t>bb</td></tr>" ;と、
<p>検索結果</p>
は、表示されるが、
データベースの情報は、駄目だ。
続く
0254kuma
2011/10/10(月) 12:17:03.93ID: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>
0255kuma
2011/10/10(月) 12:28:54.49ID:a7jxBezb1〜4行目 データベースと接続
6〜7 フォームから送られた単語で、関数をつくる
データベース内で、それを選ぶ
9~10 実行
12~最後 表示
これのどこをおかしいでしょうか?
6~7,9~10をあやしいと思っていますが、ピンときません
0256nobodyさん
2011/10/10(月) 12:30:57.13ID:???が無い
ついでに言えば
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());
これは不要
0257kuma
2011/10/10(月) 13:12:24.16ID: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)) {
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を悪いのだろうか?
続く
0258kuma
2011/10/10(月) 13:15:12.12ID:a7jxBezbデータベース内容
-- 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`
0259kuma
2011/10/10(月) 13:18:22.48ID:a7jxBezb257のphpファイルは、258のmysqlのデータベースから、データをもらっています。
どこがおかしいでしょうか?
0260kuma
2011/10/10(月) 13:38:34.78ID:a7jxBezbデータベースをわかりにくので、
図にしました
mysqlのデータベース
データベース名 a
id bb
テーブル名 b 1 kuma
-----------------------------------------------------------------------
id cc
c 2 katsu
--
0261kuma
2011/10/10(月) 13:50:36.69ID:a7jxBezbmysqlのデータベースについて、書き直し
データベース名 a
テーブル名 b
フィールド id bb
レコード名 1 kuma
テーブル名 c
フィールド id cc
レコード名 2 katsu
です
0262nobodyさん
2011/10/10(月) 14:41:36.51ID:???>>236で、
$sql = "select id, bb from b";
の時にDBの内容が表示されなかったと言ってたよね。
DBにデータがちゃんとはいっていて、MySQLにちゃんと接続できてるなら、
テーブルの内容が全て表示されたはず。
「しかし、駄目だった」だけではわからんから、どんなエラーが出たのか書くように。
それと、「テーブルc」はこの際関係ないんだから書かないように。
0263nobodyさん
2011/10/10(月) 14:44:37.60ID:???あと、>>256の「echo "<tr>"; が無い」を見て「echo "<tr>";」を追加したようだが、
それHTML的に間違ってるから。
正しくは「echo "<table>";」な。
それと、<t> じゃなくて <td> だから。
0264243
2011/10/10(月) 16:28:22.20ID:???phpで
<div class="test">〜</div>と書かれたものをクリックした時に
クラスtestのプロパティがドリでも表示できますか?
それともcssファイルの中で使われているものを目で追っていくしかないのでしょうか
html、body、外divなどから継承しているcssも目で追っていくのは効率が悪いので
何か方法があればご教授ください
0265nobodyさん
2011/10/10(月) 16:31:49.11ID:???http://www.adobe.com/jp/devnet/dreamweaver/articles/takano_css_style_panel.html
スレ違いなので以後他のとこで聞いて
0266kuma
2011/10/10(月) 17:25:42.73ID:a7jxBezb>>236のときは、エラーはでないで、
idbb
検索結果
とでた。
データベースの内容は、でなかった
>>263
改良した
0267nobodyさん
2011/10/10(月) 17:26:51.55ID: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)) {
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>
0268kuma
2011/10/10(月) 17:28:21.23ID:a7jxBezb実験したら、
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おかしい?
0269nobodyさん
2011/10/10(月) 17:31:48.99ID:???返信ありがとうです
htmlならこれができて、
phpファイルではcssパネルが見られないっていう質問だったんですが
スレ違いだったみたいですいません
地道に目で追っていこうと思います
0270nobodyさん
2011/10/10(月) 20:30:14.24ID:???"<tr>" "<td>" . $row["id"] . "</td>" "</tr>"
この書き方が変
echoで受け付ける書き方は,区切りか.を使った連結とかぐらい。
空白で連結なんてもんはない。
'<tr><td>'.$row['id'].'</td></tr>'
こんな感じに直せ
0271kuma
2011/10/10(月) 20:47:19.99ID: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)) {
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
0272nobodyさん
2011/10/10(月) 21:28:03.95ID:???「駄目だー」などすぐに書きこむってのはプログラマーには向かないかもな
0273nobodyさん
2011/10/10(月) 21:30:16.32ID:???ソースに全角スペースが入ってない?(echo の前のスペースとか)
あと while の中の echo "</tr>"; も不用だろ。
0274nobodyさん
2011/10/10(月) 21:51:09.31ID:???やっぱ宿題なんだろうな
0275nobodyさん
2011/10/10(月) 22:09:42.16ID:???インデントに全角スペース入れちゃだめだよ
これでどう?
<?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>
0277nobodyさん
2011/10/10(月) 22:15:28.29ID:???最後の<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>
0278nobodyさん
2011/10/10(月) 23:08:00.64ID:???htmlspecialcharsなしは減点だろう。
あとth使ったりValidなHTMLにすればちょっと点数おまけしてくれそう。
0279nobodyさん
2011/10/11(火) 01:13:10.45ID:???0281nobodyさん
2011/10/11(火) 02:38:56.25ID:???0282kuma
2011/10/11(火) 03:01:03.85ID:L7gbN7TVできました!
ありがとうございます!
動くと気分良い!
htmlを勉強必要だ
あと宿題でない。私は無職。これからphp勉強してphpプログラマーになって、働きたい
0283nobodyさん
2011/10/11(火) 03:02:56.05ID:???0284nobodyさん
2011/10/11(火) 05:44:15.36ID:???画面表示ができたなら、あとは検索結果表をエクセル出力するボタンを付けたり、レコードの詳細を表示するボタンを付けたり、それをPDF出力するボタンを付けたりが楽しいぞ。
0285nobodyさん
2011/10/11(火) 06:56:44.30ID:???「逆引きPHP」でも買ったら載ってるかな。
0286nobodyさん
2011/10/11(火) 09:09:56.66ID:???そこまでいくとphpほとんど関係ないし
0287nobodyさん
2011/10/11(火) 09:36:16.35ID:???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; //こっちも駄目
?>
0288nobodyさん
2011/10/11(火) 09:57:13.61ID:???何がしたいのか
0289287
2011/10/11(火) 10:16:43.59ID:???そのリンク先のも私です。
向こうでも質問したのですが解決しなかったので、こちらで質問させて頂きました。
締め切ることを忘れていたので、先程締めてきました。
0290287
2011/10/11(火) 10:16:53.84ID:???そのリンク先のも私です。
向こうでも質問したのですが解決しなかったので、こちらで質問させて頂きました。
締め切ることを忘れていたので、先程締めてきました。
0291nobodyさん
2011/10/11(火) 10:27:14.75ID:???ありがとうございます。
助かりました。
あと文法を確かめたいのでお聞きしたいのですが
変数を{ }で囲むことをなんという文法でいうのでしょうか?
0292nobodyさん
2011/10/11(火) 10:31:36.92ID:???よくわからんがこの辺とかは?
http://social.msdn.microsoft.com/Forums/eu/iewebdevelopment/thread/fe1570a0-8670-450d-90e6-1e03bd338569
後IDな
>>291
変数の展開とかそんな呼び方
0293nobodyさん
2011/10/11(火) 10:52:48.32ID:???http://jp.php.net/manual/ja/wrappers.php.php
あとparse_strは第2引き数まで指定して使った方がいいよ
0294291
2011/10/11(火) 10:56:23.41ID:eYZf+P6Iありがとうございます。
ググって確かめます。
0295nobodyさん
2011/10/11(火) 11:08:14.43ID:AuJ4TIiQできました!ありがとうございます!
$HTTP_RAW_POST_DATAというものがあることを知りませんでした。
IDはこれでいいのかな。以後気を付けます。
parse_strも第2引数を指定するようにします。
0296nobodyさん
2011/10/11(火) 11:28:56.24ID:OikSSdQv255色程度だとうまく減色できるのですが、
imagetruecolortopalette($image, false, 5);
としても、5色ちょうどにならないときがあります。
また、それほど使われていないはずの#FFFFFFが入っているときがあります。
解決策をご存じの方がいましたら、よろしくお願いします。
0297nobodyさん
2011/10/11(火) 12:30:16.95ID:iobhURfXmb_internal_encoding() で良かったですよね?
0298nobodyさん
2011/10/11(火) 12:33:17.77ID:???0299nobodyさん
2011/10/11(火) 12:35:42.78ID:???GDのバグか仕様じゃね
>>297
違うね
それはmb系の関数のデフォルトの文字コード設定みたいなもんだ。
0301nobodyさん
2011/10/11(火) 17:25:11.71ID:???この本に載っているかは知らないよ。
0302nobodyさん
2011/10/11(火) 19:11:51.17ID:iobhURfXではどう書けば良いんでしょうか?
サーバ側でEUC-JPになっていたりして、文字化けする時があります。
その際、エラーメッセージを出したいので、
サーバで指定されている文字コードを取得したいのです。
0303nobodyさん
2011/10/11(火) 19:25:38.70ID:???何がEUC-JPになっているんだよ
ファイルの文字コード取得したいならmb_check_encodingでも使えば
0305nobodyさん
2011/10/11(火) 21:04:09.47ID:???素人じゃないならお前が答えればいいよ
0306nobodyさん
2011/10/11(火) 21:25:01.95ID:???030896
2011/10/11(火) 23:09:46.44ID:???httpd.confやphp.iniで設定している文字コードのことかな?
それに↓どういう方法で確認したんだろう
>サーバ側でEUC-JPになっていたりして
0309nobodyさん
2011/10/12(水) 01:01:35.11ID:yKO1SYOj{
function __construct(){}
function rep(){ return 'a';}
}
$te=new test();
function obh($buf)
{
global $te;
return $te->rep();
}
ob_start(obh);
これを実行した上でいろいろ出力した後には画面上に'a'とだけ出力されるはずだと思いましたがそうなりません
なにか間違っていますか?
0310nobodyさん
2011/10/12(水) 01:13:01.92ID:???0311nobodyさん
2011/10/12(水) 01:47:04.89ID:???0312nobodyさん
2011/10/12(水) 01:54:58.99ID:???スクリプトが終了した後にハンドラが呼ばれているが、
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'));
0313nobodyさん
2011/10/12(水) 06:29:46.83ID:???ログファイルの更新をCronでphp走らせていましたが、
何故か新しい環境だと更新ごとに最終行のログが消えて行く現象が起きます。
ファイルは次のとおりです
0314313
2011/10/12(水) 06:32:28.22ID:UYt0DClO$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);
}
0315313
2011/10/12(水) 06:34:37.78ID: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);
0316nobodyさん
2011/10/12(水) 10:00:41.08ID:???つーか、foreachでいいと思う。
0318313
2011/10/12(水) 11:49:30.87ID:UYt0DClO無事更新出来ました。
ありがとうございます!
0319nobodyさん
2011/10/12(水) 14:28:00.68ID:???例えば、CURLOPT_MAXREDIRSとか。
回数を指定するキーなのですが、defaultが無限なのです。
0320nobodyさん
2011/10/12(水) 14:43:18.80ID:???0321nobodyさん
2011/10/12(水) 17:06:49.54ID:???例えば、
if (1 > 0) echo yes;
というif文であれば「1 > 0」の部分を文字列として渡したいのです。
よろしくお願いします。
0322nobodyさん
2011/10/12(水) 17:17:47.20ID:???0323nobodyさん
2011/10/12(水) 17:22:31.13ID:QnHHI6Va$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]
こんな感じで表示する方法を教えてください。
0324nobodyさん
2011/10/12(水) 18:18:23.97ID:???開始の<tr>が無いしrowspanやcolspanの組み合わせが合ってるようには見えないしで
テーブルの構造が全然わからん
もっと整理してから質問して
0325nobodyさん
2011/10/12(水) 18:28:54.02ID:???whileとかのループ(データ数カウント/2の切り上げでループ終了)
<tr>
whileとかのループ(カウンタ i=2でループ終了)
<td>$rows['url'].'</td>
</tr>
//ループ終了
でいいんじゃないの?
0326nobodyさん
2011/10/12(水) 18:30:33.01ID:pJZY/82vカウンタが奇数時と偶数時で処理を分けます。
これ参考
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
0327nobodyさん
2011/10/12(水) 18:32:17.63ID:QnHHI6Vaすみません文字数制限でソース削ったのでいい加減になってました
本来はこうです。
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>');
}
0329nobodyさん
2011/10/12(水) 18:38:33.40ID:???相変わらず開始の<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>');
}
0330nobodyさん
2011/10/12(水) 18:40:04.90ID:???for ($i = 0 ; $i < ceil(sqlite_num_rows($resultHandle) / 2) ; $i++){
0331nobodyさん
2011/10/12(水) 19:18:48.74ID:???指定列数でテーブルに組むやつ。
$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>";
}
0332nobodyさん
2011/10/12(水) 20:39:09.75ID:HvWSoqtReclipseのpdtで実行しています。
php.ini
error_reporting = 0
display_errors = Off
phpinfo()で確認済み
error_reporting(0);をコード中で設定
WP_DEBUGはfalse指定
あとどこをみたらいいですか?
0333nobodyさん
2011/10/12(水) 23:58:59.95ID:J0itFWoe簡単に使えて、ダウンロードサイズの上限を設定できるものが希望です。
HTTP_Requestでできそうでしたが、サイズ上限がListenerを使ってやらないといけない感じで、
複雑になりそうなので避けたいです。
よろしくお願いします。
0334nobodyさん
2011/10/13(木) 03:44:12.06ID:???0335nobodyさん
2011/10/13(木) 09:32:58.52ID:???調べた感じ、get_headersでチェックしてからやるのがベストな気がします。
今後、content typeによって処理を変える必要性もでてきそうですし。
HTTP_Requestは、リダイレクト先にも自動で飛んでくれるのでよさげでしたが
マストではないのでget_headers方式でやってみようと思います。
ありがとうございました。
0336nobodyさん
2011/10/13(木) 14:15:32.60ID:???という文字列があった場合、
最初の%は%_%に、後ろの%は@_@に置き換えすることはかのうでしょうか?
"%_%AAAAAA@_@=1, %_%BBBBBB@_@=2"
こんな感じです。
よろしくお願いします。
0337nobodyさん
2011/10/13(木) 14:16:57.18ID:???【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0338nobodyさん
2011/10/13(木) 15:17:28.87ID:???str_replace(array("%=", "%"), array("@_@=", "%_%"), "%AAAAAA%=1, %BBBBBB%=2");
>>337
正規表現が必要になればそうだけど、まだ必要じゃないよね
0340nobodyさん
2011/10/13(木) 15:31:10.55ID:???0341nobodyさん
2011/10/13(木) 16:31:24.99ID:???>>338 の方が俺には難しい
0342nobodyさん
2011/10/13(木) 17:20:38.96ID:0wvJ8J48<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.」と記載されます
結合演算子の後はクォーテーションが必要だと理解していいでしょうか?
質問が複数になってしまいますが、よろしくお願いします
0343nobodyさん
2011/10/13(木) 17:40:43.88ID:???クオーテーションの組み合わせの勘違い
'<option value="'.$i.'">'.$i.'歳</option>'
これは、
'<option value="'
$i
'">'
$i
'歳</option>'
この5つの文字列を連結したものだからね。
ちなみに <option value="〜"> の " はHTMLのOPTIONタグの属性値をダブルクオーテーションで
囲むってことだがら、無くても動作するけど付けるべき。
0344nobodyさん
2011/10/13(木) 17:59:30.81ID:???0345342
2011/10/13(木) 18:02:45.35ID:0wvJ8J48なるほど!だいぶ理解できました!
もう1つだけ教えていただきたいのですが、
'<option value="'
$i
'">'
の部分で、$i前後のシングルクオーテーションを外しても同じ動作をするのですが
これはなぜですか?これもあってもなくてもいいものなのでしょうか?
0346nobodyさん
2011/10/13(木) 18:57:48.74ID:???>>342
> <option value=".$i.">と記述してみても結果が変わりません(クォーテーションを外した)
ブラウザの表示結果は変わらないかもしれないけど、
生成されたHTMLソースを見れば変わってるよ。
0347nobodyさん
2011/10/13(木) 18:59:06.76ID:???そうなるとスレ違いらしいよ。
要件の詳細を聞くことで正規表現が必要になるかもしれないが、>>338で書いたように「まだ」必要じゃない。
スレ違いついでに、最短一致が使える処理系ならそれを使うほうがよくない?
preg_replace("/%(.+?)%/", "%_%$1@_@","%AAAAAA%=1, %BBBBBB%=2");
0348nobodyさん
2011/10/13(木) 19:09:51.68ID:???「この処理は正規表現が適切」って話題ならいいんじゃない?
0349342
2011/10/13(木) 19:31:37.83ID:0wvJ8J48わかりました、どうもありがとうございました
0350nobodyさん
2011/10/13(木) 19:47:45.02ID:???正規表現いらないよ!>>338
ってなってるだけで、どっちも別に難しいことかいてるわけでもないような
俺も正規表現持ち出すほどじゃないと思うけど、>>336次第かなー
0351nobodyさん
2011/10/13(木) 20:03:27.20ID:???すれ違いなのは、正規表現の式だけをどうこういう場合だけ。
0352nobodyさん
2011/10/14(金) 11:48:54.10ID:jx9FhAdHリアルタイムな格闘ゲームなどを作りたいのですが、PHPでも作れますか?
もしくは最も大人数を接続して高速で処理することを考えると
もっとも向いているのはどの言語だと思われますか?
0353nobodyさん
2011/10/14(金) 11:53:00.33ID:???一般的にはjavaとかでしてる事が多いと思うけど
で、PHPで格ゲー作れるかと言われたら多分無理だろうと思う
0354nobodyさん
2011/10/14(金) 12:07:06.52ID:jx9FhAdHクライアントのほうはjavascriptで作って、サーバー側の処理として
PHPとc++やJAVAやperlを選んでいるところです
JSというのはjavascriptのnode.jsなどでしょうか?
0355nobodyさん
2011/10/14(金) 12:13:46.00ID:oOJ5iuHvVはHTMLとか書いてあるところですよね?
Mは、書き込み 検索 置換 とか処理するところですよね?
Cは、なにするところがCなんでしょうか?
0356nobodyさん
2011/10/14(金) 12:23:59.65ID:???通信速度については言語差はあまりないだろうが。
問題は通信でない格闘ゲームでさえ困難な点。
たとえばストリートファイターが作れるかよ。
0357nobodyさん
2011/10/14(金) 12:25:23.59ID:???0358nobodyさん
2011/10/14(金) 12:28:24.04ID:???フリーとは思えないほど超絶クオリティの2on2対戦格闘ゲーム「ヴァンガードプリンセス」
http://gigazine.net/news/20090703_vanpri/
http://gigazine.jp/img/2009/07/03/vanpri/sc0.png
http://gigazine.jp/img/2009/07/03/vanpri/top.jpg
http://gigazine.jp/img/2009/07/03/vanpri/sc1.png
http://gigazine.jp/img/2009/07/03/vanpri/sc3.png
http://gigazine.jp/img/2009/07/03/vanpri/sc5.png
0359nobodyさん
2011/10/14(金) 12:36:53.64ID:jx9FhAdHそこは頑張って作ります・・・
もし完成度が低かったとしても、趣味なので勉強になればよしかなと・・・
問題は、仕様的にPHPだとF5を押してようやく更新されるというイメージがあるので心配なのですが
そのあたりは大丈夫なのでしょうか?
リアルタイムと言う点についてはperl,C++,PHP,javaなどどれを選んでも大丈夫なのでしょうか?
0360nobodyさん
2011/10/14(金) 12:42:18.69ID:???http://www.starruby.info/ja/about
0361nobodyさん
2011/10/14(金) 12:53:17.86ID:???通信速度だけだったらリアルタイムはできるだろうが。
リアルタイムの2Dや3Dが無理っぽいだろ。これは努力とは関係ない。
0362nobodyさん
2011/10/14(金) 13:02:36.11ID:jx9FhAdHRUBYという手もあるんですね
>>361
そのあたりはwebsocketを使えば基本的にはどの言語でも可能ということなのでしょうか・・・
PHPでのwebsocketの情報があまり見つからなかったのでもしかして
もっとメジャーな方法があるのかと思ったのですが・・・いけそう・・でしょうか?
頑張ってみます
0363nobodyさん
2011/10/14(金) 13:10:39.88ID:???通信は後から付け足せる。
0364nobodyさん
2011/10/14(金) 13:20:27.79ID:???0365nobodyさん
2011/10/14(金) 13:27:40.98ID:???0366nobodyさん
2011/10/14(金) 13:30:53.19ID:???「がんばる」等というくせには本当にやり通す意欲がないどころか、
結局のところすぐにぐだぐだになって自然消滅・雲散霧消・空中分解するのがオチだ
やたらと風呂敷を広げたがるのも厨2病ということかな
↓参考にされたし
2ちゃんねるでプログラマを募集するも誰も応募せず
「プログラマーさんが足りない」とぼやいて夢想するだけの
『SonicNewGameProject』
ttp://jbbs.livedoor.jp/otaku/14790/
何かを成し遂げたければ、口を動かさずに手を動かせ
0367nobodyさん
2011/10/14(金) 13:38:46.66ID:jx9FhAdH通信部分のネット言語での可能不可能を・・・教えてくだしあ・・・
0368nobodyさん
2011/10/14(金) 13:43:32.59ID:???0369nobodyさん
2011/10/14(金) 13:44:10.23ID:???そしたらALL C++でいけよ。
0370nobodyさん
2011/10/14(金) 13:44:18.05ID:???0371nobodyさん
2011/10/14(金) 13:45:15.17ID:???tcpの通信ならnode.jsとかそこらを使えば良い
javaやらでも良いと思う
0372nobodyさん
2011/10/14(金) 13:53:58.27ID:???PHPと比較したって明らかにAja.xに優位性があるだろう
0373nobodyさん
2011/10/14(金) 14:01:02.95ID:???0374nobodyさん
2011/10/14(金) 14:02:03.97ID:???0376nobodyさん
2011/10/14(金) 14:37:21.79ID:jx9FhAdHPHPかALL C++やJAVA等いろいろ試して勉強します・・・
というか、リアルタイムということに関しては速度の問題意外では
仕様としてはどれでもいけると考えてよさそうですね
ありがとうございました
0377nobodyさん
2011/10/14(金) 14:39:54.18ID:???まあ、C++できるっていうんならC++でサーバー作って、
PCアプリ側もC++&DirectXで作ればいいだろ
必要なタイミングで好きにサーバーとPC間で通信をすればいい
プログラミング言語は目的を達成するための手段・道具に過ぎない
プログラミング言語を覚えただけのプログラマはプログラマではない
指示通りにコーディングするだけの、ただのコーダーだ
0379nobodyさん
2011/10/14(金) 15:36:58.05ID:oOJ5iuHvということは
ififしてたりSwitchSwitchしてるところが
コントローラですね。
0380nobodyさん
2011/10/14(金) 16:20:37.04ID:1QDNnIHe0381nobodyさん
2011/10/14(金) 16:25:39.63ID:???0382nobodyさん
2011/10/14(金) 16:48:22.22ID:???0383nobodyさん
2011/10/14(金) 17:26:06.47ID:???夏ばて気味のザリガニに葛根湯を与えてみようなんて
殺す気だとしか思えない
マジ気狂い
気が狂っとる
0384nobodyさん
2011/10/14(金) 17:29:43.79ID:???葛根湯の販売を行っている者です。
そのような書き込みは根拠なく葛根湯の評判を下げようとする行為で容認できません。
関係官庁には既に通報いたしました。
また損害賠償請求訴訟の準備を進めております。
0385nobodyさん
2011/10/14(金) 17:45:36.16ID:???では、訴状を確認するまでレスは差し控えさせていただきます
遠方であった場合は移送申立もしなければなりません
関係官庁とはどちらでしょうか
当方、浅学寡聞ながら当該の機関に心当たりがありませんが?
0386nobodyさん
2011/10/14(金) 18:19:00.84ID:???あんまりふざけて書かないほうがいいよ
0387nobodyさん
2011/10/14(金) 18:40:51.77ID:???0389nobodyさん
2011/10/14(金) 20:20:06.52ID:???脅迫罪が成立するのは「権利行使の意思がなく相手を畏怖させる目的で告知した場合」です。
つまり、結果として実際に訴訟を起こさなかったとしても、告知した時点で提訴する意思があれば
脅迫罪は成立しません。
中途半端な知識で適当なことを書くと恥をかくよ。
葛根湯の購入を行っている者です。
実際に購入を行っているので身分詐称には当たりません。
0390nobodyさん
2011/10/14(金) 21:17:53.40ID:???0391nobodyさん
2011/10/14(金) 22:10:16.97ID:???0392nobodyさん
2011/10/14(金) 23:08:47.53ID:???0394nobodyさん
2011/10/15(土) 00:15:43.63ID:???0395nobodyさん
2011/10/15(土) 03:10:30.32ID:???0396nobodyさん
2011/10/15(土) 08:11:59.16ID:???同じドメイン下にform1.phpからform5.phpまで5つのページがあるのですが、他のページに移動した時に前のページのセッション($_SESSION[id]など)が残ったままになってしまいます。
セッション初期化処理を各ページ下に入れれば済む問題だと思ったのですが、それだとセッションが全て空になりますよね。
ページ1に一時的に書いていた情報はページ1にそのまま維持し(ページ2には表示しない)、ログイン情報のような一部セッションは保持したままにしたいです。
セッションIDやセッションファイルか同じなのが原因だと思うのですが、ページごとにセッションID、セッションファイルなどを分けることは出来ますか?
0397nobodyさん
2011/10/15(土) 08:25:05.53ID:???$_SESSION['全域']['ログインユーザー名'] = 'foo';
$_SESSION['ページ毎'][__FILE__]['ほげ'] = 1;
$_SESSION['ページ毎'][__FILE__]['ふが'] = 2;
0399nobodyさん
2011/10/15(土) 09:27:35.65ID:???セッションにばかすか入れりゃ当然負荷はかかる
問題になるなるようなら標準のセッションは一度忘れて
必要になったときに初めて読み込む仕組みを実装するだけ
0401nobodyさん
2011/10/15(土) 10:06:41.58ID:WVUj974dこのスプリクト配布サイトのプログラムを参考にしようと
ソースを分析、解析してたのですが、
Smartyのテンプレートファイル内で、Smartyタグで
あったら価格表示… なかったら無料と表示… みたいな感じで
簡単なif条件等がたくさん書かれてました。
個人的には、あらかじめphpで 条件振り分けをしたものを
smartyに渡してやったほうがスマートなのでは?
と思ったんですが、実際
どっちの方法がいいでしょうか?
0402nobodyさん
2011/10/15(土) 10:25:41.44ID:???PHPプログラマ〜の、お姉さんだよぉ〜
今日は雨が降ってるから、セフレとのデートが中止になっちゃった
暇だから、くだらない質問でオナニーするね。
どんな質問が残ってるのかな?
0404nobodyさん
2011/10/15(土) 12:05:07.65ID:???0405nobodyさん
2011/10/15(土) 12:25:27.58ID:???$str = "study apple orange";
配列に含まれる値が文章中にあればその文字列を括弧で囲う方法を教えてください
0407405
2011/10/15(土) 12:34:30.37ID:wr4+50u7よろしくお願いします
0408nobodyさん
2011/10/15(土) 12:41:06.25ID:???0409405
2011/10/15(土) 13:10:28.93ID:wr4+50u70410nobodyさん
2011/10/15(土) 13:32:25.67ID:???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みたいにかぶった時は変になるしおすすめしない
0411nobodyさん
2011/10/15(土) 16:16:18.59ID:CzCq/m3jaddDefaultCharset UTF-8
をOffに変更するとmysqlに接続できなくなりました。
mysql_connectにエラーが出ます。エラー文は以下のとおりです。
mysql_connect(): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
だれか原因を教えて下さい
0412nobodyさん
2011/10/15(土) 16:22:46.98ID:???addDefaultCharset UTF-8
をOffに変更したことが原因だと思うな
0413nobodyさん
2011/10/15(土) 16:49:16.36ID:CzCq/m3jOffにしてもmysqlに接続できる方法を教えて下さい!
0414nobodyさん
2011/10/15(土) 17:07:33.65ID:???0415nobodyさん
2011/10/15(土) 17:07:57.37ID:???・UTF-8とかOnに戻して正常に接続できるかどうか試したか?
・ApacheとMysqlを再起動してみたか
0417nobodyさん
2011/10/15(土) 17:28:52.97ID:???俺もaddDefaultCharset使ってるんだが
0418nobodyさん
2011/10/15(土) 17:32:22.70ID:dF1cg2Wa自分はSQL文を自分で書くのですが、prepare()->bindParam()execute()のような記述以外は使わないもので
何かmysqliとか個別のものを使用した場合と何が違うのかなと思いまして
SQL文を自分で書く場合、あまりアダプタによる機能は必要ないのですが、やはり処理速度とかが専用な分早いとかあるのでしょうか?
0419nobodyさん
2011/10/15(土) 17:34:21.29ID:CzCq/m3jもう少し細かく状況を説明します。
OS SL6.0
apache yum で適当に入れたもの
もともと addDefaultCharset UTF-8 の設定で幾つかサイトを運営中 DBの接続も普通にできてる
ちょっとした仕事でsjisでhtml吐かないといけない案件がきた。
default charsetのためhtml内のcharsetを無視して文字化け
defaultCharset を Offにするとsjisのページは文字化けなく見られるが
もともとのDB使ったサイトで接続エラーが出る\(^o^)/
こんな感じです。
my.cnfとかの設定臭い感じはしている。。
0421nobodyさん
2011/10/15(土) 18:11:49.32ID:CzCq/m3jこうなってます
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
0423nobodyさん
2011/10/15(土) 19:06:59.31ID:???0424nobodyさん
2011/10/15(土) 20:13:22.06ID:CzCq/m3jmysqldを再起動したらいけました。。
ありがとうございます
0425nobodyさん
2011/10/15(土) 21:48:37.60ID:???'user_ほにゃらら' みたいな感じで、
特定の法則に基づいたキャッシュのみ再構築とかしたいのだけれど。
0426nobodyさん
2011/10/15(土) 22:34:54.21ID:???やってみればわかると思うけど、ループのほうが早かったり、メモリ食わないんだなこれが。
1000000文字 でも 10000000文字でも 20倍ぐらいループのほうが早かった。
検索文字が増えても
0428nobodyさん
2011/10/15(土) 23:07:40.35ID:???0429nobodyさん
2011/10/15(土) 23:43:28.93ID:???0430nobodyさん
2011/10/16(日) 00:13:59.94ID:???対象文字列はa-zA-Z0-9のランダム文字列。
foreach( $list as $var )
$str = str_replace($var,"(".$var.")",$str);
20倍がありえないと思うのが俺には不思議。
0431nobodyさん
2011/10/16(日) 00:54:26.65ID:???低速の機能を避ける方法で20倍程度の差はよくある
0432nobodyさん
2011/10/16(日) 01:07:32.96ID:???現状、鯖を増やせば手っ取り早いんだから
0433nobodyさん
2011/10/16(日) 01:11:46.50ID:???議論しなきゃ始まらないじゃないか
0434nobodyさん
2011/10/16(日) 01:13:12.16ID:CNmy+DB1リファラのパラメータが無視されてしまいます。
良い方法がありましたらよろしくお願いします。
<?
$referer = $_SERVER["HTTP_REFERER"];
echo $referer;
?>
×××.com/index.php?link=01
↓
×××.com/index.php (パラメータが無かった事になってる)
0436nobodyさん
2011/10/16(日) 02:38:54.65ID:CNmy+DB1コメントありがとうございます
↓の部分でしょうか? これがどういう意味なのかは理解できませんが...
session.referer_check no value/Local Value no value/Master Value
※さくらレンタルサーバ
0437434,436
2011/10/16(日) 03:10:05.29ID:CNmy+DB1↓で問題なく目的が達成できました。お騒がせしてごめんなさい。
<?
$filename = $_SERVER["PHP_SELF"]."?".$_SERVER['QUERY_STRING'];
echo $filename;
?>
×××.com/index.php?link=01
↓
×××.com/index.php (パラメータが無かった事になってる)
0438nobodyさん
2011/10/16(日) 03:17:00.48ID:???0439nobodyさん
2011/10/16(日) 09:25:15.48ID:???正直これより早く&軽く出来るやり方思いつかない。何かある?
forもwhileもforeachに歯が立たないし、pregやeregよりstrの方が速いよな。
0441nobodyさん
2011/10/16(日) 10:21:51.61ID:???0442nobodyさん
2011/10/16(日) 13:29:34.22ID:85Bgp1nu”エラーログ”
みたいな エラーの足あとが残る
処理って何かしらいれてますか?
0443nobodyさん
2011/10/16(日) 14:10:54.87ID:???0444nobodyさん
2011/10/16(日) 14:17:16.84ID:???0445nobodyさん
2011/10/16(日) 14:44:07.94ID:???0447nobodyさん
2011/10/16(日) 15:23:42.20ID:TKoBrJts0448nobodyさん
2011/10/16(日) 15:46:21.07ID:???0449nobodyさん
2011/10/16(日) 15:47:43.46ID:???http://www.php.net/manual/ja/language.oop5.basic.php
0450nobodyさん
2011/10/16(日) 15:53:31.54ID:???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
0452nobodyさん
2011/10/16(日) 16:36:52.15ID:???->はアロー演算子です
0453296
2011/10/16(日) 16:56:28.31ID:C+pd3s/1いまだ原因がわかりません・・・
おっしゃるようにGDのバグなんでしょうか?
検索してもそれらしいのは見つからないのですが・・・
0454nobodyさん
2011/10/16(日) 17:23:02.18ID:???画像処理のコードはまずRGBからHSVへ変換するわけで
この変換した値は変換もとのデータと完全に互換があるわけじゃないぞ
その辺の色の知識がある前提でバグって言ってるなら黙っててやるが
0457nobodyさん
2011/10/16(日) 18:31:17.89ID:???PHP: Search results
No matches
http://jp.php.net/results.php?q=%E3%82%A2%E3%83%AD%E3%83%BC+%E6%BC%94%E7%AE%97%E5%AD%90&l=ja&p=all
スコープ 演算子
PHP: Search results
Showing results 1 to 10 of 28
http://jp.php.net/results.php?q=%E3%82%B9%E3%82%B3%E3%83%BC%E3%83%97+%E6%BC%94%E7%AE%97%E5%AD%90&l=ja&p=all
0458nobodyさん
2011/10/16(日) 18:42:29.05ID:???->
ちなみにこれはアロー演算子とも矢印演算子とも言われているどちらも->の事をいう
http://jp.php.net/manual/ja/language.oop5.static.phpに書いてありますね?
>矢印演算子 -> によりオブジェクトからアクセス することはできません。
バカは自分で調べも出来ないからもう一度言っておこうか
http://jp.php.net/manual/ja/language.oop5.static.phpに書いてありますね?
>矢印演算子 -> によりオブジェクトからアクセス することはできません。
0460nobodyさん
2011/10/16(日) 19:00:38.81ID:???正式名称を特に定義してないってことを言いたいだけなんじゃないの。
>>458はアロー演算子といわないとダメだと言い張ってるようだけど
http://jp.php.net/manual/ja/tokens.php
をみると、オブジェクト演算子と言いたそうにも読めるよ。
0461nobodyさん
2011/10/16(日) 19:20:39.22ID:???PHPにポインタってあったか?
0462nobodyさん
2011/10/16(日) 19:24:47.65ID:???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
0463nobodyさん
2011/10/16(日) 20:23:59.60ID:???0464nobodyさん
2011/10/16(日) 20:34:58.53ID:85Bgp1nu}
if($hoge != ""){
}
if($hoge != null){
}
ってどれがスマートですか?
どれで書いてますか?
0466nobodyさん
2011/10/16(日) 20:47:38.44ID:???0469nobodyさん
2011/10/16(日) 21:17:02.22ID:???かっこつける前に言語仕様と自分の目的をきちんと理解してください。
「このコードはなぜこう書いたのですか?」と質問されて「えっ?なんとなく」というのが一番かっこ悪いです。
0470nobodyさん
2011/10/16(日) 21:20:29.40ID:???0471nobodyさん
2011/10/16(日) 21:21:50.69ID:???nullじゃない場合のif文はどれがいいのか聞いているんだよ。
それで、3つとも同じ処理をすると思っているのよ。
わかるだろ?
0472nobodyさん
2011/10/16(日) 21:35:54.18ID:???知恵袋にも低レベルな回答してるのに似たような事してる奴いるけど同一人物か
0473nobodyさん
2011/10/16(日) 21:41:59.58ID:???0474nobodyさん
2011/10/16(日) 21:53:08.96ID:85Bgp1nuif($hoge != "")
if($hoge != null)
ごめんなさい 違い 教えてください
0475nobodyさん
2011/10/16(日) 22:16:37.34ID:???if($hoge != "")
false 0
if($hoge != null)
false 0 array()
0476nobodyさん
2011/10/16(日) 23:40:52.05ID:???ここ読んで
http://jp2.php.net/manual/ja/types.comparisons.php
0477nobodyさん
2011/10/17(月) 04:17:21.49ID:???ついでにissetとemptyもみるんだけど、毎度emptyの使い道が見つからずに終わるパターン
0478nobodyさん
2011/10/17(月) 05:25:34.40ID:???\' 意味無いですよね・・
0479nobodyさん
2011/10/17(月) 06:21:53.47ID:???http://jp.php.net/manual/ja/language.types.string.php#language.types.string.syntax.single
とりあえずここ読んでみたらどう
0480nobodyさん
2011/10/17(月) 06:21:53.51ID:KSPkfapDSQLiteDatabaseの numRows() のような関数を探してます。
0481nobodyさん
2011/10/17(月) 06:24:34.56ID:???http://jp.php.net/manual/ja/function.sqlite-num-rows.php
だめ?
0482nobodyさん
2011/10/17(月) 06:30:08.51ID:???http://jp.php.net/manual/ja/pdostatement.rowcount.php
selectの場合はcount(*)を別に発行しろという残念なお知らせかも知れないです。
0483nobodyさん
2011/10/17(月) 06:55:58.15ID:KSPkfapDなるほどcountで取得することにします!
ありがとうございました。
0484nobodyさん
2011/10/17(月) 10:11:46.33ID:O7ICnLpb最新の銅ベースを取得できるAPIなどはないでしょうか?
既存のサイトの内容をPHPに取得させるしかないのでしょうか?
0485nobodyさん
2011/10/17(月) 10:30:29.76ID:???0486484
2011/10/17(月) 10:47:57.57ID:O7ICnLpbはい 金属の銅の1t当たりの取引価格です
取り扱っている部品がほとんど銅の塊なので
変動を日毎に取得したいと考えています
0487nobodyさん
2011/10/17(月) 10:49:14.99ID:???色々とアウトだろうけど
0488nobodyさん
2011/10/17(月) 10:51:14.63ID:???0489nobodyさん
2011/10/17(月) 11:08:10.45ID:???0490nobodyさん
2011/10/17(月) 11:17:48.00ID:IhQxdaPxif($hoge == null){
echo ok;
}else{
echo ng;
}
実効したら "ok" ってでるんですけど
0ってnull なんですか?
0という値がはいってるからnull じゃないと思ったんですが…
0491nobodyさん
2011/10/17(月) 11:20:13.17ID:???http://php.net/manual/ja/types.comparisons.php
==による緩やかな比較
===で比較するのが良いよ
0492nobodyさん
2011/10/17(月) 11:48:09.12ID:???0493nobodyさん
2011/10/17(月) 11:49:54.98ID:???0494nobodyさん
2011/10/17(月) 11:57:20.48ID:???0496484
2011/10/17(月) 12:18:26.07ID:O7ICnLpbやはり無いですか・・・
外部のWEBの内容の自動取得がOKなのか不明ですが
技術的に可能か確認してみます・・・
0497nobodyさん
2011/10/17(月) 13:54:45.76ID:x7xkAlv7phpのプロジェクト/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ユーザに割り当てています
で、どうしてかなと思い、めんどくさいながらも相対パスにて何度も../../~のようにすると表示されました
0498nobodyさん
2011/10/17(月) 13:59:26.19ID:x7xkAlv7・・・と書いた後調べるとHTMLは相対URIと絶対URI(http://~)しか書かれていません。
でもやはりディレクトリ構造の絶対パスの方が記述しやすいのでそうしたいのですが、皆さんはどのように対応されているのでしょうか?
0499nobodyさん
2011/10/17(月) 14:15:01.55ID:???0500nobodyさん
2011/10/17(月) 15:07:04.19ID:???0501nobodyさん
2011/10/17(月) 18:55:51.92ID:???0502498
2011/10/17(月) 19:43:38.85ID:???しかし、やっぱhttp://〜又は../../で指定しなければいけないのでしょうか?
MVC構造で公開フォルダを分けて作ると良く分からなくなります
0503nobodyさん
2011/10/17(月) 19:53:39.83ID:???で、ドキュメントルートを/にしてみたかね
0504nobodyさん
2011/10/17(月) 21:53:50.63ID:x7xkAlv7遅くなりました
今httpd.confのDocmentRootを上記のpublicに変更しました
で、アクセスしてみたのですが>>503さんが意図した事が恐縮ですが良く分かりません
DocRootがpublicになったため、自分が上で思っていた.tplファイルからの絶対パスから、相対パスが./img/a.gifになったのかなと思い
そのように指定したのですが表示されませんでした
ZendFramework使っているのでURIはhttp://localhost/hoge/foo/barとなっております
0505nobodyさん
2011/10/17(月) 21:56:41.33ID:x7xkAlv7HTMLのソースを表示させてみたのですが分かりません
ちなみに.tplは/application/modules/hoge/views/scripts/foo内にあります
0506nobodyさん
2011/10/17(月) 23:28:29.98ID:???0507nobodyさん
2011/10/18(火) 00:22:58.16ID:???/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 を探して返す
0508nobodyさん
2011/10/18(火) 03:37:01.86ID:YMkWTgenよいライブラリはありますか?
また、Java の SVF や JasperReports + iReport みたいに、
デザイナがあるとうれしいです。
ググったところ、PDFlib、FPDF、TCPDFというのを見つけましたが、
・PDFLib→商用利用の場合、費用が掛かる
・FPDF→日本語に弱い?
・TCPDF→なんかよさげ、デザイナはないけどテンプレートにHTMLを使える?
普段はJavaを使っているのですが、PHPだとあまりPDFをサーバサイドで
生成する、というニーズはないのかな。
デザイナまであるソフトウェアはなさそうですね・・・
なお、環境はLinuxです。
0509nobodyさん
2011/10/18(火) 04:20:08.95ID:???> PDFLib→商用利用の場合、費用が掛かる
お金(18萬)が未払だとPDFLIB.COMとか勝手に印刷されるんじゃね。
>FPDF→日本語に弱い?
弱い?とは何?
ただし表とか作れたっけ?
0510nobodyさん
2011/10/18(火) 08:35:45.52ID:dXFVaHOBmysql_query()使ってたら友達にバカにされましてorz
0511nobodyさん
2011/10/18(火) 09:07:02.12ID:???mysql以外へのDB対応が容易。
PHPのバージョン次第で動かなくなることもあるからmysql_queryで書く方が安心といえるが。
0512nobodyさん
2011/10/18(火) 09:25:12.61ID:???まぁ速度的な面ではネイティブ関数にはかなわんし
パフォーマンスを求めてかつmysqlだけでいいなら
mysql関数でも別にいいんじゃないの
明確な目的があって使ってるならバカにされる理由なんてないんだが
0513nobodyさん
2011/10/18(火) 09:41:12.21ID:???PDOやらMDB2等の抽象化レイヤーと比べるならまだしも・・・
0514nobodyさん
2011/10/18(火) 10:10:39.21ID:???0515nobodyさん
2011/10/18(火) 10:19:26.99ID:???ラッパー使っても大差なし
0516nobodyさん
2011/10/18(火) 10:27:23.46ID:???0517nobodyさん
2011/10/18(火) 10:40:18.52ID:???DBに問い合わせするだけのためにPear呼んで、自分も100KB超えの無駄にでかく使わん機能てんこ盛りのを
これでいいんだとおもっちゃまうようなのをな。
0518nobodyさん
2011/10/18(火) 10:43:10.04ID:???0519nobodyさん
2011/10/18(火) 10:45:08.96ID:???実際は移行作業の手間やらSQLでベンダ独自のクエリ書いてないかのチェックやからが大変で
結局移行しないっていうのは多いしな
0520nobodyさん
2011/10/18(火) 10:47:05.25ID:???0521nobodyさん
2011/10/18(火) 11:05:09.26ID:???標準SQL書ける技術者がどの程度いるか疑わしい
だいたいPHPやってるやつはMySQL脳だからな
0522nobodyさん
2011/10/18(火) 11:06:35.83ID:???0523nobodyさん
2011/10/18(火) 11:21:39.13ID:???0524nobodyさん
2011/10/18(火) 11:23:16.82ID:???0525508
2011/10/18(火) 11:53:37.91ID:???ここを見ました。
http://flyfront.blog.shinobi.jp/Entry/32/
0527nobodyさん
2011/10/18(火) 13:01:55.52ID:???・ブログで見ただけでそれが答えだと思い込む
・誰かが「出来る」といった後に誰かに「出来ない」と言われると自分で試しもせずに出来ない意見を尊重する
0528nobodyさん
2011/10/18(火) 13:07:35.52ID:???そろそろお帰り願いたい
それともAjax厨がまた別人格作ったんですか?
0530525
2011/10/18(火) 13:23:59.67ID:???まずは TCPDF を試すか、
PDFlib の価格は、ウイングアークのSVFに飼いならされたJava厨としては
そんなに高くないので、PDFlib を試してよさそうであれば、ライセンスを購入しようと思います。
0531nobodyさん
2011/10/18(火) 13:48:17.19ID:???素のPDFlibをありがちな鯖OSに入れる場合がその値段かな。
ブロックプラグインだったかな、を使おうとすると、アクロバットも必要になるよ
0532525
2011/10/18(火) 13:52:57.74ID:???http://pdflib.hykw.tv/
と
http://pdflib.techstyle.jp/products/prices.html
あたりを、今読んでいます。
0533525
2011/10/18(火) 13:57:48.61ID:???> ブロックプラグインだったかな、を使おうとすると、アクロバットも必要になるよ
PPF(PDFlib Personalization Server)
http://pdflib.hykw.tv/#3-3
をつかう場合、
雛形のPDF(可変となる部分をブロック(変数)にしておく PDF)を作るのに Adobe Acrobat が必要であり、
実際のPHPが動くサーバには Acrobat は必要ない(PHP が PDF を生成するとき)、という理解でいいですよね?
0535nobodyさん
2011/10/18(火) 14:54:24.24ID:???0536nobodyさん
2011/10/18(火) 14:59:41.11ID:???0539533
2011/10/18(火) 15:20:19.65ID:???どうもありがとうございます。
PDFlib は PHP 以外の言語バインディングもあるみたいなので、
Java でも今度使ってみよう
0541nobodyさん
2011/10/18(火) 15:28:44.49ID:???0544nobodyさん
2011/10/18(火) 18:19:13.63ID:???「お安い御用です。」は複数のスレ、複数の板にまたがってるからわかるよw
0545nobodyさん
2011/10/18(火) 19:42:23.64ID:???Tシャツきた白いひょろいメガネがPHP本読んでて
ちょっと悲しくなった
0546nobodyさん
2011/10/18(火) 19:53:59.79ID:Pgoz7r+6MACで製作していますか?
0547nobodyさん
2011/10/18(火) 21:09:20.72ID:L6EXgykqユーザ登録時とかのフォームです
Entry Form、SignUp Form、Register Fromとか考えたんですが・・・
0548nobodyさん
2011/10/18(火) 21:33:24.72ID:???http://hibari.2ch.net/test/read.cgi/tech/1311942721/
0549nobodyさん
2011/10/18(火) 22:12:10.64ID:???そのサイトは外部から多数のファイルを読み込んでいて、そこに定義してある「ユーザー定義関数」を
利用して作られている。
俺はその定義されてる関数の中身が見たいんだけど、ファイルが多すぎて一々ファイルを開いて検索するのは
時間が掛かり過ぎる。
読み込まれている外部ファイルも含めて簡単に関数を探し当てる方法ってありますか?
0550nobodyさん
2011/10/18(火) 22:14:55.89ID:???0551nobodyさん
2011/10/18(火) 22:48:26.06ID:L6EXgykqありがとうござます
ところで、皆さんはsessionをfile、database、どちらで保管していますでしょうか?
デフォルトはfileで、自分もわざわざデータベースへの接続は・・・って思っていたんですが、調べるとデータベースの方が多いようなので
0552478
2011/10/18(火) 23:08:23.03ID:???ありがとうございます。
すみません遅くなりました。
つまり ' ' 内でも \'のエスケープは有効で \nなどが無効という認識でいいのですね
エスケープ自体ができないと思い込んでました。。
0555nobodyさん
2011/10/18(火) 23:52:49.06ID:???0558nobodyさん
2011/10/19(水) 10:25:26.86ID:???PHPプログラマ〜のお姉さんだよぉ〜
今日は有休で休んじゃった。
暇だから質問に答えるよぉ〜
0559nobodyさん
2011/10/19(水) 10:50:17.31ID:???0560nobodyさん
2011/10/19(水) 12:10:52.13ID:PXmn+I34あれ考えるのに作業時間の何分の1かが奪われるんですが。
英語圏人がうらやましい。
0561nobodyさん
2011/10/19(水) 12:14:51.33ID:???0563nobodyさん
2011/10/19(水) 13:22:36.03ID:???わけわからないEngrish使うよりはましだろ
0564nobodyさん
2011/10/19(水) 13:24:54.22ID:???0565nobodyさん
2011/10/19(水) 14:18:42.85ID:YBpJRiZ70566nobodyさん
2011/10/19(水) 14:29:08.27ID:???もっと早く入れておけばよかった・・・
0567nobodyさん
2011/10/19(水) 14:32:54.48ID:???ちょっとずつ言い方こそ変えてるが
理解出来ないなら理解できないって言えばいいだけで
別人装って聞きなおさなくていいよ
0569nobodyさん
2011/10/19(水) 15:36:40.73ID:???0570nobodyさん
2011/10/19(水) 16:09:31.08ID:???0571nobodyさん
2011/10/19(水) 16:09:46.11ID:???0572nobodyさん
2011/10/19(水) 16:10:01.96ID:???0573nobodyさん
2011/10/19(水) 16:26:07.98ID:???0574nobodyさん
2011/10/19(水) 16:27:10.21ID:YBpJRiZ7/tmp/xdebug等とするとディレクトリが作れないし
/tmpにするととっちらかります
みなさんどこにしてますか?
専用のディレクトリを作って起動時削除とかかな〜
0575nobodyさん
2011/10/19(水) 16:39:32.63ID:???0576nobodyさん
2011/10/19(水) 16:40:46.17ID:???にしました
たしかに開発機にしか入れないので毎回削除とかしなくてもいいかもですね
0577nobodyさん
2011/10/19(水) 17:11:03.43ID:???あと、一緒に画像も貼り付けできますか?
0578kuma
2011/10/19(水) 18:13:07.96ID:N0wNQTCihttp://fu-hou.com/
このようなサイトをつくりたいです
リンクしているところから、キーワードを探して、表示するということは、どのようにすれば良いでしょうか?
0580nobodyさん
2011/10/19(水) 18:15:35.91ID:???質問が漠然としすぎていて、何が知りたいのかがわかりません。
PHPに関係のない質問だったら別のところでどうぞ。
0582kuma
2011/10/19(水) 18:52:42.58ID:N0wNQTCiすいません
キーワードをきめて、
ニュースサイトから、
自動で、必要な情報(キーワードに関係のあること)を取って表示するということは、どのようにしたらよいでしょうか?
0583nobodyさん
2011/10/19(水) 19:11:13.10ID:???simplexmlあたり使ってxmlをパースして
そんで記事の本文中からキーワードを検索して
あとはわかるな?
0584kuma
2011/10/19(水) 19:31:05.47ID:N0wNQTCi>>583
ありがとうございます
RSSを調べてきます
>>583
検索したものを
echoするですよね?
調べてきます
0585nobodyさん
2011/10/19(水) 19:32:52.95ID:???0586nobodyさん
2011/10/19(水) 20:34:22.04ID:3Y/Xg53M" の中で " を使う場合、A先生は\"でいいと言っていて、
B先生は、" の中で " は使えないから ' を使いなさい、と言っていました
例:
A先生 print"<img src=\"jpg\">"
B先生 print"<img src='jpg'>"
どっちが正しいんでしょうか?
実際、A、B両方表示できました
○○先生はこうやってましたとか聞きづらい空気なんで教えてください
0588nobodyさん
2011/10/19(水) 20:43:54.82ID:xYuYvl/qマニュアル読んでもサッパリ分かりませんでした
具体的にはどういうものなのでしょうか?
他サイトとかと通信するような例文が書かれていましたが、TCP/IPとかそういうものの為のものなのでしょうか?
そうだとしても、cUrlとかあるので、違いが分かりません
0589nobodyさん
2011/10/19(水) 20:54:38.57ID:3Y/Xg53Mどっちでも問題ないんですね
ありがとうございます
自分も\が使いやすいので今日、\"の方でやっていたら
B先生に激しく否定されてしまったので、ダメなのかと思ってました
0590nobodyさん
2011/10/19(水) 21:50:55.85ID:???> 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先生と話してみてはどうか。
0591nobodyさん
2011/10/19(水) 21:52:35.39ID:???エスパーすると
> 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先生と話してみてはどうか。
0592nobodyさん
2011/10/19(水) 22:04:14.12ID:???最終的には自分で判断しないとだめ
>>588
wikipediaを読んでもわからないなら今は諦めたほうがいい
そのうち分かるよ
0593nobodyさん
2011/10/19(水) 22:12:01.67ID:VUkV/Zvl$hogeの文字列「aaa」を「bbb」に置換するとき
$hoge = preg_replace("/aaa/","bbb",$hoge);
としていますが、「aaa+改行」でも同じように置換するにはどうしたらいいでしょうか?
$hoge = preg_replace("/aaa\r\n/","bbb\r\n",$hoge);
を追加するだけでもできますが、これを1行でやりたいと思っています。
0594nobodyさん
2011/10/19(水) 22:13:56.45ID:???http://jp2.php.net/manual/ja/reference.pcre.pattern.modifiers.php
0595nobodyさん
2011/10/19(水) 22:19:33.54ID:zH8RXMin【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>';
?>
0596nobodyさん
2011/10/19(水) 22:20:17.27ID:YBpJRiZ7mb_convert_kanaを使って
「う゛」
を
「ヴ」
にするにはどうしたらいいでしょうか?
オプションを"CV"にしてもウ゛になってしまいます。
0598nobodyさん
2011/10/19(水) 22:54:10.76ID:???0599nobodyさん
2011/10/19(水) 23:15:34.24ID:???echo '<a href="next.php?no=$i">ナンバー'.$i.'にジャンプ</a><br/>';
<?php
$i = isset($_GET["no"]) ?: "err";
echo '<h1>ナンバー'.$i.'</h1>';
0602nobodyさん
2011/10/20(木) 00:34:59.37ID:???http://php.net/manual/ja/function.mb-convert-kana.php
V 濁点付きの文字を一文字に変換します。"K", "H" と共に使用します。
0603nobodyさん
2011/10/20(木) 00:35:53.30ID:???http://php.net/manual/ja/function.mb-convert-kana.php
V 濁点付きの文字を一文字に変換します。"K", "H" と共に使用します。
0605nobodyさん
2011/10/20(木) 02:10:26.74ID:???様々なプロトコル(ローカルファイル、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
0606nobodyさん
2011/10/20(木) 02:23:45.32ID:???$hoge = preg_replace("/aaa/","bbb",$hoge);
これだけで望む結果が得られない理由がわからないので、例をお願いします。
少なくとも>>593だけじゃsオプションがどうとかいう話はまるで的外れなので…
0607nobodyさん
2011/10/20(木) 03:38:53.23ID:L7UL36csどこかのファイルからincludeされているかを
判定する方法を教えて下さい
0608nobodyさん
2011/10/20(木) 03:39:37.61ID:???2段構えしかないだろうね。一度半角カタカナにしてから全角カタカナにする。
$a = "う゛";
echo mb_convert_kana(mb_convert_kana($a, "h", "UTF-8"), "KV", "UTF-8");
0610nobodyさん
2011/10/20(木) 03:55:32.86ID:???realpath($_SERVER['SCRIPT_FILENAME']) === realpath(__FILE__)
0612nobodyさん
2011/10/20(木) 06:40:57.39ID:???0613nobodyさん
2011/10/20(木) 10:13:26.59ID:???難しく考えなくても単純に
$str = str_replace("う゛","ヴ",$str);
でいいと思うんだ
必要なのはそれ一個だけだろう?
0614nobodyさん
2011/10/20(木) 11:08:16.46ID:Pt54gQrOクラス名を変数に入れる必要があります。
<?
class TestClass{
public static function testMethod(){
echo "test";
}
}
$className = "TestClass";
$className::testMethod();
?>
上記だと
T_PAAMAYIM_NEKUDOTAYIMとかエラーが出てしまいます。
これ無理なんでしょうか?
0615614
2011/10/20(木) 11:10:05.49ID:Pt54gQrO【OS名】CentOS
【PHPのバージョン】5.2
です。
0617nobodyさん
2011/10/20(木) 11:44:31.93ID:???じゃないかな
0619nobodyさん
2011/10/20(木) 12:23:57.31ID:???そう簡単に諦めるな
http://php.net/manual/ja/function.call-user-func.php
0620nobodyさん
2011/10/20(木) 17:10:24.99ID:???0621nobodyさん
2011/10/20(木) 17:58:14.60ID:???{
$cnt=$ini;
return function()use ($cnt){return ++$cnt;};
}
$a=baka(10);
echo $a();
echo $a();
とやっても11 11と出力されていくだけで12 13みたいに繰り上がりません
教えてください
0622nobodyさん
2011/10/20(木) 18:22:26.47ID:???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;
0623nobodyさん
2011/10/20(木) 18:24:49.35ID:???0624nobodyさん
2011/10/20(木) 19:34:55.02ID:???まあ、Cで書けば圧勝なんだけどさ。
0625nobodyさん
2011/10/20(木) 19:44:19.08ID:1ugFMr1j【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
-------------------------------------------------------------
※続きます。
0626nobodyさん
2011/10/20(木) 19:44:52.29ID: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
-------------------------------------------------------------
宜しくお願いします。
0628nobodyさん
2011/10/20(木) 20:56:25.64ID:???0629nobodyさん
2011/10/20(木) 20:57:58.80ID:1ugFMr1jelse {
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)
と出力されましたが、状況は変わりません。
0630nobodyさん
2011/10/20(木) 21:02:04.08ID:???0631nobodyさん
2011/10/20(木) 21:13:28.36ID:???コネクション時とコマンド送信毎に応答を受け取らないと先に進まないよ。
こんな↓感じ。
http://www.atmarkit.co.jp/fnetwork/rensai/tcp04/hyou1.html
詳細はRFC1939まで。
0632nobodyさん
2011/10/20(木) 21:23:06.87ID: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通来ましたので、
ログインはできていそうな感じなんですが…。
0633nobodyさん
2011/10/20(木) 21:24:52.87ID:1ugFMr1j「パスワードが必要です」ってことで、間違ってるんですかね…。
0634nobodyさん
2011/10/20(木) 21:30:04.34ID:1ugFMr1jいなかったので、そちらも受け取るようにしたら↓になりました。
※メールは送れていませんが…。
+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.
0635nobodyさん
2011/10/20(木) 21:38:39.35ID:???あと>>629の
>fputs ($fp, "mohiojp\r\n");
>fputs ($fp, "rinmaru\r\n");
これ大丈夫なのか?w
0636nobodyさん
2011/10/20(木) 21:43:46.71ID:1ugFMr1jうぎゃぁぁ!
気を付けていたつもりだったんですが…。
パスワード変えました。
ご指摘ありがとうございます…!
0637nobodyさん
2011/10/20(木) 22:08:29.89ID:???0640nobodyさん
2011/10/20(木) 22:29:06.95ID:1ugFMr1jアドバイス有難うございます。
とりあえず↓のようにしてみましたが、動作は変わりませんでした。
意味もわからず挟んでみたの状態なので、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);
0641nobodyさん
2011/10/20(木) 22:33:59.60ID:???0642nobodyさん
2011/10/20(木) 22:59:06.51ID:V3iH/iKbmysqlにこのような文字列が入ってます
「AAA
」
↑これ(AAA+改行5つ)をPHPで表示するとAAAだけ表示され、改行が消えてしまいます
最後の改行まですべて表示させることはできないのでしょうか?
0643nobodyさん
2011/10/20(木) 23:01:33.34ID:1ugFMr1jSMTP-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の方法では送信出来ない
ということだったのでしょうか?
0644nobodyさん
2011/10/20(木) 23:09:42.58ID:???注意
メールの送信は、新着メールの「受信」後、インターネットへの接続を
切断せずに行ってください。送信前に接続を切断した場合は、再度接続して
メールの受信を行い、続いて送信を行ってください。
ってYahooに書いてあるんだけど、POP3でログアウトする前にメール送信する仕様じゃね
0645nobodyさん
2011/10/20(木) 23:15:34.07ID:???改行コードが半角スペースになってしまいます
ttp://oshiete.goo.ne.jp/qa/1423513.html
0646nobodyさん
2011/10/20(木) 23:18:28.43ID:1ugFMr1jPOPの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);
0647nobodyさん
2011/10/20(木) 23:22:22.10ID:???phpのmb_send_mailでyahooメールだけ、メールが届かない問題
ttp://www.gucch.net/web/php%E3%81%AEmb_send_mail%E3%81%A7yahoo%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%A0%E3%81%91%E3%80%81%E3%83%A1%E3%83%BC%E3%83%AB%E3%81%8C%E5%B1%8A%E3%81%8B%E3%81%AA%E3%81%84%E5%95%8F%E9%A1%8C/
0649nobodyさん
2011/10/20(木) 23:36:56.79ID:V3iH/iKbありがとうございます。しかし
「AAA
BBB
」
これだとAAAとBBBの間の改行はちゃんと表示されるのですが、BBB以降の改行が表示されないのです。
nl2brでも結果は同じです。最後まで改行を表示させるにはどうしたらいいでしょうか?よろしくお願いします。
0650nobodyさん
2011/10/20(木) 23:38:56.47ID:1ugFMr1jSMTP-AUTHではqdmailというライブラリを使って無事に送信できました。
$ver = & new という記述を $ver = new に置換する必要があったくらいでした。
皆さんも色々と調べて頂きましたが、
「YahooのフリーメールはPOP befor SMTP の方法ではメール送信できない」
という事で一旦納得ようと思います。
メールは送れましたし、popサーバにもつないだり、勉強にもなりましたので。
皆さん、親切に対応して下さって本当に有難うございました!
0653nobodyさん
2011/10/20(木) 23:57:59.66ID:V3iH/iKbいえ、trimは真っ先に調べました。
htmlspecialcharsすらしてないです。
0654nobodyさん
2011/10/21(金) 00:06:54.74ID:???ブラウザのtextareaが無駄な改行コードを消してるんじゃね
データベースに送らずに、まずフォームデータをPOSTして表示してみて
ところで、MySQLの管理ソフトを使って、データベース内のデータを確認をしてないっしょ
0656nobodyさん
2011/10/21(金) 00:23:41.77ID:???SQL中でもtrimしてない?(selct trim('〜') from 〜)
ソース晒さないとそれ以上は誰にもわからんよ
0657nobodyさん
2011/10/21(金) 00:46:38.36ID:???を数えたいのですが、どうすれば良いでしょうか?
0658nobodyさん
2011/10/21(金) 00:52:01.90ID:uhnPfxzbGmailのSMTP認証に使うユーザーが送信者になっちゃうんだけど
別途FromやSenderを定義しても無視されちゃう
どうすれば送信者を設定できますか?
0659nobodyさん
2011/10/21(金) 01:14:18.36ID:???http://php.net/manual/ja/function.mb-strlen.php
0660nobodyさん
2011/10/21(金) 01:33:06.70ID:???0661nobodyさん
2011/10/21(金) 01:37:35.81ID:???実質このスレしか機能してないんだし
0662nobodyさん
2011/10/21(金) 02:38:07.77ID:???0663658
2011/10/21(金) 03:59:36.92ID:???0664nobodyさん
2011/10/21(金) 06:09:06.81ID:???0665nobodyさん
2011/10/21(金) 07:30:16.98ID:???PHPプログラマ〜のお姉さんだよぉ〜
今日はどんな質問が残ってるのかな?
暇だから質問に答えるよぉ〜
0666nobodyさん
2011/10/21(金) 10:01:58.30ID:???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/
0667nobodyさん
2011/10/21(金) 18:42:01.75ID:???$test = 'test';
if (isset($test['abc'])){
echo 'key abc exists';
}
abcというキーは存在しないのでif内は実行されないことを期待したが違った!実行される!
var_dump($test['abc']); してみると't'と出る。どうやら1文字目が出るようだ。
一体どういうことなのか解説いただける方希望…
0669nobodyさん
2011/10/21(金) 19:27:03.80ID:???文字列に対してキーに文字列指定すると
文字列をintに変換するとかそんな感じ
0670nobodyさん
2011/10/21(金) 19:50:54.75ID:???何言ってんの?w
0671nobodyさん
2011/10/21(金) 19:54:24.52ID:???http://www.php.net/manual/ja/language.types.string.php
の中ほど「文字列への文字単位のアクセスと修正」を読め
あとID出せ
0672nobodyさん
2011/10/21(金) 20:10:58.69ID:???'abc'を数値として評価すると0になるという話。んで、これはそういう仕様。
$test[0]の結果が't'となることが理解できないのなら>>671
>>670は頭がおかしい
0674nobodyさん
2011/10/21(金) 21:29:13.44ID:???0675672 != 669
2011/10/21(金) 23:25:23.91ID:???それを>>670で書いてれば最後の行を書いてなかったと思う
0676669
2011/10/21(金) 23:28:32.72ID:???ID出してないしちょっと濁した回答にしたんだが
0677nobodyさん
2011/10/21(金) 23:41:05.74ID:???phpで飯食ってる奴はどれくらい覚えてるもんなの?
0678nobodyさん
2011/10/21(金) 23:44:20.55ID:???別に責めているわけじゃない
どうでもいい
0680nobodyさん
2011/10/22(土) 00:11:37.27ID:???0681nobodyさん
2011/10/22(土) 00:49:28.90ID:???0682nobodyさん
2011/10/22(土) 02:39:50.63ID:???0683nobodyさん
2011/10/22(土) 03:01:26.76ID:???これが俺様の生き方だ
0684nobodyさん
2011/10/22(土) 03:56:02.35ID:f9N011rI同じように、関数を読み込む時、その関数が無い時、別ファイルをincludeして外部ファイルに記述してある関数を呼び出すにはどうしたらよいのでしょうか
0685nobodyさん
2011/10/22(土) 09:30:15.00ID:???0687nobodyさん
2011/10/22(土) 09:55:53.68ID:???>>1
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
0688nobodyさん
2011/10/22(土) 18:32:40.58ID:vHH0b5um大変しつれいしました
0689nobodyさん
2011/10/22(土) 19:09:48.59ID:FsQQxDVpDBテーブルBを操作するclass Bがあります。
コンストラクトで共通のデータベースに接続する処理をいれているのですが、
スクリプト中でAとB両方使う場合、データベース接続処理が2回入り無駄になります。
うまい解決策を教えてください。
0690nobodyさん
2011/10/22(土) 20:16:25.32ID:???0692nobodyさん
2011/10/22(土) 20:22:43.75ID:???0693689
2011/10/22(土) 20:25:06.70ID:FsQQxDVpありがとうございます。
でもそれだとラッパーをわざわざ作るようでどうも非効率かなぁと・・・
0695nobodyさん
2011/10/22(土) 20:44:04.99ID:???0696nobodyさん
2011/10/22(土) 20:54:29.09ID:???クラスなどつかわず手続き型で組むのが最も動作効率が良いのはプログラミングの常識
0697nobodyさん
2011/10/22(土) 21:10:54.87ID:???0699nobodyさん
2011/10/22(土) 21:31:28.49ID:???こういう時に使うものではないのかな
0700nobodyさん
2011/10/22(土) 22:31:12.05ID:???0701nobodyさん
2011/10/22(土) 22:46:43.00ID:???0703nobodyさん
2011/10/22(土) 23:42:53.44ID:???使う直前につなぐ、終わったらすぐ切る。
0704nobodyさん
2011/10/22(土) 23:48:34.52ID:???他にも使ってたりしないと、煽られたときときかに、キリッってできないよな
0705nobodyさん
2011/10/23(日) 00:02:55.44ID:???バカはお前だ
何をもって「非効率」といってるんだ馬鹿
お前はmysql_connect使うだけのものを
function connect()とかつくってかぶせる阿呆だろ
0706nobodyさん
2011/10/23(日) 00:21:27.53ID:???PC購入で64bitのほうが欲しいのですが動かせない場合は32bitのほうを買います
0707706
2011/10/23(日) 00:21:53.84ID:46NA/uhd0708nobodyさん
2011/10/23(日) 00:55:28.77ID:???阿呆はお前だ
何をもって「非効率」じゃないといってるんだ阿呆
お前はmysql_connect使うだけのものを
class connectとかつくってかぶせる馬鹿だろ
0709nobodyさん
2011/10/23(日) 01:27:06.66ID:???何を言いたいのか全く意味がわからんw
0710nobodyさん
2011/10/23(日) 01:32:28.10ID:???0711nobodyさん
2011/10/23(日) 01:34:07.14ID:???0712nobodyさん
2011/10/23(日) 01:43:59.33ID:???何を言いたいのか凄く意味がわかるんw
0713nobodyさん
2011/10/23(日) 01:47:05.90ID:???質問にまともに答えてもらえなかったからってID消してムキになんなよw
下らねぇ質問には下らねぇ回答しか付かないのさ
0714nobodyさん
2011/10/23(日) 02:03:41.77ID:???0715nobodyさん
2011/10/23(日) 02:30:57.21ID:???0716nobodyさん
2011/10/23(日) 11:52:53.69ID:???PHPプログラマ〜のお姉さんだよぉ〜
今日はどんな質問が残ってるのかな?
暇だから質問に答えるよぉ〜
0717nobodyさん
2011/10/23(日) 14:30:36.06ID:???0718nobodyさん
2011/10/23(日) 15:52:41.94ID:???0719nobodyさん
2011/10/23(日) 15:56:16.10ID:???・ggrks
・こっちで聞いてみた方がいいかも
分らないなら回答すんなよ^^
0721nobodyさん
2011/10/23(日) 16:38:25.27ID:???0722nobodyさん
2011/10/23(日) 16:48:18.48ID:???あそこはググって引っ掛かってもスルーが基本だけど
0723nobodyさん
2011/10/23(日) 19:55:07.95ID:sva3+2fgとしたとき
object(PDO)#5 (0) { }
って出ますが
#5ってなんですか?
0724nobodyさん
2011/10/23(日) 20:09:08.10ID:???http://php.net/manual/ja/migration5.oop.php
0725723
2011/10/23(日) 20:45:52.40ID:sva3+2fgありがとうございます
そのページ読んできます
0727nobodyさん
2011/10/23(日) 23:23:50.61ID:???0730nobodyさん
2011/10/24(月) 01:38:11.72ID:???スルーとは全然違うじゃないか
0731nobodyさん
2011/10/24(月) 01:44:27.92ID:???0733nobodyさん
2011/10/24(月) 12:31:43.10ID:Cx4UHjWV0734nobodyさん
2011/10/24(月) 12:32:20.32ID:Cx4UHjWVクラス定義だけ大量にあって実際インスタンスを生成したり静的に参照することがあまり無いので少し不安に思うのですが
0735nobodyさん
2011/10/24(月) 13:17:39.48ID:IMcjICHD0736nobodyさん
2011/10/24(月) 13:26:44.32ID:???指定階層を引数に入れればいいんじゃないの。
でも本当にそれ再帰必要なの?
0738nobodyさん
2011/10/24(月) 13:36:33.06ID:IMcjICHDああ引数で指定すればよかったんですね
ありがとうございました。
0740nobodyさん
2011/10/24(月) 14:01:36.56ID:Cx4UHjWV0741nobodyさん
2011/10/24(月) 14:28:20.92ID:???クラス定義するだけで当然メモリを消費する
http://codepad.org/jO9dWh8Y
が必要だからクラスを用意するんだし気にするほどでもない
どうしてもと言うのならオートローダーで使うクラスだけ読み込む
0742nobodyさん
2011/10/24(月) 14:32:30.64ID:2GJ+QKKa0743nobodyさん
2011/10/24(月) 14:38:20.76ID:Cx4UHjWVありがとうございます
0745nobodyさん
2011/10/24(月) 14:46:24.84ID:2GJ+QKKaありがとうございます
もしよろしければDateTimeを使ったケースもご教示お願いできませんか
0746nobodyさん
2011/10/24(月) 14:48:36.00ID:2GJ+QKKa0747nobodyさん
2011/10/24(月) 18:10:46.93ID:???0748nobodyさん
2011/10/24(月) 19:24:32.27ID:DURSDYdtcleanでキャッシュを削除できるようなのですが、hashedDirectoryLevelを1以上に設定すると削除してくれません
うまく削除する方法はないでしょうか?
0749nobodyさん
2011/10/24(月) 19:28:14.22ID:???よく確認しないで書き込んでしまって申し訳ないです
0750nobodyさん
2011/10/24(月) 19:35:32.94ID: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.',';}
}
?>
0751nobodyさん
2011/10/24(月) 20:59:16.20ID:???0752nobodyさん
2011/10/24(月) 21:27:49.14ID:???0753nobodyさん
2011/10/24(月) 22:22:22.70ID:???0754nobodyさん
2011/10/24(月) 22:56:25.00ID:nLfKmno2正規表現で([a-zA-Z0-9]+)にハイフン(-)とコロン(:)とセミコロン(;)を付け足したいのですが
([a-zA-Z0-9-:;]+)じゃダメでした。どうしたら良いでしょうか?
0756nobodyさん
2011/10/24(月) 23:10:50.60ID:nLfKmno2例えば
$a = "+++abc123-:;+++";
$a = preg_replace("/([a-zA-Z0-9]+)/","hoge",$a);
echo $a;
これだと結果が「+++hoge-:;+++」になってしまいますが
実際は「+++hoge+++」と結果が出るようにしたいです。
よろしくお願いします。
0757nobodyさん
2011/10/24(月) 23:13:47.88ID:???正規表現 Part8
http://hibari.2ch.net/test/read.cgi/tech/1301067486/
0758nobodyさん
2011/10/24(月) 23:17:44.67ID:nLfKmno2ども、ありがと。
0760nobodyさん
2011/10/24(月) 23:59:31.15ID:???0761nobodyさん
2011/10/25(火) 00:12:47.00ID:jz8uX3Je[]の中で最後に-を書くときは¥いりません
[a-z0-9;:-]は正しいパターンですが[a-z0-9-;:]は間違ってます
正しく書くなら[a-z0-9\-::]でしょう
基本的にはハイフンを最後に書いてもちゃんと¥をつけるのがバグをなくすためい現場で行われています
0762nobodyさん@PHP愛して10周年
2011/10/25(火) 00:19:43.62ID:jz8uX3Je0763nobodyさん
2011/10/25(火) 05:37:52.79ID:NHilLcCk【連携ソフトウェア】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という信頼できそうなサイトなんですが、元コードのどこに
問題があるのでしょうか?
0764763
2011/10/25(火) 05:41:48.71ID:???正しくは http://1cc.jp/hgogho です。
0765nobodyさん
2011/10/25(火) 05:55:27.90ID:???phpspotは一見よさそうに見えるけど、すげえだめだから。
理由はくさるほどあるが、省く。
繰り返す。すげえだめだから、見てはいけない。
php関係なく、SEO対策とかを勉強したいなら見てもいい。
0766nobodyさん
2011/10/25(火) 06:32:09.46ID:???安全性の問題
・キーの存在チェックをしていない
・name または message にカンマが含まれると意図しない出力になる
・サニタイジングを行っていない
・排他制御がない
一般的なコーディングと異なることによる速度低下
・ループの外に出せるcountをそのままにしている
・$i++じゃなくて++$i(この辺はまさにそのphpspotでも記載されていたと思うが)
・そもそもforeach
・ファイルの先頭に入れるのではなく、末尾にしたほうがI/O減る。
この場合、forで末尾から出力するか、array_reverse→foreach
少なくとも上記の問題があるコード。
0768nobodyさん
2011/10/25(火) 10:54:10.52ID:???0770nobodyさん
2011/10/25(火) 10:59:06.92ID:???質問するときに短縮URLなんて使うのは頭が狂ってる。
0771nobodyさん
2011/10/25(火) 11:25:44.96ID:???0772nobodyさん
2011/10/25(火) 12:01:54.31ID:iSM6PcDehttp://ja.wikipedia.org/wiki/Phalanger
0773763
2011/10/25(火) 12:38:41.80ID:???有難うございます。
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
と長いと思ったので短縮しました。
今後はこの程度であればそのまま貼っておきます。
0776nobodyさん
2011/10/25(火) 13:53:04.62ID:???え、おかしい?これでしょ
ttp://phpspot.net/php/pg投稿フォームの作成.html
0777nobodyさん
2011/10/25(火) 13:57:49.12ID:???0778nobodyさん
2011/10/25(火) 14:06:35.12ID:???0779nobodyさん
2011/10/25(火) 14:18:08.79ID:???http://ja.wikipedia.org/wiki/URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89
文字コードや予約文字の問題があるから、デコードしてしまったURLを張るのはやめたほうがいい
強いて言うなら、デコードは2chブラウザ等の仕事
0780nobodyさん
2011/10/25(火) 14:41:02.14ID:???0781nobodyさん
2011/10/25(火) 17:03:22.62ID:6LnwxfCEfunction 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文に入ると思ってたのですが違うのでしょうか?
0782nobodyさん
2011/10/25(火) 17:05:40.47ID:???sqlの初歩から勉強しろ
0783781
2011/10/25(火) 17:05:43.36ID:???【OS名】fc14.i686
【PHPのバージョン】5.1
【連携ソフトウェア】apache,mysql
【質問内容】
>>781
0784nobodyさん
2011/10/25(火) 17:06:23.88ID:???0786nobodyさん
2011/10/25(火) 17:43:28.96ID:???0787nobodyさん
2011/10/25(火) 19:45:45.90ID:???0788nobodyさん
2011/10/26(水) 01:25:16.57ID:syv7O+5freturn 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個を超える)もこの処理を記述することになります。
0789nobodyさん
2011/10/26(水) 01:28:39.88ID:???0790nobodyさん
2011/10/26(水) 01:52:54.91ID:???0791788
2011/10/26(水) 02:02:23.49ID:syv7O+5f言いたいことは使用者に速度を犠牲にしても書式を統一するか、
どういうデータが入ってるかまで把握してもらって使い分けてもらうか、
どちらにするのがいいのかな?という感じです。
0792nobodyさん
2011/10/26(水) 02:26:13.39ID:???0793788
2011/10/26(水) 02:58:21.04ID:syv7O+5fよく耳にはしますが、難しそうな概念ですね。
データ型ということで言えば全てStringなのですが、
例えばある処理が必要な値なのかどうかということですね。(788の例だとnl2br。)
繰り返しになりますが、
ある処理が必要でない値でも、ある処理を入れても影響が出ないので、
全ての値において処理を統一することが可能です。(値によっては不必要な処理も入りますが。)
そこでちょっと悩んでいる感じです。
0794nobodyさん
2011/10/26(水) 03:13:03.09ID:???> ある処理が必要でない値でも、ある処理を入れても影響が出ないので、
> 全ての値において処理を統一することが可能です。(値によっては不必要な処理も入りますが。)
というのが、すべての値において記述を統一することができ、必要な処理のみが行われるってなる。
けど、そういうことしたいなら既存のフレームワークとか当たったほうがいいかもしれないし、勉強がてら作ってみるのもいいかもしれない。
0795788
2011/10/26(水) 03:21:04.46ID:syv7O+5fおかげさまで少し賢くなった気がします。
とりあえず今回の件は統一することにしたいと思います。
アドバイス通りフレームワークも研究してみたいと思います。
夜遅くにお付き合い下さりありがとうございました。
0796nobodyさん
2011/10/26(水) 03:44:48.42ID:???いろいろやってみるといいです。おやすみ
0797nobodyさん
2011/10/26(水) 07:11:12.36ID:???これくらい言語が用意しろと思うんだが。。
0798nobodyさん
2011/10/26(水) 08:11:16.47ID:???0799nobodyさん
2011/10/26(水) 08:49:23.34ID:???http://php.net/manual/ja/function.substr.php
ではダメなのか?
0800nobodyさん
2011/10/26(水) 09:37:36.97ID:FJmcVFvmFreeBSD
【PHPのバージョン】
5.1
【連携ソフトウェア】
Apache2.2
Java+Android-SDKで作ったAndroid携帯用の自作チャットアプリ
【質問内容】
サーバー上のPHPに複数台の携帯に入れた自作アプリで同時にアクセスし、1台が発言したら他の携帯上の自作アプリに更新通知
を送りたいのですが、可能でしょうか?
可能なら詳細なやり方も教えてくださいm(__)m
0802nobodyさん
2011/10/26(水) 10:31:58.32ID:FJmcVFvm「ソケット」をキーワードに調べてみます。
0803nobodyさん
2011/10/26(水) 12:04:03.70ID:???lengthの計算が入るからねえ。
sliceなんてよくある処理だし、実装してない言語なんてPHPくらいだよ。
0804nobodyさん
2011/10/26(水) 12:23:18.37ID:???0806nobodyさん
2011/10/26(水) 12:29:58.41ID:???javascriptの substring(!=substr)の仕様と勘違いしたとみた。
0807nobodyさん
2011/10/26(水) 12:39:08.30ID:???startとendで切り取ることって多いだろ?
解析する時なんかもstrposで絶対的な位置を求めて、それを利用して切り取りたいとか。
>>806
単純になんでPHPには基本的なString.sliceが実装されてないのかな〜って話。
0809nobodyさん
2011/10/26(水) 12:52:24.35ID:???これはまぬあるに書いてある例だが
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
これじゃ不満なのか
0810nobodyさん
2011/10/26(水) 12:52:49.14ID:tWrq9Ulq【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
0811nobodyさん
2011/10/26(水) 12:58:32.18ID:???807の用途で理解出来ないか?言語なんて関係ないだろうに。
構文解析するにしたって正規表現使わない限りはほぼ確実にsliceの需要はある。
>>809
関数定義すればいいが、endからlengthを割り出すのが面倒じゃね?ってこと。
それと個人的にはString.sliceは超基本的な関数だと思うからね。そんだけ。
0813nobodyさん
2011/10/26(水) 13:10:03.67ID:???そもそもなんでlengthを必要とするの?
具体的に言いもせずに分かる訳無いだろ・・・
substrはlengthなくても使えるよ?
0814nobodyさん
2011/10/26(水) 13:12:24.79ID:???2文字目から8文字目までを出したいときに、 substr(1,7)の 7の計算がめんどくさいらしいっすよ。
0815nobodyさん
2011/10/26(水) 13:17:44.37ID:???文字列をstartとendで切り取るって言ってるだろうwなんだよ。。
俺はそうそう!みたいなのを期待してたのにこうも違うかね〜
>>814
だってさ、それをするのに文字列の長さ・引き算が必要なんだよ?実際には関数作れば済む話だが。
他の主要言語はみんな実装してるのに、PHPが実装しないのには訳があるのかなって思ってな。
0816nobodyさん
2011/10/26(水) 13:19:48.62ID:???RubyとJavascriptと?
0817nobodyさん
2011/10/26(水) 13:27:27.36ID:???PHPは豊富な関数が取り柄みたいなとこもあるから、余計になんで?って思うんだよ。
0818nobodyさん
2011/10/26(水) 13:39:06.52ID:???0819nobodyさん
2011/10/26(水) 13:43:41.54ID:???具体的にしたい事を言わないから
やりたい事が理解してもらえないんだろ
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)
????
0820nobodyさん
2011/10/26(水) 13:49:16.66ID:???pythonやjsでいうsliceはsubstrで出来る
0821nobodyさん
2011/10/26(水) 13:49:27.80ID:???いや、最後の 1,3だとestになるから 1,3-1にしなきゃいけないのがどうにも苦痛みたいなんだよ。
みんなになんでだと同意を求めたくなるほどに。
0822nobodyさん
2011/10/26(水) 13:52:27.40ID:???0823nobodyさん
2011/10/26(水) 13:55:01.43ID:???出来る、出来ないじゃなくて超基本的な処理なんだからPHPが用意しろよってこと。
>>815の文字列の長さはいらないね。カキコの時にミスってる。
>>819
lengthはsubstrの引数名な。
0824nobodyさん
2011/10/26(水) 13:57:29.93ID:???puts "test".slice(1, 2)
print("test"[1:2])
echo substr('test', 1, 3);
おまえさんが求めてるpythonでやれば言いだけの話
rubyとphpに君は向いてないだけだ
0825nobodyさん
2011/10/26(水) 13:58:00.09ID:???言語仕様についてここに答え持ってる奴はいないでしょ。
0826nobodyさん
2011/10/26(水) 14:00:03.33ID:???0827nobodyさん
2011/10/26(水) 14:01:03.91ID:???0828nobodyさん
2011/10/26(水) 14:01:32.26ID:???php: substr(str, start, end-start+1);
上のほうが直感的で読みやすいし、PHPにしても利用する場合は関数にしてしまうと思う。
でも、みんなが独自に関数にするんだったらPHP側で用意しろってのは真っ当な意見だろ?
理解してくれそうにないんでここらへんで解散するわ。
0829nobodyさん
2011/10/26(水) 14:01:46.62ID:???0830nobodyさん
2011/10/26(水) 14:04:54.22ID:???確かにsliceの需要はあって、現状は各々が補っている状態だからね。
0831nobodyさん
2011/10/26(水) 14:07:14.01ID:???0832nobodyさん
2011/10/26(水) 14:11:15.13ID:???0833nobodyさん
2011/10/26(水) 14:21:06.50ID:???しかも俺の思ったことに同意しろ、出来ないやつらばかりだからいやだみたいなのは変だろ。
0834nobodyさん
2011/10/26(水) 14:22:29.14ID:???あれか、JSの場合sliceじゃなくJSのsubstrが欲しいという事だな
始点からn文字抜き出したいと
0835nobodyさん
2011/10/26(水) 14:24:58.96ID:???文字のカウント方式なんて言語間で異なるのが普通
配列のはじめが1からの言語もあれば0からの言語もあるしな
0836nobodyさん
2011/10/26(水) 14:32:11.31ID:???0837nobodyさん
2011/10/26(水) 14:33:28.75ID:???0838nobodyさん
2011/10/26(水) 14:33:52.24ID:oGpVbHsj例えば管理画面から自分一人が使うものなら不必要ですか?
それとも管理画面に不正アクセスされることを考慮するべきでしょうか?
0840nobodyさん
2011/10/26(水) 14:45:28.31ID:???ぽまえがトイレ言っている間に泥棒が侵入したり
ねこがキーボードの上を歩いたり
意図しない結果もあるから黙って考慮しておきたまえ
0841nobodyさん
2011/10/26(水) 14:47:28.42ID:???クレーマー乙
0842nobodyさん
2011/10/26(水) 15:13:02.96ID:/kGweZxN簡単なSNSで招待メールを送るときにどのデータベースに入れたらいいか思いつかなかったんで、なんとなくGETに入れてみたんですが。。
URLみたら違和感たっぷりでセキュリティ的にまずかったりするのかなと。
0843nobodyさん
2011/10/26(水) 15:15:41.24ID:???0844nobodyさん
2011/10/26(水) 15:25:49.87ID:???そうなんですか!ありがとうございます!
新しくテーブル作ってそこに入れようかとおもってたんですが、このままGETに入れることにします。
0845nobodyさん
2011/10/26(水) 15:36:37.52ID:???オープンソースは必要な奴が実装するという事が分からない小学生か
コミッターに成れないコミュ障なんだろ
何の説明もなくsliceやlengthを出してドヤ顔する辺り、後者だと思うが
0846nobodyさん
2011/10/26(水) 15:38:04.48ID:???startからendがほしいっても、こんな感じになって結局計算することにならね?
str.slice(str.strpos(startTag) + startTag.length, str.strpos(endTag))
擬似コードだが。
>>834
始点からn文字抜き出すのはJSのsubstr、PHPもsubstr
JSのsliceがPHPにないことが不満みたい
0848nobodyさん
2011/10/26(水) 15:47:18.59ID:???説明下手すぎ態度悪すぎで答える気になれないわ
0849nobodyさん
2011/10/26(水) 15:48:12.54ID:???難しいかも知れないが、それは start と end の計算であって、slice自体に関わる計算じゃない。
0850nobodyさん
2011/10/26(水) 15:53:05.99ID:???0852nobodyさん
2011/10/26(水) 16:12:58.26ID:???0853781
2011/10/26(水) 17:32:33.76ID:???もうちょいちゃんと調べたら例外処理とsqlインジェクション対策は入れます。
複文使えないみたいだから、簡単には出来ないと思うけど必須ですね。
0854nobodyさん
2011/10/26(水) 17:46:14.09ID:???0855nobodyさん
2011/10/26(水) 18:19:33.34ID:???0856nobodyさん
2011/10/26(水) 19:57:27.03ID:gnsMAu0sうまくいきません
$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
0857856
2011/10/26(水) 20:02:48.31ID: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"
);
0858nobodyさん
2011/10/26(水) 20:10:19.33ID:???APIの使い方なんて自分で解決するか聞くべきところで聞いてください
APIの仕様は無視して自力で
>対象サーバにメッセージと画像をpost送信したい
を実装するならcURL使うとかアドバイスできるけども
0859nobodyさん
2011/10/26(水) 20:13:36.20ID:???$str = htmlspecialchars($str,ENT_QUOTES);
これだけで普通に対策になりますよね?
mysql_query("INSERT INTO table1 VALUES('$str');
例えばこれで。破れませんよね?
0861nobodyさん
2011/10/26(水) 20:26:49.64ID:+IPZs/bK[foo]=>array(
[2]=>1
[3]=>1
[5]=>0
)
)
のような、中身は1か0といった配列で、
この中の中身が1である配列の[foo][bar]のbarを求めたいんですが、
どうしたらいいですか? よろしくお願いします
barは連番でもないし、順番もばらばらです
よろしくお願いいたします
0865856
2011/10/26(水) 20:58:41.25ID:gnsMAu0sすみません
じゃ、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
出来るみたいです。画像無し投稿は実際成功しましたし
0867nobodyさん
2011/10/26(水) 21:10:25.82ID:???それでいいのかい?
0868nobodyさん
2011/10/26(水) 21:14:57.17ID:???$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;
}
0869856
2011/10/26(水) 21:17:12.66ID:gnsMAu0s!!!!
確かにそうかもしれません!!すごい!
ちょっと調べてみます!
0870nobodyさん
2011/10/26(水) 21:18:44.51ID:???http://www.atyks.org/blog/2011-05-31-7.html
0872nobodyさん
2011/10/26(水) 21:37:57.87ID:vp9BXm94絞りたいのではなくてbarの値が知りたいのです
0874nobodyさん
2011/10/26(水) 21:48:52.02ID:vp9BXm94試したところ、
Array
(
[2] => 1
[3] => 1
)
となりました
この、2,3という値を取得したいんです
0875nobodyさん
2011/10/26(水) 22:02:26.02ID:vp9BXm94if ($value == 1) {
echo ($key);
}
}
$keyで取得できました
キーの値って言葉がでてこなかったのでてこずりましたが解決しました
ありがとうございました
0876nobodyさん
2011/10/26(水) 22:21:51.30ID:???なんというか、他の人よりも先にレスできていればよかったんだけれど。
print_r(array_keys($arr['foo'], 1));
0878nobodyさん
2011/10/26(水) 23:13:12.66ID:???っていうか、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
0879nobodyさん
2011/10/27(木) 01:35:53.03ID:hA0CpkPWB(A($hoge));
という書き方で速度的に差異が出てくることはあり得るのでしょうか?
0881nobodyさん
2011/10/27(木) 01:50:25.05ID:???あるかもしれないけど、誤差の範囲内
「速度」が気になる程度なら、最適化してますよってのが、中の人の言葉
0883nobodyさん
2011/10/27(木) 06:24:13.65ID:Ep9kwV/yvar_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になります
0884nobodyさん
2011/10/27(木) 07:08:20.87ID:???0885nobodyさん
2011/10/27(木) 07:34:34.51ID:Ep9kwV/yすみません、こういうことですか?
$obj->_params["oauth_token"];
var_dump()するとNULLが返るのですが…。var_dump($obj->_params);もNULLです
勘違いしてたらすみません
0886nobodyさん
2011/10/27(木) 08:17:31.59ID:???それともそれを強引に取得したいの?
0887nobodyさん
2011/10/27(木) 08:30:09.78ID:???>session_start()の前にそのobjectのクラスの定義がされてないとかそういうこと?
今ようやく解決しました! その問題でした
objectをserialize()してセッションに入れ、別ページでunserializeして->方式で引き出そうとして
失敗していたのでした。
unserializeするページでも、objectを生成したclassをincludeしなきゃいけなかったんですね
全然知りませんでした…
予想外で最初の質問じゃ状況の情報不足になっていたと思います。すみませんでした
ありがとうございました
0888nobodyさん
2011/10/27(木) 14:24:23.89ID:Ruj7eSu+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の例外処理方法が異なるためにうまくいかなかったということなのでしょうか?
0889nobodyさん
2011/10/27(木) 16:21:32.01ID:???そこに何が書いてあるかだな
0890nobodyさん
2011/10/27(木) 16:34:53.87ID:HSowDPampreg_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";
}
}
今のところこんなのしか思い浮かばないのですが、おかしいと思うので、
どうすればいいのでしょうか?
0891nobodyさん
2011/10/27(木) 17:18:28.26ID:???マニュアルに文字列か配列で渡せるって書いてあるんだからおかしくないだろ
0892nobodyさん
2011/10/27(木) 17:31:26.65ID:HSowDPam期待している動作としては、
array("/foo/", "/bar/")という第一引数patternにたいして、
fooはhoge、barはpiyoに置き換えたいのですが、
これをpreg_replace_callbackで行うにはどうしたらいいのかという質問です。
0893nobodyさん
2011/10/27(木) 17:34:21.90ID:???preg_replace(array("/foo/", "/bar/"), array("hoge", "piyo"), $str);
preg_replace_callbackを使いたくてしょうがない年頃かな。
0894nobodyさん
2011/10/27(木) 17:36:14.24ID:HSowDPamもちろん実際の動作は違いますよ。
質問のために簡素化しただけです。
0895nobodyさん
2011/10/27(木) 17:39:44.96ID:???もっと伝える努力をしてほしいわ
0896nobodyさん
2011/10/27(木) 17:42:33.19ID:Ruj7eSu+urlを存在しないものに変更して$resをechoしたところ
php_network_getaddresses: getaddrinfo failed: Name or service not known
とだけ表示されました。
ログを見てもこの部分のエラーは一切表示されていなかったので
pearが独自にあげた例外なのかと思いました。
http://pear.php.net/manual/ja/standards.errors.php
こういうページを発見したので、これに沿ってエラー処理を行おうかと思います
0897nobodyさん
2011/10/27(木) 18:05:22.01ID:???<?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);
0898nobodyさん
2011/10/27(木) 19:22:31.61ID:???0899nobodyさん
2011/10/27(木) 20:27:12.05ID:???0900nobodyさん
2011/10/28(金) 00:25:57.08ID:???0901nobodyさん
2011/10/28(金) 02:50:47.24ID:OTqbk3HF一番最初のデータと一番最後のデータで特定の処理をするとき
$length=count($array);
for($i=0;$i<$length;$i++){
if($i==0){
最初の処理
}
if($i==$length-1){
最後の処理
}
}
って今やってるんですが
これってループするたびに中でifが2回実行されることになりますよね?
あいにく処理内容が
for(){
処理A
最初の処理
最後の処理
処理B
}
のようになってるので
最初の処理
for(){]
最後の処理
には出来ません
何かいい方法ないでしょうか?
0902nobodyさん
2011/10/28(金) 03:07:05.10ID:???処理A
最初の処理
処理B
for(){
処理A
処理B
}
処理A
最後の処理
処理B
0903nobodyさん
2011/10/28(金) 03:08:10.88ID:???0904nobodyさん
2011/10/28(金) 03:09:28.56ID:???配列の最初と最後をとって、別の配列をforeachしたら?
で、処理Aと処理Bは関数化とか
おわったら、結合じゃだめかねぇ
0905nobodyさん
2011/10/28(金) 03:55:38.26ID:???PHPプログラマ〜のお姉さんだよぉ〜
今日はどんな質問が残ってるのかな?
徹夜仕事も終わって、まったりしているから、
どんな質問でも応えるよぉ〜
0909nobodyさん
2011/10/28(金) 13:03:21.27ID:???0910nobodyさん
2011/10/28(金) 13:07:31.14ID:???0911nobodyさん
2011/10/28(金) 13:17:39.10ID:???0912nobodyさん
2011/10/28(金) 13:22:27.11ID:???0913nobodyさん
2011/10/28(金) 13:23:55.16ID:???0914nobodyさん
2011/10/28(金) 13:31:57.63ID:???0915nobodyさん
2011/10/28(金) 13:37:26.18ID:GC2HTreFSRPMを見ると、かなりのpatchが同梱されていますが
これらのpatchはどこで公開されているのでしょうか?
0916nobodyさん
2011/10/28(金) 17:40:31.05ID:ZIFDplY1ローカルサーバーでphpを書いてテストして、完成したらそのphpをオンラインサーバーにアップロードするのが普通かと思いますが
そのphpが大量のデータを作成し、それを読み込むスクリプトの場合
実行しているオンラインサーバーには大量のデータが作成されますが
テストでしか使っていないローカルサーバーにはにはそれが無く、テスト時と実行時に環境の差が生じてしまいますよね
その場合、開発はどのように行えば良いのでしょうか。
開発時に毎回オンラインのサーバーのデータを全部ダウンロードして、ローカルサーバーとオンラインサーバーを完全に一致させる必要があるのでしょうか。
0917nobodyさん
2011/10/28(金) 17:54:12.25ID:???0918nobodyさん
2011/10/28(金) 18:09:08.66ID:???サーバ上に同じようなテスト環境つくってもいい
テスト用のデータをあらかじめ作っておくってのもよくつかわれる
0919nobodyさん
2011/10/28(金) 18:19:34.11ID:???マ板で聞けよ
0920nobodyさん
2011/10/28(金) 18:31:30.87ID:X9Y4GnfIだいたいあなたねーもう
windowsで動いていてもlinuxで動かない場合もあるんだから。
バージョンをかえただけでもうごかない可能性もあるし、
javaだってonce write any whereとかかっこいいこと言っているけど
実際バージョンを変えたらうごかなかったりして、先輩がtomcatで
エラーが出て真っ青になって、帰ってこなかったこともあるんだから
0921nobodyさん
2011/10/28(金) 19:13:59.75ID:Y9S4pT3o(
[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];
}
より効率のいいやり方ないでしょうか?
0923nobodyさん
2011/10/28(金) 19:48:59.01ID:NR/rAN+Gデータベースへの登録はPDOにてprepare()->bindParam()->execute()の流れで登録、
出力はSmartyにてdefault_modifiers = array('escape:"htmlall"')を設定した場合、
勝手にエスケープ処理してくれると思うのですが、
この場合、個別にaddslashes()やhtmlspecialchars()などを使用する必要があるのでしょうか?
0926nobodyさん
2011/10/28(金) 20:52:16.01ID: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利用)は全く同じです
オブジェクトの操作でルール違反のようなことをしてしまってるのでしょうか?
引数にパスを持たせられないなんてことないですよね…?
ソース全部のせるのは長過ぎるのでまとめました。わかりにくかったらすみません
よろしくお願いします
0927nobodyさん
2011/10/28(金) 21:02:37.52ID:GPFppW98ここのページの
PDOStatementの主なメソッド(1/2)
のexampleのコードなんですが
$stmt = null;
という記述は必要なのでしょうか?
最初のinsertのあとには使ってなかったり
一番最後にも使ってなかったり
この$stmt = null;が何をしてるのかわかりません
どなたか解説していただけませんか?
0928nobodyさん
2011/10/28(金) 21:08:12.52ID:???そのgdgdっぷりはただのミスだと思うよ
0930nobodyさん
2011/10/28(金) 21:11:53.51ID:???Smartyスレで
>>926
そのコードに問題らしい部分はないので
再現する最小のコードを用意してくれ
>>927
GCを働かせて結果セットに使っているリソースを開放している
0931927
2011/10/28(金) 21:22:17.97ID:GPFppW98$stmtを上書き(表現が悪かったらすみません)した段階で
GCは勝手にやってくれると思ってたのですが
こんな感じに入れないとだめなんですね
最初のはミスだとして
最後のはスクリプト終了でそこでGCが働いてくれるので入れてない感じでしょうか?
0933nobodyさん
2011/10/28(金) 21:32:10.54ID:???0934931
2011/10/28(金) 21:40:15.22ID:GPFppW98ありがとうございます
ということは明示したい時に使う感じですかね
参考になりました
0935nobodyさん
2011/10/29(土) 00:27:34.93ID:hOXCKMki送信するデータのkey=valueのvalue(文字列)が@で始まってる場合はどうしたらいいのかわかりません
$params = array("status"=>"@john hello!");
curl_setopt($c, CURLOPT_POSTFIELDS, $params);
というパターンです
このままやるとエラーを起こしてしまい送信できません
$params = array("status"=>"\@john hello!");
とすると、そのまま\@と送信されてしまいます
すみません、どなたか教えてください。よろしくお願いします
0937nobodyさん
2011/10/29(土) 01:15:05.74ID:qiLS6tIXxdebug2.1.2
で
xdebug.auto_trace = 1
にしてphpMyAdminを表示しようとすると、
child pid xxxx exit signal Segmentation fault (11)
が出ます。
これ俺だけですか?
0938nobodyさん
2011/10/29(土) 03:50:33.41ID:B55r+SR2function GetHoge(){
$hoge = &$_SESSION['hoge'];
return $hoge;
}
$hoge = GetHoge();
$hoge['count']++;
print $_SESSION['hoge']['count']; // 増えない
0939nobodyさん
2011/10/29(土) 08:03:29.31ID:wKzusWO5$a = 1;
}
function b(){
global $a;
print $a;
}
この時$aに値が入っておらず表示されません。この場合function bの中で一度a()を実行するしかないのでしょうか?
0943nobodyさん
2011/10/29(土) 09:26:54.59ID:hOXCKMkiありがとうございます
urlencode()はどのタイミングでしたら良いんですか?
$params = array("status"=>urlencode("@john hello!")); ってことですか?
cURLで他のサーバに転送するのが目的なんですが、urlencode()すればエラーが起きない代わりに
転送先のwebアプリにも %40john+hello で登録されます
つまり文章が日本語だったらそれもurlencode()された状態で登録されてとんでもないことに…
curlのオプションも見てるんですがさっぱりわかりません…
0944nobodyさん
2011/10/29(土) 09:46:30.79ID:???それか 5.2.0以後なら 配列じゃなくて "status=@john hello!" って渡すか。
0945nobodyさん
2011/10/29(土) 10:29:58.47ID:???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();
0946nobodyさん
2011/10/29(土) 10:45:37.89ID:???0947nobodyさん
2011/10/29(土) 10:53:45.80ID:???0948nobodyさん
2011/10/29(土) 11:01:05.43ID:???0949nobodyさん
2011/10/29(土) 11:11:41.92ID:???0950nobodyさん
2011/10/29(土) 12:39:05.38ID:???0951nobodyさん
2011/10/29(土) 12:47:12.97ID:???話をややこしくしてるだけなのに擁護する理由がわからない
質問者が何を求めてるのか理解できないなら回答すべきでない
0952nobodyさん
2011/10/29(土) 13:35:53.55ID:???0954nobodyさん
2011/10/29(土) 14:16:19.35ID:???0957nobodyさん
2011/10/29(土) 16:14:14.78ID:???function & f() { return $_SESSION['hoge']; }
$hoge =& f();
0958nobodyさん
2011/10/29(土) 18:42:22.61ID:hOXCKMki@だけエンコードというのも駄目でした。アプリにわたす時点で@が%40になったままです
status=@john hello!というのはURLの最後につけてget方式でわたすわけですよね?
それもダメでした
curl_setopt($c, CURLOPT_POSTFIELDS, $params);
curlにパラメータをセットしてるので、これから先はPHPそのものをいじらなきゃいけなくなり
自分にはとても無理です
オプションの設定で解決できる、もしくは解決法がある問題なんでしょうか
curlのマニュアルを読んでると、コマンドラインから操作する場合はパラメータ1つ一つに
パラメータのテキスト;type=text/plain という形でデータ型を明示できるみたいですが
"@john hello!;type=text/plain"としたらくっつけたタイプ部分まで本文として送信してしまいました
何か良いアイディアないでしょうか…
0960nobodyさん
2011/10/29(土) 19:44:44.39ID:???これで試してみ
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($params));
0961nobodyさん
2011/10/29(土) 20:07:18.84ID:hOXCKMkiありがとうございます
これはGETで対象サーバに送信することになるんですよね?
エラーを起こしたので調べてみたら相手側がPOSTのデータしか受け付けない仕様になってるようで
無理っぽいです
しょうがないですね…
残念ですが諦めます。他の人たちもありがとうございました
0962nobodyさん
2011/10/29(土) 20:26:10.60ID:TSLcC47t1から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;
共通処理
0964nobodyさん
2011/10/29(土) 20:42:56.15ID:???こっちじゃ出来るけど CURLOPT_POST = true と併せて試したか?
そもそもCURLを諦めてストリームコンテキストを使う手もある
http://www.php.net/manual/ja/function.stream-context-create.php
0966nobodyさん
2011/10/29(土) 20:57:47.47ID:UZeloiLz設計に無理があるといったらそうなのですが
あるフォームでsubmitボタンを複数配置して
押されたボタンのname値によって処理を分けています
ようするにvalueは飾りなのですが
こういう設計ってありですか?
あと普通はブラウザから1つのボタンを押してnameが1つ送られてくるわけですが
例えば上の人みたいにcurl使って複数のnameをPOSTしてきた場合困るのですが
想定外の普通のブラウザからの操作以外も考慮してコーディングすべきでしょうか?
0967962
2011/10/29(土) 21:02:16.86ID:???確かこんな書き方があったなぁと・・・32行に収めるために無理して書きました。
意味はだいたい分かって頂けると思ったのですが、
コードの意味が分からなかったらすみません。
0969nobodyさん
2011/10/29(土) 21:23:02.90ID:???操作対象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') {
}
にしたほうがよかったのはわかってても
ワンクリの魅力があるから難しいね
0970nobodyさん
2011/10/29(土) 21:44:33.98ID:???0971nobodyさん
2011/10/29(土) 21:53:47.02ID:???うう、ご親切にすみません
上で書いた箇所だけの問題だと思ったので書かなかったんですが
tmhOAuthを使ったOAuth認証とあわせてtmhOAuthの中で実行されるcURLの処理なんです
>>960さんのやり方だとパラメータの送信リクエスト自体はOKなようですが
oAuth認証が通らないといわれてしまい、大前提で失敗してました
しかし、PearのHTTP_request2とHTTP_OAuthを組み合わせたらいけるかも!
頑張ってみます
ありがとうございました
0973nobodyさん
2011/10/30(日) 01:58:47.46ID:???if (!!$hoge ^ !!$piyo) {
共通処理
if ($hoge) 処理
if ($piyo) 処理
共通処理
}
0974nobodyさん
2011/10/30(日) 05:32:57.40ID:3CLjR3Ux0975nobodyさん
2011/10/30(日) 12:29:42.57ID:???0976nobodyさん
2011/10/30(日) 13:20:36.61ID:ASGcT8eGphp-mysqlが必要としているlibmysqlclient.so.15のバージョンが違うのですが
libmysqlclient.so.15をどこかから探してきて
ライブラリのディレクトリに入れるだけでちゃんと動きますか?
0977nobodyさん
2011/10/30(日) 13:26:05.39ID:M82Zs8HPどうしたらいいですか?
php.iniで時間エリアの指定とかhttpd再起動とかはしたんですがなおりません
0978nobodyさん
2011/10/30(日) 13:56:53.00ID:???0980nobodyさん
2011/10/30(日) 15:43:34.27ID:???$array = $array.font(X=X[1] == "hit");
とかないんだっけ?
0981nobodyさん
2011/10/30(日) 15:45:39.71ID:???$array = $array.find(X=X[1] == "hit");
0982nobodyさん
2011/10/30(日) 15:46:39.62ID:???わすれてくれ
=>
0983nobodyさん
2011/10/30(日) 17:51:51.12ID:???フォーム以外からのPOST対策ってのはさすがに無理があると思う。
例えばDBの内容をアップデートするときとか、
値の型ぐらいは検査するにしても、アップデート対象の主キーが存在するかまで、
サブクエリでいちいちアップデート前検索とかやってられん。
かといってエラー起きるとログがたまるのも困るし難しいところ。
あらゆるケースを想定したプログラムも妥協点が必要だな。
0986nobodyさん
2011/10/31(月) 00:59:24.06ID:hS+EiQVLtry{
$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が発行したエラーはどうやったら取得できるのでしょうか?
0987nobodyさん
2011/10/31(月) 01:13:35.16ID:4yF1+PIiたとえばPHP5.2でコンパイルされたものを5.3で使うのはさすがにまずいと思いますが
PHP5.3.3用をPHP5.3.8に使うのは大丈夫でしょうか?
0988nobodyさん
2011/10/31(月) 01:46:46.15ID:???ttp://www.php.net/manual/ja/class.pdoexception.php
>PDO が発するエラーを表します。あなた自身が書いたコードから PDOException をスローしてはいけません。 PHP の例外についての詳細な情報は、 例外 を参照ください。
>MySQLなどのDBが発行したエラーはどうやったら取得できるのでしょうか?
PDOStatement->errorInfo
0989986
2011/10/31(月) 02:38:29.80ID:hS+EiQVL自分で例外スローはダメなんですね・・・
とりあえず例外使わないように以下のコードで試してみました。
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というコードが帰ってきて終わりでした。。。
0990nobodyさん
2011/10/31(月) 04:59:28.79ID:RUtVjBFdprivate $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インスタンスです。
可能であれば教えて下さい。
0991990
2011/10/31(月) 05:01:17.77ID:RUtVjBFd>$retval[] = $row["hoge"];
ではなくて
$retval[] = $row["test"];
ですね。
すみません。
次スレ立ててきます
0992990 忍法帖【Lv=7,xxxP】
2011/10/31(月) 05:04:56.76ID:RUtVjBFd他の方お願いします。
0993nobodyさん
2011/10/31(月) 05:12:09.73ID:???0994nobodyさん
2011/10/31(月) 05:16:05.87ID:???$stmt->execute();
}catch (PDOException $e){
$err = $stmt->errorInfo();
print_r($err);
}
0995nobodyさん
2011/10/31(月) 05:16:34.24ID:???次スレ
http://hibari.2ch.net/test/read.cgi/php/1320005469/
0997nobodyさん
2011/10/31(月) 06:22:01.79ID:???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();
}
}
0998986
2011/10/31(月) 10:15:55.08ID:hS+EiQVLそのソースをそのまま実行してみましたが、ダメでした。。。
空の配列が返ってきます。。。。
php.iniの設定とかでこれが必要だった、みたいなものってあるのでしょうか?
0999nobodyさん
2011/10/31(月) 11:13:32.58ID:???・「正しい」sql文を発行した場合、予想通りの結果が返ってくるか?
・OS、PHPやDBのバージョンは?
・ちゃんと設定した?(オンラインマニュアルの「インストール手順」を参照 : ttp://php.net/manual/ja/book.pdo.php )
1000nobodyさん
2011/10/31(月) 14:24:57.91ID:Z5/PdDI910011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。