【PHP】下らねぇ質問はID出して書き込みやがれ 109
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 108
http://hibari.2ch.net/test/read.cgi/php/1309599473/ ◆質問用テンプレ
【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に保存?
→ 好きにしてください
7 :
nobodyさん :2011/07/28(木) 16:24:16.40 ID:NqRYRRZz
>>1 乙です
クラスのメソッドを役割ごとにまとめたいんだが、いい方法ない?
たとえばリクエストを送信するメソッドが、sendRequest, createRequestURL,
parseResult みたいにいくつものメソッドにまたがってる。
普通はRequestクラスを作るんだろうけど、元のクラスのprivateメンバに沢山アクセスしないといけない。
めんどうだけど、Requestクラスに必要な情報を一つ一つ渡すしか無いのかな
Requestクラスに元のクラスをそのまま持たせるとか
9 :
7 :2011/07/28(木) 16:40:05.60 ID:NqRYRRZz
>>8 イメージとしてはそんな感じ。複数のクラスで一つのフィールドを共有したい。
でもprivateだとそうはいかないよね。。
とりあえず面倒だが普通に一つ一つ渡す方法で実装してみる。
誰かいい考えあったらアドバイス頂戴。
どういった類のパラメータか知らんけども、 データ保持用のクラス別に持ってそれ受け渡すとか
11 :
nobodyさん :2011/07/28(木) 19:27:30.74 ID:nM3VLmEc
質問です レンタルサーバーでphp.iniとかイジれないのですが セッションの有効期限を延ばすにはどうしたらいいでしょうか? ブラウザを閉じなくても30分程でセッションが切れてしまいます 一応セッションスタートの前に ini_set("session.gc_maxlifetime", "504000"); ini_set("session.cookie_lifetime", "504000"); session_start(); と記述してあるのですが
とりあえず減らしてみるといい
>>9 文化や芸術を理解するには知識ではなく知性が必要だからね
テストでいい点取って喜んでいるうちは所詮朝鮮人レベル
日本人としてはそれより一段高い知的水準になければ達しているとは認められないだろう
韓国国営放送である犬HKを解約する方法
http://www.youtube.com/watch?v=YP5YoQbMx9g&feature=related ただし一般郵便だと無視される可能性があります。
とぼけられないように一般書留+配達証明=770円で郵送したほうが確実です。。
私の場合、3日程で、地域担当者から電話がかかってきました。
相手の役職と氏名を確認して、『一応、トラブル防止のために録音しときますね』と告げました。
そのためか、一通り確認すると15分ほどで解約に応じました。
『家の中を確認しないと解約できない』とか、『未払い分があると解約に応じない』とかでゴネることはなかったです。
『NHK 解約』でネタを仕込み、いろいろと突っ込んでやろうと構えていたのですが、空振りでした。
本当はネチネチと遊びたかったのですが残念です。
と、まあ、割と簡単な作業ですので、テレビが視聴出来ない方w、ぜひお勧めします。
15 :
nobodyさん :2011/07/29(金) 07:03:04.67 ID:jzqKsHF3
>>12 減らすというと
ini_set("session.gc_maxlifetime", "50400");
ini_set("session.cookie_lifetime", "50400");
session_start();
こんな感じでしょうか?
変わらずだったんですが、どうすれば・・・。
1分にしてみろってことだろ
>>15 即消えるようにしても駄目ならそもそも設定できてないんじゃないって事
セッション以外の設定も変えてみたりもしてみると原因がどこにあるか見えてくるはず
18 :
nobodyさん :2011/07/29(金) 09:01:21.09 ID:jzqKsHF3
なるほど、ありがとうございます 確かに60に設定しても消えませんでした、何が悪いんだろう やっぱレンタルサーバーだとこういう点があるのが難点ですな
>>18 レンタルサーバなら何処か情報出すといいよ
使ってる人が情報持ってる事だってある
俺前にセッション使うならクッキーにしろって言われたが クッキーだと情報保存したクッキー自体を抜き取られる危険性があるんだよなぁ
そりゃセッションとは直接関係ないから hiddenフィールドだってURL渡しだって抜き取られる危険性はある
用途が違いすぎてなんとも
セッション=IDとか保存 クッキー=セーブデータの保存 こんな感じに使い分けてる
class A{ function do(){ fire(self);//←ここのselfでエラーが出る } function do2(){print("OK");} } function fire($argclass){ $argclass->do2();//ここで$tst=selfのdo2()が動いて欲しい } $tst=new A(); $tst->do(); 上記のようなコードを書いたのですが、 fire(self);で「selfがねーよ」とエラーが出てしまいます クラス内で自分自身のインスタンスを引数として渡すにはどうしたらよいのでしょうか $tst->do();をfir($tst)とすればよいのですが、それは他の仕様上ちょっと出来ないのでそれ以外でお願いします。 function do(){}の中だけで解決する方法があればそれをお願いします
$this
使い分けるもんじゃないから
URLに埋め込み=IDとか保存 hiddenタグに埋め込み=セーブデータの保存 こんな感じに使い分けてる
>>25 staticにしてないから、じゃないかな?
selfて基本的にstaticな変数または関数しか呼び出せないけど
ちがうかな?
public static function do2(){print("OK");}
}
自分自身のインスタンスなんだから$this以外の何があるというのか
31 :
nobodyさん :2011/07/30(土) 02:57:30.30 ID:byWcuOWe
コマンドプロンプトでphpを実行させるにはどうするのですか?
>>32 そういうことではなく、phpをコマンドプロンプトで実行させたいのですが
エスパーよろしく
php filename.php
php -r echo('HELLO WORLD');
php -r "echo 'Hello':"
えぇと、結局回答は無いわけですね
コンソールアプリケーションが作りたいとか PHPをコマンドラインから起動したいとか日本語で頼む
40 :
nobodyさん :2011/07/30(土) 11:40:30.54 ID:IHHD7Huh
ereg系の関数が将来廃止される予定とのことなので、 ereg系(ereg,eregi,ereg_replace)をpreg系(preg_match,preg_replace)で処理するように過去に作成したスクリプトを書き換えることを検討してます。 しかし、あまりにも数が多い上、ereg系とpreg系で微妙に書き方が違うようで、パターン文字列を//で囲む、パターン文字に含まれる/は\/に置換してクォートしておかなければならないぐらいしか違いを認識してないので、どうしようか悩んでます。 単純にエディタの置換などでereg→preg_match, ereg_replace→preg_replaceと置き換えるだけでは動かないと思われるので、 たとえば、ereg→treg,eregi→tregi,ereg_replace→treg_replaceとエディタで全置換して 各treg,tregi,treg_replace内でpreg系の処理をしてくれるようにできると非常に楽なのですが、このような(treg,tregi,treg_replaceのような)、引数や書き方はereg系のままでpreg処理をしてくれるような関数はどこかにないものでしょうか?
41 :
nobodyさん :2011/07/30(土) 12:01:34.76 ID:eO+Qjjae
preg_replace('/([0-9]+)/', $hoge['$1'], $str) 的なことをするとundefined index $1になってしまいます どう書くのが正しいでしょうか?
>>41 '$1'にするからじゃないの?
$hoge["$1"] か $hoge[$1] にしたらどうよ
43 :
41 :2011/07/30(土) 12:44:35.37 ID:eO+Qjjae
>>42 前者は同じundefined index $1
後者はsyntax error, unexpected T_LNUMBER, expecting T_VARIABLE or '$'が出ます
44 :
nobodyさん :2011/07/30(土) 13:04:27.83 ID:kbXVhMdE
質問です data: URLをjpgやpng画像に変換してサーバーに保存するにはどうしたらいいでしょうか?
>>43 preg_replace('/([0-9]+)/e', "$hoge[\"$1\"]", $str)
にしたらどう?
gd関数
47 :
43 :2011/07/30(土) 13:22:14.00 ID:eO+Qjjae
>>45 それもだめでした
マッチングしてから置き換えることで対処はできますので
replaceのみで難しいようならそうしたいと思います
48 :
nobodyさん :2011/07/30(土) 13:29:29.86 ID:j7DYM4YF
dateフォーマットについて質問です。 自分の環境だとecho date("住吉");とやると 324004という謎の数値が出るのですが、 フォーマットに漢字は含めてはいけないのでしょうか? echo date("m月d日")は平気なんですけど、 たまに漢字によっては変なものが出ます。 date("m住d吉")にする場合は、 date("m")."住".date("d")."吉"のようにしないといけないのでしょうか?
>>48 formatに2バイト文字が使えるかどうかマニュアルには無いけど、
おそらく止めておいたほうが無難だろうな
51 :
48 :2011/07/30(土) 14:02:15.02 ID:???
>>51 マルチバイト対応関数でないと、漢字の一部が英数字と解釈されてしまう可能性があり、
そのため324004とかになったのだろうと推察できるが、
いずれにしてもマニュアルにそれ以上の情報が無い以上、想像しかできない。
あきらめて date("m")."住".date("d")."吉" とするしかないのでは。
>>51 上と同じでSJISでやってるとか、
内部エンコーディングの設定と合ってないとかなんじゃない?
54 :
48 :2011/07/30(土) 14:21:01.07 ID:???
>>52 そうですね。情報が少ないので最悪それでいくことにします。
>>53 SJISでやってます。内部エンコーディングはUTF-8でたしかに設定は合っていません。
しかしmb_convert_encodingで変換をしてからdate関数を使ってるのですが、
その辺は大丈夫なのかな?とは思うのですが、文字化けしてるところをみると大丈夫じゃないのかもしれません。
>>54 内部エンコーディングと文字のエンコーディングがUTF8なら大丈夫だと思うけどなー
一度そのmb_convert_encodingやった値をUTF8のまま出力してチェックしてみたら?
ひょっとしたら変更の書き方間違えてるかも知れない
>>55 だからそもそもdate関数がマルチバイト非対応なんじゃないの?
文字コードまわりはほんっとむつかしぃなー
>>56 内部ではASCIIを想定している
UTF-8はASCIIとして扱っても問題ない
>>58 そう言い切る根拠は?
関数内部でUTFすら想定していない可能性だってあるんじゃない?
60 :
58 :2011/07/30(土) 15:19:26.33 ID:???
1バイトずつ見ていくからUTFが混じってても問題ないということか
62 :
48 :2011/07/30(土) 17:27:51.25 ID:???
色々やってみましたがなかなかうまくいきませんでした。 目が疲れたのでまた明日頑張ります。 色々情報ありがとうございました。
「色々やってみた」 「うまくいかない」 こんなこといってるからだめなんだよ
情報出してまたアドバイスさせるのに抵抗かんじてるだけだろ あとは自力で頑張りますという意図をくめないようじゃだめなんだよ
65 :
nobodyさん :2011/07/30(土) 18:18:59.20 ID:kbXVhMdE
>>46 ありがとうございます!
これから試してみます
>>63 そんな思考の人が自力で頑張れるわけないだろアホか
他人が自力で頑張るかどうかなんてどうでもいいじゃないか
そりゃ学校の勉強も全部自力でやろうと思えば誰だってできるけど 人から教われば1分で終わることを10時間も調べてたら非効率的だし
だから?
ヤフー知恵袋も良心で成り立ってるしな
>>68 最初は非効率かもしれないけど、そうやって自分で調べて解決する力を養うのも必要かと
何事もケースバイケースやで
73 :
nobodyさん :2011/07/30(土) 20:03:25.77 ID:No0Awge7
DBから文字コードの違うデータをとってくるとき、 mbでconvertしてから表示しないと文字化けするので、 みなさんそうしてると思いますが、 alnumとか-_~$みたいな記号は変換しなくても特に問題ないですよね? こういったものにも変換はしないとなんかまずかったりしますか?
例えば一度ページにログインして、ログインしっぱなしの状態で一旦ページを離れて また戻ってきたとします。 その時に、ページのタイトルに「ログイン中」とかって表示したいんですが、 その場合titleタグを書き換える必要があると思います。 ってことは、 ログイン中かどうかを判定した後に、 そのページのタグ全てをPHPで書き出さないといけないんですか? タイトルタグだけ書き換える方法ってありますか?
>>73 違うエンコーディング同士なら必ず変換する事
それ以前にまずここを見直すべき
> mbでconvertしてから表示しないと文字化けするので、
使っているライブラリ、クライアントでエンコーディングを指定できないかどうか調べよう
74ですがやっぱりスルーしてください
>>74 普通はログインやその他の処理をした後にHTMLを出力するわけだから
タイトルタグ部分を変数にしておけば自由に変えられるだろ
スルーできなかった
スルーされなかったので、追加で質問を。 ってことは、PHPでそのページのHTML全てを出力することって普通にやってるんですか? 例えば、 if(ログインチェック){ //ログインあり OutPut();//ログイン時の全HTML書き出し処理 }else{ //ログインなし OutPut2();//非ログイン時の全HTML書き出し処理 } ↑こんな処理だけ書いて、最初からファイルにそのまま書いてあるHTMLは一切なしにするってことって 普通にすることなんですか?
80 :
73 :2011/07/30(土) 20:55:11.07 ID:No0Awge7
>>75 レスありがとうございます。
5個のデータを100レコード分とってくるので、
変換ありとなしじゃ0.1秒と0.01秒ぐらい差が出ます。
たいしたことないといったらたいしたことないんですが、
文字化けしないし1バイト文字にはできればやりたくないんですよね。
なんかセキュリティー的な理由とかあったりするんでしょうか?
>使っているライブラリ、クライアントでエンコーディングを指定できないかどうか調べよう
エンコーディングを統一しろということですか?
そうしたいのは山々なんですが、Shift_JISで作ってくれと言われてるので・・・
ちなみにデータベースはUTF-16です。
前スレの奴か たかが知れてるから全部やれっつーの
はーい ありがとうございました ちなみにこのスレは初めてきたんで前スレのことなんか何も知りません
一丁前に速度なんか気にする前にShift_JISでphpコーディングさせられる事に疑問持てよw
>>80 1. サーバーが文字列格納に使用するエンコーディング
2. クライアントがSQLステートメントの送信に使用するエンコーディング
3. サーバーが結果セットの送信に使用するエンコーディング
の3つがあり、Shift_JISの結果が欲しければ3にShift_JISを指定するのが妥当
例えばMySQLなら SET character_set_results = sjis; を発行したりね
本当なら出力する場面に変換をかますのがお勧めなんだが
> 文字化けしないし1バイト文字にはできればやりたくないんですよね。
絶対に1バイト文字以外混入しません、混入しても問題ありません、
何かあったら責任取りますと上司を説得できればやらずに済むよ
>>41 \1 じゃなかったっけ?
もしくは\\1
86 :
nobodyさん :2011/07/31(日) 03:49:23.25 ID:YYk2Yc0d
foreach ($xml->items->item as $item) { $result[$i] = array( 'id' => (string) $item->id, // Original URL (sent by the user) 'status' => (string) $item->status, // status (IN_QUEUE, DOWNLOADING, WAITING_STORAGE, COMPLETED, ERROR) ); if ($item->status == 'ERROR') { // ERRORの時のみ detailが追加される $result[$i]['detail'] = (string) $item->detail; } } XMLのデータを配列に入れてるのですが、このif ($item->status == 'ERROR') なしで detailがあれば勝手に入れるようにってできますか? 無いときは空になっても構わないのです
ifブロック外せば?
88 :
nobodyさん :2011/07/31(日) 04:07:17.22 ID:YYk2Yc0d
$result[$i]['detail'] = isset($item->detail) ? (string) $item->detail : ''; こうですね ありがとうこざいます
>>79 FWとかテンプレ使うのが普通だろうけど、自力でガリガリやるのも構わない。
ログインの有無で完全に異なる内容を表示するならそれもアリだけど、
通常はヘッダーとかフッターとか共通する部分があるからそれは別にしておく。
titleタグだけを変更する程度ならそこだけを変えればすむ。
<?php
if(ログインチェック){
//ログインあり
$title="ログインあり";
}else{
//ログインなし
$title="ログインなし";
}
?>
<html>
<head>
<title><?php echo $title?></title>
</head>
<body>
・・・
90 :
73 :2011/07/31(日) 04:40:43.00 ID:i4SK/hK9
返信遅れてすみません。
>>81 >>82 ではありませんが、だいたい代弁としてはあってます。
>>83 本当困ってます。色々面倒だし大変ですよね。
>>84 詳細ありがとうございます。
1はそのままだとShift_JISなので変換してから格納しています。
2は特に意識していませんが、updateやinsert時は変換していると思います。
(ロジック書いたのはだいぶ前なので見てみないとわかりません。現物は今ないです。)
3はそのまま出力するとマルチバイト文字だと文字化けするので変換してます。
1バイト文字は変換しなくても文字化けはしないようです。
>絶対に1バイト文字以外混入しません、混入しても問題ありません、
>何かあったら責任取りますと上司を説得できればやらずに済むよ
何かあるんですかね?何かあるのか知りたいです。
とりあえずint型カラムは混入されないのを保証されてるので大丈夫そうですかね?
char型は今は全部やってます。
timestamp型も今はやってますが、これはどうなんでしょうね。
文字コード関連に詳しそうなスレ探してそっちで文字コードに関すること聞いてみます。
91 :
73 :2011/07/31(日) 04:45:19.99 ID:???
マルチになるので質問閉じます。 ありがとうございました。
>2は特に意識していませんが、updateやinsert時は変換していると思います。 >(ロジック書いたのはだいぶ前なので見てみないとわかりません。現物は今ないです。) 確実に前スレのアホだろ
見えない敵とは過疎スレで戦ってね
過疎スレのココにそんな頻繁に別のアホが来るかよw
別に何度きて何度聞いてもいいじゃないか くだらんわ
普通の人ならな
まったりまったり 温泉に浸ってる気分でのーんびりと
温泉なんて何時間も入ってられルカぼけw
お前はこのスレに何時間もいるのかよw
俺風呂はシャワー10分、入浴5分ぐらい 温泉行ったらぬるーい露天風呂に友人と30分ぐらい使ってる
昔親から隠れてゲームするために、何時間も風呂に入ってたことあったな〜
お風呂入ると気持ちよくなってオシッコ出ちゃうよね
103 :
nobodyさん :2011/07/31(日) 23:31:59.71 ID:WZb+hQkO
【OS名】Mac OS X 10.4 【PHPのバージョン】5.3 【連携ソフトウェア】 【質問内容】配列の中の最小値はmin()で取得できると思うのですが、 配列の中の最小値の添字番号を取得する方法はありますか?
>>103 min(array_keys($array));
105 :
nobodyさん :2011/07/31(日) 23:43:36.46 ID:+1qkyEQe
>>104 それは「配列の添字番号の最小値」じゃないか?
>>103 <?php
$array = range(0, 10);
shuffle($array);
echo var_export($array, true), PHP_EOL;
echo array_search(min($array), $array), PHP_EOL; // 非破壊的
asort($array); echo key($array), PHP_EOL; // 破壊的
お風呂入ると気持ちよくなってオ○ニーしちゃうよね
108 :
nobodyさん :2011/08/01(月) 01:57:25.84 ID:r8kgX+8j
curl_multi_*のURL登録等の準備が完了し通信開始〜全ハンドル通信終了までの流れについてです
今まではcurl_multi_add_handleでハンドルをマルチハンドルに追加した後
do{curl_multi_exec($mh,$running);}while($running);で待っていればいいと思っていたのですが
公式見るとまるで違う処理をしていました
http://php.net/manual/ja/function.curl-multi-exec.php の例の// ハンドルを実行します〜// ハンドルを閉じますまで
curl_multi_execの戻り値のCURLM_CALL_MULTI_PERFORMや
何故一度目のwhileが終わった後二重のwhileをしているのか
どのタイミングでどこに処理が行っているのかがまるで読めません
定義済み定数のページを見ても(英語版にも)CURLM_CALL_MULTI_PERFORMやCURLM_OKが
具体的にどのような状態を表すのかが読み取れませんでした。というか書いてありませんでした
http://www.php.net/manual/ja/curl.constants.php そして検索しても、このサンプルを丸コピしているサンプルサイトしか引っかかりませんでした。
// ハンドルを実行します
01:do{
02: $mrc = curl_multi_exec($mh, $active);
03:}while($mrc == CURLM_CALL_MULTI_PERFORM);
04:while($active && $mrc == CURLM_OK) {
05: if(curl_multi_select($mh) != -1) {
06: do{
07: $mrc = curl_multi_exec($mh, $active);
08: } while ($mrc == CURLM_CALL_MULTI_PERFORM);
09: }
10:}
この各行がどのような流れで処理されるのかの解説をお願いできますでしょうか
特に3行目、4行目、8行目のループが何を待っているのか、5行目のifは何を分岐しているのか・・・
110 :
nobodyさん :2011/08/01(月) 03:51:04.53 ID:2XW3ucDq
curlでpostした場合、自分でContent-lengthを付けなくても勝手に付きますよね?
>>110 付かないとHTTP通信が成り立たないから付く
>>108 PHPのソースとcURLのAPIを読んだ方がいい
ざっと読んだがこんな感じじゃないだろうか
1-3: 通信準備
4: 前回の curl_multi_exec() の結果が正常、かつ実行中のハンドル数が1以上なら
5: 読み込みの準備が完了まで無限ループ
6-8: 読み込み実行、終わったら4に戻る
114 :
nobodyさん :2011/08/01(月) 09:29:12.01 ID:Nj6qDJQl
アップロードされた画像を $binary = fread(fopen($_FILES['upfile']['tmp_name'], "r"), filesize($_FILES['upfile']['tmp_name'])); $file = base64_encode($binary) とエンコードをしてMySQLに保存するコードを作りました この画像を今まで表示させるのに <?php header("Content-type: image/png"); echo = base64_decode("mysql出力"); ?> とやってたのですが訳あって"./img/img_user/".$user_name."png" という風にMySQLとは別にサーバーに保存しようと思ってるのですが move_uploaded_fileなどを使って「デコードされた文字列をpngとして名前を付けて保存する」やり方に悩まされています もし解決方法があったらお願いします
$fileを保存すればいいんじゃねーの デコードする意味が俺には分からんけど。
> 訳あって ってあるから訳があるんじゃねーの? 画像うpろだみたいに引き出す時だけ一定時間保存するとか
そりゃ訳があるなら訳がある訳で
何で悩んでるのかがわからん こうしたいけど、こうなってしまう、とか事例無いかね
119 :
114 :2011/08/01(月) 11:16:15.45 ID:Nj6qDJQl
すみません、自分なりに $hoge = base64_decode("mysql出力(例:R0lGODlhAQAAAAAALAAABAAEAAAICRAEAOw==)"); $user_name = "hoge122"; if(move_uploaded_file($hoge, "./img/img_user/".$user_name.".png")) { echo "画像を復帰させました。"; } とやってみたりしたんですがどうもうまくいかず デコードされた文字列をpngとして名前を付けて保存するやり方はどの本に載ってなかったので
fread使ってるみたいだし、普通にfwrite()じゃだめかね?
質問です $str = "あ"; $str = mb_convert_encoding($str, 'HTML-ENTITIES', 'UTF-8'); としても期待通りの結果を得る事ができません。 期待は$amp;#12354;ですが「あ」が得られます。 おそらくphp.iniのを見直す必要があると思うのですが、それを含めどうすれば期待通り得れる様になるのでしょうか? PHP5.3.6です。
誤)期待は$amp;#12354;ですが「あ」が得られます。 正)期待は?ですが「あ」が得られます。
アンドが出ないようで。
IDも出ないようで
&
>>119 move_uploaded_fileでファイルを移そうとするからだめなんじゃ?
127 :
114 :2011/08/01(月) 13:13:31.94 ID:Nj6qDJQl
>>120 >>126 出来ました!ありがとうございます!!
何日間も悩んでたんですが、こんな簡単なことだったとは
ここに来て正解でした。本当にありがとうございます!!
128 :
nobodyさん :2011/08/01(月) 22:17:14.90 ID:7/D+jIWO
くだらねえ、というか変な質問なんですが、PHPで作られてるゲームを教えてもらえませんか。 ちょっと仕事でそう言うのに関わりそうなんでどうゆうのがあるのかイメージだけでも掴んでおきたいんですわ 個人でも企業でも構わないです
129 :
103 :2011/08/01(月) 22:22:55.11 ID:WocIZ6af
130 :
nobodyさん :2011/08/01(月) 22:24:10.13 ID:WocIZ6af
最小値はmin関数で取り出せますが、 2番目に小さい値を取り出すにはどうしたらいいでしょうか?
PHPでゲームとな? グーって送信したら「負けました」って返ってくるようなのとかしか思いつかん
結局はそれの応用だろ
ブラウザ三国志ってPHPじゃなかったかな
ブラウザゲーム PHPでぐぐれ
>>130 <?php
$array = range(0, 10);
shuffle($array);
echo var_export($array, true), PHP_EOL;
$values = array_values($array);
$keys = array_keys($array);
array_multisort($values, SORT_DESC, SORT_NUMERIC, $keys);
echo implode(' > ', $keys), PHP_EOL;
PHPでゲーム作ったとしてもゲームってよべる代物じゃないんじゃね? 送信→結果返ってくる→送信って物凄い退屈になりそうだ ドラクエの動作する度に読み込みしなきゃならんという
>>137 いつの時代のゲームだよ。
PHP+JavaScriptで結構いい感じのができるよ。
139 :
nobodyさん :2011/08/02(火) 00:38:18.62 ID:HmxmiA4/
クラス内の関数をcall_user_funcで呼ぶにはどう指定したらいいでしょうか? call_user_func($this->'hoge'); // ? private function hoge() { }
PHP+AJAXを利用してチャットの仕組みを応用すれば、 それほど難しくないでしょ。
143 :
nobodyさん :2011/08/02(火) 00:50:29.97 ID:HmxmiA4/
call_user_funcを使うのは設計が悪い証拠
$matches = array(); preg_match($regex, $url, $matches); 最初の初期化って必要?
上書きされるので必要ない
148 :
nobodyさん :2011/08/02(火) 05:57:50.94 ID:pX4Rbkp4
前スレでSMTP認証ができずメール送れないって書き込んんだのですが、 mb_send_mailをsendmailまねーるでSMTP認証すると送れました。 質問します。画像やpdfを添付ってどうやってやるのですか?
sendmailまねーるって何だよ PHPに関係あんのかそれ
>>148 その時にされたレスにあるクラス使えば出来るよ
151 :
nobodyさん :2011/08/02(火) 18:18:20.03 ID:pX4Rbkp4
てst
sendmailまねーるは使うな どうしてもWindowsでやりたいならxmailにしろ
154 :
nobodyさん :2011/08/02(火) 23:07:29.75 ID:pX4Rbkp4
>>153 sendまね〜るを非推奨は何か理由があるのですか?
sendmailまねーるって何だよ PHPに関係あんのかそれ
またいつものどっかの記事を鵜呑みにしちゃった使うな厨か
そんなに使いたいなら使えばいい
PHPは使うな どうしてもWindowsでやりたいならAjaxにしろ
PEAR入れりゃ済むことをわざわざ別の何かを入れるのは どうなんだ。それが本当に必要ならともかく、 よくわかってないから入れてみました、じゃあなあ
解決方法は別になんでも良いだろ 回答もらっておきながら結果なりを報告せずに別の質問しに来るあたりクズだと思うけど
なんでこんなスレにいちいち報告に来なきゃならないんだ お前はお礼を言ってもらいたくて回答してんのか
「〜は使うな どうしても〜で使いたいなら〜にしろ」 はコピペか
なんでこんなスレにいちいち回答しなくちゃならないんだ おまえは回答が欲しくて質問してんのか
>>161 そんな風だからお前はこのスレでしか質問させてもらえないんだよ?
まあどうせパスが通って無くてインストールできなかったんだろうけど その程度の事もわからなくて見当違いの方向に進んで 見当違いの質問をするやつもどうかと
>>164 このスレだけで質問できれば充分なんだけど?
PEARの使い方わからないからってそんなイライラすんなよ
不同意ね…
172 :
nobodyさん :2011/08/04(木) 05:35:26.09 ID:lnwKvGgA
なんかまともに機能してないのかこのスレ
粘着君が荒らしてるようだな
まともな質問者にはまともな回答がついてるじゃない
175 :
nobodyさん :2011/08/04(木) 10:24:57.92 ID:x+2SSW45
配列の初期化について教えて下さい。 error_reporting(E_ALL); $a = array(); for($i=0;$i<=10;$i++) { print "a($i) = $a[$i]\n"; } 上記のようなスクリプトを書くと、 Notice: Undefined offset: 0 in /home/name/tmp/a.php on line 5 a(0) = : Notice: Undefined offset: 10 in /home/name/tmp/a.php on line 5 a(10) = という警告が出ます。 $配列=array(); で、空の配列で初期化できるとググって調べたサイトには 書かれてるのですが、これは正しいのでしょうか? ちなみに $a = array(); を$a = NULL; で置き換えると警告が出ず、意図した通り動作します。 どちらが正しいのでしょうか?
>>175 $a[0] や $a[10] は初期化されてないでしょ?
>>175 > $a = NULL; で置き換えると警告が出ず、意図した通り動作します
意図したとおりに動作するならそれでいいじゃん
揚げ足取りはスルーしてね
空の配列へ初期化ですから Notice: Undefined offsetが出るのが正しいですよね?。 nullの場合は nullへの配列アクセスがnull返してるだけですので、意味が違います。 どちらが正しいということではありません。
180 :
175 :2011/08/04(木) 11:21:24.21 ID:???
>>176 >>178-179 回答ありがとうございます。
array()で「未定義の状態に」初期化されるということだったんですね。
借りてるサーバーでphp.iniの設定が変わったのか、やたらこの警告が
出るようになったので、error_reporting等でエラー制御してもいいんですが、
放置しておくのも気持ち悪いので、配列を空白または0として認識するよう初期化する
方法を検証してたんですよね。
配列のサイズは可変なので、array_fill等を使わずに検証してますが、
>>179 さんの説明見る限りでは、= NULL; では意図した初期化になってない気がしますね。
気持ち悪いのなら、その部分を直すべき。 print "a($i) = ". (isset($a[$i])?:"") ."\n"; とか
クラスにしちゃうのも良いかもね
なんでもかんでもクラスといえばいいと思ってんの?
そうだねAjaxだね
自分も日曜鯖管・プログラマーで、Noticeエラーで悩まされて error_reportingでとりあえず対処してる。 PHPで食べてるプロの方々は、どう対処してるんでしょ? 鯖の設定もクライアントによって様々だろうし・・・ error_reporting(1)にしてるけど、問題ないのか自分としても自信がないし
Noticeの対処するだけ。 とりあえずって自分で言ってるから、分かってるんだとは思うけど。
187 :
175 :2011/08/04(木) 13:20:29.10 ID:???
>>181 うーん。サイズが可変である以上は、やはりスクリプト中で毎回
変数をチェックするしかないですかね。
>>182 クラスでできるもんなんですか?
>>185 私も同じです。
error_reportingでの対処で問題ないか自信がないので初期化を検討してます。
少なくとも今からコード書くんであればerror_reportingで対処するのはどうかと思う
Noticeなら別にerror_reportingでも問題はない
結局「Notice: Undefined offset」が出るようなプログラムに問題があるのは明らかだけど、 既存のプログラムを手直ししてられないならerror_reportingしかないんじゃない? Noticeが出る場所が少ないんなら手直しすべきだなぁ
開発以外でエラー表示してんの? てか定数で指定しろよ E_ERROR=1ってWARNINGまで抑制してるんじゃないの
Noticeエラーについてググると、確かに出ないようにプログラムを組むべきとあるのですが、
方法論というか考え方がわかっていなくて・・・
>>175 はエラーがでるのは明らかでわかるのですが、
たとえば条件分岐していて、値が入っている時と入っていない時がある場合に
issetで判定しようとするときにもでてたような記憶があるのですが、
そうした場合の初期化はあらかじめ全て0などの値をいれて初期化しておくべきなのでしょうか?
試してから言えよ
isset、is_null、array_key_exists辺りをよく読みなおした方が良い気がする
198 :
175 :2011/08/04(木) 15:05:45.99 ID:???
preg_replace ()の $pattern句は普通の正規表現は受付ないのか? バカヤロー
POSIXが通常だとでも思ってたんだろうか?w
PHPをWindowsでやるメリットってなんかあるかな。
>>203 ・Windows PCしか持っていない
・Linuxを知らない、覚える気が無い
こういう人でもPHPを利用できるということだろう
そもそもOSに依存しないのが理想的とも言える
逆にPHPをLinuxでやるメリットってあるのかな?
>>205 ・Linux PCしか持っていない
・Windowsを知らない、覚える気が無い
・複数台のPCに入れるWindowsの金がない > 俺
こういう人でもPHPを利用できるということだろう
ちょっとアレなんだがPCの仮想化ってのはみんなしないもんなの?
208 :
nobodyさん :2011/08/05(金) 01:52:58.08 ID:i/Iug6bT
WinXp、PHP5.2、Operaで echo preg_replace("/([も])/","$1あ","まみむめも"); とすると「?あ???あ???あ?あ??あ?あ??あ?あ?あ」と出ました。 「まみむめもあ」に置き換えるつもりですが、どうしてこうなるのでしょう? 簡単なことかもしれませんが調べても分かりません。
ここのみなさん優秀そうだけど、元々他の言語とかでプログラミングしてたの? phpを最初に勉強するとき参考にしたサイトとか あれば教えて下さい。公式マニュアルサイト以外で
>>209 「PHP 入門」でぐぐれ
プログラムが初めてならプログラムでぐぐれ
あとはPHPの絵本やCの絵本読め
>>210 ググッてきました、リファレンス本買わなくてもいいくらい
解説サイトありますね。自分がわかりやすいところ使います
PHPの絵本はわかるけど、何故にCの絵本まで
読む必要があるのでしょうか?
参考書は最低1冊は必要なのかな
うん、初心者ということで大目に見ていたけど、まずはスレタイと
>>1 を読もうな
>>211 「PHPマニュアル」という本家の解説本がネット上にあるぞ。
多くのスクリプト言語(perl,PHP,ruby,Python等)の書式や制御式はCをルーツとしているから言ってるのじゃないか。
しかし、英語のルーツがラテン語だからといって、ラテン語を知る必要はないわな。
>>211 超初歩の段階を最も丁寧に教えているのは、C関連の書籍に多い。
他の言語は、超初歩の段階は知ってて当然だろw ばーかw だったり、
酷いものになると、Cの基礎を知っている前提で書かれていたりする。
PHPからシェルスクリプトを実行したいのですが 想定通りの動作をしません。 PHPスクリプトindex.phpとシェルスクリプトtest.shは同じディレクトリ内 に配置しており、 index.phpには以下のように記述してあります。 <?php $cmd = "./test.sh"; $ret = shell_exec( escapeshellcmd($cmd) ); print $ret; ?> test.shには以下のように記述してあり、アクセス権限は711になっています。 #!/bin/bash echo "AAA" 上記がうまく行かなかったので C++で生成した以下のようなプログラムをindex.htmlと同じディレクトリに配置し、 test.shと同じ方法でPHPから実行したら、想定通りにBBBが出力されました。 #include <iostream> using namespace std; int main( ) { cout << "BBB" << endl; } 問題点はどこでしょうか? よろしくお願いいたします。 PHPのバージョンは 5.1.6 です。
216 :
215 :2011/08/05(金) 05:50:50.80 ID:???
>>215 肝心なことを書き忘れていました。
「index.phpからtest.shを実行しても、AAAが表示されない」
というのが現在の問題点です。
シェルスクリプトもC++も同じように標準出力に出力しているのに
違いが出てしまうので困惑しています。
217 :
nobodyさん :2011/08/05(金) 07:32:46.91 ID:bQIZhMIz
http://blogs.yahoo.co.jp/nonpipo/3382183.html ↑のように、設定して
DB側の構造はutf8_general_ciにしてるんですが、
phpファイルで呼んだときに
一部日本語の文字が化けてしまいます。
おおまかな原因がありそうだったら教えてもらえますか?
文字化けも
ほむらちゃ→ほ(読み込めない文字)?らち
みたく、一部が見れるんですよね... こういう文字化けの仕方は経験が
無かったので、質問させていただきました
>>217 原因絞り込む為にとりあえずhttp_outputをpassとかにしてみたらば?
220 :
nobodyさん :2011/08/05(金) 09:52:41.07 ID:bQIZhMIz
>>219 さんレスありがとう
モバイル対応にスクリプトを弄っていて
絵文字対策の部分でSJISコードがあったのを見落としていました。
解決です
????●
222 :
nobodyさん :2011/08/05(金) 18:02:05.75 ID:kOt9+/Uj
WindowsXP PHP5.3 SQLiteをPDOを使って操作しています。 コーディングミスで、 トランザクション中に無限ループしてしまいました。 それ以降select文以外のいかなる動作も受け付けなくなってしまったのですが、 どうしたらいいでしょうか? updateやinsertを行うとmax_execution_timeの60秒まで砂時計が回っています。
224 :
222 :2011/08/05(金) 18:57:24.85 ID:kOt9+/Uj
Apacheを再起動したら解放されました。 そしてもう1度実行してみたら正常に実行されました。 無限ループにはなっていなかったようです。 一体なんだったんでしょう・・・
225 :
222 :2011/08/05(金) 19:04:32.45 ID:kOt9+/Uj
すみません。原因はコード戻していったところわかりました。 PDOStatement::executeメソッドをexecとしてトランザクション中に実行してそんなメソッドないとFetal Errorが出てました。 どっちみちエラーでトランザクションを正常終了できなかったために起きた現象のようですが、 Apache再起動以外に何か解決方法はあるのでしょうか? 詳しい方教えてください。
なんか書き込めない
***.php?url=
g4z5s4m453w2p22636r4r2n4x5j4u5e5l5k4l414l4r5f4r5m274s5v5w2o5q
5i4d43466r5q3t4t483y224v3e484r47404q4d4h4f406
http://とあるサイトのドメイン.com/ から始まるURLなんですけど
何形式の暗号かわかりますか?
今までbase64だったんですが変えたみたいで・・
228 :
nobodyさん :2011/08/05(金) 19:16:32.52 ID:hKMJhK9s
ID忘れました すみません。。
230 :
222 :2011/08/05(金) 20:24:33.75 ID:kOt9+/Uj
>>229 try {
$db = new PDO('sqlite:test.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
$stmt = $db->prepare('insert into hoge (foo, bar) values (?, ?)');
$stmt->exec(array('aaa', 'bbb'));
$db->commit();
} catch (PDOException $e) {
$db->rollBack();
}
$stmt->execute();と書くべきところを、
$stmt->exec();という存在しないメソッドを呼び出すことにより、fetal errorが出ます。
ちなみにsetAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
を指定してるにもかかわらず例外ブロックには行きませんでした。
これによりロールバックが出来ないため正常な終了ができないということだと思います。
>>225 try catchしなよ。
DB操作に失敗したときの処理を入れとかないと、アクセス過多な時サーバー道連れになっちゃうよ!
してるじゃん
233 :
222 :2011/08/05(金) 20:44:04.36 ID:kOt9+/Uj
すみません。 stmt(文)にも設定しないとだめなんですね。 $stmt->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); としたところ$stmtでの例外も投げてくれるようになりました。 冗長な気がしますが、これからは文にも指定したいと思います。
234 :
222 :2011/08/05(金) 20:51:54.40 ID:kOt9+/Uj
すみません。ウソつきました。 $stmt->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); この文がだめで例外が出ていました。 ほんとすみません。 やっぱコーディングミスがないように気をつけなければならないようですね。 SQLiteのデッドロック情報少なくてどうしたらいいのか・・・
確かに初歩の本はCが・・というか、基本情報とか大学の授業とかで最初の言語のお勉強はたぶんCなんだろな。 俺はBasicだったけどな! 86C試食版?とか言うのはやったことがある。 つか、Cが一番概念がわかりやすいというか、とりあえず何にもわからなくても何とか動いちゃうPHPよりは 後々のことを考えたらよいんじゃないかなあと。
↓こんな感じでinclude_pathをプログラム中で追加しようとしているんですができません。 $include_path = ini_get('include_path'); $include_path .= PATH_SEPARATOR . realpath('../lib'); echo $include_path; echo '<hr>'; ini_set($include_path); echo ini_get('include_path'); ちなみに環境はPHP5.3.6のPHP-FPMです。 動的に追加しようとしているのは、php.iniで変更しても反映されないからです。 PHP-FPMに何か設定がありますか?
あ、すいません。 ソースを間違えてました。 ini_set('include_path',$include_path);
しかもID出してなかったっす。すいません。
>>236 realpathを使わずにフルパスを自分で書いてみる
それで思い通りに動いたならrealpathのマニュアルを熟読
オブジェクト指向で書けないPGはゴミですか? 何でもincludeしてるんですが
ID出さない質問者はクズだけど?
顔を真っ赤にしての即レスお疲れ様です
243 :
240 :2011/08/05(金) 22:37:14.39 ID:???
自己解決したのでもういいです
244 :
241 :2011/08/05(金) 22:38:43.86 ID:???
ごめんなさい、俺が悪かったです
245 :
242 :2011/08/05(金) 22:40:16.29 ID:???
はぁ?くそが氏ねよ
includeとオブジェクト指向が関係あると思ってるバカはGを名乗る資格のないゴミ野郎なのは確かですね
はあ?フレームワーク使ったことないだろお前
オブジェクト指向しかないと思ってる点もクズとしてふさわしい点だね
PHPでオブジェクト指向笑(
Javaのimportを否定するようなもんだな
テンプレート言語なのにSmarty使ってるバカみたいなもんだな
MVCモデルとか恥ずかしいよな
230をくだらん話で流すなよ
テンプレート言語じゃねぇしw
255 :
nobodyさん :2011/08/05(金) 22:59:19.86 ID:+OkG+2Fo
画像のアップロードの処理を作ってるんですがうまくいきません move_uploaded_file($_FILES['eventPic1']['tmp_name'], $eventPic_keep1); に対して failed to open stream: No such file or directory といわれるわけですが、 var_dump($_FILES['eventPic1']);すると以下のようになり、tmp_nameはあるのではと思います array(5) { ["name"]=> string(12) "kangaroo.jpg" ["type"]=> string(10) "image/jpeg" ["tmp_name"]=> string(14) "/tmp/phpplztTz" ["error"]=> int(0) ["size"]=> int(65553) } でも、実際にサーバで ls -la /tmpをすると以下のようなファイルは見つかります。 -rw------- 1 apache apache 11312 8月 5 22:48 sess_c9qn85ga588h2s0la6u04vl2d0 ※処理の時間のタイムスタンプをもつファイルはこれだけです どういうことなんでしょうか? 本来なら ls -la /tmp で /tmp/phpplztTzが見つからないといけないんですよね?
PHPはプログラム言語ではなく、HTMLテンプレート言語である。 そしてそのテンプレート言語に思いつく限りの魅力的な機能を盛りに盛った言語であるということ。 これはPHPの出自を思い返せば納得のいく話。 にもかかわらず、PHPは5になってオブジェクト指向のための構文まで備えちゃったそうですね。 そして、もはやPHPはプログラム言語らしさを持ってしまった。 他の言語でできることの多くもPHPでできちゃうようになっちゃいました。 結構なことです。僕もたまに電子レンジで洗濯もできればいいのになんて考えることがあります。 ついでにこたつ代わりにもなってくれればそれに越したことはない。 でもきっと電子レンジで洗濯ができないのには理由があると思います。僕は高校で物理学が得意 じゃなかったのでよくわからないですが、きっと水道をつなぐ穴がないからとか、そういう理由だと 思います。 それでもいろんな機能を盛り込んだ電子レンジ、じゃなくてPHPは、ここにきて本来の目的を見失 っている気がします。それもPHP自身さえも自分が何者であるかわからなくなるほどに。
>>230 例外やFATALエラーも関係ない
PDOオブジェクトが破棄される時点で
sqlite3_close()が呼び出されるのでデッドロックになりようがないと思うんだけどな
http://www.sqlite.org/c3ref/close.html > If sqlite3_close() is invoked while a transaction is open, the transaction is automatically rolled back.
今度デッドロックが発生したら *.sqlite-journal ファイルが残ってないか、
残っていたらどのプロセスが開いているか確認してみたら?
>>255 $eventPic_keep1 のディレクトリは存在する?ファイルは書き込める?
259 :
255 :2011/08/06(土) 00:45:35.45 ID:???
>>258 アドバイスありがとうございます
ウッカリしてました、パーミッションが書き込み禁止になってました
ファイルでなくてディレクトリ側の問題とは… 以後注意します。ありがとうございました
260 :
227 :2011/08/06(土) 02:42:32.61 ID:???
誰か分かりませんか? phpで使える可逆暗号だと思えんですが
スレタイが読めませんか?
↑の書込みを見て欲しい。 なんとつまらない書込みだろうか。 義務教育を終えていない小学生であったとしても 多少のヒネリを加えて書き込む事は容易いはずである。 しかしこの書込み内容からはその形跡は微塵も感じられない。 彼の脳に重大な障害が発生している事は誰の目にも明らかだろう。 恐らく彼は経済的な事情で十分な治療を受ける事が困難な状況に陥っているに違いない。 この一見無意味としか思えない彼の書込みは、 現在の医療システムの見直しを訴えたメッセージなのではなかろうか。
>260 いままでbase64でデコードした事もあるんなら、その暗号の元が何だったかわかるんでね? 暗号について少しでも学んだ事があるんなら分かるはずだが、元と暗号化された後のサンプルが無い事には特定できない。
264 :
222 :2011/08/06(土) 10:02:22.66 ID:JkSTeXHr
>>258 返信ありがとうございます。
再現してやってみたところやはりデッドロックっぽいことになっています。
デッドロックではないのかもしれませんが、select以外のクエリは受け付けません。
>>230 でfatal errorを出した直後では*.sqlite-journalは存在しませんが、
同じデータベースで問題のないスクリプトからinsertやupdateをしようとすると、
*.sqlite-journalが作成され、max_execution_timeになったところで削除されます。
削除されたところで、insertやupdateを再び行うと同様の現象になります。
タイムアウトまで次の操作を受け付けず、次の操作を受け付けたところで、
タイムアウトまで何もしないためデッドロックっぽいことになっています。
Apacheを再起動したところで、ようやくinsertやupdateを受け付けてくれます。
265 :
255 :2011/08/06(土) 14:46:21.36 ID:Oz13PhNe
すみません、255なんですが、画像のアップローダを作っててまた問題が発生しました
処理はありきたりで、 アップロードフォーム>確認画面>登録・完了画面 という流れなんですが
確認画面でプレビューするとき元の画像が90度回転して表示されてしまいます
正確に流れを書くと
・確認画面で、画像がアップされたらtempディレクトリから保存用ディレクトリに移動(
>>255 で書いた処理:move_uploaded_file)
・その後、保存用ディレクトリに移動したファイルを引数にして 出力用.phpで出力
<img src="imgoutput.php?file=*********.jpg" />という形
・出力用.phpは以下
<?php
$file= $_GET['file'];
header("Content-type: image/jpeg");
readfile($file);
?>
これをやったところ、元は縦長だった画像が横回転して横長画像として表示されてしまいます
何が原因でしょうか? 何度も質問してすみません
266 :
255 :2011/08/06(土) 14:51:45.80 ID:Oz13PhNe
>>267 確認画面でプレビューするとき元の画像が90度回転して表示されてしまいます
元は縦長だった画像が横回転して横長画像として表示されてしまいます
何が原因でしょうか? 何度も質問してすみません
>>264 *.sqlite-journal が削除されるのなら
リクエスト終了時にトランザクションも終了している訳だ
その問題のないスクリプトとやらも晒して貰えないだろうか
できれば再現する最小のコードで
270 :
222 :2011/08/06(土) 19:23:37.84 ID:DEQATyEe
>>269 返信ありがとうございます。
そしてすみませんでした。
>>230 は簡素化しすぎでした。
>>230 の例だと問題ないことを確認しています。
実際のスクリプトは以下のようになっています。
1.まずDBを作ります a.php
<?php
$db = new PDO('sqlite:test.db');
$db->query('create table if not exists hoge (id integer not null primary key, foo text not null)');
?>
2.とりあえず中身を入れます b.php
<?php
$db = new PDO('sqlite:test.db');
for ($i = 0; $i < 100; $i++) {
$db->query('insert into hoge (foo) values ("aaa")');
}
?>
続く
271 :
222 :2011/08/06(土) 19:30:52.48 ID:DEQATyEe
3.fooカラムの前後に/を入れたものに更新するスクリプトでわざとエラーを起こさせます c.php <?php try { $db = new PDO('sqlite:test.db'); $db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $length = $db->query('select count(*) from hoge')->fetch(); //登録されてる件数を取得します $offset = 0; $db->beginTransaction(); //トランザクション開始 while ($length[0] > $offset) { $sql = 'select id, foo from hoge limit 10 offset ' . $offset; //メモリを考慮して10件ずつ更新します $stmt = $db->prepare('update hoge set foo = ? where id = ?'); foreach ($db->query($sql) as $row) { $stmt->exec(array('/'.$row['foo'].'/', $row['id'])); //ここでわざとエラーしてます executeなら問題なく更新できます } $stmt = null; $offset += 10; } $db->commit(); } catch (PDOException $e) { try { $db->rollBack(); } catch (PDOException $e) { } } ?> 4.2のb.phpを実行するとデッドロックっぽいことになってるのが確認できます。 こんな感じになります。最後のコードが長くなりすみません。
274 :
222 :2011/08/06(土) 19:59:42.67 ID:DEQATyEe
>>273 primary keyのことですか?
>>270 の一番最初のスクリプトを見てもらえばわかりますが、
create table if not exists hoge (
id integer not null primary key,
foo text not null
)
としてるので重複はしてないです。
他のことを言ってるのならすみません。
276 :
222 :2011/08/06(土) 20:00:56.10 ID:???
>>273 あ、すみません。意味がわかりました。
SQLiteではinteger型で主キーカラムはオートインクリメントになります。
277 :
222 :2011/08/06(土) 20:35:12.85 ID:DEQATyEe
>>271 はややこしいので、さらに簡素化させて再現できました。
hello()は存在しない関数です。
try {
$db = new PDO('sqlite:test.db');
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
$db->beginTransaction();
foreach ($db->query('select * from hoge') as $row) {
hello();
}
$db->commit();
} catch (PDOException $e) {
try {
$db->rollBack();
} catch (PDOException $e) {
}
}
どうやら、foreachで取るところの中でエラーが起きるとまずいようです。
PDO::queryの例として紹介されてるやり方なんですが、なぜこんなことに・・・
http://www.php.net/manual/ja/pdo.query.php
sqliteなんか使うな
>>268 アップする画像を直接ブラウザで表示してみ
280 :
269 :2011/08/06(土) 21:29:46.39 ID:???
>>277 確かに PDOStatement を foreach でイテレートした時だけロックが開放されてないな
https://bugs.php.net/report.php から報告した方がいい
$con = new PDO('sqlite:test.db');
if (!$con->query("SELECT 1 FROM sqlite_master WHERE type='table' AND name='t'")->fetch()) {
$con->query('CREATE TABLE t (c INT)');
}
$con->query('INSERT INTO t VALUES (1)');
foreach ($con->query('SELECT * FROM t LIMIT 1') as $row) {
trigger_error('abort', E_USER_ERROR); # test.db not unlocking
}
バフフィックスされるまでの回避策は
foreach($result as $row) {
を止めて
foreach ($result->fetchAll() as $row) {
または
while ($row = $result->fetch()) {
スタイルを利用するぐらいか
281 :
222 :2011/08/06(土) 21:35:53.60 ID:DEQATyEe
>>280 ありがとうございます。
PHPのバグなんですかね?
英語苦手ですが頑張って報告してみます。
回避策も載せていただきありがとうございます。
早速適用したいと思います。
存在しない関数は catch (PDOException $e) { } でキャッチできますか?
283 :
215 :2011/08/06(土) 22:15:48.14 ID:1n84Kf7N
すみません215です。ID出し忘れていました。 よろしくお願いいたします。 PHPからシェルスクリプトを実行したいのですが 想定通りの動作をしません。 PHPスクリプトindex.phpとシェルスクリプトtest.shは同じディレクトリ内 に配置しており、index.phpには以下のように記述してあります。 <?php $cmd = "./test.sh"; $ret = shell_exec( escapeshellcmd($cmd) ); print $ret; ?> test.shには以下のように記述してあり、アクセス権限は711になっています。 #!/bin/bash echo "AAA" 上記で、PHPでAAAと出力して欲しいのですが、出力されません。 検証のため、C++で生成した以下のようなプログラムをindex.phpと同じディレクトリに配置し、 test.shと同じ方法でPHPから実行したら、想定通りにBBBが出力されました。 #include <iostream> using namespace std; int main( ) { cout << "BBB" << endl; } 問題点はどこでしょうか? PHPのバージョンは 5.1.6 です。
>>283 test.shを直接実行した結果は?
アクセス権限を777にした場合は?
285 :
nobodyさん :2011/08/06(土) 23:10:44.53 ID:saM8zRUn
簡易rssリーダーみたいなのつくりたくてsimplexmlでブログのrssとか取得したいんだけどさ 複数サイトの記事を更新順にソートしたかったからitemを全部配列にしてから表示するようにしたんだよ で、個別記事の横に取得元サイトも表示しようと思ったんだけど item以下から元サイトの名前とかトップページのURLとか持ってこれるところがないんだよ 考えられたのは個別記事URLのドメインから判別して表示とかしかなかったんだけど無駄に長くなりそうだし なんかいい方法ないかな? 初心者過ぎてわからん
>>285 あるわけないだろ。
必要なのに長くなるのは無駄とは言わない。
そのままがんばれ。
288 :
nobodyさん :2011/08/06(土) 23:24:47.79 ID:saM8zRUn
289 :
nobodyさん :2011/08/06(土) 23:25:20.21 ID:saM8zRUn
290 :
nobodyさん :2011/08/07(日) 04:02:21.87 ID:cdDi892z
やはりオブジェクト指向で書いてないコードを見ると心の中で馬鹿にしますか?
それは馬鹿にしないけどお前のような考えを持ってる奴は馬鹿にするな
でも、馬鹿にしなくても暗黙の了解で オブジェクト指向>>>>>>越えられない壁>>>>>>>猿>>>手続き型 ですよね?
夏休みだな。 オブジェクト指向カッコイイとか思っていいのは中二までですよ。
⊂二二二( ^ω^)二⊃ブーン
for($priority=1;$priority>=5;$priority++){ $this->m_instance[$priority] = array(); } var_dump(array_keys($this->m_instance)); array(0) { } これって凄く寂しい!
ここはぼくの犯したポカミスを報告するスレではありません
$this->m_instance[$priority][] = "data";を考えるとそうでもないと思うんだが
array(0) { }これ何?
>>299 俺が悪かった、忘れてくれ
あれを見てそこに突っ込まれたら何も言う気がしなくなった
301 :
nobodyさん :2011/08/07(日) 09:35:42.91 ID:FuUx9FA/
a.phpでクッキーを $limit = time() * 60 * 60 * 24; setcookie("hoge","hoge",$limit); で普通に発行するとa.phpでは確認できるのですが 同じ階層や下の階層のb.phpやc.phpでは取得できません 同一サーバー内で上の階層でもない限り有効パスやドメインを指定しなくていいと思うのですが、なんででしょう
>>301 > $limit = time() * 60 * 60 * 24;
これ何?
時間じゃね? スゲー桁になってるけどw
304 :
nobodyさん :2011/08/07(日) 10:39:31.59 ID:FuUx9FA/
西暦350万年か 2000年問題が小さい事よ
答えは42だな
>>306 まさかphpスレで銀河ヒッチハイクガイドネタ出てくる奴を見れるとは
>>311 俺はクソとしか言ってないのに、うんこだなんて、ひどすぎ。
しかも最高のうんこ。
>>312 最高の褒め言葉だと思うんだが
もしかして最低のうんこの方がよかったのか?
>>313 最低のクソの方がいいです。うんこはなんだか生っぽいので。
う○ことかち○こで喜ぶのは小学生までってじっちゃがいってた
そのじっちゃは嘘つきだな
大人はま○こで喜ぶってばっちゃがいってた
そのばっちゃは正直だな
子供の戯れ言に耳を貸すなってかあちゃがいってた
そのかあちゃは賢明だな
子供はま○こなんて知らないってねえちゃがいってた
精神年齢的な意味だろ>子供
おま、空気読めよ・・・
子供のおま○こなんて興味ないってにいちゃがいってた
キモイ
こういう流れは下らん
これだからコミュ障は・・・
ホントはキモくないくせに
XYZ 明日の夜7時新宿公園で待つ KN
332 :
nobodyさん :2011/08/08(月) 03:11:13.54 ID:z33upbGp
phpが自由自在に扱える漢になったらニートのオレでも 就職できますか?
無理
>>332 そういう輩は仕事の需要があるから自分で社長でやればいい。
335 :
nobodyさん :2011/08/08(月) 06:27:40.45 ID:z33upbGp
>>334 毎日C言語、C++、Javascript、PHPのプログラムの
本を読んでプログラム作りまくって勉強しています。
なんせニートなんで時間はたっぷりあります。
今、23歳なんで30までには起業してみます。
だいたいどのプログラムも同じような感じですが、
htmlとネットワークの知識のいるphpに苦戦してます。
とりあえずブログサービスやSNSサービスをやってみたいです。
337 :
nobodyさん :2011/08/08(月) 07:22:55.16 ID:z33upbGp
>>336 日本の20代の若者ですら、パソコンにデジカメの写真を取り込めない人から
ゲーム作って売ってる人まで幅広い層がいます。しかし、初心者ともいえず、
上級者ともいえない中間層がネット上には居場所がないような気がします。
プログラムの解説サイトでも超初心者向けと理解不能な上級者向けの
両極端で中間層がない気がします。なのでそのプログラムなどの勉強してる
中間層を日本全国から集めたようなコミュニティーを作りたいです。
アメブロやmixiよりも匿名性を重視して情報の真偽を明確にする
コミュニティーを作ろうと予定してます。
友達同士で馴れ合いをするようなコミュニティーでなく主に情報の交換
が目的ですかね。
>>337 SEになりたいのかコミュニティ主催者になりたいのかどっちなんだ?
>>336 は前者の意味で聞いたんだが。
339 :
nobodyさん :2011/08/08(月) 07:58:35.86 ID:z33upbGp
>>338 SEかな、コミュニティー主催者とかは全部大学生バイトとかに試験的
にやらせてみようかなと思ってます。
通常業務のニーズをこなすテクと地図との連携など独自のテクの2本立てで行くのがイイ
342 :
nobodyさん :2011/08/08(月) 14:20:21.46 ID:ZpEfNsVt
print_r(glob('[example].txt')); glob 関数において、角括弧が含まれるファイルが返りません 角括弧が含まれるファイル名に一致させるにはどうすれば良いでしょうか
>>342 やった事無いけどエスケープすりゃなんとかなるんでないの
344 :
nobodyさん :2011/08/08(月) 14:34:23.42 ID:4ZN6sWYK
数百行のコードがあるとします その処理の先頭から末尾まででいろんなPHP関数が使われてて、 どこかでエラーが発生したとき(falseが返って、以降のコードの実行が不可能になったとき)に そのエラーを捕まえたいと思います 地道にやれば関数の返り値をいっこいっこチェックしていくべきなんでしょうが そうではない方法で効率的にエラーを捕まえる方法はないでしょうか? apacheのエラーログをチェックする以外の方法で、よろしくお願いします
>>344 エスパーレスするとset_error_handler
346 :
342 :2011/08/08(月) 14:51:54.71 ID:ZpEfNsVt
>>343 ありがとうございます
以下のようにエスケープしてみましたが、一致しません
print_r(glob('\\[example.txt\\]'));
>>346 print_r(glob('\[example.txt\]'));
>>346 お前何やってんだよ
[example].txt がなんで [example.txt] になるんだよ
うるさい ママのおっぱいでもしゃぶってろ
350 :
342 :2011/08/08(月) 15:52:29.26 ID:ZpEfNsVt
>>347 それは
>>346 と同じではないでしょうか
>>348 申し訳御座いません。間違えました
結果は同様に、[example].txt が返りません
print_r(glob('\\[example\\].txt'));
何を?
>>354 文字列リテラルとワイルドカードの話がごっちゃになってね?
ちょっと試したけど print_r(glob('[example].txt')); print_r(glob('\[example\].txt')); print_r(glob('\\[example\\].txt')); 結果 Array ( ) Array ( [0] => [example].txt ) Array ( [0] => [example].txt )
' で囲んでエスケープされるの? echo 'これで改行される??\n';
globに渡してるんだよ。 globそのものは[]や{}はメタ文字の一種だろ
359 :
342 :2011/08/08(月) 17:30:03.81 ID:ZpEfNsVt
>>356 こちらのファイルシステムの方に問題があるようですね
角括弧の部分は ? で代用することにします
有り難う御座いました
360 :
344 :2011/08/08(月) 18:53:58.47 ID:4ZN6sWYK
>>345 ありがとうございます、そういう機能があるのかと調べてみました。
が、公式のPHPマニュアルの例を見たら、結局該当箇所にtrigger_error()でエラーハンドラ呼び出してますよね
http://www.php.net/manual/ja/function.set-error-handler.php これだと結局
>>344 で書いた「エラーが起こりそうな処理の返り値をチェックする」のと
労力的に変わらないですね(自分の理解が間違ってるのかもですが)
コードの任意の範囲内で起きたエラーを自動的に捕まえて、任意の処理を実行するみたいなのは
無理でしょうか?
try{}catch(){}も見たんですが、結局これも処理の途中でこまごまと
チェックしてthrow new Exception(); しなきゃいけないし。
SQLのトランザクションの場合は、try{.....}catch() の間でクエリエラーが発生したら
自動でロールバック処理してくれますが、これはDBがそこまで機能を実装してくれてるからってことかな…
361 :
nobodyさん :2011/08/08(月) 19:00:20.03 ID:3C9WKAJH
PHP + MySQLのページングについて質問です。 現在このようにしていますが、$tcnt(総件数)をユーザーが変更できるようにするには どこをどう変えたら良いでしょうか? $PAGESIZE = 10; #1ページに表示する件数 $page = $_GET["page"]; # 現在のページ $tcnt = $_GET["tcnt"]; # 総件数 if (!isset($page)) { $sql = "select count(*) as cnt from ○○"; $rst = mysql_query($sql, $con); $col = mysql_fetch_array($rst); mysql_free_result($rst); $tcnt = $col["cnt"]; $page = 1; } $totalpage = ceil($tcnt / $PAGESIZE); #総ページ数 $sql = "select * from ○○ limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE";
>>360 trigger_errorで任意にエラー起こしてるだけだよ
>>361 総件数をユーザが変更するってどういうこと?
1ページに表示する件数じゃないかな limit
それは1行目に書いてある
画面表示件数を選択できるようにする。 10,20,100から選べる。
それは1行目に書いてある
これは難題だ・・・ countでレコード総数をとってきているのにそれを変更したいとは、 ユーザーは自分でレコードを追加したいって事なのかな? 夏休みだから助けてあげたいけど意味わかんねー
369 :
nobodyさん :2011/08/08(月) 19:55:17.88 ID:3C9WKAJH
>>364 >>366 違います
>>363 たとえば100件のデータがDBに格納されていて
その中の10件だけを取り出したいユーザーもいれば
その中の50件だけを取り出したいユーザーもいるので
そこをユーザーが自由に変えられるようにしたい
>>369 その10件や50件というのはトップページの場合はデータベースの先頭からの件数?
それだと普通にLIMITを使う。
LIMITというのは例えば「LIMIT 0,10」だとレコード0番目から10件のデータを読み出す
50件なら「LIMIT 0,50」になります。
読み出したいデータを検索や指定するならWHEREを使う。
総件数っていったらだいたい取り出したいデータの全データ数だろ。 言いたいのは表示件数って事なのかな。
組み込み関数の戻り値でfalseが返るのは別にエラーじゃないし、 中の人が例外やエラーを投げん限り捕捉できんだろ
373 :
nobodyさん :2011/08/08(月) 20:13:57.43 ID:3C9WKAJH
>>370 $PAGESIZE(1ページに表示する件数)は固定したいです。
>>371 表示する総件数ですね。すみません。
「格納されてる総件数」ではなく「ユーザーが表示したい総件数」です。
>>373 $page = $_GET["page"];
$PAGESIZE = $_GET["size"];
if ($page == 1){
$PAGESIZE = 10;
}
目的を果たすだけならこれで済むけど$__GETの内容や
SQLへのクエリーの渡し方がかなり危ないので、
そのあたりも検索して勉強する事をおすすめします。
375 :
nobodyさん :2011/08/08(月) 20:46:55.27 ID:3C9WKAJH
>>374 ありがとうございます。
えーと、sizeって何ですか?それと
$sql = "select * from ○○ limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE"; この部分はこのままでいいんですか?
SQLへのクエリーの渡し方、了解です。
まずSQLのLIMITについて理解してんの? 理解してないならそれを理解するべき
377 :
nobodyさん :2011/08/08(月) 21:03:39.04 ID:3C9WKAJH
>>376 してます。ちょっと上のレスにも書いてあります。
それは1行目に書いてある
>>377 $tcnt(総件数)をユーザーが変更できるようにしたいってことだけど、
$tcnt = $_GET["tcnt"]; # 総件数
だからそもそもユーザーが変更できるようになってんじゃないの?
こういうことか? tcnt設定する意味が微塵にもわからんけど $PAGESIZE = 10; #1ページに表示する件数 $tcnt = $_GET["tcnt"]; # 総件数 $sql = "select count(*) as cnt from ○○"; $rst = mysql_query($sql, $con); $col = mysql_fetch_array($rst); if ($col["cnt"] < $tcnt) { $tcnt = $col["cnt"]; } mysql_free_result($rst); $totalpage = ceil($tcnt / $PAGESIZE); #総ページ数 $page = $_GET["page"]; # 現在のページ if (!isset($page)) { $page = 1; } else if ($page > $totalpage) { $page = $totalpage; } $sql = "select * from ○○ limit " . $PAGESIZE * ($page - 1) . ", $PAGESIZE";
381 :
nobodyさん :2011/08/08(月) 21:36:42.32 ID:3C9WKAJH
>>379 >>380 いえ、なってないです。
例えば
PAGESIZE = 2;
tcnt = 1;
とした固定した場合
limit 0,2 つまり0から2件表示することになります。
tcnt = 3とした場合2ページ目でLIMIT 2, 2となり
表示したい総件数が3件にもかかわらず4件目が表示されてしまいます。
余数引くなりなんなり好きにしろよ
>>381 $totalpage = ceil($tcnt / $PAGESIZE); #総ページ数
$totalpageってどこで使われてんだよ。
説明不足だし何がしたいのかよくわからん。
情報を小出しにしないで整理してから質問しろ。
$offset = $PAGESIZE * ($page - 1); if ($offset < 0) { $offset = 0; } $limit = $PAGESIZE; if ($offset + $PAGESIZE > $tcnt) { $limit = $tcnt % $PAGESIZE; }
386 :
nobodyさん :2011/08/08(月) 23:31:58.51 ID:3C9WKAJH
>>385 あ、ありがとうございます!
おかげさまでできました。
日本語はさっぱりだけどソースは読めるだろボケ
>>386 他に回答してくれた人にもお礼言おう、な
>>389 あなたの回答は全くの役に立たなかったのでお礼するのが勿体無いです、残念ながら。
くだらねぇこと言ってるんじゃねぇよ。 ID無いのに誰が誰だかわからんだろうが。
392 :
nobodyさん :2011/08/09(火) 01:34:50.20 ID:1MO2qAMJ
みなさんに質問なのですが、insertでwhere指定をする時にphp側で定義した変数$sampleの値を持つidをselectするというコードを書きたいのですが、 $result = mysql_query('SELECT id,name FROM sample where id = $sample'); とするとエラーが出てしまいます。どのようにすればよいのでしょうか? 文法的に間違っているのでしょうか?お願いします
>>392 '(シングルクオーテーション)なので$sampleが展開されない。
"(ダブルクオーテーション)で囲むか、下記のように変える
$result = mysql_query('SELECT id,name FROM sample where id = '.$sample);
つーかMYSQLスレで答えてやったけどな
マルチだったのか
397 :
nobodyさん :2011/08/09(火) 10:49:11.51 ID:fWpfSW6p
【OS名】TurboLinux 【PHPのバージョン】4.3 【連携ソフトウェア】 【質問内容】 スレ違いでしたら、誘導いただけると助かります。 POSTで送信する際の、最大バイト数はどれくらいなのでしょうか? 検索してみたのですが、明確な答えが得られませんでした。 やりたいことは、テキストエリアをいくつか設置して送信です。 文字数の上限がどれくらいか、知りたいのです。 全角文字で1万文字くらいはありそうなのですが、可能なので しょうか。 どなたかアドバイスお願いします。
398 :
nobodyさん :2011/08/09(火) 11:53:34.73 ID:1MO2qAMJ
>>393 >>394 ありがとうございます。そのようにしたら解決しました!ありがとうございます。
mysqlスレで質問したところphpで聞けといわれこっちで質問したのですが、向こうでも答えていただき結果マルチのようになってしまいました。すいません。
>>398 そういう場合はどこそこから誘導された〜って言っとけば良いよ
結構みんな同じとこ見てんだなw
俺はここしか見てないよ
403 :
397 :2011/08/09(火) 18:07:10.89 ID:fWpfSW6p
>>401 ありがとうございます。
デフォルトで8Mということは、
全角1万文字=20Kbyte程度ということで、他の環境変数とか
あったとしても全然大丈夫ということですね。
ありがとうございました。
具体例を出せなくて申し訳ないのですが 一つ質問させて下さい。 【OS名】Windows 7 【PHPのバージョン】5.3.1 例えば「test.php」から「test2.php」に遷移する時 ある値をスーパーグローバル変数に乗せて「test2.php」に渡したとします。 この時に起こっている現象は 「test.php」を立ち上げる(「test.php」のスクリプトが動いている) ↓ 「test2.php」に遷移する(「test2.php」のスクリプトが動いている) となりますが、この時、「test2.php」からブラウザの「戻る」で「test.php」に戻り 次いでブラウザの「進む」で「test2.php」に進んだ場合 phpのスクリプトは動いている、と言えるのでしょうか? 私なりに調べてみた限り、単にブラウザのキャッシュを読みに言っているだけのようなのですが そのキャッシュに格納されているデータはヘッダー情報を含んだもろもろのデータらしく それが結果として、コーディングした主の想定と画面出力結果との差異を産んでしまっているようなのです。 現在、擬似的なカートシステムを作成中なのですが どうやらphpのみならず、もっと根本的な理解が足りないのではないのか?と思い 質問させてもらいました。
>>404 戻るってのはそういうもんで、みんな苦労してる。
407 :
nobodyさん :2011/08/09(火) 21:50:59.45 ID:ebfQniZc
simplexml_load_fileでrssを読み込むとエラーが出るサイトがあります parser error : Start tag expected, '<' not found これ fc2ブログで出るようです。ライブドアやアメーバブログでは出ません しばらくするときちんと読み込みますが、ファイルを更新するとまたエラーが出ます 不足してるタグなども見あたりません。 これは何なのでしょうか
>>407 広告の自動挿入でもしてるんじゃないの?
409 :
nobodyさん :2011/08/09(火) 21:56:33.66 ID:ebfQniZc
>>408 どういうことかちょっとよく分かりませんがどうやったら解決しますかね?
とりあえず普通に取得して何が着てるのか確認
412 :
nobodyさん :2011/08/09(火) 22:02:07.77 ID:ebfQniZc
普通に取得って既存のrssリーダーとかでですか? 見たところ普通に個別記事しかありません
プレーンテキストで見る
414 :
nobodyさん :2011/08/09(火) 22:05:21.66 ID:ebfQniZc
あと書き忘れてましたが例の
Warning: simplexml_load_file() [function.simplexml-load-file]:
http://apochirinco.blog103.fc2.com/?xml:1: parser error : Start tag expected, '<' not found
の下にも
Warning: simplexml_load_file() [function.simplexml-load-file]: ?
Warning: simplexml_load_file() [function.simplexml-load-file]: ^
があります
415 :
nobodyさん :2011/08/09(火) 22:12:17.49 ID:ebfQniZc
>>413 プレーンテキストでも見ましたがいまいちどこに注目すればいいのか分かりません
何を見ればいいのでしょうか
見た感じエラーの出ないサイトとの違いが分かりません
RSSだと結構あちこちでその手のエラーがでるからエラーが出る前提で対応した方が 良いと思います。
417 :
nobodyさん :2011/08/09(火) 22:19:32.66 ID:ebfQniZc
418 :
nobodyさん :2011/08/11(木) 14:01:10.80 ID:ODzT8gp8
<input type="checkbox">でvalue属性を省略したときはどんな値が送信されるんでしょうか?
onが来るかとおもいきやauでは
421 :
nobodyさん :2011/08/11(木) 16:35:43.47 ID:yxU6Xdto
mcrypt_decryptで使うIVを好きな文字数にする事はできないのでしょうか?
422 :
421 :2011/08/11(木) 16:48:02.02 ID:???
あ、埋めればいいのか
423 :
nobodyさん :2011/08/11(木) 18:05:55.11 ID:MB61yGVG
とあるサイトのPHP自動リンク集で 以下のようなphpタグの次の行に$gfg = true; を記述すると静的URLで表示できるというのですが <?php $gfg = true; $gch='utf8'; $gkey='userid-xxxxxx'; include('search.inc'); ?> 上記は間違っているでしょうか? 静的URL表示にはならなかったので。
425 :
nobodyさん :2011/08/11(木) 21:29:34.47 ID:MB61yGVG
>424 ありがとうございます。 管理者に問い合わせても返答がないのでここで訊いてみました。 <?php $gch='utf8'; $gkey='userid-xxxxxx'; include('search.inc'); ?> <?php $gfg = true;?> としても無理でした。
>>425 そのコードはsearch.phpとindex.phpの最初の部分なの?
どこかのサイトで配布されてるスクリプトなら配布元で聞け
>>427 > 管理者に問い合わせても返答がないのでここで訊いてみました。
>>428 >駄目ならソース貼るか管理者に問い合わせるしかねー
>>429 > 管理者に問い合わせても返答がないのでここで訊いてみました。
>>430 > どこかのサイトで配布されてるスクリプトなら配布元で聞け
phpで転送するときにpostの値をつけて転送したいときなにを使えば簡単ですか いろいろさがしたんですが結局出来なかったりで サーバーはロリポとさくらです
転送ってなんだよ
>433 header("location:URL"); とかのやつです
GETじゃないと送れねえわ
curlでpost送信出来んじゃねーの
post送信と転送は別だろ
素人が質問してるんだから細かいことにこだわんなよ 要するにPHPでpost送信したいって質問だろ
441 :
432 :2011/08/12(金) 20:13:24.84 ID:CLRlFtSn
POSTしながら転送したいって事だろ?
$_POST['キー'] = '値';
file_get_contents('
http://www/ ', $_POST);
これでおk
444 :
432 :2011/08/12(金) 20:34:21.64 ID:5glGU4ZH
>>442 そういうことです
検索上位はできないばかりでさらに検索していくとfile_get_contentsがでてくるんですが移動したいんです
445 :
432 :2011/08/12(金) 20:38:21.43 ID:MSI8KsLa
>>443 postデータを保持しながら移動したいんです
formタグのpost送信みたいなのをformタグ使わずにしたいんです
無理だっちゅうの HTTPの仕組み的に
>>445 転送は無理
他人のページのformを自分のサイトに設置してるってことか?
448 :
432 :2011/08/12(金) 21:07:07.62 ID:MSI8KsLa
>>447 formでもダメってことはないですがYahoo!知恵袋でリンク踏むだけで投稿したのをみたのでできるかなと
>>445 送信元はPHPでいいの?
クライアントPCから送信したいのではなくて?
>>448 知恵袋はGET受け付けるでしょ
POSTしてるならURL出してほしいね
451 :
432 :2011/08/12(金) 21:19:30.44 ID:MSI8KsLa
>>449 どっちでもいいですが転送後のページがpostをおくったあとの表示がされればいいです
>>450 それがわかっていればYahoo!知恵袋で聞いています
>>451 知恵袋で見たならURLだせると思ったんだけど…
というかスパムにしか見えないんだが
1つの方法としてPHPでブラウザの挙動をエミュレートすれば良いよ
455 :
432 :2011/08/12(金) 21:37:42.31 ID:MSI8KsLa
>>452 1年以上前でphpなんて興味なかった頃なんでコピーとかブクマとかもしてないです
URL自体は短かったです
>>453 スパムならpostはformでもできることなのでわざわざphp使う必要なくないですか?
>>454 挙動までわかるエミュレータあるんですか?
>>455 だからcurl使えよ
PHP POST curl あたりでググれ
HTTPの仕組み的に無理とか言ってんの誰だよ POSTぐらい余裕でできるだろうが
リンクを踏むだけでPOSTってjavascript使ってsubmitすりゃええだけちゃうん
>>459 お前がアホなだけじゃ
POSTしたいんだろ?cURLで一発
462 :
432 :2011/08/12(金) 22:01:57.96 ID:MSI8KsLa
>>456 関連を全部見ましたが出来ないんですね
Yahoo!知恵袋でできたのはなんでかが疑問ですが今の自分には出来ないことがわかりました
464 :
nobodyさん :2011/08/12(金) 22:06:13.92 ID:5NDwQCjj
$dbh = null; これをやらないとどうなりますか?
465 :
432 :2011/08/12(金) 22:12:03.51 ID:MSI8KsLa
>>463 ケータイサイトで使いたいのでJavaScriptはつかえません
467 :
432 :2011/08/12(金) 22:19:24.31 ID:MSI8KsLa
>>466 formからのデータにデータを追加して転送したいのでそれは無理です
XML-RPCでググレカス
470 :
432 :2011/08/12(金) 22:33:01.05 ID:MSI8KsLa
>>469 これって転送?移動?できなくないですか?
PHPは転送じゃなくて自身に転送結果を表示するんだよ
472 :
432 :2011/08/12(金) 22:42:32.75 ID:pWabPo1P
>>471 てことはphpでブラウザにpostデータを仕込むことは出来ないんですよね
phpでブラウザに仕込めるのはリファラとセッションとクッキー以外であるんですか?
何がしたいんだ 具体的にやりたいこといってみ 変な言葉使わなくていいから 転送とか移動とか意味不明だよ
474 :
432 :2011/08/12(金) 22:53:28.53 ID:pWabPo1P
サイトAとBがあって サイトAからサイトBにpostでデータを送りたくて サイトAからしか送れないようにするためにformでサイトAの転送用URLにデータを送り認証用postをつけてサイトBにデータを送るってのが目的でしたが postが無理なので困っています
>postデータを保持しながら移動したいんです ポストにこだわるんじゃなくてセッション $_SESSION使えばいいんじゃないの?
476 :
432 :2011/08/12(金) 23:00:48.89 ID:pWabPo1P
>>475 docomoってクッキーつかえないですがセッションはつかえるんですか?
それとURL違うのにいけるんですか?
Bで受付窓口を作ればいい それがXML-RPC そんでこいつにPOSTデータ投げつければいい
478 :
432 :2011/08/12(金) 23:11:07.21 ID:pWabPo1P
479 :
432 :2011/08/12(金) 23:12:00.30 ID:7cJdIcKC
ありがとうございました
480 :
nobodyさん :2011/08/12(金) 23:12:11.13 ID:jbrusB/O
人権擁護法案(人権侵害救済法案)が成立すると、言論の自由や表現の自由≠ェ規制され、 日本は北朝鮮≠竍中国≠フように自由に物が言えない国になりますよ。 危ない!!危ない!!危ない!!危ない!!危ない!!危ない!!危ない!!危ない!!危ない!!危ない!!危ない!! こんな天下の悪法≠ェ、成立して喜ぶのは、 ◎誰も頼んでいないのに戦後も日本に居座って、文句ばかりを主張し、しかも税金も真面目に払わない在日外国人。 ◎人権を口実に人を恫喝して金儲けをし、しかも税金も真面目に払わない同和団体。 ◎祖国である日本よりも、北朝鮮や中国そしてスウェーデンなどの共産主義や社会主義の国を愛する日本嫌いの反日的日本人。 天下の悪法≠ナある人権擁護法案(人権侵害救済法案)を即刻廃案にして、日本の言論の自由と表現の自由≠断固守れ!!!
>>476 475は無視してくれ。475は同一サイトの場合の話。
>サイトAからしか送れないようにするために
A→Bサイトでポストデータ送りたいなら、送れば良いと思う。
この目的ならリファラーチェックをするのがいいんじゃないの。
リファラーは偽装される可能性もあるが。
サーバからサーバにデータ送るのにリファラもくそもないでしょう
483 :
nobodyさん :2011/08/13(土) 02:32:35.98 ID:TdRiDr6Y
phpで画像からexifを削除するってどうしたらいいの? ググったらimageMagickを使う方法が見つかったけど、それ以外のやり方はないですか?
imageMagickでなんでだめなの?
485 :
nobodyさん :2011/08/13(土) 02:50:47.12 ID:TdRiDr6Y
>>484 ダメってわけじゃないんですが、よくわからないんですがあれは
peclていう機能追加なんですよね? プレーンな方法で出来ないのかなって思いまして…
できることはできるよ。 exifの仕様を調べてPHPのバイナリ操作で削除すればいい
>>486 やっぱりそんな面倒な手順になるんですか…
peclの勉強と思ってimagemagickにチャレンジしてみます!
というかまずpeclがなんなのか、そこから調べてみますね
ありがとうございました
489 :
nobodyさん :2011/08/13(土) 03:15:10.17 ID:TdRiDr6Y
>>488 こんな時間にありがとうございました
とりあえずimageMagickのインストールをはじめてしまったんですが、
そちらのやり方もあるんですね
ありがとうございました
490 :
nobodyさん :2011/08/13(土) 13:56:48.57 ID:R4f4VSoL
AサーバーにアカウントのDBを保存して BサーバーでAサーバーのDBを取り出したり、変更したりする という事をやりたいのですがこの場合、Bサーバーでは mysql_connect('ホスト名', 'ユーザー名', 'パス'); のホスト名をAサーバー用に hoge とするだけでいいのでしょうか? どうも上手くいかず
そのAがBとどういう関係にあるのか知らないけどそれでだめなら無理。
492 :
nobodyさん :2011/08/13(土) 14:16:35.08 ID:R4f4VSoL
全くの別なんですが、すみません、サーバーはいつも人任せなのでよく知りませんでした 何か特別な関係にさせるとかるんですかね
DBが動いているサーバーが外部からアクセスし放題だったら気持ち悪いと思いませんか?
まー出来ると言えば出来るけど SONYのとか
DBとアプリサーバを同じマシン上に構築すればDBサーバへの無意味な外部アクセスは防げるし ポートもふさぐことができるので一石二鳥・・・?
どっちみちルート権限ないと無理 どうせルート権限のないその辺の共有サーバだろうし無理だろう
ルート権限ないと無理とか本当にわかって言ってるのか疑問だわ
最適解は環境によって違うからなんとも言えないけどな
DBとAPPサーバを分離してDBサーバには
外部から見えないところに置くという構成もありうるのに
DBとAPPサーバが両方共WANに繋がってる前提でしかないのかw
>>490 はもうちょっとネットワーク構成等の環境をちゃんと書くべき
>DBとAPPサーバを分離してDBサーバには >外部から見えないところに置くという構成もありうるのに そんな構成にするやつは こんなとこで質問しませんよ
>もうちょっとネットワーク構成等の環境をちゃんと書くべき そんな構成を書けるやつは こんなとこで質問しませんよ
というか、PHP側でエラーログとれないんだっけ?
Ajax側で可能
503 :
nobodyさん :2011/08/13(土) 20:42:33.10 ID:e//DbYP0
ある
505 :
nobodyさん :2011/08/13(土) 20:52:58.05 ID:e//DbYP0
>>504 いやいやいやwww
ロボットじゃないんだから、「ある」
だけじゃなくて、具体的にどうなのか、
ってところまで含めて言ってもらわないとwww
勇気は認めるがPHP講座とか恥ずかしいな
1時間目がいきなりつづくなんだが何でだ
永遠に終わらない初心者講座か
初心者がなぜ初心者講座?
テニスしろみたいなネタかい?
512 :
nobodyさん :2011/08/13(土) 22:08:47.83 ID:e//DbYP0
とりあえず、おまいらが一読した限りでは、 致命的な理解ミスはなかったみたいだね。 そこだけ確認できれば、とりあえずはそれでいいです。
ワロス
夏だねぇ
>>512 セッションハイヂヤック対策がされていないのでセキュリチイに重大な瑕疵がある
まだPHPの話しが1度もでてない件
>>503 第一話 つづく
第二話 ルータはステルスモードにしよう
第三話 プライベートIPとは
これでどうアドバイスしろと…
初歩的すぎる、無駄に長い、用語が曖昧すぎる
少なくとも初心者向けではないと思うね
用語の使い方からしてよくわかってない人が一生懸命説明しようとして空回りしてる感じ
新手の売名行為か 宣伝乙
なりすましの晒しだろ
広告だらけで見てるだけで気分が悪くなる
つまり単なるアフィサイトを2chで宣伝しただけか。
ひらがなとカタカナだらけの文章でいかにも頭悪そう アパッチとか書かれると戦闘ヘリを連想しちゃう
サイト自体がpixivだから宣伝って訳では無いだろうけど 確認してもらうっていう段階でも無いわな 自己知識への整理としてこういった試みをするのは問題ないとは思うがw
漫画で、と言いながらほとんど文字だけなのはどうなんだろw よくわかってないけど、こんな感じでぼんやり覚えましたって内容だな
PHPのピの字もわからないものですが質問させてください。
はてなブックマークのホットエントリを取得し、1ページ目に何件、2ページ目に何件という風に表示しようと思っているのですが、
RSSの表示を
<?php
$rss = simplexml_load_file('
http://b.hatena.ne.jp/hotentry?mode=rss ');
echo "<ul>\n";
foreach ($rss ->item as $item) {
echo "<li><a href='$item->link'>$item->title</a></li>\n";
}
echo "</ul>";
?>
として、
ページ送りについては
http://q.hatena.ne.jp/1287372348 を参考にしてやりました。が、
2ページ目に行っても3ページ目に行っても同じ内容しか出ません。どうしてでしょうか?
どうすればページごとで表示にできますか?
なんかのネタ? ちゃんと下記のURLを読んでから出直しておい
530 :
nobodyさん :2011/08/14(日) 17:42:53.44 ID:cY2pTan9
失礼しました。sageでIDが出るのかと・・・
>>530 変数の状態を追ってデバッグしてみるといいよ
532 :
nobodyさん :2011/08/14(日) 18:04:22.71 ID:cY2pTan9
>>531 ありがとうございます。まずデバックからググッてみることにします
クじゃなくてグ
>>532 まずは変数の状態を追ったほうがいいと思うよ
535 :
nobodyさん :2011/08/14(日) 19:48:38.29 ID:cY2pTan9
>>534 わかりました。変数の状態を追ってみます。
536 :
nobodyさん :2011/08/14(日) 20:08:18.82 ID:RD798Zt3
スレチかもですがamebaとかGREEって何という言語でできてるのですか。掲示板 やchatの応用な気がして勉強しようかと思ってます
GREEはPHP amebaは知らん
538 :
nobodyさん :2011/08/14(日) 20:38:03.71 ID:RD798Zt3
なるほどありがとうございます
539 :
nobodyさん :2011/08/14(日) 20:57:30.09 ID:RD798Zt3
JAVAは関係ないでしょうか?WebアプリはJAVAですよね
WebアプリはAjaxだべ
541 :
nobodyさん :2011/08/14(日) 22:39:36.40 ID:V03zcRVE
いやそんなリンクはられても困ります せめてスレのリンクを
おはよぉ〜 PHPプログラマ〜の、おねぇさんだよぉ〜ん 今は夏休みで、実家に帰ってます。 スレが気になって見に来ました。 今日は暇だから、どんな質問でも答えるね。 さて、どんな質問が残ってるのかな?
545 :
nobodyさん :2011/08/15(月) 08:38:19.40 ID:tC4WNcNT
「わぷー」とかWPおわったなw
547 :
nobodyさん :2011/08/15(月) 15:39:52.05 ID:/VGmfG1h
すみませんがどなたかご教授お願いいたします。以下の文を 実行するとFatal error: Call to undefined function query()というエラーが出てしまいます 。 smartyを使っている文を参考にしてsmartyを使っていないPHPファイルを書いたものです。 どこを直せばよいのでしょうか? $counterpart = $result->fetch_array(MYSQLI_ASSOC); $_query =query("UPDATE tbShop SET showing_order = ".$counterpart["showing_order"].", active = 0 WHERE showing_order = $order"); $mysqlw->query($_query); $_query =query("UPDATE tbShop SET showing_order = $order WHERE showing_order = ".$counterpart["showing_order"]." AND active = 1"); $mysqlw->query($_query); $_query =query("UPDATE tbShop SET active = 1 WHERE showing_order = ".$counterpart["showing_order"]); $mysqlw->query($_query);
これだけじゃわからん とりあえずqueryが定義されて無い
すみません。情報不足ですか。 以下二つはtbShopのDBのカラム名です。(mysql)。 | showing_order | int(10) unsigned | YES | | 0 | | | active | tinyint(3) unsigned | YES | | 0 | また、該当部分を先ほどのレスで足りない部分から抜き出しました。 orderはgetでうけとっています。よろしくお願いいたします。 $order = NULL; if (isset($_GET["order"])) { $order = mysql_real_escape_string($_GET["order"]); } $result = $mysqli->query("SELECT showing_order FROM tbShop WHERE showing_order > $order ORDER BY showing_order LIMIT 1"); $counterpart = $result->fetch_array(MYSQLI_ASSOC); $_query =query("UPDATE tbShop SET showing_order = 2, active = 0 WHERE showing_order = 1"); $mysqlw->query($_query); $_query =query("UPDATE tbShop SET showing_order = $order WHERE showing_order = ".$counterpart["showing_order"]." AND active = 1"); $mysqlw->query($_query); $_query =query("UPDATE tbShop SET active = 1 WHERE showing_order = ".$counterpart["showing_order"]); $mysqlw->query($_query); exit;
550 :
547 :2011/08/15(月) 15:52:29.89 ID:/VGmfG1h
smartyを使わないから知らないけどqueryしたものを更にqueryするって違和感ある
>>549 queryじゃなくてmysql_queryなんじゃ?
queryはちゃんと定義してるの?
553 :
nobodyさん :2011/08/15(月) 15:59:57.13 ID:/VGmfG1h
レスありがとうございます。 初心者で見よう見まねで作っているので。大変助かります。 queryの定義のご指摘ありがとうございます。 実はキチンと理解できていませんのでさっそく調べてみます。
>>553 とりあえず
$counterpart = $result->fetch_array(MYSQLI_ASSOC);
var_dump($counterpart);
die();
でちゃんと取得できてるか見た方が良いんじゃないか
$_query =query("UPDATE tbShop SET showing_order = $order WHERE showing_order = ".$counterpart["showing_order"]." AND active = 1"); このquery関数が無いつってんだろ。 query()外すだけで動きそうな
556 :
nobodyさん :2011/08/15(月) 16:51:18.36 ID:/VGmfG1h
>>554 ありがとうございます。見てみたらちゃんと取得できていました。
>>555 $_query =$mysqli->queryに直したら動きました。
他人のソースを参考に手さぐりで進めているもので皆さんの助言がありがたくなんとか進めそうです。
もうちょっと頑張って完成させます。
基礎をちゃんと勉強しなよ・・・
小学生の頃、先生に頼まれ近所の障害児の家に遊びに行った。 するとそいつはドラクエをやってたので「へー、こいつでもドラクエ出来るんだー」と思ったが、 よくみればレベルはかなり上がってるのに話が全然進んでない。 スライムやドラキーをバサバサ切り捨てるだけ。 ストーリーを進めてやろうとコントローラーをちょっと借りようとすると奇声あげ怒り出す。 母「ごめんなさいね、○○ちゃんドラクエが大好きなのよ」 おそらく永久に助けだされないのに永久に勇者を待ち続けるローラ姫や 永久に倒されることのないゾーマ。 この世界には永久に平和は訪れずいつまでも闇の世界なんだとおもうとせつなかった。
>>559 その人のことはよく知っています。
彼は一度クリアした後に、最初からやり直していたみたいです。
ずっと家でゲームばかりしていたので、普通に進めると簡単にクリアしてしまうので、
話を進めずに雑魚ばかり倒してレベルをどこまで上げられるかをやっていたのです。
自分なりの楽しみ方を見つけていたのですね。
561 :
nobodyさん :2011/08/16(火) 02:51:22.21 ID:K2+kbzKe
mysqlのレプリケーションってPHP側でなんか設定する事とかあるんですかね? 変更するDBと参照するDBとで設定分けないと駄目だとか
IDは?
何のIDですか?DBには設定してあります。
566 :
561 :2011/08/16(火) 07:46:01.63 ID:???
自己解決しました
567 :
nobodyさん :2011/08/16(火) 10:56:51.64 ID:jcHZicfg
すみません、初心者スレがないのでここで質問させてください PHPを使ってヤマトとか佐川とかJPの配送料金計算が出来るapiって ないでしょうか?
569 :
nobodyさん :2011/08/16(火) 12:51:35.24 ID:jcHZicfg
>>568 おお、ありがとうございます。自分じゃ見つけられませんでした
こういうの、思いついて作る側にならなきゃダメですね
料金改定の手間もあるのに、すごいなー作れる人…
570 :
nobodyさん :2011/08/16(火) 13:49:28.94 ID:K2+kbzKe
>>562 アクセスするホストが違うんで、2つコネクタが必要なのかなと思いまして。
stringのstarts_withとかends_with、 よく使いそうな関数を集めた便利ライブラリで有名所ってあるのかな? PEARやgithub漁ったけど見つからないです・・・
「よく使いそうな」が人によって違うから無いと思うよ
自分が使いやすいように作ったらいい。 どうせ他人が見たら見慣れないソースになるんだからさw strpos() === 0ならわざわざ呼ばない、後方一致なら呼ぶかも。 後方一致を使う場面はファイルの拡張子あたりだろうけど それなら別の手を使う。それ以外のケースは考え直した方が お得かもしれない。
574 :
nobodyさん :2011/08/16(火) 16:55:22.90 ID:GFCfiWJ6
質問です html上のテキストフォームに直接関数を入力してPOSTしたその関数をそのまま実行する事ってできますか?
意味がよくわからん、eval 使うとか? まあ危険だから一般公開はしないほうがいいけど
おおできました、ありがとうございます できるのかなっていう興味本位とローカルで試したかったんです 分からないんでphpに書き出してそれを読み込もうとしてました・・・
$chk1 となっている変数の数字部分を変数で表したいのですが、 $a=1; $chk$aなどと書くとエラーになります。 どのように記述すればよろしいでしょうか?
なんだっけ・・・ $chk{$a} こんな事できなかったっけ?
580 :
nobodyさん :2011/08/16(火) 18:50:19.41 ID:3xMYGdVH
ありがとうございます。 さっそくやってみます!
きもい言語だな
582 :
nobodyさん :2011/08/16(火) 19:22:52.99 ID:3xMYGdVH
>>578 できなかったみたいです。
実際に使いたいのは以下で、
上のwhile文でチェックボックス用のcheckedを作り
下の文でそれを利用したいです。
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
if($value == $row['seq']){
$chk{$row['seq']} = 'checked'; }
}
<?php
$result = $mysqli->query("SELECT * FROM tbShopmenuCategory ORDER BY seq ");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $chk{$row['seq']} ?>> <?php echo $row[category]; ?>
<?php
}
?>
$name = $chk.$a: $$name
585 :
nobodyさん :2011/08/16(火) 19:33:36.02 ID:3xMYGdVH
できませんでした。。
>>583 さん、$name = $chk.$a:
$$name
の$$nameはどうなっているのでしょうか?
使い方がよくわかりません。すみません
586 :
571 :2011/08/16(火) 20:04:00.62 ID:???
>>572 >>573 結局、みんなそういうスタンスだから、スタンダードなものがないんだなw
CakePHP向けとかはあるんだけどなあ。
まあ、自分がなにか作って公開するかな。
神が光臨したぞ〜 ライブラリまだー????
あー、そういう事か { }を[ ]に変えるだけでおk
$chk = 'label'; $a = '1ban'; $chk1ban = 'これが表示されます。'; $name = $chk.$a: echo $$name;
つか、そういう時は配列を使え
あら、間違えてる $chk1ban = 'これが表示されます。'; ↓ $label1ban = 'これが表示されます。';
593 :
nobodyさん :2011/08/16(火) 22:04:37.30 ID:IjmFjSTm
画像をアップロードするだけのphpを組んだのですが、 281220100908001.jpgをアップロードすると281220100908001.jpg が画像の名前が変更されるアップロードされます。 同じ名前の画像だと上書きされていきます。 アップロードした画像の名前を変えるにはどうするのですか? 以下の変更点を教えて下さい <?php //ファイルの取り出し $file_name=$_FILES['filename']['name']; //ファイルMIME)タイプの取り出し $file_type=$_FILES['filename']['type']; //一時ファイル名の取り出し $temp_name=$_FILES['filename']['tmp_name']; // 保存先のディレクトリ $dir = 'uploads/'; // 保存先のファイル名 $upload_name = $dir.$file_name; // JPEG形式、GIF形式のファイルをアップロードする if(($file_type =='image/jpeg') || ($file_type =='image/pjpeg')){ // アップロード(移動) $result = move_uploaded_file($temp_name, $upload_name);//これがないと失敗 echo ($result)?'■アップロード成功':'■アップロード失敗'; } else { // JPEG形式、GIF形式以外のファイルはアップロードしない echo '■JPEG形式またはGIF形式の画像をアップロードしてください。'; } ?> <br> <img src="<?php echo $upload_name; ?>">
>>593 if (file_exists($upd_name))
file_nameを拡張子とファイル名に分割して ファイル名_連番?_拡張子みたいな形にすりゃいいんじゃない?
DBに登録とかしとかないと元のファイル名が復元できなくなるけどな
597 :
nobodyさん :2011/08/16(火) 22:56:08.13 ID:IjmFjSTm
やってみます。
謝意は・・・?
599 :
nobodyさん :2011/08/17(水) 00:22:46.32 ID:RjW3mnLQ
関数のスコープでローカルとグローバルの中間はありますか。具体的に言うと $data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う"; $matches=array(); preg_replace_callback('/([0-9]+)/',function($str){$matches[]=$str;return $data[$str];},"1-2-3"); という、値から数値を取り出してコールバック関数に渡しているのですが このコールバック関数に ・マッチした文字列以外の値(この例では$data)を渡したい ・return以外の値を返したい($matchesに入れたい)のです グローバル関数にすればいいのですが、出来ればグローバル関数は汚したくないです。
名前空間とかクラスとか
はしょりすぎだろ
じゃあ補完すりゃ良いだろ
603 :
nobodyさん :2011/08/17(水) 00:40:25.40 ID:RjW3mnLQ
>>601 えーと、もっと細かく書くと
function syori($hoge){
$data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う";
$matches=array();
$kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str){$matches[]=$str;return $data[$str];},"1-2-3");
$kekka["r"]=$matches;
return $kekka;
}
$result=syori("1-2-3");
こんな感じです。
この状態だとグローバルにはdataもmatchesもkekkaも出てないですよね
でもdataとmatchesは機能してくれません。多分kekka[k]は"--"、matchesは空白になるのかな。
dataとmatchesをグローバルにすれば出来るけどグローバルにはしたくない という事です。
・・・。 レベルたけえな とりあえずどういう値を入れたらどういう結果が欲しいのかね
605 :
nobodyさん :2011/08/17(水) 01:11:26.91 ID:RjW3mnLQ
ごめんなさい説明力低くて。 function syori($hoge){ $data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う"; $matches=array(); $kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str){$matches[]=$str;return $data[$str];},"1-2-3"); $kekka["r"]=$matches; return $kekka; } $result=syori("1-2-3"); において、$dataと$matchesがグローバルだった場合は $resultが $result["k"]="あ-い-う"; $result["r"]=array("1","2","3"); となって欲しいです。 つまり function($str){$matches[]=$str;return $data[$str];} の中の$matchesと$dataをどうにかしてこの無名関数の外に出し入れしたい。という事です
607 :
。 :2011/08/17(水) 01:19:36.59 ID:???
function syori($hoge){ $data=array();$data["1"]="あ";$data["2"]="い";$data["3"]="う"; $matches=array(); $kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str) use (&$matches,&$data){$matches=$str;return $data[$str[1]];},"1-2-3"); $kekka["r"]=$matches; return $kekka; } $result=syori("1-2-3"); print_r( $result );
コールバック関数使わない処理のほうがシンプルなんじゃないか
609 :
。 :2011/08/17(水) 01:22:17.01 ID:???
ていせい $kekka["k"]=preg_replace_callback('/([0-9]+)/',function($str) use (&$matches,&$data){$matches[]=$str[1];return $data[$str[1]];},"1-2-3");
610 :
nobodyさん :2011/08/17(水) 01:52:08.64 ID:RjW3mnLQ
>>607 ,609
use、そういうのもあるのか!
いやマジで感謝です。phpの仕様だから無理だろうなあーとあきらめ半分でしたけどマジで出来るとは
謝意は・・・?
シャイなので・・・
PHPでもクロージャ扱えるようになってたのか。
サンプルを見て思ったのだがあれは便利になったと言えるのか?
616 :
nobodyさん :2011/08/17(水) 19:18:23.17 ID:QGqYmGAb
Javascriptと違って、クロージャにしてもその時点での変数の値が封される訳じゃないからぜんぜん便利な気しないな。
まぁ、だからといって、外の変数にクロージャからアクセス出来たらこれまた変な事になるんだが。
>>616 substr($url, -1, 1)とか、rtrim($url, '/')とか?
dirnameでもできそうな気もする
$str[strlen($str) - 1] = ""; こう言った方法もある
619 :
nobodyさん :2011/08/17(水) 20:04:26.82 ID:QGqYmGAb
ほんとこのスレ素人ばっかだなw プロならpurse_url
>>619 最後のスラッシュだけ省きたいのであれば
preg_replace('#/$#',''"http~略")
でいいけどこんなことの為だけに正規表現使うの?
>>620 purse_urlは要件満たしてないだろw
そして無駄な処理が入るわけだからそれを選択する理由は無い
purse_urlなんて使うプロの人って、ひとりも知らんかったわ。
ほんと
>>620 は尊敬に値するぜ!
>>619 正規表現って、使い方分かって言っておるん?
^(.+)/$
623 :
nobodyさん :2011/08/17(水) 20:20:37.91 ID:QGqYmGAb
自己解決しました
$url = preg_replace("/\/$/","",$url);
答えてくれた人ありがとうございます。
>>621 ちなみにその#って何ですか?
正規表現を使う理由は、やっぱこういうのって正規表現を使ったほうが良いと思うんですよ。
PHP独自の関数なんていつ使えなくなるかわかりませんし。4から5になって使えなくなった関数もたくさんありますし。
でも正規表現関数は使うんだw
625 :
nobodyさん :2011/08/17(水) 20:23:01.64 ID:QGqYmGAb
あ、/のかわりか。 正規表現は使いまわしできますし。
「PHP独自の関数」の意味が分からんが、PHP独自のネーミングセンスって意味なら、substrもrtrimもphpだけじゃなくてPerlでもCでも確かあった・・・と思うが。 まぁ、正規表現に慣れる為に、なんでもかんでも正規表現、って道は無くもないとは思う。 普通に文字列処理の関数で出来るんならそっちでやった方がコスト的にもいいが。
まぁ、本人がそれでいいならいいだろう
>>623 そう/の替りに使ってる
PHPの正規表現はセパレータが変えれるから
正規表現を読みやすくする為に変えてる
これで独立できる
売るものはスマートフォンアプリ WEBサイト運営
サーバーはクラウド VPS
電話はスマートフォンSkype
オフィスは地方にプレハブ型の格安高性能オフィスを建て(300万〜500万)
レンタル自習室&シェアオフィスで収入を得ながらそこで開発する
http://tinyurl. com/43xmk7m
http://tinyurl. com/3mopkfy
630 :
nobodyさん :2011/08/17(水) 22:37:42.79 ID:XqGbAqdG
CGIゲームとかで、 「1日、1回、100ゴールドの給料をやる」 ってアルゴリズムにした場合、 サーバーをずーっと起動しっぱなしで運用するなら、 毎日、夜中の00:00に、そのプログラムを走らせるように cronとか、タスクスケジューラを組んでおけばそれで済む話だが、 お出かけするときはサーバーの電源も落とす。 てな感じの運営ポリシーだと、サーバーの電源を落としたまま 3日たってしまって、給料の支払いが3日分、たまってしまう。 この場合はどう処理すればいいのか。 なんかのキューに入れておいて、サーバーを起動しで、 最後に給料を振り込んだ日時をテキストファイルに記録しておいて、 今の日時をみて、24時間以上経っていたら、3回分を一度にまとめてふりこむ。 こんな感じの実装でいいのか。
シリアライズしてしまえば?
633 :
nobodyさん :2011/08/17(水) 22:57:54.41 ID:XqGbAqdG
>>630 > 最後に給料を振り込んだ日時をテキストファイルに記録しておいて、
> 今の日時をみて、24時間以上経っていたら、3回分を一度にまとめてふりこむ。
この処理を毎日0時に実行すればいいじゃん。3回分じゃなくて経過日数分だけどな。
あとそういう情報の記録はDB使え
単に経過時間だけなら、最後の日から計算すればいいだけじゃん
やべ話題にのりおくれた 一言いわせてくれ ぷーすURLってなんだよばーか
(´・д・`)ヤダ
振り込むなんて処理すらいらね。 基礎給与 = (今日の日付 - 開始の日付 ) * 日給額 で都度計算。 使った額だけ記録しとけ
640 :
nobodyさん :2011/08/18(木) 01:27:28.35 ID:E4ylRXF2
質問 暗号化できて不可逆なパスワードのハッシュ化をしたいと思っています。 何がいいでしょうか? 今までcryptを使っていましたが危険らしいので他の方法を考えています。
好きにしろ
暗号スレとか暗号板とかそんなのなかったっけ
復号できないものを暗号化と言うのか?
暗号学的には不可逆でも暗号化って言うよ
ただ
>>640 はハッシュ化したものを
さらに復号化可能なアルゴリズムで暗号化したいと聞こえる
やりたいことがいまいち謎
>>644 意地悪なことを言わないで教えて下さい。
暗号化できて不可逆なパスワードのハッシュ化をしたいだけです。
評価の観点は?
648 :
nobodyさん :2011/08/18(木) 05:25:25.87 ID:wM+XEC3J
しつもんです アクセスしてきたユーザのIPアドレスから居住地を判定するライブラリみたいなものって ありますか?
ある
俺が使ってるライブラリなら番地まで特定できる たまに誤差が発生するけど町名までは確実に取れる
651 :
nobodyさん :2011/08/18(木) 07:58:08.14 ID:wM+XEC3J
>>649-650 おお、すみませんが教えてください
グーグルの奴を使ってみたんですが、なんか上手く動いてくれません
タダで教えられるか こっちだって元手が掛かってるんだ
「暗号化できて不可逆なパスワードのハッシュ化」というのが、3重くらいの重言になっているから意味がわからんのだよ。
素直に解釈すると
>>644 の言うとおり「やりたい事が謎」としか言えん。
もう少し、それぞれの言葉の意味をよく理解してから質問しなおすのがいいんじゃね?
cryptより安全なハッシュおしえてってだけのことだろ。
>>650 IPの仕組的に、町名まで確実にとれるというのはありえない。
自分の使ってるIPだと都道府県すら違って出る。
関東と関西にわかれているプロバイダもあるけどそれでもある程度はIPの配置が決まっているから 判別できないわけではないかも?プロバイダ側も個人情報をわざわざ開示しないだろうから非公開 になっているだけでそれで地域が特定できないとは言い切れない。 ハッシュはユニークでは無いからそのキーでしか一致しない代物ではないので絶対に安全かって 言うとそうでもない。少なくともユニークな暗号よりも総当たりされた場合のリスクは高い。 内部犯行を嫌うハッシュか、外部犯行を嫌うユニークかだから好きな方を選べば良い。
もちろん、取れることもある。 が *確実*はないってだけ。 あるお客さんで全国の拠点どこでも同じとこになるって文句があった。 インターネットには本社からしかつながってなかったという・・・ パスワードならハッシュがユニークでなくとも別にいいのでは。 使い方の問題。 同じパスワードを使ってる人は、DBに保管されてる暗号化されたパスワードってのは同じなわけで。
どこを、というより全体を略さないと「cryptより安全なハッシュおしえてってだけのことだろ。」なんてならんがまぁ、 そういう事ならMD5とかsha1だろな。 どっちも脆弱性が報告されてるが。 意味も分からんのに心配してるだけなら、とりあえずストレッチしときゃぁいいだろ
そういう場合はIDとパスワードでハッシュ化すんじゃねーの
他の情報を加えてハッシュを算出すれば確かに内部犯行によるリスクは軽減されるね
MD5とか sha1はそろそろ卒業
パスワードに英単語をそのまま使っている人が多いからなー
crypt使えcrypt で、アルゴリズムをsha256かsha512にしろ
json_encode() で json を生成するときに、下記のようにやると $val = array("Body" => array("BooksBookSearch" => array("Items" => array( "Item" => array( "aaa" => "bbb"),array( "ccc" => "ddd"),array( "eee" => "fff") ))); json_encode()でJSONは {"Body":{"Title":{"Items":{"Item":{"aaa":"bbb"},"0":{"ccc":"ddd"},"1":{"eee":"fff"}}}}} このように生成されます。 実際は、 {"Body":{"Title":{"Items":{"Item":[{"aaa":"bbb"},{"ccc":"ddd"},{"eee":"fff"}]}}}} の形式で生成したいのですが、どう配列を組めばよいのでしょうか。
664 :
663 :2011/08/18(木) 10:28:26.52 ID:5rc0bZA4
× $val = array("Body" => array("BooksBookSearch" => ○ $val = array("Body" => array("Title" => でした。
む?なぜ"0"とか入るのかわからんが、理想の形があるってのなら、逆変換して調べてみると分かるんでね? つまり、やりたい形をjson_decode()にでも突っ込んでみる
そしてvar_dumpすれば一目瞭然 おそらくデータファイルを外部から叩いてページに表示するJSあたりがあるのではないかと
array() が抜けてるような
PHPのマニュアルにはBlowfishが推奨でソルトを加えろって書いてあるね MD5はもちろん、SHA256もやめとけって書いてある
あ、ごめん コピペじゃなくて入力してたから違った Item => array( array("aa"=>"bbb") とせずに Item => array("aa"=>"bbb") としてるから違う結果になる
672 :
663 :2011/08/18(木) 10:52:36.63 ID:???
自分の狭窄さ加減に嫌気がするわw json_decode() と var_dump を試してきます。
673 :
663 :2011/08/18(木) 10:56:27.62 ID:???
>>671 >>668 さんのarray() が抜けてるというのはそういうことか。
array()の構造がもう一個要るのか・・・難しい。
みなさんありがとう
674 :
nobodyさん :2011/08/18(木) 11:09:36.40 ID:8kZPbcbM
すみません。一昨日投稿した
>>582 です。
まだ
>>582 の問題が解決できません。
どのようにすればいいでしょうか?
できれば書き換えて示していただけると助かります。
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
if($value == $row['seq']){
$chk{$row['seq']} = 'checked'; }
}
<?php
$result = $mysqli->query("SELECT * FROM tbShopmenuCategory ORDER BY seq ");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $chk{$row['seq']} ?>> <?php echo $row[category]; ?>
<?php
}
?>
675 :
663 :2011/08/18(木) 11:14:57.69 ID:???
>>674 <?php
$chk1 = "aaa";
$chk2 = "bbb";
echo "${'chk' . '1'}";
echo "${'chk' . '2'}";
?>
こういうこと?
だから {} → []では?
677 :
nobodyさん :2011/08/18(木) 11:35:10.47 ID:8kZPbcbM
>>676 さん
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
if($value == $row[seq]){
$chk[$row[seq]] = 'checked'
}
}
<?php
$result = $mysqli->query("SELECT * FROM tbShopmenuCategory ORDER BY seq ");
while ($row = $result->fetch_array(MYSQLI_ASSOC)) {
?>
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $chk[$row[seq]] ?>>
<?php
}
$result->close();
?>
このように{ }を[ ]に変えてやったりもしたのですが駄目でした。
var_dump( $chk)で中身見てみ、もともと空なのでは?
可変変数なんて使おうとするなよ
それに質問きたら別の方法教えてやれよw
>>677 どうだめなのか書け
エラーが出てダメならエラーも書け
ショートオープンタグが使えても使うな
<?= → <?php
echoしないと表示されないぜ
<?=
684 :
nobodyさん :2011/08/18(木) 12:15:02.93 ID:8kZPbcbM
返信ありがとうございます。
>>675 なども試してやってみます。
できなかったらエラー内容やわかる範囲の原因なども書きます。
また後で報告させていただきます。
回答じゃないが $chk なんていらない。 二回もまわしてて変だし。 <?= $row['seq'] == $value ? '"checked"' : '' ?> でいいだろ。 そもそも if($value == $row[seq]){ $chk[$row[seq]] = 'checked' } も ループの中にいらないし $chk[$value] = 'checked' でしかない。
686 :
nobodyさん :2011/08/18(木) 12:29:21.79 ID:8kZPbcbM
>>685 さん
<input type="checkbox" name="category_seq[]" value="<?php echo $row[seq] ?>" <?= $row['seq'] == $value ? '"checked"' : '' ?>>
でよいということでしょうか?
<?= $row['seq'] == $value ? '"checked"' : '' ?>
のvalueから右がどうなっているかがわかりません。
?より左がtrueの時'checked'、falseのとき' 'を出力という意味でしょうか?
なんという文法でしょうか?
三項演算子 でも勉強段階なら、先の方法でも出来るようにしたほうがいいと思う。 こんなの憶えるよりよっぽどいい。 ただ、どう出来ないのかがさっぱり分からんので何にも指摘出来ません。
689 :
nobodyさん :2011/08/18(木) 15:13:21.82 ID:8kZPbcbM
>>685 さんのアドバイスを受けて
$chk[$value] = 'checked'を使ってできました。
他の方にも色々アドバイスをいただけて本当に助かりました。
基礎的なところがまだまだなのでほかの方が上げてくださった
やり方なども試して勉強してみます。
基礎的なところがまだまだな状態でプログラムやるよりまずマニュアルを一読したほうがいいと思うが
的を得ているレスがあった 68:以下、名無しにかわりましてVIPがお送りします:2011/07/07(木) 09:45:21.81ID:xv2pzvIpO わからない→調べる→解決、という流れで人間学習するもの わからない→調べる→やっぱりわからない→人に聞く、の流れはまともな人間同士ならコミュニケーションにもなり得る わからない→人に聞く、の流れはただの馬鹿 わからない→なにもしない、無能
自分の過去レスですねわかります
>>691 >的を得ている
つまりお前は無能ってことなんだな
的は射る 得るのは当だwwww 的なツッコミ?
>>696 それはあくまでそいつの自説
お前もネットの情報を鵜呑みにするなよ
じゃ何を元に判断すればいいの?
PHPやセキュリティの解説サイトでも嘘とか古い技術が書かれてることがよくあるな 素人に毛が生えた程度の奴が書いてたりするし
だからあちこちのサイトでデータを抜かれてるんでしょw
>>701 その辞書は100%信用できるのですか。
辞書だって人が書いた物。間違いだって有り得る。
得るは歴史的に妥当な可能性があるだけで
現在一般的にはやっぱり射るが正しいって
>>696 にも書いてあるね
さすがに「『射る』が誤用」はない。
PHPのスレでそんなことを書いてる方が間違い
>>702 そんなこといってたら100%信用できるものなんてないでしょ
個人サイトより信頼性が高いのは確かだし、複数の辞書で確かめればある程度の信頼性は得られる
あなたが何かを100%信じるに足る根拠って何なの?
>>705 俺は誰も信じないし誰からも信じられない。
>>707 誰も信じないなら質問する意味がない
外界の情報をシャットアウトして引きこもってればいいんじゃない?
辞書によっても様々だったりするような事を論じても意味がない
人を信じないのに質問するのは自己矛盾だな
はぁ? 参考にするだけだろw 回答を自分で確かめたら信じられる
ガキどもそろそろ自由研究やれよ
714 :
nobodyさん :2011/08/19(金) 19:36:41.89 ID:gexz26pY
foreachとsimpleXMLでXMLのデータを順繰りに見ていっているときに 以下のような書き方をして無限ループを発生させてしまいました。 foreach($versiondate as $version){ $date = $versiondate->date } 上記のような書き方をした場合に、$versionの中の値が全然変わらずに foreachによるループが一向に終了しないという現象でした。 記述が正しくなく、本来は $version->date と書くべきで、正しい記載に変更したらループも正常に回るようになったのですが 原因がわかりません。 なにが原因で上記のような現象が発生するのか、分かる方はいらっしゃらないでしょうか?
あれ、値はコピーされるはずだから影響を受けないと思うんだけど本当にそれだけ?
>>708 俺は回答はするけど質問したことは一度もないですよ。
俺は質問はするけど回答したことは一度もないですよ。
>>716 それなら他人の回答に「100&信用できるか」なんてケチつけずに黙って見てるか「100%信用できる証拠」をつきつけなよ
「あなたのいうことは100%信用できますか?」とそっくりそのまま返せるような水掛け論がお望み?
>>714 全体像を出したら判るだろうが
再現もできないコードの一部分だけ出されてもな
お二人とも場をわきまえない常識無しだってことだな。
722 :
nobodyさん :2011/08/20(土) 13:41:32.05 ID:lT3E7dXT
imagedestroyの質問 echo $image;echo '<br>'; imagedestroy($image); echo $image;echo '<br>'; として実行すると Resource id #4 Resource id #4 となるのですが、imagedestroy関数は動いてるのですか?
気になるならヘッダーでイメージを吐いてみれば目で確認できるよ
でかい画像作って、 破棄する前後でメモリの様子見てみたらいいんじゃね?
725 :
nobodyさん :2011/08/20(土) 16:53:40.28 ID:lT3E7dXT
それくらいの関数を見つける能力をつけずにこの先どうやってやっていけるんだ
お前みたいな面倒なやつはいらんから黙ってるか消えろ
>>719 何を言ってるのかさっぱりわかりません。
3行で要約しなさい。
>>729 お前みたいな馬鹿なやつはいらんから黙ってるか消えろ
なんだオウム返ししか出来ない無能か
面白いとでも思ってるんだろ
せめてID出してやれ。NGにするから
738 :
nobodyさん :2011/08/20(土) 20:38:58.43 ID:VO4DRW5D
【OS名】FreeBSD 7.1 【PHPのバージョン】5.2.17 【連携ソフトウェア】 【質問内容】 PHPファイルを文字コードUTF-8で作成。 テキストを2個とボタンを1個表示し、ボタンを押すと同じPHPファイルにPOSTでテキストの内容を 送って再度表示します。 再度呼ばれたときに、テキストの内容がどちらも文字化けしてしまいます。 <meta ... content="text/html; charset=UTF-8"> mb_internal_encoding("UTF-8"); formにaccept-charset="UTF-8"を設定 は実行していますが、POSTされるデータはUTF-8ではなくなっているのでしょうか? どなたかアドバイス頂けないでしょうかm(__)m
mb_convert_encodingを毎回必要な変数にちゃんと使いましょう
default_charset="UTF-8" magic_quotes_gpc=off mbstring.input_encoding="pass" mbstring.internal_encoding="UTF-8" mbstring.output_encoding="pass" mbstring.language="japanese" mbstring.substitute_charactor=""
741 :
nobodyさん :2011/08/20(土) 22:17:19.04 ID:VO4DRW5D
ID:VO4DRW5Dです。 739様、740様ありがとうございます。 自己解決いたしましたので記述しておきます。 サーバーのphp.iniを以下のようにしたところ、解決できました。 default_charset = UTF-8←ここがShift-JISだった mbstring.language = Japanese mbstring.internal_encoding = UTF-8←ここがShift-JISだった mbstring.http_input = auto mbstring.http_output = UTF-8←ここがShift-JISだった。POSTの文字コードに関わるのはこれか? mbstring.encoding_translation = Off←ここがOnだった
論破成功^^
743 :
nobodyさん :2011/08/20(土) 23:13:13.45 ID:sf8M978d
memcachedとphpの連携について質問させてください
centOS6にPHP5.3.7をソースよりインストールしました
殆どの情報でPECLからのダウンロードと書かれていますが、
http://pecl.php.net/package/memcached を見ると、stableバージョンが1.0.2しかありません
memcachedサイトは1.4.7なのでだいぶ古いように思います
連携させるにはPECLしか方法はないのでしょうか?
./configure時とかphpizeとかでコンパイル出来ないのでしょうか?
>>743 PHPエクステンションのバージョンと
Memcachedサーバーのバージョンを同一視しちゃいかん
論破成功^^
論破成功^^
747 :
743 :2011/08/21(日) 12:51:43.67 ID:J6eOgBv6
>>744 PECLでの連携はmemcachedではなく、memcacheでした、ごめんなさい
しかし自分の場合、mod_svnの時と同じようにPECLバージョンが古いのか、認識してくれません
ソースからでなくyumでのphpでならいけるのかもしれませんが、
php.iniのextension設定を正しく行ってextension=memcache.soを記述してもmemcache.soを読み込みません
memcachedは1.4.7をソースからインストール済みです
何か対策はありませんでしょうか?
748 :
725 :2011/08/21(日) 12:59:08.20 ID:hRktlKv4
ありがとうございます。やってみました。 // 画像の破棄 echo '<br>メモリーの量(imagedestroy前)';echo memory_get_usage();echo '(バイト)<br>'; imagedestroy($image); imagedestroy($image_s); echo 'メモリーの量(imagedestroy後)';echo memory_get_usage();echo '(バイト)<br>'; とすると、 メモリーの量(imagedestroy前)1767856(バイト) メモリーの量(imagedestroy後)336080(バイト) と表示され、メモリー量が減っていました。 imagedestroyが使用しないとPHP スクリプトに割り当てられたメモリの量 増え続けるということですか?
>>747 display_startup_errors = on してなんとエラーが出てるか確認を
>>748 リソースがどこからも参照されなくなった時に開放される
例えば $image = imagecreate(); unset($image); などでデストラクタが働く
750 :
725 :2011/08/21(日) 21:12:55.15 ID:hRktlKv4
>>749 ありがとうございます。
質問
$dir = 'uploads/';としたとき'uploads/'の中身を知る方法はありますか?
コマンドプロンプトでdirして中身が表示されるよな感じです。
752 :
nobodyさん :2011/08/22(月) 01:54:14.79 ID:3f8RP/Ml
簡単な質問になってしまいますが、 phpで用意した配列 ID(12,45,771,32) をselect文に掛けたいのですが、どういうやり方がスマートでしょうか? ひとつずつ検索していくのではパフォーマンスが悪いですよね?
DB何使ってるかはしらないけどそのDBのスレで聞け 多分IN句を使えというレスになるとは思うが
Ajaxはそんなにいいか
757 :
nobodyさん :2011/08/22(月) 03:08:26.43 ID:3f8RP/Ml
>>756 arrayの配列の中身でsql文 select where をかけたいんです。
配列の中身がヒットするごとにフェッチさせて一覧をリクエストしたいんですが
なかなか調べてもいい方法が書いて無くて悩んでます。
ヒットしてるか判定させるためにはフェッチさせないといけないのでは?
>>757 誤解してるかも知れんが、
arrayに(12,45,771,32)が入ってて、
これに一致するIDを選ぶってこと?
もしそれならforeach($array as $id){...}になるのではないの?
取り違えていたらスマンが。
>>757 俺の理解力がないので申し訳ないが、
「配列の中身がヒットするごとにフェッチさせて一覧をリクエストしたいんです」
すまん、この部分をもう一度説明してくれ
761 :
nobodyさん :2011/08/22(月) 03:20:33.87 ID:3f8RP/Ml
すまない 書き方が悪かった
要するに
>>759 の状態であってまする。
for文を使わずにできる方法が無いかな? とこう聞いておけばよかったですね。失礼しました
>>761 スルーされてるけど
OR句やIN句作るのでもだめなの?
>>761 こんな感じでは違うの?
$arr = array(12,45,771,32);
$sql = "select * from table where fld in (".implode(",",$arr).")";
$res = sql_query($sql);
while($v = sql_fetch($res)){
//処理
}
764 :
nobodyさん :2011/08/22(月) 03:28:40.70 ID:3f8RP/Ml
>>762 調べてみました 行けそうですね ありがとうございます!
>>763 ちょっと調べてみましたができそうですね! やってみます
内部関数内ではループ使ってるけどなw
766 :
nobodyさん :2011/08/22(月) 04:58:42.38 ID:dWqTKqvr
>>766 Aの中だけで有効なBを宣言するのに多重継承は関係ないと思うけど。
近いのはクラス内クラスか、PHP5.4から使えるトレイトかな。
768 :
nobodyさん :2011/08/22(月) 05:08:06.98 ID:dWqTKqvr
なんか凄いアホな事言った気がしました。 とりあえず重複しそうにないクラス名にしときます。。
769 :
nobodyさん :2011/08/22(月) 05:09:06.24 ID:dWqTKqvr
>>767 ありゃ入れ違いorz
クラス内クラスで調べてみます
ありがとうございました!
>>768 更にエスパーすると、君に必要なのはネームスペースかな
771 :
nobodyさん :2011/08/22(月) 05:28:23.88 ID:dWqTKqvr
>>770 こんな機能もあるのですかΣ(´∀`;)
ありがとうこざいます
772 :
nobodyさん :2011/08/22(月) 08:55:04.83 ID:ruc/IWcE
現在様々な業務で実用されているような複雑化したプログラムを機械語で書くことのできる人間は俺だけか。
建材を使わずに砂だけで家を建ててるようなもんだな 尊敬するよ
774 :
nobodyさん :2011/08/22(月) 09:26:03.81 ID:ruc/IWcE
プログラミング言語とか語ってる暇かよ(爆笑) 機械語を学ぼうぜ? まあ人間で俺しか理解できないけどな。 ソースコードとか5秒で10行書けるから!
俺、エスパー魔美
俺の母国語は機械語 日本語も多少できるよ
>>774 ソースコードって機械語じゃないとおもうけどw
778 :
nobodyさん :2011/08/22(月) 11:31:24.20 ID:KWybgwSC
だからプログラミング言語での ソースコードってこと
日本語でおk
780 :
nobodyさん :2011/08/22(月) 12:47:46.25 ID:KWybgwSC
機械語でおk
デザイナーメインのウェブ屋の現場の話が聞きたいのですが、 共同開発の環境はDreamweaverのロック機能がデフォな感じですかね。
svnを覚えさせたけど今はgitかもしれん
783 :
781 :2011/08/22(月) 19:09:37.51 ID:???
>>782 デザイナーとかHTMLコーダーとかにバージョン管理させるのは厳しいなあと思ってるんだけど・・・
PHPでプログラム書く人だけ、ローカルマシンでgitでバージョン管理が落としどころかなあとか。
うちではロック使う機会がないので使ってない。 そのかわり、全員にgit使わせるようにしたよ。
785 :
781 :2011/08/22(月) 19:17:27.85 ID:???
>>784 具体的にどういう環境かな?
自分の理想は
* ローカルマシンにApache立ててローカルで確認できる環境を作る
** もしくはVMWareを入れてローカルで確認できる環境を作る
* gitでローカルで作業したものをcommit
* まとまった修正単位でgitでサーバーのbareリポジトリへpush
とかなんだけど、そこまでやってるかな?
gitもsvnもコマンドだけでは無いし 手順さえちゃんと作ってあげれば 馬鹿じゃなければどうとでもなるでしょ・・・
>>785 うちはまさにそんな感じでやってる。
鯖といってもリンクステーションの一部をbareかけて使ってるよ。
OSはMacなので、人気の高いクライアントいれてあげて、それを使わせてる。
コンフリクトの解消とかも最初は大変だったけど、今ではこなれてきたっぽい。
参考になるかわからないけど、参考までに。
世界はgitなのか……。 まだsvnのうちって……
789 :
781 :2011/08/22(月) 20:24:55.11 ID:???
>>787 おお〜。プログラマ集団なら迷いなくそれでいけるんですけどね。
なかなか新しい環境への移行って大変で。
あと全てのローカルマシンで環境入れるのも手間。
DBのスキーマ変わったら、各自のマシンでDB作りなおしさせないといけないし。
動作環境がサーバー1台だとその辺楽なんですよね。
現場で面倒な手間が増えたとだけ思われるようだと・・・
ちなみにMacではTowerってクライアント使ってます。結構お気に入り。
790 :
781 :2011/08/22(月) 20:26:32.32 ID:???
>>788 フォルダの移動は普通にエクスプローラでドラッグ&ドロップで良いのが楽。
あとignoreするファイルパターンも、ファイルに書いてそれ自身コミットできる。
フォルダごとに.svnできるあの環境には戻れない・・・
意外と初心者にもgitのが楽なんですよ。
gitってどうやって使うのだ?
svnと基本変わらない ローカルリポジトリにコミット→まとめて共有リポジトリにコミット ができるから便利
gitとかsvnって何だよ 教えろ
trac lightningでも使ってみればいいんじゃね
だからgitとかsvnって何なんだよ いいから教えろ
ID
gitってなんかバージョン管理ができるらしいぞ。 あのリーナス・トーバルズさんが作ったそうだ。 svnは知らない。
5.3.7って書けよ ついでに言えばcrypt関数でとも書けよ
PHPではよくある話
gitとかsvnって何なのか教えろ 言っとくけどこれは質問じゃなくて命令だからIDは出さなくていい
>>801 馬鹿には必要のないものだから安心しろ
気にしなくていい
>>801 cvsから始めろ。
これは命令だw
初心者はまずcvsで技術を学び、svnで磨きをかけた後で
gitにたどり着くべきだ。
初めからgitとか生意気だぞw
>>804 一人でやる分でcvsとかgitとか使うメリットはあるのかい?
806 :
nobodyさん :2011/08/24(水) 05:36:57.23 ID:E2tHb41H
gitやらsvnは一人で使う場合でも十分意味がある
.bkとか作る位なら何かしら使った方が良いな
1人でも、、、 バックアップが楽 複数のPCから編集するのにも同期が楽 ソース書き換えが楽、古いコードバッサリ消せる 機能追加にブランチ切っていろいろ試せる
つーか、gitなりsvnなり使わないでどうやってコードを管理してるのか逆に聞いてみたい。
>>811 1.どしどし上書きする
2.foo1.pl → foo2.pl →foo3.pl .....と番号を増やす
3.foo.pl → foo.pl.old →foo.org.....と名前を変えていく
まず、sudo apt-get/yum install git の次に何をどうするのだ?
ID
>>813 スレ違いの話を続けて済みませんでしたと謝って出て行く
馬鹿には必要ないから諦めろ
818 :
nobodyさん :2011/08/24(水) 19:51:17.26 ID:ojPB3m7U
PHPのバージョン違いで使えない定数があった場合、 defineで定数指定したら、その定数は使えるようになるのでしょうか?
自分で指定した値としてなら使える definedあたりで調べてなければ定義にしておけば良い
820 :
nobodyさん :2011/08/24(水) 20:35:41.20 ID:ojPB3m7U
ありがとうございます。そうします。
821 :
nobodyさん :2011/08/24(水) 20:58:27.30 ID:BnI6tJPl
海外CMSをインストールしようとすると、大体cURLを有効にしろと要求されますがこのcURLとは一体何なのでしょうか? マニュアルの「このライブラリにより、多くの異なったプロトコルで様々なサーバと接続し、 通信することが可能になります」だけではいまいち良く分かりません 具体的にどういう時に使うのでしょうか? また、皆さんは利用していらっしゃいますか?
823 :
nobodyさん :2011/08/24(水) 21:13:47.58 ID:BnI6tJPl
>>822 ありがとうございます
見た感じ、APIに使われるやり方がメインなのかなと思いました
自分には必要あるのかな?と
一般的にはあまり使用されませんよね?
よく使うよ
TPC/IPクライアント作成に使う 別にいらない人にはいらない
826 :
806 :2011/08/24(水) 21:55:52.84 ID:E2tHb41H
>>807 ありがとうございます。たしかにhostsファイルを編集しました
現在のhostsファイル↓(2行目を追記した※記述ミスはないはず)
127.0.0.1 localhost
XXX.XXX.XXX.XXX mytest.com
ですが、元に戻してシステムを再起動するなどしても戻らず・・・
IPアドレス指定で不都合はないので今は掘らずに様子を見るつもりですがどうも不思議です
nttkyo389176.tkyo.nt.ftth.ppp.infoweb.ne.jp こんなようなリモートホスト名をドメインだけの形にするのってどーやるの サブドメインいらんす 教えてエロい人
ん?
え?
言い方がわるかったか nttkyo389176.tkyo.nt.ftth.ppp.infoweb.ne.jp を infoweb.ne.jp だけにしたいす KD182249022142.au-net.ne.jp を au-net.ne.jp にしたいす
は?
>>827 >>830 専用関数があったような気がする
それかPEARだったか?
忘れた(確証率5%)
834 :
nobodyさん :2011/08/25(木) 00:32:53.21 ID:KfTuoz9b
1.まずは以前のレスを見なおせ 2.2枚目のコレがページを進めるまで何を指してるのか解らない 3.いきなりアルゴリズムの説明されても困る 4.あの程度の内容ならif文要らない
837 :
nobodyさん :2011/08/25(木) 00:50:19.24 ID:KfTuoz9b
>>835 if文はいるだろボケエエエエエエエ
どーやって1と2と3を
識別するんだああああああ
あだち充のマンガみたいに
全員同じ顔で、しぐさで見分けるのかあああ?!
$ary = array( "それはできない", "忙しすぎる", "体調悪い" ); echo $ary[rand()%count($ary)],"\n"; echo $ary[rand(0,2)],"\n"; echo $ary[array_rand($ary)],"\n"; こんなんでもいいいし 1-3をそのままにしたいなら $ary = array( 1=>"それはできない", "忙しすぎる", "体調悪い" ); にして echo $ary[rand(1,3)],"\n"; とすれば出来る
すっげお前まじ天才じゃね?
>>836 すべてのトップレベルドメインとセカンドレベルドメインを羅列するだけなら
面倒だけど別に難しくはないだろ?
841 :
nobodyさん :2011/08/25(木) 02:21:48.35 ID:Qb73wGwG
defined('Hoge') or define('Hoge', true); これはどういう意味ですか?なぜ「defined('Hoge') or」をつけているのかわかりません
>>841 演算子orは左側を最初に評価し、falseだった場合は右側を評価します。
つまりdefined('Hoge')の評価結果がfalseであればdefine('Hoge', true)を評価します。
結果、定数'Hoge'が定義されていなければdefine('Hoge', true)が実行されることになります。
>>840 ccSLDならサードレベルまで欲しいって感じじゃない
844 :
nobodyさん :2011/08/25(木) 11:17:02.67 ID:L9PzJ4Hs
定数に数字を入れてるのですが、条件によって変更したいと思います。 if ($id == 1) { define('ENTRY_LIMIT', 100); } みたいな事がしたいのですが、上書きできません。 一度定義した定数って上書きできないのでしょうか?
それはもはや定数ではないのでは?
>>844 一応 PECL runkit を使えば再定義することはできる
define('ENTRY_LIMIT', 300);
echo ENTRY_LIMIT;
runkit_constant_redefine('ENTRY_LIMIT', 100);
echo ENTRY_LIMIT;
何のための「変数」だ
848 :
nobodyさん :2011/08/25(木) 13:50:02.32 ID:D2w26RWA
ちょっと無茶な質問かも知れないですが、クラスの中のメソッドが実行されたとき どこから実行されたのか判定する方法ありますか? そのメソッド(もしくはクラス)の中に何かを記述することで対応できるのが理想です エラー処理のメソッドがどこから呼び出されてるのかわからなくて困っている状況です
XDebugでスタックトレースの表示とか?
850 :
nobodyさん :2011/08/25(木) 14:33:05.48 ID:Qb73wGwG
>>842 すみません。読解力がないせいか、まだよくわかりませんので、方向を変えて
「defined('HOGE')」を「defined('HOGE') or define('HOGE', true)」にする目的はなんでしょうか?
>>850 defined('HOGE') or define ('HOGE', true) の一行は、以下と等価
if (defined('HOGE'))
{
define('HOGE', true)
}
>>850 それを書き換えると
if (!defined('HOGE')) {
define('HOGE',true);
}
と同じになる
セミコロン付けるの忘れた
セミコロンもそうだけどor判定だから!もしくは=== falseが必要
855 :
851 :2011/08/25(木) 14:47:18.45 ID:???
>>852 が正しい。
スマン、半年romる・・・。
856 :
nobodyさん :2011/08/25(木) 15:38:50.34 ID:Qb73wGwG
if (!defined('HOGE')) define('HOGE', true); と等価ということですね。ありがとうございます ただ、「define('HOGE', true)」だけではいけないのは何故でしょうか?あえて 「defined('HOGE') or ...」 をつけている理由が知りたいんです
defined ってけつに dがついてるのを見落としてるとかないよな?
>>856 定数の定義が重複するとNoticeエラーを吐くから、事前にチェックしてるだけ
859 :
nobodyさん :2011/08/25(木) 16:21:44.19 ID:Qb73wGwG
>>858 なるほど!すっきりしました。ありがとうございます。
860 :
忍法帖【Lv=1,xxxP】 :2011/08/25(木) 20:42:25.54 ID:ULkE4QS+
test
test禁止
へー
863 :
nobodyさん :2011/08/25(木) 23:05:33.08 ID:WrUw1RTI
つまり if (!defined('HOGE')) { define('HOGE',true); }は一番ハッキングしやすいし、 Javaのコントローラーにも 適応しやすいってことか。 C言語でも使いやすいよね
結局PHPみたいな前時代の遺物よりAjaxの方がよほど優秀というわけか。
865 :
nobodyさん :2011/08/25(木) 23:43:07.91 ID:4cMPPRv2
Ajaxは言語じゃないし
(キリッ
( ゚,_・・゚)ブブブッ
>>865 そういうデマ流して何が楽しいの?
Ajaxの優位性を認めたくないからって陰険なことすんな
test
872 :
nobodyさん :2011/08/26(金) 22:33:41.79 ID:lASdrs1R
foreach ($_POST['key'] as $key => $val) { if ($key === 0) $sql.= $val . "='1'"; else $sql.= " and " . $val . "='1'"; 上記の文の$sqlの後の.=の意味が分かりません。 基本的な書き方のルールだと思うのですが 検索してもでてこなくて困っています。よろしくお願いいたします。
test禁止
さっそくの返信 ありがとうございます! じっくり読んでみます。
880 :
nobodyさん :2011/08/26(金) 23:10:51.64 ID:FNxQRvbX
881 :
nobodyさん :2011/08/26(金) 23:23:52.68 ID:JWsNDBFU
Wikipediaの
http://ja.wikipedia.org/wiki/ ○○○○○
の○○○○○には日本語をエンコードした文字列が入っています。
例.[てすと]をエンコードすると%5B%E3%81%A6%E3%81%99%E3%81%A8%5D
PHPでこのようなURLはどうやったら作れますか?
>>881 専用関数がたしかあった。
「PHP逆引き大辞典」
みたいな本を開いて、
「日本語処理」
とか、そういう章をあさっていけば
たぶん見つかる。
それか、グーグルで、
「PHP 日本語 文字列 エンコード 関数」
と入れて検索すると、たぶん見つかる。
rawurlencodeやらurlencode
884 :
nobodyさん :2011/08/26(金) 23:45:55.40 ID:JWsNDBFU
>>882 ありがとうございます
実はurlencode()関数は知っていますが上手くいかなかったんです...
Wikipediaの wiki/○○○○○とかニコニコ動画の tag/○○○○○
○○○○○の部分のコーディングについて経験者の方が
おられましたらご教授頂ければ幸いです
(特に作る際のmkdir($dir_name)のやり方等ですかね)
経験者? エスパーの間違いじゃね
文字列をエンコードしたいと言うわけではなく URLに含めた文字列を取得したいという事?
887 :
nobodyさん :2011/08/27(土) 00:16:29.36 ID:lpaF2D26
うんことかま○ことか下品な言葉を使わないでください
>>887 ディレクトリを作りたいのかURLを作りたいのかどっちなんだ
URLならurlencodeで出来る
何がどう上手くいかなかったんだ
mkdir("うんこ"); っていうディレクトリを作っといてurlencodeしたURLでアクセスすれば見れるよ
wikipediaのようなURLでの表示の仕方が解らないという事だな 最近はどうしてるかしらないけど 環境変数のPATH_INFO取得したりmod_rewrite使えば実現できるよ wikipediaの場合うんkとかのディレクトリが有るわけではない
>>887 いっとくけど「%E3%81%86%E3%82%93%E3%81%93」という文字列をブラウザが送信しても
ウェブサーバーが%xxをURLエンコード文字列と解釈して「うんこ」に変換しちゃうよ
だから「%E3%81%86%E3%82%93%E3%81%93」というディレクトリを作ってもそこにはアクセスできないよ
だからうんことかま○ことか下品な言葉を使わないでください
ち○こは可。
例文で予約されてる単語はhageだろ。 日本語の時はハゲ。漢字の時は禿。かなははげ。 うんこちんこまんこじゃなくて、はげ。わかった?
hageなんて予約されてねーよボケ
897 :
nobodyさん :2011/08/27(土) 01:11:47.60 ID:lpaF2D26
>>890-892 ありがとうございます!全ての疑問が解決しました!!
最初から%E3%81%86%E3%82%93%E3%81%93ってディレクトリがあるんだと
勘違いしていました(笑)
>>893 定期的にその用語を使う質問が出てくるけど全部同一人物だと思ってる。
多分、皆の食いつきがいいからあえてその用語を使ってる故意犯。回答しないでスルーすればいいのに。
900 :
nobodyさん :2011/08/27(土) 12:39:47.70 ID:16DOerPq
てst
てst禁止
>>899 うんことかま○こを持ってるのはお前だけじゃないよ
何言ってるの?
普通持ってるでしょ
メタ構文変数を使えばいいのに
一連の荒らしは同一人物による自演。
907 :
nobodyさん :2011/08/27(土) 21:53:24.81 ID:He/A7o7q
スーパーサンプルの2-3/rcvarray.phpからの抜粋です。 <?php $array = array("menu"=>"\≪\i!?", "price"=>"380", "date"=>"2005/01/01"); echo "配列の内容(エンコードした場合)"; print_r(unserialize(base64_decode($_POST["ar_enc"]))); echo "<p>配列の内容(そのまま渡すと失敗)"; print_r($_POST["ar"]); ?> <form method="POST" action="<?php echo $_SERVER["PHP_SELF"]?>"> <input type="submit" value="A÷?R" name="sub1"> <input type="hidden" name="ar" value="<?php echo $array ?>"> <input type="hidden" name="ar_enc" value="<?php echo base64_encode(serialize($array)) ?>"> </form> を実行すると、 配列の内容(エンコードした場合): Notice: Undefined index: ar_enc in /UNIONFS/opt/lampp/htdocs/samples/chapter2/2-3/rcvarray.php on line 14 配列の内容(そのまま渡すと失敗): Notice: Undefined index: ar in /UNIONFS/opt/lampp/htdocs/samples/chapter2/2-3/rcvarray.php on line 16 というエラーが出るんですが、どうやって直せばいいのですか? $arrayの直後に $ar_enc = $array; $ar = $array; と挿入してみましたがダメでした。
909 :
907 :2011/08/27(土) 22:17:12.87 ID:He/A7o7q
>>908 まだ、うまくいきません。
まず、
$ar_enc = "";
$ar = "";
にしてみましたが、同じエラーでした。
それで@でエラーを抑制すれば抑制されましたが、結果が何も表示されませんでした。
それで
//$ar_enc = "";
//$ar = "";
とコメントアウトしても結果が何も表示されませんでした。
ずばりの答えをお願いします。
しかし、スーパーサンプル第2版は10万部も売っているんでしょう?
なぜ、こんなバグ入りで売っているんですか???
11刷目ですよ?
そんなエサで その手のエラーはそこに至るまで何度も経験してるだろ
911 :
907 :2011/08/27(土) 22:23:44.19 ID:He/A7o7q
>>910 いやいや、そういうやりとりするためにここに訊きに来たんじゃないんです
サンプルを実行する、まずはそこから始めてるということです
答えないなら黙っててください
釣り下手すぎw
初心者はLAMPP使うな
HTTP_requestで画像データだけをそのままPOSTしたいのですが addFileやPostDataでは 名前=画像データ になってしまいます どうすればいいでしょうか
915 :
914 :2011/08/27(土) 22:34:27.90 ID:re5o6H/V
すみませんID出し忘れました
917 :
914 :2011/08/27(土) 22:57:47.37 ID:re5o6H/V
名前=画像データって何?
key=valueだろ
920 :
nobodyさん :2011/08/28(日) 08:09:59.10 ID:Lhrseqw0
配列に id、値(日付データ) [1001][1229247923473] [1002][6439473927397] [1003][4836883] のような値が入っており、新しく値を追加する際、同時に日付データの値が一番値が少ないものを 破棄してから追加したいのですが、 スマートなやり方ってありますか?
配列をソートして一番小さい値を入れ替えるとする。 array_multisort($array,SORT_ASE); $array[][]=($a,$b); 結果は保障できないが。
922 :
907 :2011/08/28(日) 16:15:19.42 ID:???
>>912-913 釣りじゃねぇーっ!
初心者だからこそのLAMPPだろが!
ただな、「送信」ボタン押すのを忘れてただけだ、この野郎!
タンポポ載せる仕事に応募してくるわ!
923 :
nobodyさん :2011/08/28(日) 20:31:08.25 ID:i1UEPL4O
$text = "あいうえおabcかきくこけ,...()==−"; こんな感じに変数があったとしてマルチバイト文字(記号も含めて)のみ残して半角(記号も含めて)のみ残す方法ってどうやれば良いのでしょうか?
>>923 マルチバイト文字を残したいのか半角文字を残したいのかどっちなんだ
926 :
nobodyさん :2011/08/28(日) 20:52:38.03 ID:i1UEPL4O
>>924 できました。ありがとうございます。
文字コードで指定すればよかったんですね。
927 :
nobodyさん :2011/08/28(日) 20:53:46.18 ID:i1UEPL4O
>>925 文書変でしたね。すみません。
全角を削除して半角を残したかったです。
>>924 の方法でそれができました。
>>924 が理解できて思いつかないっておかしいだろw
質問は慇懃でも、ちょっと煽られるとその口調かw
なんか見えない敵と戦っているあほが一人いる。
妄想癖が強い
>>930 は病院へ行くべき。
なんでそんなに必死なの?w
なんでそんなに必死なの?w
934 :
nobodyさん :2011/08/28(日) 21:59:37.53 ID:i1UEPL4O
なんか荒れていますね。自分と違う誰かと見えない敵(?)と戦っている精神やんでいる人がいるようですが
>>930 以外の回答してくれた皆さんありがとうございます。
質問は慇懃でも、ちょっと煽られるとその口調かw
なんか見えない敵と戦っているあほが一人いる。
しょうがないな whileって役立たずのゴミだよな 使うやつはただの生ゴミ生産機
938 :
nobodyさん :2011/08/29(月) 14:06:11.29 ID:WkIuqk4e
うpローダーってオレでも作れんじゃねー?って思って作成してるのですが、 パス付きで、画像を見れるようにしたり、 削除したりってphpだけでできるのですか? やっぱmysqlを使うのですか?
>>938 phpだけでできるけどDB使った方がいい
PHPだけで可能だけど うpされた情報(観覧パスやら画像の情報やら削除パスやら)を どう保持するかだな まぁそれで一般的にはDB使ったほうが楽だし安全だしでDBが使われる
941 :
nobodyさん :2011/08/29(月) 14:28:29.07 ID:WkIuqk4e
だからといってDB必須と考えないほうがいいよ
MySQLの敷居が高いんならSQLiteで充分だろ。その用途なら
たかがMySQLに敷居の高さもクソもない 世の中にはもっと敷居の高いものがたくさんある
初心者に富士登山は厳しいから高尾山辺りにしとけといったらエベレストK2の話をされたでござる
MySQLで敷居が高いとか言ってたら何も作れんよ
MySQLは敷居高いですよね
>>945 MySQLと比べたらSqlliteの方が敷居高いんじゃねーの?情報少ないし
お前の言ってるのは富士山は危ないから錫杖岳にしとけって言ってるようなもん
アスペ多すぎだろ
950 :
nobodyさん :2011/08/29(月) 18:50:47.94 ID:kI+Eeky5
PHPで円グラフを1ページに複数表示させたいんだけど、いい方法ないかな? 今、「pChart」使ってやろうかと思ったんだけど、これじゃ複数表示は無理? 詳しい人教えて!
951 :
nobodyさん :2011/08/29(月) 18:56:35.46 ID:WkIuqk4e
PHPその他プログラム言語で、value=値という使い方をよくしてますが、 valueは価値、価値観と英語の辞書に載ってますが、何でvalue=値 という使われ方なんですか?
>>951 ほんとに辞書引いたの?WEBの辞書だけ見てもvalueに大きいくくりだけで12個の意味あったよ
954 :
nobodyさん :2011/08/29(月) 19:07:26.63 ID:WkIuqk4e
すいません。紙の辞書しか引いてませんでした。 valueで数値なんですね。わかりました。
価値と価値観しか書いてないって、その辞書簡易版すぎるだろw
そんな細けぇこと気にしてたらきりがないぞ explodeなんて爆発するだしw
初カキコ…ども… 俺みたいな中3でグロ見てる腐れ野郎、他に、いますかっていねーか、はは 今日のクラスの会話 あの流行りの曲かっこいい とか あの服ほしい とか ま、それが普通ですわな かたや俺は電子の砂漠で死体を見て、呟くんすわ it'a true wolrd.狂ってる?それ、誉め言葉ね。 好きな音楽 eminem 尊敬する人間 アドルフ・ヒトラー(虐殺行為はNO) なんつってる間に19時っすよ(笑) あ?あ、義務教育の辛いとこね、これ
>>950 携帯サイトじゃないなら、jqueryで書くとか。
pChartで複数も出来る。 一個しか出せないなら ファイル複数にして <img src="image.php" /> <img src="image2.php" />
どうしてphpのサイトにはWindowsの64bit版phpバイナリがないの?32版だけだよね. 何か理由でもあるの?
よく本のサンプルコードとかで 結合演算子使ったり、何回もecho書いたりしてるけどさ { echo"$hoge"."<br/>" echo"<br/>"; echo"$hoge2"; } とかって分けて書いてるけどこれ普通に { echo"$hoge<br/><br/>$hoge2"; } って書いても動いちゃうじゃん なんでわざわざ面倒な書き方してるの? こっちの書き方の方が直感的で楽なのに
>>961 改行した方が読みやすい人はそうするんだろう
配列を利用するとスマートに書けるが、好みとしか言いようがない
>>961 速度面で言えば、それらよりも
echo $hoge, '<br/><br/>', $hoge2;
という具合に、カンマ区切り、変数は引用符の外に出す、引用符はシングルクォートを使う
とした方がよい
↑騙されやすい馬鹿発見
966 :
nobodyさん :2011/08/30(火) 00:51:25.59 ID:BmWDrZ5P
echo"$html"; にはhtmlのソースが入ってます ソースの中にダブルクオーテーョンが含まれるからか Parse error: syntax error, unexpected T_STRING, expecting ']' とエラーになってしまいます。 この変数をどうやって表示すればよいでしょうか?
] が原因だボケ 付近を捜してみろ
>>966 ]
↑が無い、って言われてるんだから、
[
だけ書いて、閉じるのを忘れてるんじゃないの?
969 :
nobodyさん :2011/08/30(火) 01:20:16.12 ID:BmWDrZ5P
[]を使ったのはmysql_fetch_assocで取り出した 連想配列で$html[カラム名]で使ってますね でも閉じ忘れはないです 他のカラム名では大丈夫です 変数にhtmlソースが入ってる時だけエラーになっちゃうんですよね〜
たぶん1ヶ所だけ全角で書いてる
972 :
nobodyさん :2011/08/30(火) 01:40:36.50 ID:BmWDrZ5P
読めた!完全に読めました おそらくecho"$html[カラム名]";で $htmlの中のhtmlソースにダブルクォートが含まれるせいで、 途中で変数が終わったとみなされてるんです だから最後の]が表示されないまま、不本意なダブルクォートで、 勝手に閉じられちゃってます
そしたらシングルクオートに変えてみたら?
974 :
966 :2011/08/30(火) 01:46:59.81 ID:???
>>973 シングルクォートは変数を展開できないでは?
ただの$htmlって文字列そのものが出力されてしまうと思うんですが
>>972 最初とソース違うじゃねーかw
カラム名は実際なんなの?カラム名はクォーテーションでくくってるの?
あとecho 変数のみなら外のクォーテーション要らないよ
977 :
966 :2011/08/30(火) 02:12:57.80 ID:BmWDrZ5P
なぜか解決しました
カラム名[2_tag]→[tag]に変えたら解決
>>976 死ねやブサメン低学歴 非リア充
980 :
nobodyさん :2011/08/30(火) 02:18:32.64 ID:BmWDrZ5P
なぜか解決じゃねーよバカw 初めからソース正確に出せバカw
982 :
nobodyさん :2011/08/30(火) 02:23:23.30 ID:BmWDrZ5P
忍法帖【Lv=4,xxxP】 とかなんだよwwwww 2chのくだらないサービスに金払ってんのかよwww おまえ下流臭いな?
忍法帖すら知らない馬鹿発見
情弱にはPHPはおろか2chを使うのも難しい
↓こんな質問してるヤツが下流臭いとかw >966 名前:nobodyさん[] 投稿日:2011/08/30(火) 00:51:25.59 ID:BmWDrZ5P [1/6] >echo"$html"; にはhtmlのソースが入ってます >ソースの中にダブルクオーテーョンが含まれるからか >Parse error: syntax error, unexpected T_STRING, expecting ']' >とエラーになってしまいます。 > >この変数をどうやって表示すればよいでしょうか?
↑そんなお前も充分下流だから
ID消し忘れちゃったんだろ 可愛そうだからそっとしといてやれよ
レンタルサーバーのCGIモードとモジュールモードの大まかな違いは何でしょうか??
下記はどんな動作になるのでしょうか? perlしか使ったことが無いのでわかりません。 "<<" は記号なのでググってもでてきませんでした。 $aaa=15 $bbb=-100 ($bbb << (20-$aaa)) できればperlで書くとどんなコードになるか教えていただけるとイメージがわきます。
bitシフトperlも同じ
スレタイも読んでくれな
誰か次スレよろしく
ほーい
埋め
____ /__.))ノヽ .|ミ.l _ ._ i.) (^'ミ/.´・ .〈・ リ 次はわし、仙一(1001) .しi r、_) | | `ニニ' / ノ `ー―i
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。