【PHP】下らねぇ質問はID出して書き込みやがれ 102
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 101
http://hibari.2ch.net/test/read.cgi/php/1289793607/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40 15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(
http:// 〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
6 :
nobodyさん :2010/12/19(日) 16:40:55 ID:IxMzmKpx
>>1 (・ω・`)乙 これは乙じゃなくてポニーテールなんだからね!
乙ポ
hage
>>1 1乙。Ajaxの教育効果があったようだな。
>>1 (・ω・`)X これはAjaxじゃなくてJAXAなんだからね!
13 :
nobodyさん :2010/12/21(火) 01:04:57 ID:WU1Jm8ey
OS:CentOS
PHP:5.2.12
連携ソフトウェア:GoogleIME
確認ブラウザ:Chrome Opera IE
Google変換のAPIを試してみてもうまくいきません
$res = file_get_contents("
http://www.google.com/transliterate?langpair=ja-Hira|ja&text= ".urlencode("すいせいせき"));
print $res;
ブラウザで同じURLに行ってみたらうまくいくのですが
PHPを通すと
[ [ "\u3059\u3044\u305B\u3044\u305B\u304D", [ "\u7FE0\u661F\u77F3","\u7FC6\u661F\u77F3","\u5F57\u661F\u77F3","\u3059\u3044\u6210\u7E3E","\u3059\u3044\u305B\u3044\u305B\u304D", ], ], ]
と、文字化けみたいなことになります
エンコードとか色々してみたんですがダメでした。
原因を教えてください。
よろしくお願いします。
http://www.google.com/intl/ja/ime/cgiapi.html
json_decode
そんくらいぱっとみてjson関連ってわからないとAPIを使うのはむずかしい
これJSON形式か?
>レスポンス >JSON 形式の配列が返されます。 おもいっきり説明に書いてあるし書き方的にもJSON
池沼は放置
20 :
13 :2010/12/21(火) 09:52:18 ID:???
いえ、JSONってことはわかるんですが、文字化けの解決法がわかりません。 JSONのデコード以前の問題かと
文字化けじゃなくてunicodeエスケープされてるだけなのでjson_decodeすればOK json_decode使わないならpackとかめんどくさい事しないとダメ
文字化けしてないじゃん。
これJson+Urlencodeだっけ Json_decode+Urldecodeすれば解決すんじゃないのん?
urlencodeだと%〜になるので関係なし json_decodeだけでいい
そうなのか 俺の時、サーバサイドでjson_encodeしたら日本語のままだったから、 恐らくFirefox(Firebug)で自動的に日本語変換でもされてたのかな、まぁいいや
PHPで使うことを想定してるならシリアライズしてくれたらいいのにな
どこにもPHPで使うことを想定してるような事は書いてないが・・・ どちらかと言えばJSONPが使えればとは思う・・・
29 :
28 :2010/12/21(火) 11:30:57 ID:???
理屈はこうなんだけど JavaScriptのunescapeに相当するPHPの関数を知らない
>>29 その辺はPEARライブラリがサポートしてるな
そういやGoogle変換APIって商用利用不可能だっけ
31 :
28 :2010/12/21(火) 11:51:01 ID:???
32 :
28 :2010/12/21(火) 11:55:01 ID:???
荒れないうちに訂正しておく preg_replace("/\\\/"→str_replace("\\"
いやだからjson_decodeで十分だろ・・・
json_decodeが何をする関数か調べてからいいなよ
その用途ならunescapeする必要なくないか・・・?
36 :
28 :2010/12/21(火) 12:24:58 ID:???
いやただ単に俺の環境じゃjson_decode使えなかったからw 使えるなら簡単にできるんだろうね
5.2以降ならデフォルトでjson_decode使えるけど
>>13 とは別人なのか・・・ややこしい
>preg_replace(array("/\x20/", "/\\t/", "/\\n/"), array("", "", ""), $res) preg_replace("/[[:space:]]/", "", $res) でおk
未だにfile()かfgetsか迷うな
いやだからAjaxで十分だろ・・・
えーっ?十分も掛かったらやだなあ、もっと早く動作させられる物をキボンヌ!
いい加減荒らすのやめろよカスが そろそろぶちきれますよ
46 :
13 :2010/12/21(火) 20:38:03 ID:WU1Jm8ey
$aryres=json_decode($res); print_r($res); え?
注)釣り針が大きすぎる
49 :
13 :2010/12/21(火) 20:52:06 ID:???
大変失礼しました。 2chに転記する時のミスです。 print_r($aryres); です。
マニュアルと
>>38 のコード読めよ・・・
なんで",]"を"]"にわざわざ置き換えてるのか考えろ
javascriptの場合,つけてても平気だけどPHPのjson_decodeの場合エラー扱いになるのか・・・
52 :
13 :2010/12/21(火) 22:25:16 ID:WU1Jm8ey
つまりJSON形式じゃなかったってことだな
54 :
nobodyさん :2010/12/21(火) 23:52:25 ID:zPMGCBk8
すいません。他のスレで質問したんですが、ID出してしまって怒られたので こちらで質問させてください。 実は今個人でPHPの勉強しようと思ってます 演算子や関数などと出てきて、覚える必要はあるんでしょうか? 数式や数字はすごく苦手です… やはりよく使う物なんでしょうか? マルチになってしまいますがどうか教えてください
>>54 Ajaxを学ぶのがおすすめ。Ajaxさえできれば何でも出来るよ。
>>55 さん
レスありがとうございます
Ajaxは聞きなれたことがなかったので調べてみました
簡単に言うとHTMLとCSSとJavaScriptを混ぜたものと考えてもいいんでしょうか?
面白そうとは思うんですが
PHPの方が興味あります…
>>54 入門書の基本的な文法の部分をざっと読んでみると良いと思います。
演算子なんて小学校の算数レベルのものが理解できれば何とかなります。
「関数」も数学の関数と混同している気がします。
難しいという先入観なしでやってみてはいかがでしょう。
>>57 さん
ありがたいレスありがとうございます
なんとなく先入観で難しいと思ってしまっていたのかも知れないですね(汗)
独学で頑張ってみようと思います
ありがとうございました!
>>53 いやJSONはJSONで問題ない
JavaScript的にはあれでOKなんだよ
ただJSONの仕様が書いてあるところにその事が明記されてないから
サポートされてないだけだよ
javascriptとしては
[,].lengthこれで1で
[,""].lengthこれだと2になる
この仕様はあんまり好きじゃないがこういう仕様
60 :
nobodyさん :2010/12/22(水) 02:50:32 ID:2qC3xXMO
【OS名】windows7 【PHPのバージョン】5.3 【連携ソフトウェア 特になし 【質問内容】 独学でPHPを学んでいて、演習のネタに困ってます。 2ちゃんでは評判があまり良くなかったようですが、「PHPによるECサイトプログラミング」 を参考にECサイトを組んでみて、記述抜けや記述間違いも含め、すごく勉強になりました。 次は自分でWEBサービスを組んでみようかとやっているんですが、まだ力不足のようです。 何か入門書ではなく、またサンプルやクックブックのようなものではなく、 纏まったボリュームのアプリケーションを組むといった内容の参考書をどなたか ご存知でないでしょうか。日本語か英語でお願いしたいです。 よろしければご教授下さい。
>>60 このスレの住人に英語が理解できるはずないから。
Ajaxすら理解できないのに。
なんか言わないと気が済まない低レベル野郎は黙ってろ あんま荒らすといい加減BANしてもらいますよ
BANとかあるんだ こえーな
>>64 精神病患者の特徴そのまま
他人の言動はまるで耳に入らない
言うだけ無駄
よくもそんなひどいことが言えますね。 あなたがたの民度の低さが伺えます。
68 :
nobodyさん :2010/12/22(水) 15:30:47 ID:6F24ohpm
Postで移動した先で更新を押しても再度値が送信される的なメッセージが表示されない方法ってあるんですかね? ショッピングカートみて研究してたら、POSTで移動してるはずなのに更新おしてもメッセージが表示されないところがあるんです。 これってどうやってるんでしょうか?
そこら辺はブラウザの仕様だから勘違いだろう
キャッシュさせないかなにかで出来たはず とりあえずヘッダ見てみる事をおすすめする
POSTされたページでSESSIONにPOSTされたデータを格納だけして headerで別ページに飛ばすというのも良くある 飛ばされたページでリロードしても問題無い
決済後に戻るボタンおして再送信したら二重決済とか そういう風にならないようにちゃんとなってるはずだから基本気にしなくていいよねタブン
戻るボタン対策も考えると ・処理後にheaderで飛ばす ・tokenを生成する これらをやっとけば平気 tokenについては、「php 2重送信」とかで検索すると具体例がでてくる
リダイレクトで解決しました。 ありがとうございました。
>>72 二重決済は決済を受付る側での抑止に関するお話です。
>>74 解決して礼を述べる時にもIDを出す配慮が欲しい。
質問と同じIDならば質問者が理解したと判断できるから。
そうした配慮に人は喜びを感じます。
78 :
nobodyさん :2010/12/22(水) 19:26:52 ID:LZXfpwRk
たまに嵐なのか、単なるいたずらのつもりなのか、矛盾した回答があって困っています。 また、回答者とのやりとりを何回か行う場合に、複数の回答者がてんでにバラバラな ことを言っているのか、単一の回答者が(半端な知識の為に)矛盾した回答を複数して いるのかが判然としません。 IDを出していない書込をすべて排除するべきではありませんか? つまり、「【PHP】下らねぇ質問も回答も雑談もID出して書き込みやがれ」に 変えるべきではないですか?
79 :
60 :2010/12/22(水) 19:35:16 ID:2qC3xXMO
>>61 素早いお返事ありがとうございます。
確かにオープンになってるソースを読めば十分勉強できますね。
迂闊にも気付きませんでした。
>>62 このページのPHP部分が面白いのですね。ツールを探して見てみようと思います。
ありがとうございました。
丁寧語で喋ってるやつってID出せとかAjaxとか言ってるやつだろ? 多重面相は大変ですね
発言が低能だからまるわかりなんだよな マジでリアルIQ低そう
ひろみちゅの記事なんか紹介するなよ 間違えて読んじやったじゃないか! 他人の手柄を横取りする ひろみちゅは嫌いなんだよね〜
見れればわかるしな。回答も質問もしないし。
あなた方の民度の低さにはうんざりです。 私これまでいくつ回答したと思っているの、 もtっとAjaxxを基礎から勉強しなおしたほうがいいのではないでしょうか
×回答 ○オナニー論評
あなたのような荒らしにみんなうんざりしてるbの がわからないのですか、だから低脳といわれるのですよ
荒らされたらAjax覚えて見返してやればいい
ここを荒らす奴って、隔離スレにも書いてる奴なの? 両方に書いているかと想像したら、哀れみを感じました。
ここを荒らしてる奴があっちもついでに荒らしてる感じでしょ多分
お金が絡んでるってわからないのかな
先生方へるぷみー。 先生方も大好きなSOAPなんだけど <xsd:element ref="tns:hoge" nillable="true"/> みたく、ひとつの要素に ref と nillable が両方登場するような WSDL を SoapClient に指定すると PHP Fatal error: SOAP-ERROR: Parsing Schema: element has both 'ref' and 'nillable' attributes って怒られる・・・ これWSDLが悪いんですっけ? ええ確かに、refとnillableって意味的にそぐわないよなあとは思うんだけども・・・ それともSoapClientへのパラメータでなんとかなったりしますのん?
93 :
92 :2010/12/23(木) 14:17:59 ID:RvWW4NaD
いつものクセでsageちゃったage
自分で答えだしてるじゃん
96 :
92 :2010/12/23(木) 14:23:56 ID:RvWW4NaD
っていうかテンプレがあったのか・・連投失礼 【OS名】WindowsXP, Windows7 【PHPのバージョン】5.2.16, 5.3.4 【連携ソフトウェア】なし 【質問内容】 <xsd:element ref="tns:hoge" nillable="true"/> と、ひとつの要素に ref と nillable が両方登場するような WSDL を SoapClient に指定すると PHP Fatal error: SOAP-ERROR: Parsing Schema: element has both 'ref' and 'nillable' attributes とエラーメッセージが表示されます。 WSDLを修正すべき? それともSoapClientへのパラメータで何とか?
97 :
92 :2010/12/23(木) 14:24:48 ID:???
あーもうなんかいろいろすんません。 答え出てますよね。 消えます・・・
98 :
nobodyさん :2010/12/23(木) 17:09:03 ID:kptdGBbq
「aeeea」などにマッチする正規表現を preg_match('/(.)e+\1/', 'aeeea') のように書きたいのですが、マッチしません。 一度括弧で取り込んだ値をそのまま使う方法はないでしょうか?
おれの環境ではそれでマッチするからたぶん壊れてるよ インストールしなおしだな
/i にするの忘れてました… 有り難うございました。
出来る限り実装に近い例を質問に用いろという好例だな。 preg_match('/(.)jax\1/', 'Ajaxa') ではマッチしないというわけだ。
>>101 ∩___∩ |
| ノ\ ヽ |
/ ●゛ ● | |
| ∪ ( _●_) ミ j
彡、 |∪| | Ajax
/ ∩ノ ⊃ ヽ
( \ / _ノ | |
.\ “ /__| |
\ /___ /
いつもの低レベルな論評ですね(笑
そういえば高木はGijoeって人に論破された後だんまりぶっこいててわろた記憶があるな。
105 :
nobodyさん :2010/12/24(金) 14:18:49 ID:YocMDy8V
リファラーのチェックって必要なんでしょうか? 昔セキュリティソフトの類を使ってると、そのソフトがその辺の情報を自動的に消してしまってて使えないとか聞いたことがあるんですが。
>>105 refererは簡単に変えられるから
refererに依存した作りはしないほうがいい
他のチェックと合わせてrefererもチェックするというのは有り
>>105 CSRFされると困るようなものなら,チェックした方がいいよ
108 :
nobodyさん :2010/12/24(金) 19:36:17 ID:CPjE3COu
どちらかというと正規表現なのでしょうか 住所の一覧.txtがあるのでそれを市町村や都道府県等の単位で配列につっこんで利用したいと考えております 持っているデータはただひたすら住所がフルパスで列挙されたもので 北海道札幌市中央区 北海道札幌市中央区旭ケ丘 ... 沖縄県八重山郡与那国町与那国 hairetu[0][0]=北海道 hairetu[0][2]=札幌市 hairetu[0][3]=中央区 hairetu[1][0]=北海道 hairetu[1][2]=札幌市 hairetu[1][3]=中央区 hairetu[1][4]=旭ヶ丘 ... hairetu[X][0]=沖縄県 hairetu[X][1]=八重山郡 hairetu[X][2]=与那国町 hairetu[X][3]=与那国 こんな感じに格納するのが目標です preg_match('/^(.+?[都道府県])(.+?[市町村区])((.+?[市町村区])|(.+?[^市町村区]))((.+?[市町村区])|(.+?[^市町村区]))(.+)/u', $plan_text, $addresses, PREG_OFFSET_CAPTURE); こんな感じで正規表現試してみたのですが望んだ結果が得られません どなたかアドバイスをお願いします
$s = '沖縄県八重山郡与那国町与那国'; preg_match('/(.*?(?:都|道|府|県))(.*?(?:郡|市|区|町|村))(.*?(?:区|町|村))(.*)/', $s, $match); array_shift($match); foreach ($match as $value) { echo $value,"<br />\n"; }
そのパターンだと "千葉県市川市〜" とかが "千葉県" "市" "川市〜" になっちゃうよね
コメじゃなくてプラスにしたらいいんじゃない?
区切り文字の前に必ず何か一文字以上ある事にすればおk
地理的な分類手法では、 The name of a country ⇒「国」名 The state name ⇒「州」名 A name of a prefecture ⇒「県」名 The county city area name of a village ⇒「郡市町村」名 Ward autonomy name ⇒「区町村」名 Autonomy = 自治体 こうした考え方があります。 求めるものが「自治体単位での区切り」であるのならば、安易に区切りの語句で判断せずに「自治体名」の辞書を整備して挑みましょう。 求めるものが自治体単位での区切りではないのならば、正規表現での議論も適切であると考えます。
いや多分
>>108 がやりたいのはそういうことじゃなくて
既に手元にある"住所の一覧.txt"を加工したいってことでしょう。
市川市や町田市だけでなく、四日市市や十日町市みたいな地名もあるから
単純に"市""町"などを区切り文字にするのは事実上困難。というか不可能では。
116 :
nobodyさん :2010/12/24(金) 21:10:02 ID:wBwqmACB
$filename = "aaa.exe";
$srcfile = "
http://bbb.co.jp/aaa.exe ";
header('Content-Disposition: attachment; filename="'.$filename.'"');
header('Content-Type: application/octet-stream');
header('Content-Transfer-Encoding: binary');
header('Content-Length: '.filesize($srcfile));
readfile($srcfile);
aサーバーとbサーバーがあって
aサーバーにファイルを置きaサーバーからダウンロードしたら正常
bサーバーにファイルを置きbサーバーからダウンロードしたら正常
bサーバーにファイルを置き
aサーバーから$srcfile = "
http://bbb.co.jp/aaa.exe ";でダウンロードしたらファイルが壊れるんですが
どうしたら壊れずにダウンロード出来る様になりますか?
壊れるってどういうの?
壊れるというのはexeを実行しても起動しなくなってしまいます。 (一瞬コマンドプロントが立ち上がって即終了)
readfileはバイナリセーフじゃないんじゃね?
ハッシュ調べてから壊れると表現するべきだな
readfileの問題じゃなくて、aサーバーからbサーバー上のaaa.exeを
読みに行くとき、bサーバーが出力するaaa.exeがバイナリになっていない可能性がある。
bサーバーのウェブサーバーで拡張子exeのMIMEタイプがどのように設定されているか
確認したほうがいい。
ブラウザで"
http://bbb.co.jp/aaa.exe "にアクセスしてみたらどうなるか。
Content-Transfer-EncodingはHTTP1.1には無いから外したほうがいい
123 :
116 :2010/12/25(土) 01:05:17 ID:???
ブラウザーから直接アクセスすると両サーバともアプリとしてちゃんとDL出来ました
が、新たな問題で、両サーバーとも$srcfile =相対パスだと大丈夫でhttpから始まる絶対パスだと失敗するようです
(aサーバー内で相対パスaaa.exeだと大丈夫、絶対パス
http://aaa.co.jp/aaa.exeだと失敗bも同じ )
最終的には別サーバーからDLしなくてはいけなくなるのでマイッタ....
ブラウザのリクエストをシミュレートしてDLするとうまくいく?
<?php
$filename = "aaa.exe";
$srcfile = "
http://bbb.co.jp/aaa.exe ";
$ch = curl_init();
$headers = array(
'Accept-Language: ja,en-us;q=0.7,en;q=0.3',
'Accept-Charset: Shift_JIS,utf-8;q=0.7,*;q=0.7',
'Accept-Encoding: gzip'
);
curl_setopt_array($ch, array(
CURLOPT_URL => $srcfile,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_BINARYTRANSFER => true,
CURLOPT_FORBID_REUSE => true,
CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows; U; Windows NT 6.1; ja; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13',
CURLOPT_HTTPHEADER => $headers
));
$bin = curl_exec($ch);
curl_close($ch);
header('Accept-Ranges: bytes');
header('Content-Length:' . strlen($bin));
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="' . $filename . '"');
echo $bin;
先ずファイル容量がどれくらい違うか比較ぐらいせぇよ fopenラッパーは有効になってるの?
つーかAjax使えば一発だろ
127 :
nobodyさん :2010/12/25(土) 13:32:47 ID:AYOYvcgW
0xFCEE 0x8FB8B5 を日本語EUCで表示した時 MSIEだと「K曙ウ」になり、 MSIE以外(Firefox, Opera, Chrome)だと「K?x5864;」になります。 ※0xFCEE は CP51932 で「K」(eucJP-msでは「」) ※0x8FB8B5 は eucJP-ms で「?x5864;」(CP51392 には存在しない) これらの変換をPHPで再現したいのですが、やり方が判りません。 何か良い方法があればご教示ください。よろしくお願いします。
?x5864; は &#x5864; を半角にしてブラウザで表示した物です。
0x8FB8B5 がなぜかIEで「曙ウ」(0xBDEC 0x8EB3)と表示されるわけだが、 IEでどのように脳内変換してるのか、IEの中の人に聞かなくちゃわからんね。
「K?元」となるのが正しい変換じゃないか? つまりCP51932は対応してる
でも実際には
>>127 の書いたような表示になる。
IEでは「K曙ウ」、Firefoxでは「K?」だった。
(Firefoxの場合の2文字目は「損」の偏が土偏の字)
133 :
127 :2010/12/25(土) 20:05:00 ID:???
有り難うございます。その599は自分です。 MSIEの方はそのスレの方法で処理し、 MSIE以外の方は、CP51932の「NEC選定IBM拡張文字」とぶつかる、 eucJP-msの「ユーザ定義文字(前半)」のアドレスを、CP51932の「NEC選定IBM拡張文字」に置換 することで何とかなりそうではありますが、 他に何か確かな方法は無いでしょうか。 iconvやnkfなどで処理できればいいのですが…
そのレスの600の人、詳しいね。 というか、残りの疑問もそっちで聞いたほうがいいような気が。 正直、何をどう変換したいのかイマイチよくわからん。
そりゃ専スレだから詳しいだろう
136 :
nobodyさん :2010/12/26(日) 11:01:32 ID:Mf34Ozoz
質問です AjaxとPHPの違いを教えてください。
ググレカス
突っ込み所が残るほど簡単に言ってしまえば、 コードが実行されるのが○○でか、それとも××かの違いだな。
>>136 マジレスすると、JAXAスレで聞いてください。
まじでか
Ajax厨はよくわからないでAjaxJAXA連呼してたのか 冬休みは困ったものだな
そうではない。適切なスレに誘導しただけだ。
143 :
127 :2010/12/26(日) 19:06:18 ID:???
>>134 有り難うございます。移動することにします。
年末年始暇なんでPHPマスターすることにする
>>144 マスターベーションに終わらないことを祈ります。
確かにPHPのコードを見ているとムラムラするからね
147 :
nobodyさん :2010/12/28(火) 16:07:34 ID:Pua3h3vQ
今時フレームはやめとけ
APIリファレンスなんだからなんでもいいだろ どんなクソHTMLだろうがフレームだろうが
JavaDocの真似事のPHPDocというものがあってだな
151 :
nobodyさん :2010/12/28(火) 19:05:38 ID:tjsHZRJ6
phpunitって、phpファイルにべた書きした関数のテストできますか? クラスになってないとダメなのかな
試せば済むことを聞くなよ
153 :
nobodyさん :2010/12/28(火) 20:09:46 ID:FjOaIYGE
5MBのCSV(レコード30000件)の取込バッチを作っています。 バッチはクアッドコアのサーバで動いています。 バッチはそのうちの1つのコアを使用しているようで、 使用率が90%を越えている状態です。 このバッチを高速化するとなったら、 バッチを別プロセスで起動するくらいしか 方法はないでしょうか。 コアが4つあるから、バッチを4つ並列で起動させると 早くなるんだろうなとは思ってるんですが、 バッチを分割する手間がかかるので、 分割の手間をかけずにパフォーマンスの向上を期待できる 方法があれば教えて頂けないでしょうか。 よろしくお願い致します。
155 :
153 :2010/12/28(火) 20:25:31 ID:???
>>154 やめない方向でいきたいです。。。
よろしくお願いします。
>>153 使用率が90%なのと高速化は別の視点で語りましょう。
高速化する必要性があるかないか?
なぜ高速化が必要なのか?
そうした背景を質問の文章からは読み取れませんでした。
またコアCPUの使用率90%が問題になる理由も読み取れませんでした。
いずれにせよPHPに限った話では無いような気がしています。
ファイルでもやろうと思えばポインタから並列処理はできる ただポインタなりデータの共有が面倒だからSQLに放り込んだほうが手っ取り早い
SQLって問い合わせ言語のことだよ?
問い合わせ言語ってAjaxのことだよ?
161 :
nobodyさん :2010/12/28(火) 22:09:43 ID:N9PRkBCE
common.php等の形にして自作関数を纏めたファイルを呼び出す場合 sample()のように書いてメソッドを呼び出すまではその関数は実行されないのでしょうか? つまり、APIにリクエストする自作関数があったとして、common.phpを呼び出した時点でリクエストは行われてしまうんでしょうか? それとも呼び出すページ内にapirequest()とメソッドを記述するまではリクエストは行われないのでしょうか?
common1.php <?php function sample1() {} ?> common2.php <?php function sample2() {} sample2(); ?> hoge.php <?php include_once("common1.php"); //読み込んでも実行されない sample1(); //ここではじめてsample1が実行される include_once("common2.php"); //当然の事ながら読み込んだだけで実行される
163 :
151 :2010/12/29(水) 01:31:53 ID:4k+FzqXt
>>152 うん、一応試したんだけど見つけられなかったから質問させてもらった
もしかしたら特殊な方法で出来たりするのなら教えてほしいっす
でも、PHPのばあい結構べた書きするから、そういうのこそ単体テストが必要な気がするなあ
164 :
161 :2010/12/29(水) 01:58:55 ID:???
成程。 ありがとうございました。
166 :
151 :2010/12/29(水) 08:39:19 ID:???
>>165 そお?元々オブジェクト指向でもないただのテンプレート言語だから、そっちのが需要あると思んだけど・・
お前がどう思おうが世間の需要に関係ない
168 :
151 :2010/12/29(水) 09:14:21 ID:4k+FzqXt
了解
世間がどう思おうが俺の需要に関係ない
170 :
nobodyさん :2010/12/29(水) 11:41:13 ID:Snlld2P9
set_error_handlerって一度セットすると解除はできないんでしょうか?
171 :
153 :2010/12/29(水) 12:02:28 ID:???
あ、すみません。伝え漏れがありました。
取り込むCSVは複数個あります。
それぞれが5MBほどあります。
>>156 ありがとうございます。
なるほどです。
DBに放り込む前に桁数とか値の検証とか行っているのですが、
そのあたりもSQLでやっちゃう感じなんですかね。
>>157 ありがとうございます。
CSVで取込んだデータを帳票で出力していきます。
帳票も出力する頻度が多いので、
できるだけCSVの取込からすぐに帳票に出力したいと考えています。
コアの使用率が90%になることは特に問題視はしていなくて
4つのうち1つのコアの使用率が90を超えてるときに
他のコアはほとんど何もしていないので
PHPの機能やら、プログラムの組み方で、なんとか他のコアにも処理を振り分けられたらなと
思った次第です。
PHPに割り当てられるメモリの設定とか見直せればなとか
考えていたので、PHPのスレに投稿させていただきました。
>>158 ありがとうございます。
ですよねぇ。
ファイルのポインタとかを使うとめんどくさい事になりそうですよね。
いくらマルチコア積んでたって 自分がマルチプロセスでプログラム書かないと効果ないっしょ。 分割して記述はしたくないんでしょ? だったら普通に書いたプログラムを勝手に言語やエンジンが複数コア使って処理なんてしてくれるわけない。
>>171 CSVをDBで処理するなんてありえない。Ajaxを使うのが世界的な潮流。
174 :
153 :2010/12/29(水) 13:18:35 ID:???
>>172 ありがとうございます。
仰る通りだと思います。
そういう認識ではいたんですが、もしかしたら
自分の知らないテクニックがあるかもしれないと思ってたんですが、
楽しようとせずに地道にやっていこうと思います。
>>173 Ajaxですか・・・。
どこか参考になるサイトがあれば教えて頂けますか?
バイナリに変換しておいて読み込む
時間さえかければ済む、頻繁に読み込む必要はない(一度だけの処理)なら もっともコーディングが少ないやり方でいいよ。
>>174 AjaxはNGに入れといていい
ていうかいい加減にしろよ
嘘教えるようなら本当に荒らしで通報するぞ
ループ中にusleepで10ms取るだけでだいぶCPU使用率減ると思うがな
スマン Ajax厨が出てきてから、解決していない質問がどれかがわからなくなってきた。 また、質問した方が解決したか否かを書かないために、未だに質問を継続しているかがわからない。 申し訳ないが、今生きている質問(継続中)を教えて欲しい。 それとAjax厨は、こうした迷惑が発生していることも含めてレスを考え直して欲しい。
>>151 >>163 何を試してどう出来ないと言うの?
普通にその関数を持ったファイル(functions.phpみたいな)を読み込んで
$this->assertEquals(5, MyAdd(2, 3))するだけでしょ。
もし関数定義外の部分に実行文が入ってるなら諦める。
>>153 >>171 PHPはスレッドが使えないから並列化はマルチプロセスにするしかない。
(DBじゃなくて)PHPがネックになってることが確認できてるなら
複数個あるCSVに対してそれぞれPHPを起動するのが楽じゃないかな。
普通はDBへの転送に一番時間かかるんだけどね。
>>179 お前が元祖Ajax厨だろ
口調が同じだからまるわかりだっちゅうの
しれーっとでてきてんじゃねえよ
何か荒れてるけど、この前はクリスマスなのに全くの初心者の基本中の基本の質問に答えてくださってありがとうございます ネットの良心と可能性というのを初めて見た気がします 独学で学んでるのでここでしか聞けないのですが、本当にありがとうございます。 言葉じゃ言い表せないぐらいの感謝の気持ちでいっぱいです
寝てる間にやっとけば済むなら、プログラム手間かけるより安全な方法で放置すればいい。
>>179 確かにAjax厨が出てきてから変な流れになりましたね。
別スレ(隔離スレ)も作りましたが、ネット弁慶+かまってチャンはやっぱり最強ですね。
>>181 名前: nobodyさん [sage] 投稿日: 2010/12/29(水) 15:35:55 ID:???
>>182 名前: nobodyさん [sage] 投稿日: 2010/12/29(水) 15:49:42 ID:???
常日頃から他人を批判する姿勢を続けているから家族からも見限られるんだよ。
今年も他人の呪って批判だけし続けて新年を迎えてください。
おっと、批評批判は隔離スレでお願いします。
【PHP】下らねぇ質問はID出さずに書き込みやがれ 1
http://hibari.2ch.net/test/read.cgi/php/1289117484/l50
きめえ
>今年も他人の呪って 日本語がおかしくて笑えましたw
他人の[レスを]を省略してるとすれば一概に間違ってはいないけど とはいえレス自体がおかしいけど
Ajax厨というのがどのレスのことを指しているのかわかりませんが、 AjaxでできることはAjaxでするべきだと言っているのです。 必ずしも全てをPHPで行う必要はありません。
どうせ「アジャックス」って読んでるだろw
AjaxとPHPは比較できるものでない。 PHPはローカルで動くプログラム言語。C++の簡易型みたいなもの。 Ajaxはブラウザとサーバーのリアルタイム通信する技術でしょ。
だからなんで手元(サーバ、ローカル)にあるファイルを読み込むのにAjaxなんだよ。
サーバにあるファイルを読み込まないでどこにあるファイルを読み込むんだ?
>>153 はサーバーにあるファイルをサーバーで処理するって話じゃないの?
ローカルのみでの作業。
>>193 もう少しAjaxを勉強したほうがいいと思います。
にちゃんで荒らしに勤しむ年の瀬。 そんな悲惨な人生もあるのです。
まだこのネタひっぱってたのか 低レベルなAjax厨はおとなしくゴメンなさいして JavaScriptスレいって教えてもらえ ここは完全にスレ違い
このグダグダさは、AjaxつうよりAjapaやん。
Ajaxについて語りたいなら隔離スレでお願いします。 質問者と回答者が迷惑かつ不愉快な思いをしています。 人様に迷惑だけはかけるな 両親から習ったでしょ?
>>201 Ajaxをろくに知りもしないでスレ違いとか
PHPを擁護するような発言は容認できません。
おまえらよくこんな低レベルな話で盛り上がれるな
自演だろ絶対これ
1行開けて書くいつものやつはこっちこなくていから 隔離でずっとAjaxやっててね
selectタグを生成する方法について質問です。 表示する中身はxmlに書いてて、 ページを表示する際に読み込んで生成してたのですが、 毎回読み込まずに、例えばメモリにxmlの中身を保持してるのを取ってくるとかは できますか?共有メモリ? アパッチ起動時に一回だけメモリに保持できるといいのですが、、 ◯◯区分とか小さなマスタ情報は、 どう扱うのが良いのでしょうか><
210 :
nobodyさん :2010/12/31(金) 02:19:49 ID:Oz9h13cu
>209 あっ、これは失礼しました。 【OS名】WindowsXP / Apatch 【PHPのバージョン】5.3だったか、、 会社に行かないと分かりません。 最新のxampp使用しました。 【連携ソフトウェア】MySQL 【質問内容】 208になります。
mysqlのストレージをかえればメモリ内で展開される
>>208 中級の下くらいの俺の知る範囲では出来ないかと。
セキュリティ的にOKならセッションorクッキーで保持するとか。
でも自サーバー上でだけの話ならxml毎回読み込みで問題ない気が。
別サーバーから取得してるなら初回だけ読んで、自サーバーにファイルorDB保存するとか。
>211 早速ありがとう。 なるほど、そんな事ができるんですね。 ちと調べてみます。
メモリに保存とか無理っしょ ファイルの読み込みで何か問題あるの?
共有メモリとかがある事にはあるが
216 :
nobodyさん :2010/12/31(金) 02:35:16 ID:Oz9h13cu
>212 ありがとう。 DB兼Webサーバな環境です。 同時接続は多くて20台位なのですが、 可能な限りI/Oを減らしたかったのです。 メモリに入ってれば、区分名等を使う場合にも使えていいかな、と思った次第です。 明日本屋に行ってみます!
あぁごめんWindowsか無理だなw
と思ったらWindowsXPなら平気みたいだから共有メモリじゃだめなのかな? 使った事ないから知らんけど
なんかメモリ使う話があったようななかったような・・・
初心者に毛が生えたレベルの素人です。 Wordpressのソースコードを読んでみたんですが、 どうしてクラスや関数を作らずに、たくさんのファイルに処理が小分けされているんですか? なかにはPHPとHTMLが混ざっているところもあって、処理の流れが分かりにくいと思いました。 CakePHPのようにMVCで整理した方がいいんじゃないんですか? 何らかの合理的な理由があってそういう書き方がされているのだと思いますが、よくわかりません。 プログラマの方々がどんなふうに認識しているのか知りたいです。ご意見ください。
面白いと思ったの?ねえバカなの?
寒すぎワロタ
228 :
nobodyさん :2010/12/31(金) 13:38:49 ID:8g3NYefk
register_shutdown_functionで登録した関数がよばれた後なのに その後また同じPHPファイルにアクセスが来るんですが、これって何が原因ですか? xdebug入れてるとこうなるんですかね?
xdebug切れない環境?
230 :
nobodyさん :2010/12/31(金) 14:25:08 ID:8g3NYefk
いえ、Vmwareなので大丈夫なんですが、なんでこうなってるのかわからなくて
231 :
nobodyさん :2010/12/31(金) 14:59:28 ID:XYm/hF3e
PHPなのかわからないですが ホームページでの文字表示縦書きにしたいのですが どうすればいいでしょうか
232 :
nobodyさん :2010/12/31(金) 14:59:50 ID:8g3NYefk
すいません。PHP関係ありませんでした。 原因はMod_reqriteで、リンクが通ってないリクエストがIndex.phpにきてた事が判明しました。 お騒がせしました。
234 :
nobodyさん :2010/12/31(金) 15:24:44 ID:XYm/hF3e
>>233 ありがとうございました
そちらで聞いてみます
235 :
nobodyさん :2010/12/31(金) 16:56:48 ID:jORx8XGQ
php5.3です MySQLから取り出してきた、 $shin[date] (ex.2010-12-31、date型) に、 $kankaku[interval_t@] (@は1~20、中身はint型) の数字の分だけ、●ヶ月先の計算をしたいです こんな風に書いてるのですが文法エラーとなります、どう書けば良いかご教示ください。 ($kankaku[interval_t@]を普通の数字に置き換えるとokなのですか) for($loop=1;$loop<=20;$loop++){ $nextdate0 = date("Y-m-d", strtotime("$shin[date] + $kankaku['interval_t'.$loop] month")); print "$nextdate0"; }
ダブルクオートの中で文字列連結しようとしたりすんな
>>235 他に原因があるかもしれないが、とりあえず
$nextdate0 = date("Y-m-d", strtotime("{$shin['date']} + {$kankaku['interval_t'.$loop]} month"));
>>237 一応、検証に使ったソース
<?php
$shin['date'] = '2010-12-31';
$kankaku['interval_t1'] = 1;
$loop = 1;
$nextdate0 = date("Y-m-d", strtotime("{$shin['date']} + {$kankaku['interval_t'.$loop]} month"));
print $nextdate0;
?>
なんでそうするんだよw $nextdate0 = date("Y-m-d",strtotime($shin['date'].' + '.$kankaku['interval_t'.$loop].' month')); まだこうしろよ・・・
そんなのAjax使えば一発なのに・・・
!omikuji!dama
244 :
nobodyさん :2011/01/01(土) 00:46:40 ID:kBOtcIS2
お願いします。 あるサイトで得られるHTMLにて、「href="〜"」の"〜"部分を抽出したいです。 いろいろと試してみましたが、サイトにあわせたコーディングが求めらてしまいました。 自分の拙さ(つたなさ)が理由で、サイトにあわせたコーディングをしていると思います。 お勧めのサンプルや、お勧めの関数などがあれば、教えてもらえれば嬉しいです。
245 :
nobodyさん :2011/01/01(土) 00:47:30 ID:kBOtcIS2
!omikuji!dama
>>246 サンプルや関数を欲してるのに正規表現スレを書き込むのは宣伝ですか?
>>244 // 読み込むファイル
$filename = "test.html";
$doc = new DOMDocument();
$doc->loadHTMLFile($filename);
$a = $doc->getElementsByTagName("a");
for($i = 0; $i < $a->length; $i++) {
var_dump($a->item($i)->getAttribute("href"));
}
>>249 "test.heml" -> 'test.html'
for -> foreach
254 :
nobodyさん :2011/01/01(土) 15:29:42 ID:xdZw+o32
あけましておめでとうございます $PATH = "../".$_POST['ttm']."/"; $TEMPPATH = $PATH."html/"; とあるのですが、これの../とはどういう意味なんでしょうか?
256 :
nobodyさん :2011/01/01(土) 15:42:42 ID:xdZw+o32
ありがとうございます!! ../だけで一つ上の階層を出力できるなんて便利ですね!
>>256 それがAjaxの力です。覚えておいてくださいね。
258 :
nobodyさん :2011/01/01(土) 19:16:47 ID:xdZw+o32
それともう一つ質問なんですが <form method="post" action="./test.php"> の場合はドットが1つなんですがこの場合は「今扱っているファイルの一つ上の階層のディレクトリにあるtext.php」 ということになるのでしょうか? ドット1個と2個の違いがどうも
./ カレント ../ 1個上 ../../ 2個上 ../../../ 3個上 つうかPHPの質問とちゃうで 相対パスはWebサイト作りの基礎やで
261 :
nobodyさん :2011/01/01(土) 20:44:10 ID:xdZw+o32
マジっすか! 道理でphpのサイトめぐっても見当たらない訳やで! ホンマ助かりますわー!
せや、せや
263 :
nobodyさん :2011/01/01(土) 22:28:36 ID:Uob5Bi4b
【OS名】WindowsXP SP3 【PHPのバージョン】5.3.1 【連携ソフトウェア】MySQL, XAMPP 【XAMPPのバージョン】Windows ver 1.7.3 【MySQLバージョン】5.1.41 【MySQL文字セット】UTF-8 Unicode (utf8) 【MySQLの照合順序】utf8_unicode_ci 【質問内容】 DBから取得した全角文字が文字化けします。 解決策を教えてください。 【詳細】 1.MySQLに登録されたデータを取得する。 $res_result = mysql_query($sql); 2.連想配列に格納し、その結果をprintで出力する。 [ソース] $mojicode = mb_detect_encoding($value); print "$value の文字コードは $mojicode です。"; [結果] $$rows[def]=??? ??? の文字コードは UTF-8 です。 と半角文字は正しく出力されるのですが、全角文字が?で表示されます。 長文すみません、宜しくお願いします。
264 :
263 :2011/01/01(土) 22:30:16 ID:Uob5Bi4b
改行が多いと警告が出たので分けました。 追加情報です。 【PHP.iniの設定】 mbstring.detect_order:UTF-8,SJIS,EUC-JP,JIS,ASCII mbstring.encoding_translation:Off mbstring.func_overload:0 mbstring.http_input:pass mbstring.http_output:UTF-8 mbstring.internal_encoding:UTF-8 mbstring.language:Japanese mbstring.strict_detection:Off mbstring.substitute_character:no value 【PHPファイル】 <meta 〜 "text/html; charset=UTF-8" /> ファイルの文字コード:UTF-8 BOMなし 宜しくお願いします。
今年もAjaxをよろしくお願いいたします。JAXA
>>263 「半角文字は正しく出力される」というのはどれのこと?
あと、そのときブラウザの表示文字エンコードは何になってる?
エンコードを他の物に切り替えると???の部分が正しく表示されるってことはない?
Mysqlなんかに頼らず素直にAjax使えってことだな。
>>263 MySQLはクライアント側も別途エンコーディング指定が必要
mysqli_set_charset($db, "utf8")
mysqliが無いならSET NAMESとか。
ちなみに"???"がUTF-8と判定されるのはdetect_orderのせい
269 :
263 :2011/01/02(日) 00:07:31 ID:sCIW7Ij+
>>266 ご返答ありがとうございます。
ブラウザの表示文字エンコードは、
Unicode(UTF-8)です。
これは、PHPのmeta情報に
<meta 〜 "text/html; charset=UTF-8" />
と記載しているからだと認識しています。
また、ファイルの文字コードもUTF-8です。
> 「半角文字は正しく出力される」
すみません。半角文字の結果を消していました。正しくは下記をみてください。
【表示文字エンコード:Unicode(UTF-8)】
$$rows[abc]=GAME
GAME の文字コードは UTF-8 です。
$$rows[def]=???
??? の文字コードは UTF-8 です。
【表示文字エンコード:日本語(EUC)】
⇒文字化けします。
$$rows[abc]=GAME
GAME ����・����絖������潟��若���������� UTF-8 ����с����������
$$rows[def]=???
??? ����・����絖������潟��若���������� UTF-8 ����с����������
【表示文字エンコード:日本語(シフトJIS)】
⇒画面に何も表示されなくなります。
270 :
263 :2011/01/02(日) 00:15:11 ID:sCIW7Ij+
>>268 ご返答ありがとうございます。
調べて確認してみます。
detect_orderは始めコメントアウト化されており、
DBから取得した結果がASCIIになっておりました。
DBとの文字コードを合わせる必要があると思い、
detect_orderにUTF-8を指定しましたが、
問題ありますか?
コメントアウト化されていた時から既に
printした結果が???と文字化けされていました。
テーブル作成時のキャラクタセットはなによ もし正しいデータが入ってるとすれば正しく取り出せてないのかもな
一回dumpしてテキストに落としてnkfかなんかで判定か変換してみるとか
273 :
263 :2011/01/02(日) 00:50:50 ID:sCIW7Ij+
>>268 おっしゃる通り、
SET NAMESを使用する事で解決しました。
[変更前ソース]
$db = mysql_select_db( $dbName, $res_dbcon );
$res_result = mysql_query($sql);
[変更後ソース]
mysql_query("SET NAMES utf8");
$db = mysql_select_db( $dbName, $res_dbcon );
$res_result = mysql_query($sql);
[変更後の結果]
$$rows[abc]=GAME
GAME の文字コードは UTF-8 です。
$$rows[def]=ゲーム
ゲーム の文字コードは UTF-8 です。
助かりました、本当にありがとうございました。
>>266-272 ご返答頂けた方々、ありがとうございました。
274 :
263 :2011/01/02(日) 00:56:36 ID:sCIW7Ij+
268のご返答により解決しました。
お礼と返答です。
>>271 ご返答ありがとうございます。
テーブルのキャラセットとは何を指すのでしょう?
照合順序はutf8_unicode_ciで、列の種別はtext型です。
>>272 ご返答ありがとうございます。
nkfではありませんが、
PHP上でmb_convert_encodingを使用し文字コードを変換した場合、
結果は変わらず文字化けしたままでした。
>>274 SET NAMES でもとりあえずは問題ないだろうけど、
PHP5.3なら mysql_set_charset() を使用したほうがいい。
理由は過去スレまたはググってください。
SET NAMES使って解決できたってことはテーブルのキャラクタセットがutf8じゃなかったんだと思うが、
テーブルのキャラクタセットと言われてわからないってことは別の人がDB初期設定やってるだろうから
説明は差し控える
はっきり言って
>>264 にある設定なんてmeta以外はやらなくてもいいようなどうでもいい設定だがな
>>274 MySQLの照合順序をutf8_unicode_ciにしていても
Tableの定義でそのフィールドの照合順序が異なる設定になっている場合があるので
確認したほうがいいという意味だろう。
>>277 いや、SET NAMES はクライアントが使用する文字コードをMySQLに
通知するのが目的だからTableのキャラクタセットの設定とは異なる。
MySQLはクライアントから送信された文字を既定の文字コードとして
解釈し、照合順序で設定したキャラクタセットに勝手に変換する。
読み出す場合はその逆。
280 :
263 :2011/01/02(日) 01:32:59 ID:sCIW7Ij+
>>277 >別の人がDB初期設定やってるだろう
いえ、私がDBの設定を行っていますが、
phpMyAdminにキャラクタセットの項目が
見つからなかった為、お聞きしました。
>>278 なるほど、理解できました。
DBとTableの照合順序は統一しており、
再確認した結果、全て一致していました。
281 :
263 :2011/01/02(日) 01:44:19 ID:???
>>275-276 ご指摘ありがとうございます。
確認したところSET NAMESは非推奨となっていました。
mysql_query("SET NAMES utf8");を
mysql_set_charset("utf8");に変更しました。
文字化けせずに正しく表示されました。
ありがとうございます。
(そろそろsageておきます)
元旦早々から一体全体何やってるんだよ
俺は
>>267 が正解だと思う
283 :
nobodyさん :2011/01/02(日) 15:30:33 ID:C0ta8JCl
便乗質問 おすすめできないと書いてるけどPDOじゃSET NAMESでやるしかないですよね?
284 :
nobodyさん :2011/01/02(日) 15:44:41 ID:UqNSlP1V
メールの自動応答スクリプトを書いているのですが、以下のような現象に悩まされています。
[環境]
共用レンタルサーバー
PHP 5.2.12
OS Linux 2.6.27.18-25
アパッチ 2.2.14
サーバープロバイダー ギガレンタルサーバー(
ttp://gigasrv.jp/ )
コンパネ cPanel X
[やりたいこと]
空メールでメンバー登録
[出来たこと]
メールを受信して、パイプを使ってその内容をスクリプトへ渡す。
[問題]
メールを送信した側に、次のようなエラーが返信されてしまいます。
このようなエラーを返信しないようにしたい。
※長いのでレスをまたがせていただきます。
285 :
284 :2011/01/02(日) 15:46:20 ID:UqNSlP1V
※
>>284 の続き 以下、その内容
-------- ▼ここからメール内容▼ ---------
This message was created automatically by mail delivery software.
A message that you sent could not be delivered to one or more of its
recipients. This is a permanent error. The following address(es) failed:
pipe to |/※スクリプトへのパス
generated by ※空メールのアドレス
The following text was generated during the delivery attempt:
------ pipe to |/※スクリプトへのパス
generated by ※空メールのアドレス ------
PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20060613/imagick.so' - libMagickWand.so.2: cannot open shared object file: No such file or directory in Unknown on line 0
X-Powered-By: PHP/5.2.12
Set-Cookie: CAKEPHP=e3bd5f3b116b2491e08f2c3ee81b48c0; expires=Mon, 10-Jan-2011 14:15:36 GMT; path=/
P3P: CP="NOI ADM DEV PSAi COM NAV OUR OTRo STP IND DEM"
Content-type: text/html; charset=UTF-8
------ This is a copy of the message, including all the headers. ------
※以下、略
-------- ▲ここまでメール内容▲ ---------
.htaccess に php_flag display_errors Off を書いてもダメで、スクリプトに ini_set( "display_errors", "Off"); を追加してもモチロンだめでした。
サーバーの管理者に相談したほうが良いのでしょうか?
※熱っぽいのでこれから保健センターに行ってきます。返信が遅れるかもしれませんがどうかご容赦ください。よろしくお願いします。
サーバの管理者に相談して下さい
287 :
284 :2011/01/02(日) 19:24:17 ID:UqNSlP1V
>>286 さん、ありがとうございます。
やはりそうですか。
ひとつ気になるのは、ブラウザでPHPを走らせた場合はもとより、Cron でPHPプロセスを起動した場合にも上記のようなメッセージを見たことがないことです。
なので、自分のやり方しだいではエラーを表示させないようにも出来るのではないかと思うのですが。
ちなみに、このエラーは PHP のセッティングに問題があると言う認識でよろしいのでしょうか。
答えをいただきながらの追加の質問ですが、お答えいただければ幸いです。
288 :
nobodyさん :2011/01/02(日) 19:41:56 ID:jMmDteG7
フォームで入力された値のバリデートチェックを行うお勧めのライブラリとかないですか?
>>289 あり、ライブラリだけとって使ってみます
なんだありって
>>283 代替手段としてコンストラクタに
PDO::MYSQL_ATTR_READ_DEFAULT_FILE と
PDO::MYSQL_ATTR_READ_DEFAULT_GROUP を渡せば可能
>>287 > libMagickWand.so.2: cannot open shared object file
って事だからMTAから起動した時の環境変数PATHが違うんだろうね
ちなみにPHP起動時のエラー表示に関係する設定は display_startup_errors
>>292 Ajaxの質問ではなくてすみませんm(__)m
294 :
284 :2011/01/02(日) 22:41:32 ID:UqNSlP1V
>>292 さん、ありがとうございます。
先ほどサポセンへ相談メールを送りました。
>display_startup_errors
あ、そうでした。
これも一応ダメもとで試しては見ましたがやはり結果は同じでした。
サポートの対応など状況が変化しましたら、また改めて報告させていただきます。
295 :
283 :2011/01/03(月) 00:26:17 ID:???
phpはどれくらい負荷がかかるものなのですか? 毎ページの広告をPHPで携帯とPC振り分けてみたのですが、 気にするほど負荷がかからない程度なのですかね?
その程度の使用方法じゃミジンコに毛が生えたレベル
次からは
>>1
2chに代表されるように広告の方が重かったら表示もノロくなる
Ajaxを使えばサーバーには全く負荷はかからない。これ常識。
Ajaxと表記するのはゆとり。現場ではアジャックスが一般的
アジャックスはどれくらい負荷がかかるものなのですか?
アジャコングは負荷を気にせずに使える
305 :
nobodyさん :2011/01/03(月) 17:06:12 ID:EiHgtjUU
"simple_html_dom.php" に関する質問です。 スレ違いならばご指摘ください。 とあるURLを file_get_html したら次のエラーが出されました。 Warning: file_get_contents( とあるURL ) [function.file-get-contents]: failed to open stream: HTTP request failed! HTTP/1.1 403 Forbidden in simple_html_dom.php on line 39 ブラウザーで「とあるURL」を開くと問題なく開けます。 エラーの理由は何でしょうか? また対処方法をご存知の方がいたら教えてください。
おれの長年の勘だと39行目が怪しいな
>>305 サーバ側がスクリプトからのアクセスを禁止してるから
ブラウザの挙動を再現してアクセスすれば取れると思う
cURLあたりを使えばいけるんじゃないかな
>>305 そういうサーバだと思って諦めるか
考えられる原因を追求して試行錯誤してみるしかないねえ
わざわざ禁止にしてる管理者に聞いても原因は教えてくれないだろう
原因はいくつか考えられるけどクッキー食わせないとだめだったりしてるのかもな
>>305 とあるURLのサンプル書いてみ?
場合によってはurlencodeしないとだめかな
いや、サンプルなんて書かなくていいよ。 どうせAjaxも理解できないここの連中にはわかりゃしないんだから。
313 :
nobodyさん :2011/01/03(月) 20:58:10 ID:EiHgtjUU
>>313 まさかと思うが allow_url_fopen は On になってんのか?
PHPのバージョンは?
simple_html_dom.php を使わずに file_get_contents 関数を直接使ったらどうなった?
対象のURLとして2件書かれていることから、 1件目では目的を達しているが、 2件目でNGだと言いたいのでは? 片方がOKで片方がNGならば、対象のサイトとの相性? どんな相性なんだろう?w
エロ画像収集スクリプトでも作りたいの?
317 :
nobodyさん :2011/01/03(月) 22:07:16 ID:EiHgtjUU
試してみたけどsimple_html_dom.phpのせいじゃないじゃん。 単にブラウザ以外からのアクセスは403返してるだけじゃないの?
前任者の作ったサイトの変更作業をしております。 タイトル部分が <MMString:LoadString id="insertbar/linebreak" /> となっているのですが、これはどのような意味があるのでしょうか? 消して、普通に、店の名前を打っても良いのか悩んでおります。
PHP関係あるのですか?
MMといえばDreamWeaverだろ
325 :
320 :2011/01/03(月) 23:54:06 ID:???
皆様御返答ありがとうございます。 PHP関係なく、Dreamweaverだったのですね・・・・ Dreamweaverは私も持ってますが、パソコンが違うので、バージョンは異なるかもです。 私はCS3を使ってます。 ローカライズされるストリングの提供 っというのがちょっと難しくて、どういうメリットデメリットがあるのか?消して普通にタイトルつけていいのか分からないので勉強してみます;; ありがとうございました。
だからID出せよ
だったらID出さない奴に答えんなよ
は?善意で答えてやってんだろカス IDを出すのはルール
は?じゃねぇよボケが IDを出すのがルールなら答える側もそれを守れってんだ てめぇの善意なんかいらねぇっつーの
答える側がID出すってルールなんてどこにあるの?
馬鹿には見えないルールなのです。 ※本回答は、あくまでも善意で答えています。
>>326 が回答してること前提なのか?
ただ出すなっていってるだけだろ?
>>331 ID出すのがルールなんだかルール守ってないやつには答えるなってことかと思われ
まぁ落ち着けよお前ら
×出すな ○出せ
このスレは、こんなことで荒れます。
・IDを出して質問しない奴が現れる
質問するならIDを出して書き込め!
>>1 を読み直して出直して来い!カス!
・IDを出していない質問に答える奴が現れる。
IDを出していない質問に答えるな!
>>1 を読み直して出直して来い!カス!
あれ?どちらも共通点があるんですねw
お前のレスが一番無駄
なるほど、共通点のない方が参加してスレが荒れるんですね。
つかこの板デフォでID出すようにすればいいのに 他のスレもそうだけど排他的なレス多すぎだろ
荒れたところで過疎板だしたかが知れてる
早く冬休みおわんねーかなー 低レベル丸出しのAjax厨はニートみたいだけど
自作自演を除けばレスなんて数えるほどしかないんだろうけど、 それにしてもゴミ発言が多すぎw しかもレスがオウム返しと来たもんだ
PHPなんて過去の遺産にこだわってるから荒れるんだよ。 早くAjaxをマスターして卒業することをお勧めする。
Ajaxって。サーバーサイドをどうすんのよ?
共通点のない方が参加してスレが荒れる
スレタイ +
>>1 を読み直すと良いと思いました。
>>343 はぁ?PHPでできることはAjaxでも出来るっつーの
つーかそれ以上?
サーバーサイドか何か知らんけど無知は引っ込んでろボケ
> サーバーサイドか何か知らんけど 知っとけよ
お前こそ知ったかぶりすんじゃねーよ つーかAjaxと関係ねーし
348 :
nobodyさん :2011/01/04(火) 20:53:58 ID:gmEJx0n4
PHPのスレでAjaxの話題を続けるのは、なぜ?
【OS名】xp 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL 【質問内容】ほぼPHPと無関係ですが、PHPで作ったとあるランキングサイトで起きているちょっとした不都合です。 それはホストの特定についてです。 いまのところ接続者をリモホで識別しています。 このリモホ、可変なのでしょうか? EATcf-1xxxxxxxxx.odn.ne.jp ixxxxxxxxxxxxxx.ap.plala.or.jp アクセスログを見る限りこの二つは特に頻繁に変わっている気がします。 おそらく初歩的な質問ですみません。
350 :
349 :2011/01/04(火) 21:05:32 ID:nnzMIHnB
sageてもうた…。
PHP関係ないだろ
352 :
nobodyさん :2011/01/04(火) 21:33:33 ID:nnzMIHnB
承知の上です。どこできいたらいいですか?
その質問はPHPと関係あるのですか?
せいぜい自分が調べられるワードでググったけど見つからなかったものでここで聞いてみました。
$namespache = \framework\$subname; こんな感じで変数を利用する方法はないのでしょうか?
ID出してください
>>349 一般人がネットに繋いでる回線で固定IPのほうが珍しいだろ
ルータ再起動してみろIPなんてすぐ変わるわ
358 :
nobodyさん :2011/01/04(火) 21:57:04 ID:nnzMIHnB
>>357 IPは誰でもそうなのは知ってますが、リモホは変わらないものだと思ってました。
リモホも人によっては可変ということなのですか?
>>355 考えてみますね
IPとリモホは1:1の関係なわけだが・・・
360 :
359 :2011/01/04(火) 21:58:44 ID:???
一応追記しとくけどもちろんWAN内の話
362 :
nobodyさん :2011/01/04(火) 23:46:58 ID:nnzMIHnB
>>361 リモホも人によっては可変のようですね、スレチにもかかわらずありがとうございました
363 :
nobodyさん :2011/01/05(水) 00:27:54 ID:+86nYwDs
ホームページとかのドメインとリモートホストって本質的な違いあるのかな
リモホとオナホは1つとは限らない環境もあるということよ
リモホの解析はAjaxで可能ですよ
クライアントサイドPHPにしとけ
367 :
nobodyさん :2011/01/05(水) 10:08:32 ID:BkirA51M
PHP.iniを/usr/local/lib/に置いても読んでくれません。 前はこれでできたのですが。 対処方法をよろしくお願いします。
/etc/php.ini
369 :
nobodyさん :2011/01/05(水) 10:35:20 ID:BkirA51M
/etc/php.iniでもダメでした。 何か確認する方法ないですかね? phpinfo();でも、php --iniでも見てもダメでした
phpinfo()でどの場所のphp.iniを読み込んでるか調べろ あと、もちろん編集後はhttpdを再起動してるよな?
371 :
nobodyさん :2011/01/05(水) 10:52:38 ID:BkirA51M
php --iniなんてなかったですね。ごめんなさい。 とりあえずhttpd.conf内でPHPIniDirを使って強制的に読ませるようにしたらできました。 別の方法あるはずなんですがねぇ。
>>371 私、女子高生だけど、OSくらいは書いた方がいいと思うの。
1個前のスレはもうdat落ちして読めません
俺、女子高生だけど、読めたよ
女子高生なんておばさん 今の流行は女子中学生
377 :
nobodyさん :2011/01/05(水) 16:43:39 ID:DFLThWw3
ソース、テンプレート→EUC-JPで作成 mb_internal_encoding→EUC-JP この状態でブラウザで表示させようとしたら、UTF-8で表示されて文字化けします。 HTMLのmetaのせいかなと思い見てみましたがそれもEUC-JPでした。 また、ヘッダーでレスポンスを見ると「text/html; charset=UTF-8」で返ってきておりました。 今までにないパターンでの文字化けで、どの段階での文字化けが怪しいでしょうか。 ご指摘ください。
>>377 手動でエンコーディングを変えてみる。
EUC-JPで正常に表示されるなら、
レスポンスヘッダの文字コード指定のせい。
EUC-JPのターミナルで、phpを実行してみる。
正常に表示されたら、やっぱり文字コード指定のせい。
ソースをEUC-JP指定で開いてみる。
正常に 以下略。
>>377 apache使ってるならhttpd.confのAddDefaultCharset も確認
ゴメン、ソレ、オレ
381 :
nobodyさん :2011/01/05(水) 18:14:39 ID:T+SvEUqU
テキストファイルから読み込んだ文字列を”北海道”と一致するか調べたいのですが === でも strcmpでも一致しなくて悩んでおります テキストから読み取って$valにいれたものをvar_dumpしてみると string(12) "?北海道" となっており var_dump("北海道"); としてみると string(9) "北海道" となります。 上と下で違うということはわかったのですが 何が原因なのかまったくもって不明です 文字コードも両方UTF8です どなたかアドバイスいただければorz
382 :
nobodyさん :2011/01/05(水) 18:17:21 ID:T+SvEUqU
>>381 は出力をコピペしたのですが
上には?というものがはいってますね…目視できなかったのですが
文字コードかえてみたら上は先頭に?ソが入ってるようです
これはどうにかできないでしょうか?
string(12) "?ソ蛹玲オキ驕" string(9) "蛹玲オキ驕"
>>381-382 上はBOMが入ってると思われる
文字コードについて調べるのなら、bin2hex使いなよ。
var_dump(bin2hex($val));
384 :
nobodyさん :2011/01/05(水) 18:26:59 ID:T+SvEUqU
>>383 ありがとうございました!
結局もう一度ファイルをUTF8で保存しなおしたら動くようになりました
BOMで悩んでる人とか久々にみた可愛い
386 :
nobodyさん :2011/01/05(水) 18:52:48 ID:/BZr9M7L
くだらない質問ですみません .=とはどういう意味なのでしょうか
後ろの文字につなげる $a = "テスト"; $a .= "田中"; echo $a; やってみ
388 :
nobodyさん :2011/01/05(水) 19:04:58 ID:/BZr9M7L
*=とかと同じという感じですか! ありがとうございます! テスト田中さんはボクもファンです!
>>388 > *=とかと同じという感じですか!
何の言語かわからんが、PHPでは多分違った動作だ。
$int = 3;
$int *= 5;
echo $int; // 15
390 :
nobodyさん :2011/01/05(水) 19:09:18 ID:/BZr9M7L
-=とか+=って左の変数に右の変数を足したり引いたりしたものを入れるという ○=シリーズなのかなと
>>390 そういうことか
○=シリーズの文字列版だな
っていうかテスト田中って誰だ
Javascript なら文字列の結合は += です。 Ajaxの基本ですね。
何を言い出すかと思えば低レベルな
397 :
nobodyさん :2011/01/06(木) 04:25:57 ID:x4BB1WQh
while ($hoge = fgets($fp, 1024)){ 処理 } とあるのですが、これは$hogeがfgetsと等しい時にtrueを返して繰り返されるという意味でよろしいのでしょうか? 比較演算子で等しい時は==だと思うのですが
>>397 $hageにfget($fp,1024)の値が代入されると真。FALSEなら偽。
$hageにFALSEが代入されるまで続く。
$hageにFALSEが代入されると、while()の継続条件が偽になるから終わる。
399 :
nobodyさん :2011/01/06(木) 05:39:12 ID:x4BB1WQh
つまりfget($fp,1024)が全部代入されつくしたら、代入するものが無くなってFLASEが代入され偽となり 繰り返しが止まるという事ですが。 ありがとうございます、勘違いしたままになる所でした
0とか来たら終わるけどな
<?php $fp = fopen( "test.txt", "r" ); while ( $hoge = fgets( $fp, 1024 ) ) { echo "while in"; var_dump( $hoge ); } echo "while out"; var_dump( $hoge ); ?> -test.dat 0
<?php $fp = fopen( "test.dat", "r" ); while ( ( $hoge = fgets( $fp, 1024 ) ) !== FALSE ) { echo "while in"; var_dump( $hoge ); } echo "while out"; var_dump( $hoge ); ?> --- test.dat 0
403 :
nobodyさん :2011/01/06(木) 11:09:14 ID:A2B05vAM
文字コードについての質問です。 phpinfo()で mbstring.http_input pass mbstring.http_output pass mbstring.internal_encoding no value この場合で、次に優先される文字コードは何でしょうか。 htmlのmetaタグにcharset=EUC-JPの表記をしておりますが、 ブラウザのヘッダーのレスポンスではcharset=UTF-8で来てしまいます。
>>403 > この場合で、次に優先される文字コードは何でしょうか。
phinfo() で得られる mbstring.internal_encoding の Local Value と Master Value の値が不明なので文字コードを答えることは不可能です。
> htmlのmetaタグにcharset=EUC-JPの表記をしておりますが、
metaタグの表記が正しいかを再確認ください。
誤った表記の場合にはブラウザー側でmetaタグを有効にしません。
> ブラウザのヘッダーのレスポンスではcharset=UTF-8で来てしまいます。
どのようにして、「ブラウザのヘッダーのレスポンス」が「来ている」のを確認していますか?
言わんとされていることが、どの様な状態を述べているかが判然としません。
サーバーとしてApacheを使用しているのならば、httpd.conf で以下の設定がどの様になっているかも確認ください。
AddLanguage
LanguagePriority
AddDefaultCharset
AddCharset
405 :
nobodyさん :2011/01/06(木) 12:30:57 ID:rIZ8uG+B
sqlite_escape_stringなんかねーぞ!と怒られたのですがどの関数を代わりに使えば良い?
>>405 レン鯖で?
ローカルならphp.iniでライブラリのコメントアウトをはずしてあげればいいんじゃないかな
407 :
nobodyさん :2011/01/06(木) 12:43:22 ID:rIZ8uG+B
>>406 いえ、ローカルです。
情報が少ないのですがPHP5.3から組み込まれたとか何とかで無くなったらしいのですが、
今ひとつ理解に苦しんでいます。
[PHP_PDO_SQLITE]
extension=php_pdo_sqlite.dll
[PHP_SQLITE3]
extension=php_sqlite3.dll
408 :
nobodyさん :2011/01/06(木) 12:48:17 ID:A2B05vAM
>>404 ありがとうございます。
ヘッダーの確認はFirefoxのアドオン『Live HTTP headers』で確認し、
「Content-Type: text/html; charset=UTF-8」を確認しました。
HTMLのmetaタグは、
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
と表記しております。
Apache側で文字コードの設定する項目は特にありませんでした。
httpd.conf, conf.d以下のファイル全て確認
409 :
nobodyさん :2011/01/06(木) 12:48:22 ID:rIZ8uG+B
あ、php_pdo.dllが組み込まれてなくなったらしい sqlite_last_errorも無いようですが、どうしろと?
410 :
nobodyさん :2011/01/06(木) 13:19:40 ID:rIZ8uG+B
エラーはPDOException でも拾えないわ
えろい人、ヒントくれ!
>>408 優先順位は知らないけど素直にphpでheaderを吐けば良いのでは?
それでもレン鯖で広告とか入ると環境によっては文字化けするけど
PDO使ってるならプリペアドステートメント使うよろし
>>408 > この場合で、次に優先される文字コードは何でしょうか。
> phinfo() で得られる mbstring.internal_encoding の Local Value と Master Value の値が不明なので文字コードを答えることは不可能です。
未回答ですね。質問するならば問われた環境を答える姿勢も必要です。
> Apache側で文字コードの設定する項目は特にありませんでした。
> AddLanguage
> LanguagePriority
> AddDefaultCharset
> AddCharset
これは、指摘された事項の全てが未設定であるとの回答ですか?
問題を解決したいのならば、問われたことにきちんと回答しましょう。
PDOって何?www
PDOはAjaxに決まってるだろ
またスルー検定やってんのか。
418 :
nobodyさん :2011/01/07(金) 12:55:39 ID:wJp74Is3
すみません、phpで動くTwitter bot、EasyBotterを使っているのですが(
ttp://pha22.net/twitterbot/ )、
投稿間隔が短すぎたため、1時間半に設定したいと思っています。
現在、
if(date("i") % 60 == 0){
$response = $eb->postRandom("data.txt");
}
こう書いて、1時間ごとに設定しています。
これを1時間半ごと、2時間ごとに設定するには、どうすればいいのでしょうか?
("G")などにしてみましたが、指定された時間内に実行されるだけのようです。
どなたか教えて下さい。お願いします。
60という数字を見て何か思いつかないのかね君は
PHPで制御しないでcronとかタスクマネージャーで制御してください
421 :
418 :2011/01/07(金) 14:08:32 ID:???
replyに返したいので、cronは1分ごとなんですよね・・・。 試しに60を120に設定してみました。2時間待ってみます!
いや、date("i") が 00から59だからそれだと変わらんな。
前の更新時間を保存すればできなくもない
unixtime使えばいいよ if(date("i") % 60 == 0) ↓ if (time() % 5400 == 0) 5400は秒数で1時間半 2時間なら7200にする
427 :
426 :2011/01/07(金) 15:09:29 ID:???
と思ったけど秒数指定だとタイミングがシビアすぎる? 下手したらうまく投稿できないかもな 間隔が指定されていて1分間に最大1回までしかそのスクリプトを叩かないという保障があれば if (time() % 5400 < 60) とかでもいいと思うけど
cronだと時間通りに実行される事は保証されない(高負荷時や電源off時など)
時間通りに実行されなかった場合、anacronが有効になっていれば遅延実行される
素直に
>>423 のように前回の時間を保存しておき
そこから1時間半以上経ってたら実行させるか
別スクリプトにし、cron設定を1時間半置きにするかしたほうがいいかと。
429 :
nobodyさん :2011/01/07(金) 15:58:11 ID:9ignEtZm
定数について質問です。 define("DAY_1", 1);とすると、既にシステムで定義済みでした。 リファレンスを見ると、 __LINE__ __FILE__ __FUNCTION__ __CLASS__ __METHOD__ しか書いておりませんでした。 どこかで定義済みの定数一覧を確認する方法はないでしょうか?
431 :
nobodyさん :2011/01/07(金) 16:12:27 ID:9ignEtZm
>>430 ありがとう
しかしDAY_1とか何に使うんだwwww
君の好きなように使っていいよ
週の一日目ってやつだな。
>>429 は定義済みの定数じゃなくて自動的に定義される定数だろ。
嘘はいけない。
しかもそのページに定義済みの定数へのリンクあるしなw
更に言うと古いリファレンスだなそれ
誰か俺の書き込みに反応してくれ
>>439 3行とも無理やり嘘をごり押しして楽しいか 朝鮮人みたいだなw
あんま続けるとAjax厨が新しい言葉覚えたから面倒になるぞ Ajax厨の覚えた言葉一覧 回答者にID出せ ↓ Ajaxで全て解決 ↓ アホ確定
>>444 Ajaxですからセンスに欠けるんです。
Ajax厨っていうかAjaxアンチじゃねーの
sqliteでプライマリー乗せてもレコード増えすぎるとやはり動作鈍くなるかな?
450 :
nobodyさん :2011/01/08(土) 17:20:36 ID:XS66UTHq
何もわからない どこで何をダウンロードして何をインストールして何を設定して何を見て勉強すればいいのかわからない
そうですか
>>450 まずはJAXAに入隊することをお勧めする
454 :
nobodyさん :2011/01/09(日) 01:10:39 ID:hhQtxAfg
Ajaxaの使用をお勧めします。
そもそも
>>450 みたいなやつはPHPをやる必要がないのでやらなくていいだろ
決してPHPをやる資格がないとかいうことではなく単に必要がないということ
冷たいな
>>450 幼稚園でPC学習のために教えている積み木がマジお薦め。
構造体はもちろん、つまづきやすいポインタの概念や、
値渡し、参照渡しなどの概念が簡単に身につく。
ビットシフト演算なんかは、積み木が一番わかりやすい。
逐次処理、条件分岐、反復の構造化プログラミングの基礎
から、オブジェクト指向の初歩まで、幼稚園で学べる(専門用語
は使ってないし、PC学習だとも言ってないけど)積み木最強。
立方体ならなんでもいいけど、簡単に手に入るのはくもんのやつ。
458 :
nobodyさん :2011/01/09(日) 23:03:08 ID:Un2SN/N4
どこかに日本の月齢を割り出せる公開スクリプトはありませんか?
つGoogle
460 :
458 :2011/01/09(日) 23:23:25 ID:???
海外はあるけど日本だとそのまま使えないw
461 :
458 :2011/01/09(日) 23:25:17 ID:???
あ、いや ごにょごにょ 諦めて弄ることにします
462 :
nobodyさん :2011/01/10(月) 00:57:34 ID:jiNzzCCp
【OS名】xp 【PHPのバージョン】5.3 【連携ソフトウェア】MySQL 【質問内容】VIPで集めたたくさんのエロ画像を使って、ワンクリックでどんどん画像を流していけるような便利なギャラリーサイトを作ってみてます。 readdir()関数で指定した場所のファイルを読むことに成功しましたが、 目的のエロ画像が丁寧にも日本語で保存しちゃったためにうまいこと読み込めませんでした。 どのようにすればこれを読み込めるでしょうか。 ファイルのリネームは作業量的な意味で避けたいです。 while($file_name = readdir($res_dir) ){ $size = filesize($file_name); echo $size; //日本語ファイルのうち一部は0が返ってくる }
.と..はいいの?
464 :
nobodyさん :2011/01/10(月) 01:17:57 ID:jiNzzCCp
>>463 どのような意味かはわかりかねますが、
.と..の取得はできていますが目的のファイルではないため、
if(filetype($file) == "dir") continue;
として回避しています。
>>464 解決策を探ってあげるからまずそのスクリプトをURLとセットでうpをだな
読めないファイル名を一部書いてみ?
467 :
nobodyさん :2011/01/10(月) 01:50:01 ID:jiNzzCCp
>>465 このエロ画像の群れはおそらく公開すると違法になるのでごめんなさい
>>466 例えば"ヨスガノソラ"とかの文字列は完全にダメです
468 :
nobodyさん :2011/01/10(月) 01:57:29 ID:r0K6qIgE
引数で指定された変数に文字列を入れたいのですがどうしたらいいですか? func($s); echo $s; function func($s) { $s = "あいう"; } こんな感じにしたいです
469 :
nobodyさん :2011/01/10(月) 02:03:55 ID:jiNzzCCp
>>466 いろいろ調べてみたところ、カタカナの"ソ"が原因のようです。なぜでしょうね・・・
日本語でおk
>>468 $s = func();
echo $s;
function func()
{
$s = "あいう";
return $s;
}
引数は使ってないけどこう?
fileなんとか言ってる奴は間にmb何とかを挟め 文字列云々言ってる奴は&付けてポインタ渡せ
473 :
nobodyさん :2011/01/10(月) 02:35:24 ID:oG6fhevv
PHPからHTMLを出力したいのですが文字化けしてしまいます。 エディタでBOMなしのUTF-8で保存するのと同じことをしたいのですが、 どうやってファイルを出力すればいいのでしょうか? ヘッダのmetaタグではUTF-8と指定しているのですが、 どうもUTF-8以外のコードで保存されてしまっているようです。 <?php $string = <<<EOF <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>テスト</title> </head> <body> <h1>あいうえおアイウエオ亜伊宇江尾</h1> </body> </html> EOF; touch("test.html"); file_put_contents("test.html", $string); ちなみにこのスクリプト自体はShift_JISで保存されています。 このスクリプトをUTF-8で保存すると問題はなくなりますが、 Shift_JISでも動かしたい場合はどうすればよいのでしょうか? あとで編集するときに文字コードを無意識に変更してしまう場合もあるので、 文字コード問題が起きないような作成方法があったら教えてください。
shift_jisで表示したい時だけコンバートかければいいじゃん
475 :
nobodyさん :2011/01/10(月) 02:39:25 ID:jiNzzCCp
476 :
473 :2011/01/10(月) 03:12:32 ID:oG6fhevv
>>474 説明じゃよくわからないのでコード出していただけると嬉しいです。
477 :
nobodyさん :2011/01/10(月) 03:17:35 ID:r0K6qIgE
>>471 ありがとうこざいます。
ライブラリのソース見てたら参照渡しであることが分かりました;;
func(&$s)
PHP5.3だと日本語のバグがある。 諦めて5.2を使うとよい
479 :
nobodyさん :2011/01/10(月) 03:59:13 ID:0fz3EibB
継承元クラスのプロパティを取得するにはどうすればいいのでしょうか? class Main extends Base{ function test(){ ここで継承元・Baseクラスのプロパティ$strを取得してprint_rしたい } } 関数ならparent::test();のようにすれば良いのはわかるのですが・・・
class Base { protected $test = "hoge"; } class Main extends Base { function test() { return $this->test; } } $main = new Main(); echo $main->test();
class Base { protected $test = "hoge"; } class Main extends Base { function test() { $base = new Base(); return $base->test; } } $main = new Main(); echo $main->test(); それじゃ子のプロパティさすしこうだろ インスタンスメンバーだからインスタンス化するしかない parent::$testのようにアクセスしたければクラスメンバ(static)にしないとな
別にMainのtest()内で$this->strでいいだろw
>>475 SJISをやめるか正しく変換する
>>475 XPだとムリっていう結論だった気がする2,3スレ前にも同じようなのが居た
ソって SJISだと805Cなので 日本語わっかりませーんな関数だと 80っていうわけのわからん文字と、\だなって判断するんだな。
486 :
nobodyさん :2011/01/10(月) 10:54:04 ID:0fz3EibB
俺には全く勉強にならん
489 :
nobodyさん :2011/01/10(月) 14:12:01 ID:WZZUC9HT
Zend Frameworkで「strictredirects」の値を取得したい時の参照方法を教えていただけませんか? 以下、var_dumpの結果です。 ================================================ object(Zend_Gdata_App)#61 (6) { ["_httpClient:protected"]=> object(Zend_Http_Client)#9 (15) { ["config:protected"]=> array(12) { ["maxredirects"]=> int(0) ["strictredirects"]=> bool(true) ["useragent"]=> string(16) "Zend_Http_Client" ["timeout"]=> int(10) ["adapter"]=> string(31) "Zend_Http_Client_Adapter_Socket" ["httpversion"]=> string(3) "1.1" ["keepalive"]=> bool(false) ["storeresponse"]=> bool(true) ["strict"]=> bool(true)
>>488 じゃMainでMain()->$strをMainで変更したあとに
Base()->$strの値を参照しようとMain()->$strにアクセスすると期待通りの結果を得られるわけですね?
なわけねーだろバーロwwwwwwwww
どっちもどうとも言えない
>>479 がどうしたいかによる
>>489 オブジェクトにアクセスしたいってこと?
is_objectみたいなのってないんだっけ typeでstring比較するしかない?
評判の良い本を買ったんだが、文字コードがeuc-jpで変換がめんどくせえ
なんて本?
だから評判の良い本って言ってんだろうがボケ
ちょっと知りたいことでも、他者から見て質問と受け取られる可能性があるならば、IDを出した書き込もう! それがこのスレが荒れない要素の一つだったりします。
初見さんは184はずしてコメしてくださいね!
これで$a->varが777になるのってなんか気持ち悪いかも インスタンスが参照渡しだからなんだろうけど流れ的に違和感がある こんな気持ち悪い書き方をするのって普通? class a{ var $var = 0; } class c{ function c($inst){ $inst->var = 777; } } $a = new a(); $c = new c(); $c->c($a); var_dump($a->var);
>>502 おまえ、cしかやった事ないだろ
後、3言語程やってからphpを始めろ
class リーマン { public $手持ちの金 = 0; } class 会社 { public $基本給 = 0; public function 給料やる( $リーマン ) { $リーマン->手持ちの金 += $this->基本給; } } $おまい = new リーマン; $ブラック = new 会社; $ブラック->基本給 = 500; $ブラック->給料やる( $おまい ); $せんぱい = new リーマン; $ブラック->給料やる( $せんぱい ); if( $せんぱい->手持ちの金 < $おまい->手持ちの金 ) { $せんぱい->say金かして(); } 普通じゃねーか
醜くなっただけじゃねーか お前の事じゃなくてソースなw
508 :
nobodyさん :2011/01/11(火) 17:34:11 ID:8HymJ9iF
MySQLのJOINをした時のフィールド指定について質問です。 $sql = "SELECT * FROM a INNER JOIN b ON a.id=b.a_id"; $res = mysql_query($sql); while($col = mysql_fetch_array($res)){ } 上記のコードの場合、mysql_fetch_arrayでDBからデータを取ろうとしても 同じフィールドが存在すると被ってしまいます。($colに入らない) フィールド指定を「a.name AS a_name, b.name AS b_name」 としたら表示されるのですが、このようにひとつずつ指定するしかないのでしょうか?
下らねえ
510 :
nobodyさん :2011/01/11(火) 20:04:54 ID:bAp9UI91
携帯サイトのログインでutnで携帯のID取得するときってssl使わないと駄目ですかね?
>>508 そのとおりです。必要なフィールドだけ as で指定すればいいでしょう。
select *, a.name as a_name, b.name as b_name from a ...
DBを設計するときに連結する可能性のあるテーブル同士でフィールド名が
重複しないように命名しておくのがミソです。
いや別に同じ名前でもいいだろw というかその方が普通だろ・・・ どちらかというとクエリーで*を使うなよw
513 :
nobodyさん :2011/01/11(火) 21:27:45 ID:8HymJ9iF
>>511-512 と言うことは長くなっても使うフィールドだけ指定すると言うことですね。
正直めんどくさいですが、理解できました。ありがとうございます。
カラム名をテーブル名_カラム名にしておくと吉
それするとやたら長くならないか?カラム名が。
カラム名の長さとか気にしてんの?
517 :
nobodyさん :2011/01/11(火) 23:43:49 ID:0PP1ZKa2
SELECT 'from',COUNT('from') FROM post GROUP BY 'from'; これをちゃんと動くようにするには?
◆質問する時の注意 ・ 質問者として、態度をわきまえること。
SQLスレ池
520 :
nobodyさん :2011/01/12(水) 02:21:21 ID:1ZGOyXUL
初心者です。データベース設計について質問です。 勉強のためにブログを作っています。 コメント欄のデータベース管理についてなんですが、 一つのテーブルを作ってすべてのコメントをそこに保存し、記事番号カラムで呼び出すか 記事ごとにテーブルを作って、テーブルごとに呼び出すか というパターンが考えられると思うんですが、どちらが相応しいのでしょうか?
すんません、 data.xml: <?xml version="1.0"?> <data> <a b="&#x22;" c="hoge" /> </data> data.xmlのbの値を元にaを見つけてcのhogeを取り出したいんだけど、 $xml= simplexml_load_file("data.xml"); $method = '//a[@b="&#x22;"]'; $xml->xpath($method); この時点でaが見つけられないんだけどどこがおかしい?
>>520 普通は1つのコメントテーブルに記事IDで分ける形だよ。
テーブル:comment
カラム:id, article_id, title, body, date
みたいな。
525 :
521 :2011/01/12(水) 04:26:42 ID:???
害虫が1匹住み着くだけでどんなスレも見事にだめになるなw
最初から駄目なスレだと思っていたが
そんなことない。俺はちゃんと答えてる。ほとんどの人がそうだ。 一部の駄目な奴が無理矢理荒らしてるんだろ。ライバル増やしたくなくて。
他スレや技術系のblogとか見ればわかるだろ、phpは嫌われてるんだよ 板の統廃合で板URLが「php」の方に統一されてしまった時に 散々荒らしが涌いた、だから2chでは特にphpは嫌われている 今はやってないだろうが、他言語で有名な人がここでの荒らしを公言してたしな
という夢をみた
>>530 お前みたいなカスがしょうも無い回答するから駄目なんだろう
Ajax厨のたわごとは聞き飽きた
534 :
nobodyさん :2011/01/12(水) 20:49:41 ID:1ZGOyXUL
>>533 何も他人に与えられないカスのお前よりマシだ
スルーもできないのかよ 荒しと変わらんぞ
webプログラムのコードを読むコツ教えてください。 リクエスト受け取ってから出力までのシーケンス図を描くことで良い?
webプログラム言うてもPHPの場合は送られてくるデータは変数にセットされてるし レスポンスもヘッダを自動的に送ってくれるからwebプログラム学びたかったら他の言語がいいと思う
>>536 人のことを荒らしと呼ぶ奴が荒らしだって先生が言ってた
>>537 逆。結果を思い描いてから、それを実現するまでの道筋を考える。
544 :
nobodyさん :2011/01/13(木) 10:16:38 ID:OvDwhANq
投稿されたデータをパスに足そうと思うのですが何の文字に注意したら良いでしょうか、 「..」だけ弾いておけば上に行かれる心配はありませんか? echo file_get_contents($base.$_POST["updata"])
/入れられたらどうするの?そもそもPHPのコード入れられたら? 外部パスを受け入れるとか、どう考えてもセキュリティホールになるだろうが。
【OS名】XP Pro 【PHPのバージョン】5.2 【連携ソフトウェア】なし 【質問内容】 サーバーステータスのコーディングについて質問です。 LAN側のポート単位のチェックはできるのですが、 WAN(外部)側のIPのポートが使われてるか表示させる事は可能でしょうか? どうかご教示お願いいたします。
>>546 意味が良くわからないけど、外部からアクセスできるか知りたいのなら串を使うなり
そういうチェックを支援してくれているサイトがあるからそこを使うよろし。
ポートスキャンならセキュリティサイトでも調べられるよ。
>>547 説明が下手ですみません。
他のWebサイトでチェッカーがあるのは知っているのですが、自分のWeb上で表示させたいのです。
ちなみにポート開放のスキャンではありません。
例をあげますと
自宅のサーバーで動かしているポートを使う何かしらのアプリが起動できているか、
異常終了や切断されているかを会社など外部からPHPで判断できるようにしたいのです。
表示方法は「Online」か「Offline」のどちらかのフラグだけで十分です。
定期的にping飛ばすだけじゃん…
550 :
546 :2011/01/13(木) 11:24:04 ID:???
<?php function check_port($port) { $conn = @fsockopen("127.0.0.1", $port, $errno, $errstr, 0.2); if ($conn) { fclose($conn); return true; } } function server_report() { $report = array(); $svcs = array('80'=>'HTTP'); foreach ($svcs as $port=>$service) { $report[$service] = check_port($port); } return $report; } $report = server_report(); ?> <table border="border" bgcolor="#EEDD82"> <tr bgcolor="#EEDD82"> <td width="115" bgcolor="#EEDD82"><div align="center">サービス</div></td> <td width="65"><div align="center">状態</div></td> </tr> <tr> <th></th> </tr> <tr> <td>HTTP</td> <td><div align="center"><?php echo $report['HTTP'] ? "<font color="."blue"."><strong>Online</strong></font>" : "<font color="."red".">Offline</font>" ?></div></td> </tr>
551 :
546 :2011/01/13(木) 11:24:46 ID:???
LAN内部だけですと
>>550 のようになってます。
HTTPの部分だけですが
>>549 よろしければもっとヒントをいただけませんか・・・
Windows使っているなら、コマンドプロンプトから 空きポートにpingを送って、通るか否か調べるって事だろ? さすがにヒントも糞も無いと思うんだが・・。
554 :
546 :2011/01/13(木) 11:31:24 ID:HlCtfQfp
>>552 いや・・・
>>548 でも書いた通り「PHPのWeb上で」表示させたいのです・・・
でもPHP上でping送信を使えばいいのかな
>>553 ageるほどでもないと思っていたので失礼しました
よくMMOサイトでサーバー稼動中みたいなアイコンのあれでしょ。 全てのサービスを同一のパソコンで稼動させていたとしても、 結局は素直に各サービスのポートを叩いて確認するしかないのでは?。
556 :
546 :2011/01/13(木) 11:40:45 ID:HlCtfQfp
>>555 まさにそんな感じです。
おそらくMMO運営は負荷軽減のため複数の回線を使用していると思いますが。
そういう別のWANの場合どう指定してあげればいいのかなという事です。
>>550 のやり方ではWAN指定できなかったので、pingで跳ね返ってくるか確認という事でしょうか?
ポートにpingとかw
そもそも特定のポートが「使われていない」状態ってあるのか? 俺も鯖管理してるけど、ポートがふさがってる時は だいたい鯖が落ちてるかiptablesの設定が悪いかだと思うけどな。 つまり、特定のポートだけ発生する現象ではないと思うが。
560 :
546 :2011/01/13(木) 11:51:31 ID:HlCtfQfp
>>557 ありがとうございます、ソース覗いてみました。
これ使えるかもしれませんね。PHP単体は諦めて1回試してみます!
>>559 ポートがふさがるっていう概念はどうかと思いますが
「使われていない」という状態はありますよ。
アプリを通してポートを完全に開通させ、アプリが終了してたらバウンドしなくなりますし。
>>550 のソースのどこがダメだったの?
fsockopenのところを他サーバのipアドレスにしたけど
俺のとこではちゃんと動いてるよ?
>>560 ああ、「使われているかどうか」をチェックしたいのか。
誤解してた。すまん。
俺はpingなんて言ってないぞw pingは通るけどサービスが死んでいるとかよくあるはなしさ
565 :
nobodyさん :2011/01/13(木) 15:51:08 ID:eIBAKAY8
使われているか > WAN(外部)側のIPのポートが使われてるか > そもそも特定のポートが「使われていない」状態ってあるのか? 開放しているか > ちなみにポート開放のスキャン 空いているか > 空きポートにpingを送って、通るか否か調べるって事だろ? 塞がっているか > ポートがふさがってる時は 日本語での表現は難しい。
567 :
nobodyさん :2011/01/13(木) 17:59:33 ID:NmcnbSQP
プログラムというか、ロジックの考え方についての質問です。 携帯向けサイトを作る時、管理画面などでセッションの管理にクッキーを利用しない設定が必要ですよね。 でも、そのサイトをPCでも使うのなら、PCでの操作にはクッキー利用するのが普通だと思います 1)この条件を両立させたい場合、以下のようにするわけでしょうか? ・php.iniでクッキー利用を有効に ・携帯向け管理画面(ディレクトリが独立してるなら)のディレクトリに、クッキー無効の.htaccessを設置 また、そもそも.htaccessの効果がよくわかりません。 2)設置したディレクトリ以下に対して、http.confやphp.iniなどでの設定よりも優先される命令をできるってことですか? 3)1)についてですが、携帯向け管理画面のディレクトリが独立していない場合、 たとえばフレームワークを使っていてコントローラをPC版と共通化し、viewの出力のみ 携帯専用の出力させていいる時などは「.htaccessをディレクトリに設置」て無理ですよね。 その場合はどんな風に作ったら効率的なんでしょうか? セッション使わないとなるとコントローラ・アクションのソースそのものが違ってくるから 素直に携帯向け管理画面コントローラとして独立させるのが結局賢くなるんでしょうか? PC版と携帯版、どんな風に作るのが効率的で管理しやすいんでしょうか? もちろんスキルによるとは思うので、参考として「こんな風にしている」という話を聞きたいです。 よろしくお願いします (自分はphp5とzendFWを使っています)
>>567 > そのサイトをPCでも使うのなら、PCでの操作にはクッキー利用するのが普通だと思います
何が「普通」なのだろうか?
この発想から課題が発生しています。
普通だろks
偏屈くん
別に難しく考える必要はない 携帯なら携帯固有情報をパソコンならクッキーを焼けばいい セッションを張った時点で勝手に焼きよるけど
「空きポートにpingを送る」の意味がわからん。 書いてる奴は理解してんの?
>>567 ディレクトリが独立してなくても.htaccessの中で機種判別して
携帯だったら〜を設定、ってすればいい。
.htaccessは対象ディレクトリに限ってhttp.confやphp.iniの設定を
上書きすると考えていい。
>>573 pingで送るのだけがpingじゃないからみんな分かってると思うよ。
そんなくだらん言い訳は要らんw
ガラケーの携帯サイトってほんと脆弱性の固まりだな… セッションハイジャック系が難なく出来る時点で終わってるわ
そんなことしたら不正アクセスで捕まります
ところがどっこいグレーゾーンなんですわ それは高木ちゃんも言ってるんだよね
高木がグレーと言ったら何でもグレーなのか? 判断するのはお前や高木じゃないことは確かだ
はぁ、最近の奴は法律もわからないのかねぇ… 裁判記録を追ったりも出来ない情弱さんなら致し方ないかぁ…
>>573 もう
>>552 を責めないで下さい。
上から目線で無知を晒してしまって恥ずかしいとか、
質問者を少なからず混乱させてしまって申し訳ないとか、
そういった常識的な対応は匿名掲示板ですので期待しないで下さい。
583 :
567 :2011/01/14(金) 00:43:04 ID:???
皆さん回答ありがとうございました 勉強になりました
>>581 高木の発言を鵜呑みにするような情弱さんと一緒ですね
>>584 裁判記録とか見てたら鵜呑みじゃないんじゃないの?おれは良く分からんけど
高木が裁判記録を追わないで記事を書き続ける話しは、このスレで良いのですか?
有名な人に無名な奴が文句を言ってるさまが何とも滑稽w
もう高木ブーさんの話はやめにしようぜ それよりも森末慎二の話しようよ
589 :
nobodyさん :2011/01/14(金) 09:39:14 ID:x5/cEkaG
PEAR:MDB2のprepareがうまく動きません。 // 接続 $this->db = MDB2::connect(-省略-); //接続が失敗したとき if(MDB2::isError($this->db)){ echo "データベース接続失敗"; exit; }else{ echo "データベース接続成功"; } //準備 echo "テスト出力A"; $sql = "SELECT * FROM USER_TBL WHERE USER_NO = ?"; $stms = $this->db->prepare($sql); echo "テスト出力B"; //実行 $res = $stms->execute(array(1)); //結果の取得 $row = $res->fetchRow(); print_r($row): このようなソースを書いているんですがデータベース接続成功と テスト出力Aは表示されますが、Bの表示がなくどうもprepareの所で処理が 終了しているようです。これは何が原因でしょうか?ご教授願います。
>>589 > Bの表示がなく
・Bの表示だけが無い
・B以降の表示が無い
591 :
nobodyさん :2011/01/14(金) 10:08:43 ID:x5/cEkaG
>>589 すいません、B以降の表示が全てありません。
PEARとか使ったこと無いから答えられない 俺正直だからわからないときはわからないと言う 高木みたいに知ったかぶりはしない
593 :
nobodyさん :2011/01/14(金) 10:54:34 ID:x5/cEkaG
>>592 そうですか、ありがとうございます。
どなかたわかる方いらっしゃいますでしょうか?
他にわかる人がいるかどうか、俺にはわからない
PEARは使わないし内容を見る気もないけど たぶん、$stmsのオブジェクトが無い
プレースホルダにバインドしてないとか・・・?
エラーログを確認するのが先
echo "テスト出力B"; if(PEAR::isError($stms)){ echo "prepare失敗". $stms->getMessage(); exit; }
599 :
nobodyさん :2011/01/14(金) 11:32:09 ID:x5/cEkaG
>>595 ありがとうございます。
オブジェクトが無いですか。
SQL文をそのままphpmyadminで
実行すると問題ないですし
prepareでなく、queryを使って
SELECT * FROM USER_TBL
を実行すると問題なく表示されました。
なぜかprepareのみの挙動がおかしい状態です。
600 :
nobodyさん :2011/01/14(金) 11:35:29 ID:x5/cEkaG
>>598 ありがとうございます。
教えていただいたとおりにやってみましたが
テスト出力A以降はなにも表示されない状態です。
601 :
596 :2011/01/14(金) 11:36:54 ID:???
>>589 USER_NO = ?
の?に値を何も設定しているように見えないのですが、
このあたりはだいじょうぶですか?
どんな環境か知らんがphp.iniでエラーメッセージ全開にしろ 基本の基本
自分のとこではこれで動くので分かりませんな。 USER_NOが1のデータがないとかそういうことはないよね?
604 :
nobodyさん :2011/01/14(金) 11:44:18 ID:x5/cEkaG
>>602 ありがとうございます。
display_errors = On
を入れてみましたが、表示はなにも変わりませんでした。
>>603 ありがとうございます。
はい、DBを確認しましたがデータは存在します。
PEARが壊れてる?
// 準備 echo "テスト出力A"; /*@*/ var_dump( $this -> db -> getMessage() ); $sql = "SELECT * FROM USER_TBL WHERE USER_NO = ?"; /*@*/ var_dump( $this -> db -> getMessage() ); $stms = $this->db->prepare($sql); /*@*/ var_dump( $this -> db -> getMessage() ); echo "テスト出力B"; 準備部分を上のように書き換えて、実行した結果はどうなりますか?
607 :
nobodyさん :2011/01/14(金) 11:54:06 ID:x5/cEkaG
>>605 ありがとうございます。
ダウンロードしなおすべきでしょうか?
>>606 ありがとうございます。
表示されるものが変わりました。
Fatal error: Call to undefined function: MDB2_Driver_mysql::getMessage(). in -省略-MDB2/MDB2.php on line 1936
関数がないというエラーでしょうか。
>>604 display_errors = On
error_reporting = E_ALL | E_STRICT
log_errors = On
あれ? PEAR:MDB2 で getMessage() は使えないの?
エラー出た時だけ使えるんだな。 出てないときは undefindになる・・・
$this->db =& MDB2::connect(-省略-); しないとダメとかいうPHP4オチ
612 :
nobodyさん :2011/01/14(金) 12:26:25 ID:x5/cEkaG
>>611 ありがとうございます。
やってみましたが、ダメでした。
レンタルサーバー : XREA
PHP : 5.2.5
MySQL : 5.1.22
全ての情報を開示していないと踏んで文字コードの問題とか言ってみたりする 最新バージョンを使っているせいかと思ったらFatal error多いーな
>>610 エラーが出ているときだけに使えるのならば、
// 準備
echo "テスト出力A";
$sql = "SELECT * FROM USER_TBL WHERE USER_NO = ?";
$stms = $this->db->prepare($sql);
/*@*/ var_dump( $this -> db -> getMessage() );
echo "テスト出力B";
これで使えるってこと?
あとは間抜けにもフィールド名が一致しないとかそういうくだらない話だろうな 情報の小出しに振り回される人々w
prepareでエラーが出ても、それが入るのは $stmsだな。 エラーがなければ$stms->getMessage()も undefinedだが。
617 :
nobodyさん :2011/01/14(金) 13:10:49 ID:x5/cEkaG
>>613 文字コードはファイル、DB共にUTF-8で統一しています。
>>614 やってみました。
しかし、出力Aまでしか表示されずエラーメッセージもありません。
>>615 フィールド名は何度か確認しましたが一致しています。
そもそもSELECT * FROM USER_TBLだけで読めるのか、 あとアンダバーで何かトラブルがあった気がする。
619 :
nobodyさん :2011/01/14(金) 15:09:17 ID:x5/cEkaG
>>618 queryメソッドを使って
SELECT * FORM USER_TBLで読めました。
もしかしてフィールド名にSQLの予約語を使ってないかw
621 :
nobodyさん :2011/01/14(金) 15:31:15 ID:x5/cEkaG
$stms = $this->db->prepare($sql); if (MDB2::isStatement($stms)) { echo "実行ok"; } else if (MDB2::isError($stms)) { echo "error";var_dump($stms->getMessage());exit; } else { echo "その他"; exit; } echo "テスト出力B";
623 :
nobodyさん :2011/01/14(金) 16:31:27 ID:x5/cEkaG
>>622 やってみました。
しかし、prepareをやっている行から下にある
echoはどれも表示されません。
prepare行の所でプログラムが強制終了しているのでしょうか?
だから$stmsオブジェクトがないんだって。 それはクエリーに問題があるからで、しかも失敗している部分はテーブルから先にある。 もしかして・・・こんなオチ? SELECT * FROM USER_TBL WHERE USER_NO = '?'
625 :
nobodyさん :2011/01/14(金) 17:13:22 ID:x5/cEkaG
>>624 $stmsにオブジェクトがない事によって
それ以降のecho等も実行されないわけですか?
?に''をつけてみましたが同じ結果でした。
別のサイトで、PEAR::MDB2ではなくPEAR::DBを使っていたので
それを流用し、DBを使って同じようにprepareからexecuteを実行すると目的の結果が得られました。
>>605 さんがおっしゃられているように、PEARが壊れている等でしょうか?
prepare呼び出し中に落ちる。エラーメッセージもエラーログもなし。(ほんとか?) ならPEAR::MDB2のソースを追ってみればいい。 PEARが壊れている。XREA固有の何かがある。 等の環境問題なら自宅に別の環境を作ってみればいい。
>>623 ならprepareが失敗してるから
>>605 の言う壊れてる可能性もある
SQLを
SELECT * FROM USER_TBL WHERE USER_NO=?
と
SELECT * FROM USER_TBL WHERE USER_NO=:testdata
でやってみて
>>624 $stmtがオブジェクトじゃなくても
>>622 のコードは実行できる
但しprepareが正常に動作していたらな
あーついでにこっちも・・・ $sql = "SELECT * FROM USER_TBL WHERE USER_NO = ?"; $stms = $this->db->prepare($sql,array('integer')); if (MDB2::isStatement($stms)) { echo "実行ok"; } else if (MDB2::isError($stms)) { echo "error";var_dump($stms->getMessage());exit; } else { echo "その他"; exit; } echo "テスト出力B";
629 :
nobodyさん :2011/01/14(金) 17:53:13 ID:N58y3KzQ
php + MySQL で MySQLで取得したテーブルデータを格納した複数の配列の中の【一部の要素】でソートをしたいのですが、どうすればよいでしょうか? なお各配列ごとに【一部の要素】の名前が違うので、どうしたものか困り果てております。 array ("data1", array (a = aaa, b = bbb, c = 1) array (a = aaa, b = bbb, c = 2) array (a = aaa, b = bbb, c = 3) ) array ("data2", array (a = aaa, b = bbb, d = 4) array (a = aaa, b = bbb, d = 5) array (a = aaa, b = bbb, d = 6) ) というような配列群が合って、その data1 の c と data2 の d を降順にソートして 最後に下のようにそのdata1とdata2を結合したdata3を作り出したいです。 array ("data3", array (a = aaa, b = bbb, c = 1) array (a = aaa, b = bbb, c = 2) array (a = aaa, b = bbb, c = 3) array (a = aaa, b = bbb, d = 4) array (a = aaa, b = bbb, d = 5) array (a = aaa, b = bbb, d = 6) ) あまり基礎を分かっておりませんので、こんなこと自体ができるかどうかが不明ですが、よろしくお願いします。
prepareからリターンする前に落ちるって何度言えば分かるの?
よーし、こうなったら大穴当てちゃうぞ! ?がab'cdef こうだろw
632 :
nobodyさん :2011/01/14(金) 18:01:33 ID:x5/cEkaG
>>627 >>628 3つのパターンを試しましたが全て結果は変わらずでした。
ただ、
>>608 さんのphp.iniの設定を間違っていました。
データベース接続成功とテスト出力Aの後に以下のエラーが出ています。
PHP Strict Standards: Non-static method MDB2::classExists() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 1854
Strict Standards: Non-static method MDB2::classExists() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 1854
PHP Strict Standards: Non-static method MDB2::fileExists() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 1854
Strict Standards: Non-static method MDB2::fileExists() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 1854
PHP Strict Standards: Non-static method MDB2::loadClass() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 1861
Strict Standards: Non-static method MDB2::loadClass() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 1861
PHP Strict Standards: Non-static method MDB2::classExists() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 327
Strict Standards: Non-static method MDB2::classExists() should not be called statically, assuming $this from incompatible context in /-省略-MDB2/MDB2.php on line 327
>>623 XREAでググるとMySQLのドライバを入れなくちゃならんという記述を見かけるが
その辺は大丈夫?
>>629 そのようになるようなクエリを書けば良いんじゃないの?
そのままやりたいならとりあえずarray_mergeでマージしてから
usortでC,Dの値を見る形で良いと思うが
635 :
nobodyさん :2011/01/14(金) 18:09:17 ID:z4LQsmVn
これはどちらの方が高速に動作しますか $stmt->bindParam(':foo', $foo); $stmt->bindParam(':bar', $bar); foreach($arr as $value){ list($foo, $bar) = $value; $stmt->execute(); $stmt->closeCursor(); } /////////////////////////////////////// foreach($arr as $value){ $stmt->bindValue(':foo', $value['foo']); $stmt->bindValue(':bar', $value['bar']); $stmt->execute(); $stmt->closeCursor(); }
636 :
nobodyさん :2011/01/14(金) 18:10:15 ID:x5/cEkaG
>>633 自分で入れてはないのですが
get_included_files()で確認したら
/usr/local/lib/php/MDB2/Driver/mysql.php
を読み込んでいるようですし
queryメソッドでは結果を取得できるので
大丈夫だという認識でした。
637 :
nobodyさん :2011/01/14(金) 18:15:30 ID:N58y3KzQ
>>634 どのようにクエリを書けばいいか分からなかったので、いっそPHP側でできないものかと思いまして。
ちょっとその方法でやってみます。ありがとうございます。
>>632 これはどう?
$stms = $this->db->loadModule('Extended')->prepare($sql);
639 :
nobodyさん :2011/01/14(金) 18:28:15 ID:x5/cEkaG
>>638 Fatal error: Call to undefined method MDB2_Extended::prepare()
というエラーが出ます。
>>693 これは?
$stms = $this->db->prepare($sql, NULL, MDB2_PREPARE_RESULT);
641 :
nobodyさん :2011/01/14(金) 19:23:25 ID:x5/cEkaG
>>693 ありがとうございます。
693さんからレスを頂く前に動きました。
原因としては、XREAサーバーには既にMDB2がインストールされていたらしく
それを確認せずに自分でMDB2のパッケージをDLし、インストールしていました。
ソース上は自分でインストールした方を読み込んでいたらしく
そのパッケージを削除し、はじめからインストールされていたMDB2を
読み込みように変更したら正常に動きました。
ただ、なぜprepareだけ異常なのか、queryメソッド等は動くのかはわかりません。
朝早くからたくさんの方にレスを頂きました。
本当に助かりました。ありがとうございました。
prepareとqueryとではincludeするソースが異なるからじゃない? まぁ解決してよかったね。
解決してよかったけど 既に定義されていたらincludeできないから その結論で完全解決ではないと思うぞ
>>641 名前: nobodyさん 投稿日: 2011/01/14(金) 19:23:25 ID:x5/cEkaG
解決して良かったです。
このスレで以前にありましたが、思いがけない仕様で皆様が開眼した事例がありました。
今回もそれに類するのだろうか? と、いろいろと自分でも試してみたりしていました。
それにしても環境に起因する事項だったんですね。
今回は、>> 643 さんが言われている、
「自分でダウンロード&インストールした方を使用した」部分の確定に課題が残りますが、
少しでも前に進める状況が得られたことは良いことです。
さて、お手数ですが残る課題として、
>>643 さんが言われている部分を再整理して、
再度の質問として出してもらえませんか?
> 既に定義されているから include できない
それが覆された状況ですから、その部分を検証してみる必要があると思います。
645 :
nobodyさん :2011/01/14(金) 20:45:04 ID:x5/cEkaG
>>589 です。
>>642 >>643 >>644 本当にありがとうございました。
心から感謝します。
少し状況を整理すると
XREAサーバー側にMDB2が入っていないと勝手に判断した後に
自分でダウンロードしたパッケージを解凍し、そのままサーバーへアップロードしました。
今までこの方法で、PEAR::NetUserAgentMobile等が正常に動いたので
それで問題ないと思っていたのですが
今調べて、このあたりを読むとそれだけではダメなんですかね?
http://m630.net/php-mysql/xreapearmdb2.html 正常にインストールが完了していないMDB2を無理やり読み込んでいたのが
おかしな挙動の原因でしょうか。
>>645 なるほど
書かれているURLも見ました
とても勉強になります
解決してなによりです
しかしPEARをインストールしてあるなら運営がそこまでは設定するべきじゃないの
勉強になるのは結構だけどどうなのかちゃんと報告してくれよ あれだけ皆の世話になったんだから
PHPとしては当然の動作をしただけでたいした問題じゃない 言葉にするなら競合しただけ
何がどう競合したの?
651じゃないが推測するに MDB2.php は多分パス付きでincludeするだろうから、自分でインストールしたファイル MDB2の中でクラス等をincludeするときはinclude_pathなどで読むのでxreaがインストールしたファイル バージョンが同じならいいけど、違ってたらなんか問題が出るでしょうな。
お前こそ隔離にいてくんねえかな 毎度毎度暇だね
656 :
nobodyさん :2011/01/15(土) 13:33:25 ID:p52QVX5I
質問です!
>>655 さん、どうしてスレを荒らすような書き込みをするんですか?
ここはあなた個人のスレではありません。
>>654 で、ちょっとだけ上から目線の書き込みがあったからといって、スレを荒らす傍若無人な振る舞いは誰からも喜ばれない行為です。
質問 1.こうして
>>655 のようにスレを荒らす人が現れるのは、PHPの仕様、もしくはこのスレの仕様ですか?
質問 2.仕様ならば「可哀相な人だ」と人であることを認めて無視しても、後々に問題はないですか?
質問 3.無視することで問題が発生したならば隔離して欲しいのですが、隔離は可能ですか?
( `・∀・´)ノヨロシク
>ここはあなた個人のスレではありません。 笑
ID房の主張もわからんではないが人柄がすかんw
ああいうこと書きたかったら、だれかの回答のあとに書いてね。 質問も回答もしないんじゃあね。
ID厨=Ajax厨の特徴 改行書き込みをする たいした回答ができない 文章力がなく見るからにバカ 自作自演で盛り上げようと必死
>>656 回答1.このスレの仕様です。
回答2.「人」として認めるか否か、無視するか否かは、あなた自身で判断ください。
回答3.誰のスレでもありませんから、あなたが隔離を願っても誰も何もしてくれません。
もう少し大人になりましょう。
大人になんかなりたくありません。 というかなる必要ないし。 Ajaxをマスターすればそれ十分かと。
663 :
nobodyさん :2011/01/16(日) 00:09:04 ID:lrogIJY/
mysqli のプリペアドステートメントを使ってSELECTした場合、 結果を連想配列で取得ってどうやるんでしょうか?もしかして不可能ですか? PHP 5&MySQL5 です
665 :
nobodyさん :2011/01/16(日) 00:34:52 ID:lrogIJY/
>>664 プリペアドステートメントを使った場合、これだとできない感じなのですが・・・
667 :
nobodyさん :2011/01/16(日) 00:59:51 ID:sr/IjSIi
本人に聞けよ
ここで聞いたら駄目なのでしょうか それともこれは下らない質問ではないのでしょうか
本人に聞いたら駄目なのでしょうか それとも聞けない理由などあるのでしょうか
本人に聞かなかったら駄目なのでしょうか 聞ける理由がなければよいのでしょうか
>>663 ,665
ATTR_DEFAULT_FETCH_MODEで設定すればいいんでない。
673 :
672 :2011/01/16(日) 11:20:00 ID:???
ごめん mysqli か
>>672 はPDOの話だった。
PDO使えでFA
675 :
nobodyさん :2011/01/17(月) 04:32:26 ID:ZNuukBSY
phpをアップロードした時、第三者にソースコードバレないようにするには 呼出、書込、実行の内ドレをONにするとアウトですか?というかパーミッションの値
PHPはウェブサーバー上で実行されるので通常はブラウザ等でアクセスしても ソースコードがバレることはない。 そのサーバーに第3者がFTP等でログインできるのならばそれぞれのユーザーのアクセス権限と ウェブサーバーの実行権限、ディレクトリのアクセス権限の設定に依存する。 > 呼出、書込、実行の内ドレをONにするとアウトですか? それぞれの設定の意味を理解していないのだろうが質問の意味が不明になってる。 どれをONにしてもそれだけでソースコードがバレることはない。 というより呼出をOFFにしたらPHPが実行されない。
まぁソースコード見えるのはサーバ管理者ぐらいだな
そもそも第三者が不正アクセスしてでも見たくなるようなご大層なソースコードが書かれてるかって話だ
Zend Guard おすすめ
データ流出の大半は内部の犯行 ソースは過去のこのスレ
681 :
nobodyさん :2011/01/17(月) 22:54:20 ID:jz/VSNo7
ZFダウンロードしに行ったら、Zend Server Community Editionってのがあったんですけどコレってどうなんですか? 検索してもあまり情報がなかったもので よく分からないけれど、XAMMのようなものですか?
>>681 ?Zend Server Community Edition (CE) is a lightweight version of Zend Server that is absolutely free to use in
development or in production. It is simple to install and to use, provides basic performance optimization, and is
supported only through the Zend support forums.
683 :
nobodyさん :2011/01/17(月) 23:08:56 ID:jz/VSNo7
英語力がないんですが、簡単にPHPを始められると言う事はやっぱXAMMPみたいなのかな?
APサーバです
XAMPPは環境を作れない初心者のための入門セット Zend Serverは本番環境を配置・運用・管理するためのガチセット
687 :
nobodyさん :2011/01/18(火) 06:40:20 ID:IKvWNu/I
馬鹿と言われたらすみません、同一人物ではありませんが 関数講座で get_magic_quotes_gpcが無効なら文字列をクォートを取り除く if ( get_magic_quotes_gpc() ) { $str = stripslashes( $str ); } とあったのですが、get_magic_quotes_gpc関数はONなら1、OFFなら0を返すと書いてあります なのにこれじゃあONの時1=trueになってクォート取り除かれちゃいませんか? そんでOFFの時0=falseになってクォート取り除かれないんじゃないんでしょうか?
>>687 そのコードは不要な自動エスケープ処理を除去するのが目的なのでそれで正解。
magic_quotes_gpcがONの場合、getやpost等された文字列が勝手にエスケープ処理されてしまうが
それだと困る場合にそのような処理を行う。
現在のPHPはmagic_quotes_gpcの使用は非推奨だが、かつてはデフォルトでONになっていることもあった。
自動でエスケープ処理される方法はaddslashes()と同じだが、セキュリティの問題から
addslashesの使用は推奨されていない。
OFFの時取り除いたらおかしいとは思わんのかね
>>689 今日は上級者スレで「かい?」を連発しないでくださいね
691 :
nobodyさん :2011/01/18(火) 09:20:26 ID:IKvWNu/I
>>688 それじゃ日本語は
get_magic_quotes_gpc() が有効(ON)なら文字列をクォートを取り除く
になりませんか?
>>691 だからそれでいいんだってば。
クォートを取り除くのが目的のコードなんだから。
magic_quotes_gpcがONのとき:勝手に付けられたクォートを削除
magic_quotes_gpcがOFFのとき:何もしない
magic_quotes_gpcがONのとき: GET等で文字列が送信される→PHPが勝手にエスケープ処理してクォートを追加してしまう そうすると$GETの中身が既にクォートが付いたものになっているから、 自分で文字列の中身を検査したり画面に表示するときに困るでしょ。 だからmagic_quotes_gpcがONのときはstripslashesでクォートを除去するの。 DBに送信するときはFW等の機能を使うかmysqli_real_escape_string等でエスケープしなきゃ駄目だよ
あ、ごめん。つられて書き間違えたけど、 追加されたりstripslashesで削除したりするのはクォートじゃなくてバックスラッシュね。
俺が正しく日本語変換してやる ●get_magic_quotes_gpc() がTRUE(magic_quotes_gpcの設定がON)ならば文字列 の クォートを取り除く なんだその滅茶苦茶な日本語を書いた奴は なんだよ文字をクォートを取り除くって そんでもって無効なのに取り除いてどうする どこを参考にしたんだ
class name1 extends name2{ } class name2のメンバ変数はname1 がnewされた時に設定されるんだよね? それとも、もともとextendsの分にはメンバ変数を書いても意味が無い?
>>691 あぁ、質問の意味がやっとわかった。
>>687 に書いてある
>> get_magic_quotes_gpcが無効なら文字列をクォートを取り除く
の日本語とコードが矛盾しているといいたかったのね。
多分筆者の書き間違いでしょ。(正しくは「〜が有効なら」)
698 :
696 :2011/01/18(火) 11:38:31 ID:???
勘違いでした すまそw
699 :
nobodyさん :2011/01/18(火) 12:05:55 ID:IKvWNu/I
やっぱり書き間違いでしたか、くだらない質問でしたがありがとうございます!
700 :
nobodyさん :2011/01/18(火) 16:55:32 ID:aMdgL1VO
ブラゲー作ろうと思ったんだけど、 Ajaxで処理をするたびに毎回プログラム側で設定ファイルを読み込んだり DB接続したりという処理が発生するので、 ネトゲみたいに常にプログラムを稼働しておいて、入力があれば実行して何かを返すようにしたいんだけど 何か面白いやり方ないですか?
JSのonclickとかonkeydownとかでやればいいんじゃないの?
>>700 キャッシュするのはどうだ?
設定ファイルぐらいならセッションに入れても良いと思う。
fastcgiとかどうだろうか。phpでは使ったことないけどperlでは 結構効いたよ。
>>700 設定ファイルの大きさ・数・読込みかたにもよるが、普通はOSのキャッシュに入る
DB接続はコネクションプール使えば良い
あとはアクセラレータを使ってないなら、APCとか使えば体感できるくらいに速度変わる
705 :
nobodyさん :2011/01/18(火) 17:44:14 ID:aMdgL1VO
>>704 例えば、初期設定でinclude_pathを設定して
そこにあるクラスファイル(例えばだけど100個くらい)をrequire_onceで読み込んで、
毎回データベースから数百件のデータを読み込んだりとか、
そういう処理が入るんだけど、こういうのもキャッシュ化されんのかな
今考えてるのは
鯖起動→whileループ→外部から命令があったら処理の実行して結果を返す
このwhileループ時にどうやって外部から(ユーザーからのパラメータ送信など)に対応しようかとか、考えてるの
あと、ループ作成しておくと、鯖起動時にデータベースからデータを取得したら保持できるかなと思って
(某ネトゲのエミュ鯖運営したときにJavaでやってた処理を真似てるだけなんだが)
>>705 APCはphpの中間コードをキャッシュしてくれる
当然includeも対象になっており、1回includeすれば中間コードの形で保持される。
DBについても、APC使えば同じクエリならキャッシュされる。
後半部が良くわからんのだけど、PHPを実行しっぱなしにするって意味?
でもajax使おうがクライアント側からはwebサーバ(例えばapache)を介してアクセスにくるわけだから
apache→php実行 という流れは変わらないよね?(見当違いの事言ってたらごめん)
アクセス毎に実行コードにコンパイルかけてるからphpは遅いわけなので
そこをコンパイルかけないで中間コードを保持するAPC使えば速くなるよ。
707 :
nobodyさん :2011/01/18(火) 18:11:59 ID:aMdgL1VO
fm、APCちょっと調べてみます ありがとうございます! 多分、APC導入していこうと思います!
初心者スレだからなんだろうけどAPCの使い方が間違ってるな ブログなんかみても入れましたはい早くなったとか言ってる人多いし
>>708 出切れば間違っている部分を指摘して頂けると助かるのですが。
多分
>>706 が言いたいのは、データベースで敵データ管理してたら
同じ敵を複数の人間が攻撃した時に、データがバグったりするんじゃね?ってことじゃね
データベースから引き出す→変更加える→データベースに戻す
この時に、引き出して変更加えて、別のやつが引き出して、最初のやつが戻したらどうなんの?ってこと
勝手にエスパーしただけだが
そんな更新の仕方では、DBを使う意味がない。 DBを使うならDBの作法でアクセスしなきゃ意味ないじゃん。
> DBの作法
XHRの受信を張りっぱなしにして送信は別でやればいいんじゃないのってことじゃないの
素直にソケット使えよw
それflash
716 :
nobodyさん :2011/01/18(火) 21:57:33 ID:aMdgL1VO
>>715 flash使わない予定です
HTML+XHR(jQuery)+PHP+MySQLで実装予定です。
座標の監視とかそこまでのものを作るんじゃなく、
敵1対を複数で倒すような感じのものにしようと思ってるので、
複数の人が同時に1つのデータにアクセスすると更新するまでに呼び出したりしそうなので、
順番を決めるような方向でいきたいと思ってます。
すみません、本来の目的を後出しにしてしまって。
718 :
nobodyさん :2011/01/18(火) 22:11:48 ID:aMdgL1VO
>>716 だったら普通にファイルのロックかけるなりDB使うなりでいいのでは?
720 :
nobodyさん :2011/01/19(水) 08:10:04 ID:sXJq2R7K
$PROXY = ''; if (isset($_SERVER['HTTP_VIA']) and preg_match("/.*\s(\d+)\.(\d+)\.(\d+)\.(\d+)/", $_SERVER['HTTP_VIA'], $match)){ $PROXY = "$match[1].$match[2].$match[3].$match[4]"; } っていうソースを見つけたんですが、$matchの値がどこにも見当たりません $matchを参照して正規表現を検索して$_SERVER['HTTP_VIA']の値にするという事はわかるのですが 肝心なmatchの値がソースのどこにも見当たらなくて この$matchは自動的に値が入ったり特別なものだったりします?
722 :
nobodyさん :2011/01/19(水) 08:51:08 ID:sXJq2R7K
二行目の$match以外に$match=$_SERVER['HTTP_VIA'] とかどこかしらに書かれてなくても大丈夫なんですか? 本当に$matchがこのif文にしか書かれてないんですが
納得出来ないならつかわなければいいじゃん
>>720 ののタンでおなじみの、preg_match()のマニュアル見たらいいよ。
preg_match()のの三番目のの引数には、検索結果が代入される。
725 :
nobodyさん :2011/01/19(水) 09:15:17 ID:sXJq2R7K
調べて見てもてっきりpreg_replaceとかと同じで (検索文字、置換文字、検索対象)だと頑なに思い込んでました、ごめんなさい そしてありがとうございます
preg_match(検索文字、検索大賞) preg_match(検索文字、検索対象、検索結果が代入される配列)
検索大賞ワロタ
>>728 お前、ののタン知らないの?
だせー
で、それ誰?
すまん。初めて3日目の俺に教えてくれ。 [XML文字列 → simplexml_load_string() → 処理ウニウニ → asXML() → XML文字列] と言う入出力処理がある。 これを [JSON文字列 → xxxxxx → 処理ウニウニ → yyyyyy → JSON文字列] と言う流れにしたい。 処理ウニウニでは、simpleXMLElementを使って処理しているので、 JSON文字列をsimpleXMLElementにする必要がある。 simpleXMLElementをJSON文字列にするには、json_encode($hoge, true)で 出来たのですが、json_decode($xml文字列, true)だと、当たり前ですが、 連想配列しかできません。 連想配列をsimpleXMLElementに変換する or JSON文字列をXML文字列に 変換する等、「処理ウニウニ」を変えずにIN/OUTだけを変更する方法って ありませんでしょうか? 迷える豚に愛の手をorz...
>>729 phpの日本語マニュアルには、のがダブってるところが
たまにある。preg_match()の項目にもある。
そんだけ。
732 :
728 :2011/01/19(水) 12:55:01 ID:???
733 :
nobodyさん :2011/01/19(水) 12:58:29 ID:bY4e/Fyt
imagecreatetruecolorで作ったベース部分の余白が黒になってしまいます。 この色を指定することは出来ないでしょうか?
imagecreatetruecolorは黒い画像を作る関数なんだから無理だろ imagefillで塗りつぶせばいいんじゃね
色のついたサングラスをかけて見るという方法もある
色ガラスを通しても黒は黒にしかならない
737 :
nobodyさん :2011/01/19(水) 17:17:29 ID:pFGxwnc8
カテゴリ分けのできる簡易データベースを作っています CSVを読み込む形式のものなのですが、 個別ページに表示したいテキストが80行以上あります CSVは1行に1ページ分を書くようなので重たくなるのか気になっています データベースがいいのか、ほかに方法があるのか… もしあなただったらどういう方法にしますか?アドバイスお願いします
DB
SQlite
データベースですか…めんどくさいですね めんどくさがらないように頑張って勉強します お二方、ありがとうございました
>>737 PHP でCSVを処理する。
重たいと感じる理由がわかりません。
>>737 1行に1ページ分を書こうが複数行に書こうが一緒だと思うが
>>737 「1ページ分」がどの程度のサイズなのかにもよるのでは。
>>740 CSVよりデータベースのほうが簡単だったりします。
>CSVよりデータベースのほうが簡単だったりします。 なんで?
CSVの方が楽だよ。fgetcsv/fputcsv一発でおk
CSVファイル1つとかなら別にいいけど、複数テーブルのために複数のCSVを管理して リレーションのために複数のCSVを開いたり閉じたり・・・とかめんどくさい。 そういう用途のためにDBがあるわけだし
関数を複数書くのを面倒くさがってたら何もWebアプリ作れないと思うが?
WebアプリにCSVとか何の冗談だよと思う ファイル単位の排他とかもうね…
ファイルロックのやり方知らんの?
CSV使ってるような情弱に排他処理について問うたらいかんでしょw
それが分からんからDB使うんだろ
例えばレンタルサーバーで、 CSVで間に合うようなものなら、わざわざDBのオプション契約はしない。 でも、最初からDBが使用可能ならDBでやる。
754 :
737 :2011/01/20(木) 08:38:54 ID:VobjDeOQ
すみません、740はわたしですが744は別の方です いろいろとぐぐってきました 何もかもわからないことが多いのですが、SQLiteを勉強しながら使ってみようと思います とても助かりました…みなさんありがとうございました
無料レン鯖ですらDB使えるのに今時オプション契約はないだろうに
db,csvは用途に合わせて使い分けたらよろし いつまでもネチネチ低レベルな議論してんじゃねぇよw
だれもどういうデータの利用の仕方をするのか聞かない事に驚愕しました!
>>757 別に驚くことじゃない
低レベルが超低レベルを卑下して尊大な態度をとるのがこのスレの目的なんだから
csv君の逆切れっぷりが酷いなw
Chinkodemo Syabuttero Vaka
CSVとDBの違いは正直よくわからんけど、 そういうことってAjax使えば実現できるだろ? 何でいまさらそういう古い技術にこだわるのか理解できない
↑で、いつまでその釣り糸を使うわけ?
763 :
761 :2011/01/20(木) 10:45:45 ID:???
中卒のオレにもわかるようにはやく教えろ
>>763 とりあえず高卒資格をとってください
話はそれからだ
なんで****をNG指定しないの?
>>765 ****をNG指定したら無職の低学歴JavaScripterたちが路頭に迷うからに決まってんだろ
それくらい察してやれks
769 :
nobodyさん :2011/01/20(木) 23:06:21 ID:h/0GHVwU
プログラムを直接叩くとPHPを実行したい(Windows) × php -f C:\project\test.php ○ C:\project\test.php 直接コマンドプロンプトから叩いてPHPを実行することは可能でしょうか また可能でしたらソースをどのように改変すれば良いでしょうか
771 :
769 :2011/01/20(木) 23:13:49 ID:h/0GHVwU
先頭に #!C:\xampp\php\php.exe を付け加えて起動してみても、なぜかDreamweaverで開きます
拡張子phpをphp.exeに関連付け
>>771 Windowsはファイルの拡張子だけで何のファイルか判断して開くプログラムを決めてるから
ファイルの中に何を書いても意味が無い
>>772 の言うように拡張子の関連付けを変更
>>769 のどこにダブルクリックで起動したいなんて書いてあるの?
直接たたきたいならphp-win.exeを使う
776 :
nobodyさん :2011/01/21(金) 02:08:51 ID:wkDSO4Hb
↓こういう質問はどの板ですればよろしいでしょうか(テヘッ あるライブチャットで接続拒否られたんですがすり抜けしたくていろいろ試してるんだけどダメです 試したのは↓ クッキー削除 Flashのshared objectを削除 プロキシ経由(IPはモデム?再起動しても変わらないのでプロキシ使用) ほかにシステム側でユーザが接続拒否なのかどうか判断する材料とかって何があるんでしょうか?
$a = '' $b = "" $c = '0' $d = 'Null' if ($a){} if ($b){} if ($c){} if ($d){} この場合、変数abcdは全部trueになるのでしょうか?
779 :
778 :2011/01/21(金) 06:52:12 ID:53S+NMNf
メール蘭だすの忘れてました
>>778 そのコーディングではエラーになります。
if ($a){} →false if ($b){} →false if ($c){} →false if ($d){} →false じゃない? 言いたい事はわかるけど
'null'はfalseにならないよ
PHPはそこらが迷うからそういう時は===で型も比較したら良いよ falseと0が同じ関数から戻ってきたりするしw
なんて関数?
結果0件と失敗じゃないだろうな
ふぁ〜〜〜るすっ!
文字列のnullがfalseで判別されたらある意味、脅威w
真偽なんて最も簡単に試して結果出るからここで嘘かホントかわからん回答を求めるのが不思議
791 :
nobodyさん :2011/01/21(金) 11:27:57 ID:Attkn4cD
LinuxでPHP使ってる人はコンパイル時に--enable-bcmathを付けていますでしょうか? 何か2038年問題がどうとか聞いたのですが、良く分からなかったもので やっぱ付けた方がいいのでしょうか?
今から27年後まで稼動させる環境なら付ければいい 今から27年前の1984年から現在まで稼動している環境があったとしたら凄いな
2038年までシステムを稼働させるかどうかではなく 2038年を超えるデータの扱い・計算をした時点でアウト。 UNIXタイム使ってる部分(特に演算してるところ)に注意 日付はDateTimeを使って。
専門用語?の読み方なんだけど、読み方これでいいの? boolean の FALSE → 「ボーレーアンのファルセー」 integer → 「インテガー」 float → 「フロアツ」 人に聞いても「違うような気がする」言われるだけで当人も自身ないみたいで。
その手の話題はマ板の方が食いつきいいぜ
まじめに聞いてるんだけど。boleanとか読み方マジでわからない
ブーリーン
802 :
nobodyさん :2011/01/21(金) 19:37:27 ID:qEeV7LN9
class Test { public function exitTest() { unset($this); } } みたいに自分のオブジェクトを削除するようなメソッドって使えないの?
class::function()で呼び出すとまず$thisが使えないのでは?
phpとmysqlに詳しい人
今作ってるゲームで、ウェブから特定のテーブルにアイテムデータなんかの入れ込みをしたいんですが
最終的な部分で詰まってます。
コード修正できる人いたらお願いしたいです。
謝礼として5000WebMoney(5000円分)となります。
詳しくは中のファイルにサイトとデータベースファイル入れておりますのでご覧下さい><
http://www1.axfc.net/uploader/He/so/309832 ※ウィルスや釣りではありません
長いプログラムですが、当方はここが問題かもしれないと思うところは
説明書.txtの一番下に書いてます orz
805 :
nobodyさん :2011/01/21(金) 22:31:29 ID:8ndmGcBV
ID出し忘れてました またこういった質問をする適切な場所があれば教えていただきたいです
モンスター教えてくんが降臨しててワロタ
808 :
nobodyさん :2011/01/21(金) 23:20:30 ID:8ndmGcBV
やっぱりだめですかorz こういうとこじゃないと専門知識ある方いないと思って探してるんです
俺がやってあげるよ
>>809 やります宣言はいいからとっとと修正版上げろや
>>808 ここにいるのは態度がデカイだけのゴミだから
本気で探してるんなら「はてな」で金かけて質問したまえw
>>808 リアル人脈広げようぜ。
人脈がないなら、もう1桁報酬上げて頼んだほうがいい。
もしくは、これを機会に勉強しまくるんだな。
>>802 $this = null;
とかできなかったっけ?
試したら結果教えてね。
814 :
nobodyさん :2011/01/21(金) 23:28:47 ID:8ndmGcBV
データベースにSQLを追加したりで色々手間と時間とがかかると思います 所有ポイントに関しては、purchaseすれば、mygame_ls側のaccountdataテーブル内のreward_pointが正常に減るのです ただ、購入後にinventoryテーブルにアイテムIDやらが正常に挿入されないという点です。 (要はそのキャラクターの元へアイテムが届いていない)
>>814 >ただ、購入後にinventoryテーブルにアイテムIDやらが正常に挿入されないという点です。
「購入後にinventoryテーブルにアイテムIDやらを挿入」する処理がどのファイルで
行われてるか書いてよ
816 :
nobodyさん :2011/01/21(金) 23:33:27 ID:8ndmGcBV
一応分かってる範囲だけ補足さえていただくと Money(お金)は、rewards1.phpとspend1.php それ以外のアイテムは、rewards2.php~9とspend2.php~9に処理記述してます。 問題はたぶん、このファイルのデータベースとの通信 テーブルとの送信命令がマッチしてないことにありそうなんですが詰んでます...
817 :
nobodyさん :2011/01/21(金) 23:37:35 ID:8ndmGcBV
お金は、mailテーブルへ それ以外はinventoryテーブルへデータ送信するようにしてます。 外国に人にも一度聞いてみたのですが、データベースのテーブル構造と php側の記述がマッチしてない可能性があるといわれました
HTML出力の仕方が斬新だね 意外とヒアドキュメントとかより便利かも
>>817 ソースは軽く読んだだけなので一般的なバグの例を
1. SQL関連のエラーメッセージが表示されないなら、条件分岐(if文)ではじかれて
そもそもmysql_query()を含む行が実行されていない。
2. SQLのUPDATE文を使うべきところでINSERT文を使っている。
>>822 関数宣言の中に
<?php
<h1><?php echo $Row['category']; ?></h1>
?>
みたいな文が出てくるあたり
?> <h1><?php echo $Row['category']; ?></h1> <?php ↑w
バカでも書ける言語仕様が生んだ悲劇。
PHPモード抜けてHTML出力はマニュアルにも載ってる基本中の基本だよ
PHPの唯一のいいところを悪くいうな
>>826 これ基本か?
function foo(){
?>
<h1>ほげほげ</h1>
<?php
...
}
>>817 spendpoints/buy_item.phpがないわけだが
>>828 いいじゃないか。そういう柔軟な書き方もできるということで。
仕様上の問題が無い以上、基本かどうかは個人の思想によるので議論しても無駄。
>>830 斬新て言ってるだけでだれも否定はしてないのだが
>>804 inventoryテーブルにINSERTされていないのであれば、spend/spend2から10.phpの41行にエラー表示いれて確認してみたらどうだろ
INSERTやUPDATEしてるとこはエラー処理したほうがいいとおもうけどね。
mysql_query("INSERT INTO inventory VALUES('$uniqueid','{$Row['itemid']}','{$Row['description']}','null','$Character','0','0','0','0','0','{$Row['itemid']}','0')") or die(mysql_error());
>>804 834に追記
一つ前のSELECTしている39-40行もレコードがあるかどうか判断していないので無かったときに41行のINSERTで
エラーが出る可能性もあるかな。
itemUniqueIdがPRIMARY KEY指定されているが、12行で
$uniqueid = rand(900001, 1000000);
しているところが問題かも。重複する可能性あり。
それとinventoryのテーブル見たら全部数値タイプじゃないですか
INSERT文の4個めの'null'は数値じゃないので、これでエラーになってるかも。
>>835 おれんとこでは'null'をINTに入れると0になった
たぶんsql_modeの設定が違うと思う
804のサーバがどうなってるか知らんが
質問者からの再度の書き込みが見当たらない気がするのは私だけ? 質問を投げておしまいにする奴って多いな。
838 :
804 :2011/01/22(土) 10:16:41 ID:???
>>837 なんか丸投げしたまま逃げた感じになってしまってすみません orz
ここにいる人たちのレベルでは良い結果は得られそうにないので
>>811 さんが
言うとおり他所でお金を払って有能な人に質問することにしました。
質問じゃないね 丸投げっていうのよ それは 5000円ごときで仕事請け負うか? 会社によっちゃ下手すりゃ1時間ぶんの金額にもならんぞ 自身で勉強する気がないのに「質問」て言葉使うなよ
それ以前に匿名が金を出すからって言っておきながら不特定多数に解決を依頼する その姿勢がおかしい。他人を利用したいだけなのが見え見え、しかも自分が満足する 解答(解決ではなく)が得られなければ他人を批判すると来たものだ。
なりすましにマジレス説教する奴って一体...w
>5000円ごときで仕事請け負うか? >会社によっちゃ下手すりゃ1時間ぶんの金額にもならんぞ 相応の対価が得られるのならいくらでも払うけどここのカスには¥5kで十分でしょ 実際に誰も解決できてないしw
ほんと醜いわ どんな手を打ったってスキルの高い奴には通用しねーよw
>どんな手を打ったってスキルの高い奴には通用しねーよw 逆に言えばここのスキルの低い奴には通用するということですねわかります ところで、通用しないって何が?
>>844 つまりお前が中学生か、中学生並みの知能しかないってことw
つまりここのカスどもは中学生か、中学生並みの知能しかないってことw ってことですねわかります
Ajaxを使える奴が大人
Jaxaを使える奴が大人
>つまりここのカスどもは中学生か、中学生並みの知能しかないってことw yes, so desu!
??? ?? ?
Analを使える奴が大人
↑芸
大人ならA*a*くらい余裕
857 :
nobodyさん :2011/01/22(土) 14:26:08 ID:5oOIF2do
すみません、昨日ID:8ndmGcBVで書き込みしたものです 今掲示板をあれからみたため今から検証していきます
858 :
nobodyさん :2011/01/22(土) 14:37:25 ID:5oOIF2do
まず
>>834 さんの方法を試してみたところ
spend2.phpでは
「Transcation failed:column count doesn't match at row 1」となりました
もしかしてPHPやMySQLの知識0?
860 :
nobodyさん :2011/01/22(土) 14:52:16 ID:5oOIF2do
descriptionの部分で問題があるのかな
>>859 ほとんどないかもしれません
>>859 だって、こういうコードを書く人だから
function foo(){
?>
<h1>ほげほげ</h1>
<?php
...
}
862 :
nobodyさん :2011/01/22(土) 15:29:49 ID:5oOIF2do
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" です
>>858 >「Transcation failed:column count doesn't match at row 1」となりました
spend2.phpの41行目は
>mysql_query("INSERT INTO inventory VALUES('$uniqueid','{$Row['itemid']}','{$Row['description']}','null','$Character','0','0','1','0','0','{$Row['itemid']}','0')");
でVALUES()には12個の値が入ってる。
実際のinventoryテーブルが12個のカラムで構成されてるか調べてみれば?
864 :
nobodyさん :2011/01/22(土) 16:01:32 ID:5oOIF2do
データベース側はこうですので、こちら側に記述追加しないとだめですね `itemUniqueId` int(11) NOT NULL,`itemId` int(11) NOT NULL,`itemCount` bigint(20) NOT NULL DEFAULT '0',`itemColor` int(11) NOT NULL DEFAULT '0',`itemOwner` int(11) NOT NULL, `isEquiped` tinyint(1) NOT NULL DEFAULT '0',`isSoulBound` tinyint(1) NOT NULL DEFAULT '0',`slot` int(11) NOT NULL DEFAULT '0',`itemLocation` tinyint(1) DEFAULT '0',`enchant` tinyint(1) DEFAULT '0', `itemSkin` int(11) NOT NULL DEFAULT '0',`fusionedItem` int(11) NOT NULL DEFAULT '0',`optionalSocket` int(1) NOT NULL DEFAULT '0',`optionalFusionSocket` int(1) NOT NULL DEFAULT '0',
865 :
nobodyさん :2011/01/22(土) 16:07:32 ID:5oOIF2do
まずitemcolorがnull許可してないので0にし、14個分インサート分書いたらなんとか money以外の送信はできました
オレの数え間違いでなければ13個のカラムがあるみたい spend2.phpの41行目のVALUES()の最後にもうひとつ0を追加してみては 1: `itemUniqueId` int(11) NOT NULL,`itemId` int(11) NOT NULL, 2: `itemCount` bigint(20) NOT NULL DEFAULT '0', 3: `itemColor` int(11) NOT NULL DEFAULT '0', 4: `itemOwner` int(11) NOT NULL, 5: `isEquiped` tinyint(1) NOT NULL DEFAULT '0', 6: `isSoulBound` tinyint(1) NOT NULL DEFAULT '0', 7: `slot` int(11) NOT NULL DEFAULT '0', 8: `itemLocation` tinyint(1) DEFAULT '0', 9: `enchant` tinyint(1) DEFAULT '0', 10: `itemSkin` int(11) NOT NULL DEFAULT '0', 11: `fusionedItem` int(11) NOT NULL DEFAULT '0', 12: `optionalSocket` int(1) NOT NULL DEFAULT '0', 13: `optionalFusionSocket` int(1) NOT NULL DEFAULT '0',
867 :
866 :2011/01/22(土) 16:10:01 ID:???
ごめん、14個だった
moneyの方もエラーメッセージを見せてくれれば何かアドバイスできるかも phpもmysqlも入ってない環境でさっきからエスパってるから エラー晒してもらわないと何もわからない(汗
870 :
nobodyさん :2011/01/22(土) 16:23:17 ID:5oOIF2do
incorrect integer value ="for column 'attachedkinahcount' at row 1 です 値の入力命令?
>>870 「不正な整数値('')が、カラム'attachedkinahcount'に挿入されようとしている」
ていうような意味だと思う。
恐らくmoneyテーブルのカラム構成と挿入しようとしてる値が一致してない。
mysql_query("INSERT INTO inventory VALUES('$uniqueid','{$Row['itemid']}','{$Row['description']}','null','$Character','0','0','1','0','0','{$Row['itemid']}','0')"); ↑のようなINSERT文を↓みたいに書き換えて表示してから、実際のカラム構成と 比べてみるといい $q = "INSERT INTO inventory VALUES('$uniqueid','{$Row['itemid']}','{$Row['description']}','null','$Character','0','0','1','0','0','{$Row['itemid']}','0')"; echo "Query: $q"; mysql_query($q);
>>870 考えられる原因を
spend1.php
40:$res = mysql_query("SELECT itemid,points FROM voterewards1 WHERE id='{$Reward}'");
42:mysql_query("INSERT INTO mail VALUES('$uniqueid','$Character','Aion Staff','".MAIL_SUBJECT."','".MAIL_BODY."','1','{$Row['itemid']}','{$Row['description']}','1','2010-08-28 02:00:00')");
※42行目で、40行で指定されていないフィールド'description'を参照している
ちなみに'description'はTEXT,'points'はINTで'attachedKinahCountattachedKinahCount'はINT
874 :
nobodyさん :2011/01/22(土) 17:57:29 ID:HPNbEIGI
MySQLのカラムロックと、 それに対してPHPがどのようにMySQLとのセッションを 確立するか知りかったんだがorz MySQLでPHPから SELECT xxx FROM zzzzzz WHERE id="1" FOR UPDATE ↑ これで次にアップデートするまで、`zzzzzz`.`xxx`に対してロックが行われるとみていいのかな? あと、ロックかかってる時は他の人からはアクセス不可(エラー)で返るんじゃなくて、 順番待ちとして待機するのかな? セッションってDB接続ごとに確立されるんだっけ? A→PHP実行→接続→セッション1が作成 B→PHP実行→接続→セッション2が作成
カラムロックを確認する前にトランザクションについて勉強しよう!
>>874 >これで次にアップデートするまで、`zzzzzz`.`xxx`に対してロックが行われるとみていいのかな?
>あと、ロックかかってる時は他の人からはアクセス不可(エラー)で返るんじゃなくて、
>順番待ちとして待機するのかな?
>セッションってDB接続ごとに確立されるんだっけ?
ぜんぶ自分の環境で実行してみればわかるだろ
879 :
nobodyさん :2011/01/22(土) 20:59:10 ID:HPNbEIGI
まだです ちょっと今仕事中で試せていません
880 :
nobodyさん :2011/01/22(土) 22:04:02 ID:HPNbEIGI
おk、トランザクションとロック回り試してきました 楽しいですねこれ LOCK TABLE hoge WRITE; これだと別のセッションからhogeテーブル読めなく(待ち状態)になりますが、 これってテーブルごとじゃなく、特定の行や特定のカラムのみってできないんですかね LOCK TABLE hoge WRITE WHERE id='1'; // id=1の行だけロック LOCK TABLE `hoge`.`test` WRITE WHERE id='1'; // id=1の行のtestカラムだけロック てかこれどう考えてもMySQLスレ・・・?
うん
882 :
nobodyさん :2011/01/22(土) 22:24:38 ID:HPNbEIGI
ちょっとMySQLスレいてきます
ちょっとだけだぞ
Ajax、じゃなかった、了解。
Ajaxだった
Jaxaだった
Analだった
( * )だった
(i)だった
flock中にほかのプロセスから書き込みがあったら、 そのプロセスでは書き込みエラーが出るんですか?
>>896 ありがとうございます。
ファイルでは掲示板作らないほうがいいですね。
今時の掲示板はAjaxで保存するのがトレンド
Ajaxで保存するのではなくAjaxで作る
あ、すまん誤爆
どうでもいいけど Weaver はウェーバーじゃなくてウェアバーと発音する
パクッ weaveは[wi:v]
夢を織る ドリームウィーバーっちゅうことですな。波じゃないよ
We aver.(私達は主張する。)→Weaver なので「ウィアバー」と読むのが正解。
A jax.(Jacksonville International Airport)→ Ajax なので「ジャクソンビル国際空港」と読むのが正解。
911 :
nobodyさん :2011/01/25(火) 05:55:24 ID:OqPBuPo2
PearのHTTP/Clientでログインできないように対策している会員サイトってありますか? hiddenのパラメーターも記入してPostしているのですがログインができません。 Firebugで通信内容を見るとIDやPass等の情報の他にx=12&y=11というものがあるのですが これと関係ありますか?
912 :
nobodyさん :2011/01/25(火) 07:57:11 ID:ej6mboVt
>>911 意味わからんが、x=12&y=11は画像ボタンクリックしたときの
画像に対してクリックした座標
urlにパラメータつけてアクセスした場合、 php側では勝手に$_GETにそのパラメータが格納されてると思っておkですか?
916 :
nobodyさん :2011/01/25(火) 11:54:05 ID:c8AyyZvd
サーバの移行をしたところ、↓のエラーが発生し、PHPのページが正しく表示されなくなりました。 PHP Fatal error: Call to a member function getCurrentPageID() on a non-object in /パス/ファイル.php 他にもgetLinks()やgetPageRangeByPageId()など、Pager/Pager.phpを利用している部分でPHP Fatal errorのエラーが出ます。 Pager/Pager.phpのファイル名を変えるとエラーが返って来なくなるので、 Pager.phpに問題があるのは間違いないようです。 このエラーを無くし正常に動作させるには、どのような対処が必要でしょうか? 移行前:PHP 4.4.2 移行後:PHP 5.1.6 Apache/2.2.3
>>916 どう記述してるのかを書いてくれないとなんとも。
エスパーすると、factory使って生成して下さい。
918 :
nobodyさん :2011/01/25(火) 12:33:29 ID:aig55zU3
919 :
nobodyさん :2011/01/25(火) 12:36:39 ID:aig55zU3
>>918 周囲のソースもさらせと
echoとかじゃなく、それベタならHTMLじゃね?
921 :
nobodyさん :2011/01/25(火) 12:37:51 ID:aig55zU3
あれ?どーなってるのこれ? 文章が入力したとおりに表示されない・・・。なんだろこれ
なるほど、web串か
926 :
nobodyさん :2011/01/25(火) 12:47:07 ID:aig55zU3
もういちど原文 質問です、とあるphpファイルで <あ hrえf=#$FRONT></あ> というのを発見したのですが、この変数の前にある#は何の意味があるのでしょうか? なんか2chの仕組みがよくわからんです・・・。
928 :
nobodyさん :2011/01/25(火) 12:48:07 ID:PyH261ZL
【PHPのバージョン】PHP4.1.2 【連携ソフトウェア】MySQL 【質問内容】 COUNT関数を使っての件数取得がうまくいきません。 <?php $sql = "SELECT COUNT(*) FROM tablename"; $server = "server"; $userid = "userid"; $password = "pass"; $link = mysql_connect($server, $userid, $password); if ($link == FALSE) { print("接続に失敗しました"); } $con = mysql_query($sql,$link); mysql_close($link); if (!$con){ print "検索結果を取得できませんでした。"; } else { $row = mysql_fetch_row($con); print "行数は" . $row[0] . "です。"; } ?> という風に記述しているのですが、$conがFalseになっているようで 検索結果を取得できませんでした。 と表示されてしまいます。 phpmyadminからSQL文を流した場合はしっかり取得でき 同じような接続方法でINSERT文をPHPから流した場合もしっかり登録されましたが SELECT文で要素を取得する場合だけうまくいきません なにか考えられる原因等あれば教えていただければ幸いです。
>>928 mysql_error()でエラー原因見たら?
930 :
nobodyさん :2011/01/25(火) 13:01:47 ID:PyH261ZL
>>929 ありがとうございます。
原因を見たところデーターベース選択がうまくいってなかったとのことだったようで
解決しました。
931 :
nobodyさん :2011/01/25(火) 13:14:27 ID:aig55zU3
test.php?date=1111&no=11 ↑こういう文字列を生成して、 <a>タグで囲んでリンク貼ってるんですが、 $_GETの中に値が入りません。何か間違ってますか? あと、アンパサンドは&amp;とかくのか&だけでいいのかどっちですか?
>>931 お前が落ち着け。質問しといて偉そうにいてんじゃねぇ
935 :
nobodyさん :2011/01/25(火) 14:53:03 ID:ak3SRbWw
以下の条件を実現する方法ってないですか? ・フリー、商用可、可能なら広告表示義務なし。 ・既存サイトに組み込めるニュース表示パーツみたいなもの。 ・TOPページには最新の数件と、ニュースページへのリンクを表示。 ・文字コードはできればUTF-8で。 ・ブラウザ上から更新可能。できればウィジウィグエディタで。 ・更新画面はパスワードで入室管理。 イメージ的には希望の箇所に挿入可能はCMSパーツみたいなものです。
937 :
nobodyさん :2011/01/25(火) 15:04:46 ID:ak3SRbWw
>936 悪かった…。自分の聞き方が悪かった・・・。 >935の内容を実現する、具体的な方法や、解説サイト、ダウンロードページを教えてください。
>>937 聞き方というか、
自分で先に構成練って作ってみて
部分部分でやり方わからなかったら聞けよ
丸投げすんな
そもそも
> 既存サイトに組み込めるニュース表示パーツみたいなもの。
既存サイトって何だよ、ちゃんと定義しろ
939 :
nobodyさん :2011/01/25(火) 15:23:10 ID:ak3SRbWw
>938 既存サイト… 20ページくらいの完全に静的なサイトです。 構成というか、上に書いた内容が全てです。 自分で1から組む訳ではなく、この内容を簡単に可能にする方法(システム)を探して いたので、丸投げしようと思って書いたわけではないです。
>>939 自分の頭の中ではイメージ浮かび上がってんだろうけど
俺には全く伝わってこない
ニュースが出るCMSパーツ作りたいのかな?しか思い浮かばん
iframeでいいじゃんもう
静的だと位置づけた時点で以下ができない ・ブラウザ上から更新可能。できればウィジウィグエディタで。 ・更新画面はパスワードで入室管理。 rssを拾ってくるだけならそれこそ馬鹿の1つ覚えが居るajaxかな
>>941 静的サイトは組み込まれる側の話だからiframeでも使えば可能じゃね
943 :
nobodyさん :2011/01/25(火) 15:37:18 ID:ak3SRbWw
>940 えーっと、上手く伝わらないですよね…。 ちなみにiframeは無しで。 逆に考えると、シンプルなブログ機能と、その最新の記事を指定数だけ TOPページ(HTMLまたはPHP)に呼び出せる機能がほしいって事です。
>>943 自分で書いたブログ記事をHTMLに乗せるってこと?
> ちなみにiframeは無しで。
なんで無しなの?
フレームってだけで拒否する体質の人?
ニコニコ動画(笑)のパーツもだけど、基本的にiframe多いよ、主流と言ってもいい
てか、えらい簡単な内容だな
もっと複雑なもん考えてるんだと思ってた
なんとなく分かってきたけど、935の説明が相当悪い。 まず概要に当たる説明が無い。943でやっと出た感じ。 で、じゃあそのTOPページは動的ページになるんじゃないの? あとブログっていうのは今では相当複雑なCMSの複合体の名称なので ここで使うと混乱のもとな気がする。要するにテキスト(と装飾)程度だけ WEB上で更新して、掲載したいんでしょ?
ニュースは旬な話題が多いから結構アクセス数が増えるのよねw 動的仕組みで静的ページを自動作成って感じかな、どちらにしろCGIなり動く環境が必要。 iframeに他鯖から呼び出すのって規約違反じゃないの。仮に呼び出し先に同一のページを 作って誤魔化すならはじめからそっちで作れって話しだし。
もしかしてくれくれ君じゃね?
>>935 PHPで簡単な管理画面を作って、フォームからデータベースなりXMLなりにデータを書きこんで
JavaScriptでデータを適宜読み込んで表示すればいいんじゃないのか
949 :
nobodyさん :2011/01/25(火) 16:10:08 ID:ak3SRbWw
>944 ざっくり言うとそんな感じです。 iframe無しなのは、読み込む部分の編集をとにかく簡単にしたかったからで、 その場合iframeだと難しいのかなと思ったからです。 >945 確かにブログと言ってしまうとマズイかもしれないですね。 この内容が可能になると、確かにTOPは動的になります。 あとは、要するにその通りです。
950 :
nobodyさん :2011/01/25(火) 16:23:15 ID:ak3SRbWw
>946 んー、「ニュース」の部分は「お知らせ」とか「更新情報」に読み替えてもらって かまいません。そこまでアクセスが増える予定はないです。 >947 もしかしなくてもくれくれみたいなものですよ。 >948 確かに管理画面から作ってDBつくって、って方法もあるのかもしれません。 でも、今回はその辺を端折ってお手軽に作る方法を探してました。 もっと希望を言えばDBも使わずにCVSとかで保存する程度でOKです。
951 :
nobodyさん :2011/01/25(火) 16:25:45 ID:ak3SRbWw
訂正)CVSじゃなくCSVですね…。
そうすると948のやり方とか、949の持ってる技術と環境しだいだよな。 WISIWYG含めたシステムをどっかで手に入れたいって言うとスレ違いかも? ところでスクリプトがHTMLに整形された文書を吐き出す形になるなら Ajaxでもiframeでもinclude(同サーバー)でも同じでいい気が。 iframeで読み込むのなんて静的でかなりシンプルだと思うけど。 記事の更新は既存ブログつかって、吐き出したRSSなりを整形ってのは?
WordPressでも使えばいいんじゃないの?
954 :
nobodyさん :2011/01/25(火) 16:38:46 ID:ak3SRbWw
>952 自分もだんだんスレチな気がしてきました…。 以降スルーしてもらっても構いません。 書き込んでもらう分には返事して、参考にさせてもらいます。 お騒がせしました。 >953 それだとちょっと大掛かり過ぎなんですよね…。
>>955 イメージは
>>943 でいいんじゃないの?でブログって言うよりはシンプルなテキスト情報のみ、っていう。
「つまりブログパーツ」って言っちゃったらゲームとかもあるし種類広すぎるだろw
たぶんリンク先のイメージは合ってるけど。
957 :
nobodyさん :2011/01/25(火) 16:53:47 ID:ak3SRbWw
>955 全く違うわけじゃないんですが、>956さんの通りです。
それで誰か提供してあげるの?w
多分このスレの人は自分で作っちゃうのでアリ物はあまり知らないんじゃないかと。
961 :
nobodyさん :2011/01/25(火) 17:30:20 ID:ak3SRbWw
>958 これまでの意見で十分参考にさせてもらいました。 ありがとうございます。 >959 そうですよね…。それくらいさくっとできるように頑張ります。 >960 ありがとうございます。 ReCubeNewsはイメージと近いですね。 TOPへの表示部分が本文も表示するようにできればいい感じです。 夢幻は一通りみました。 3番目はブクマして、今後の勉強に役立てます!
えっ、POSTを受け取ってファイルに書き込みする程度の技術力もないって前提だったのか・・・
5分も掛けてんじゃねぇよ。Ajax使えば1分でできんのに。
>>964 いろいろあるから、すきなやつをそれに追加するだけだな。
PHP+MySQLで掲示板を作ろうと言う本を見かけるのですが 掲示板なんかにわざわざスクリプト意外にDBなんかまで使って サーバー管理者から苦情がこないのでしょうか?
なんかDBを大げさに思ってる初心者が多いっすね。 そんな大層なものでもないからw
どういう鯖かは知らんが、鯖缶が使っていい設定にしてあるなら遠慮なく使えばいい
>>966 それを言ったら963のじゃ編集もタグ入れも出来ないし、ちゃんと出来るモノ探したほうがいいよな
>>967 ファイル操作よりよっぽど安全でスマート。慣れればCSVとかいじるより多機能簡単だし。
972 :
nobodyさん :2011/01/25(火) 19:04:55 ID:NaLoXxgk
<?php $sss = "aiueo"; $sssd = "ai"; //ランダム表示 $arr = array("echo $sss;","echo $sssd;"); mt_srand((double)microtime()*1000000); echo" <html> <body>"; echo $arr[mt_rand(0,count($arr)-1)]; echo" </body> </html>"; ?> これを実行すると echo aiueo; echo ai; と言う表示が出ます、これを aiueo ai と表示出来るようにするにはどうしたらいいでしょうか?
>>972 すげー見づらいから書きなおしてみた
<?php
// 文字列を変数に入れる
$s1 = "aiueo";
$s2 = "ai";
// 変数を配列に入れる
$arr = array($s1, $s2);
// 乱数を生成する
$num = mt_rand(0, count($arr)-1);
// 表示する
echo "<html><body>";
echo $arr[$num];
echo "</body></html>";
>>972 最小限に手直しするなら
$arr = array($sss, $sssd);
975 :
nobodyさん :2011/01/25(火) 19:52:02 ID:NaLoXxgk
>>973 素晴らしいですね
綺麗すぎて泣いた
あとすいません、echoで必ず表示させたいんです
どういう事かというと、
そのランダム部分には普通の文字列もあれば関数やらHTMLのタグやらも一緒くたに扱える柔軟性を維持させたいからです。
require 'aaa.php';//ここに関数定義
$sss = "print_advanceda();";//これが関数
$sssd = "ai";//これは普通の文字列やタグを設定
こういう使い方は無理でしょうか?
関数と文字列表示を同じに処理したいって事か
>>975 $sss = print_advanceda();
これでおk
関数の返り値を変数に代入すればいいんだよ。
あなたはどうして変数も関数も文字列として扱おうとするのか・・・
礼もなしとな
気が早いよ
次スレ立てるよ
982 :
nobodyさん :2011/01/25(火) 20:58:24 ID:NaLoXxgk
>>977 ありがとうございます
require 'aaa.php';//ここに関数定義
// 文字列を変数に入れる
$s1 = print_advanceda();//これが関数
$s2 = "ai";//これは普通の文字列やタグを設定
// 変数を配列に入れる
$arr = array($s1, $s2);
// 乱数を生成する
$num = mt_rand(0, count($arr)-1);
// 表示する
echo "<html><body>";
echo $arr[$num];
echo "</body></html>";
これで実行したら、$s1の表示の場合は空白でした。
そして
>$s1 = "print_advanceda();";//これが関数
この部分に反応して表示されてます。
つまり、<html><body>の前の行です。
require 'aaa.php'のファイルに
>$s1 = print_advanceda();//これが関数
この記述を移動させて見ましたが、
今度もやはりここで反応してしまいます。
>$arr = array($s1, $s2);
で↓ここの表示でも$s1の場合だと空白に成ります
>echo $arr[$num];
>>982 print_advanceda() という関数が、関数の内部で表示を実行しているため、
$s1 = print_advanceda() の行の評価時に表示が行われてしまう。
また、print_advanceda() 関数の内部で返り値が設定されていないため、
$s1 = print_advanceda() としても $s1 に何も代入されない。
print_advanceda() 関数を自分で修正できるのならば、
内部で表示(print, echo 等)している部分ををやめて、
return文で戻すように改造する。
>>983 単刀直入に言うと、あなたが作ったprint_advanceda関数がおかしいってことですよ。
可能ならば、その関数のコードもここに書いてみたらどうですか。
おかしいというより、こういう用途を想定して作られてないだけだな。
おそらく本人が作ったわけじゃないんだろ?
>>982 を読む限りPHPの基本的な動作を理解しているとは思えない。
987 :
nobodyさん :2011/01/25(火) 21:21:08 ID:NaLoXxgk
>>983-985 関数内の
print $result;
を
return($result);
に変えたら表示出来ました!!
まじで感謝です!ありがとうございましたm(__)m
>>986 はいその通りです・・・でもヒントを得て改造してみました!
そしたら動きました!
ここで聞いて良かったです!!皆さんほんとうにありがとうございましたm(__)m
どういたしまして 次回はAjaxで挑戦してください
工エエェェ(´д`)ェェエエ工
ェェエエ工JAXA
どこがだ
>>991 データのロードがAjaxじゃないから
複数人が同時に書き込みした場合に不具合がある
>>992-993 いや、おれAjaxのことよく知らなかったんだけど、
これ見て大まかな使い方を理解できて勉強になったんだ・・・
こういう風にノリでささっと作れる人ってすごいと思う
文法ミスってレベルじゃねーぞ
自演は見苦しいよ
>>991 誰も評価してくれなかったから残念な気持ちはわかるけど
自己満足で終わらせといたほうが身のためだよ
おれ993だけどそれは穿ちすぎじゃね・・・
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。