【PHP】下らねぇ質問はID出して書き込みやがれ 124
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 123
http://kohada.2ch.net/test/read.cgi/php/1348583995/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
【簡易FAQ】
1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→
http://example.com/が例文などのために予約されている 。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
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に保存?
→ 好きにしてください
質問者はまず
>>1 を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは
>>980 が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 123
http://kohada.2ch.net/test/read.cgi/php/1348583995/ ◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
9 :
nobodyさん :2012/11/21(水) 18:26:27.62 ID:ROWZyMSl
初心者です。 ヘッダー部分を別ファイルで一元管理を行いたいのでご教授ください。 メニューバーにタグを入れることにより、メニューの一部分が強調され、自分が今どこにいるかわかるようになっています。 PHPで実行するとき、echoでヘッダ部分を括り変数展開が行われるようにし、 メニューバーの各箇所に$menu_1,$menu_2,$menu_3と記述していき switchでDBから引き出した値をもとに上の変数のいずれかにタグを代入しているのですが、 他の変数が定義されていないことになり、少し気持ち悪いです。 このような場合どのようにしたらよいのでしょう?
他の変数の定義をしてください 実際にどうやってやるかを提示するのは、エスパー以外には無理です。
3行目以降何言ってるか意味不明
12 :
nobodyさん :2012/11/21(水) 18:47:19.89 ID:ROWZyMSl
すみません。具体的に書くと、 <ul> <li class='kyotyo'>ホーム</li> <li>ブログ</li> <li>ショップ</li> </ul> という感じにhtmlではなっているのですが、この部分をphpで一括管理したいので、 echo "<ul> <li $menu_1 >ホーム</li> <li $menu_2 >ブログ</li> <li $menu_3 >ショップ</li> </ul>"; という感じにしています。$menu_のいずれかにClass='kyotyo'を代入する形です。
初心者の考えそうなことだなw 昔は気持ちがわかったのかもしれんが今じゃ意味不明だわwww 超ガンガレ
>>12 とりあえず $menu_1〜3 を空文字列で初期化すればいいよ
16 :
nobodyさん :2012/11/21(水) 20:20:52.62 ID:ROWZyMSl
>>13 ,14
ありがとうございます。
とりあえずそうしてみます。
>>15 もしよろしければ、ループでの処理を書いていただけませんでしょうか?
[ menu_tbl ]
key | page_name
home | ホーム
blog | ブログ
http://test.com/blog/ ↓
http://test.com/index.php?page=blog if(apc_exist('my_menu'){
$menu = apc_fecth('my_menu');
}
else {
$menu_data = $this->db->getMenu();
$menu = '<ul>';
foreach($menu_data as $key => $page_name)
{
$menu .= '<li';
if($key === $_GET['page']) {
$menu .= ' class="bold"';
}
$menu .= '>' . $page_name . '</li>';
}
$menu .= '</ul>';
apc_store('my_menu', $menu);
}
echo $menu;
>>15 ループ?
>>17 が回答??
それとも3つの変数の初期化をforループで回すってこと?
19 :
nobodyさん :2012/11/21(水) 21:41:54.83 ID:ROWZyMSl
>>17 ありがとうございました。
これで拡張や管理が楽になります。
良回答だな キャッシュもついてるし
良回答?自演かw これくらいDBに入れないでいいだろ ロジックとビューは分離しないの? APCキャッシュ使いたいだけちゃうか
じゃあDB使うのと使わないの境目は何?
if () { } else { }
つうか標準バンドルされてないのにapc関数使うの紹介するなよ
>>9 で質問者自身がDBから値を引っ張ってるって書いてあんだろ。
そして質問者自身がechoで表示してる、それに合わせたんだろ。
ビューとロジックの分離とかw 雑魚は黙ってろよw
質問者のレベルに下がって回答できないやつっているんだよね。 でも、大抵のヒトはそんなもんだから、それは仕方のないことだよ。
MySQLを使ってる可能性だってあるだろハゲ 配列さえ使えないゴミにはDBは早いが
酷い質問スレだな VIPとか嫌儲より罵詈雑言が多いぞ
だから何
他人からの指摘も、罵詈雑言としてしか受け入れられないんだし。 でも。これが普通レベルの人たちです。
的確な指摘すら罵詈雑言呼ばわり
761 :nobodyさん :sage :2012/11/22(木) 10:11:23.26 ID:??? 間違っていた場合は問題があるだろハゲ 間違ってる箇所を教えてほしければ土下座しろゴミ 28 :nobodyさん :sage :2012/11/22(木) 10:02:55.36 ID:??? MySQLを使ってる可能性だってあるだろハゲ 配列さえ使えないゴミにはDBは早いが こいつコテも使ってないのによくここまで同一人物主張できるよな
で? ハゲとゴミが共通してるだけ?
>>26 じゃあAPCはどっからきたの?
雑魚はお前だろwww
>>34 あるだろハゲっていう口調も一緒だろ?
こんなに知能が低そうなのが二人いるとかありえないだろうから同一人物だろ
禿は毛が無いから禿なのか? 禿だから毛が無いのか?
生えないから禿なんだろ
土下座土下座うるさい厨房はほっとけよ
>>36 同一人物という根拠はそれだけ?
見つけて嬉しかったのか?
同一人物認定して勝ち誇ってるとか可哀想
レス内容でここまで同一人物だと主張できる奴も珍しいよなって話だろ
片方はコード書いてんだから、文句ある奴もコード書けば全て解決するな。
あ?コードが欲しいのか? コードを出せば消えてくれるのか?
さっさと書けっつってんだろはっっっっっげ
>>45 さっさと書けよ禿
かけないんだろ?土下座しろって言うんだろ?
煽れば書いて貰えるとでも?
ほーら書けないんじゃんwwwwww
>>47 乞食なら乞食らしく振舞わないと誰も恵んでくれないぞ
完 全 勝 利 * * * + n ∧_∧ n + (ヨ(*´,_>`)E) Y Y *
とりあえず禿がコンプレックスになってて禿が口癖の禿は消えろよ
俺は誰の指図も受けない
俺は× 禿は〇
んー、まだ禿てないので「ハゲ!」と言われても別になんとも思わないんだよなぁ 禿てる人にとっては罵る言葉の最高峰なんだろうけどさ
なんかデブとかブスとかならいってもいいけど禿は禁句って感じだよな 俺に顔でかーって言ってたやつに うっせえ禿げっつったら場が静まり返ったわ
顔でかは黙ってろよ
うっせえええええええええええええええええええええええ はっげ!!!!!!!!!!!!
この辺のまとめて削除依頼してくるよ
ワロタw
糞コテだけシカトされてんじゃん 存在感薄いコテだから気づかれなかったのかな
IPアドレス219.104.244.146 ホスト名hmmt119146.catv.ppp.infoweb.ne.jp IPアドレス割当国日本 ( jp ) 市外局番該当なし 接続回線CATV 都道府県静岡県
>>28-33 を削除依頼しないあたりに悪意を感じる
頭おかしいんじゃないの?
unset(自治厨);
system("rm -rf 自治厨");
(屮゜Д゜)屮質問カモーン
71 :
nobodyさん :2012/11/23(金) 04:09:33.20 ID:0JQrwjtR
クラスのアクセス権についてです 何故必要なのですか? だってオブジェクトのプロパティやメソッドにアクセスする時って、絶対説明読みますよね そこで「このメソッドを使いましょう」って書けばそれで済むじゃないですか。 それでもコードを自力で読んでアクセスしたいならさせればいいですし、 やろうと思えばclassをコピペしてアクセス権書き換える事だって出来るじゃないですか。 C言語のdllファイルみたいに、他人が作ったライブラリの中身を書き換える事が難しい言語ならともかく スクリプト言語なら全く意味が無いと思うのですが、何故必要なのかを教えて下さい。
3行目以降何言ってるか意味不明
ようはカプセル化の説明をしてくれってことか
防御的プログラミングって言葉を知ってるか?
75 :
nobodyさん :2012/11/23(金) 05:01:40.33 ID:0JQrwjtR
アクセスされたら困るからそうしてるので、 アクセスしたいなら書き換えたらいい おしまい
いろいろ書いたけど 結局アクセスしたいならpublicに書きかえればという考えに落ち着いた
A「女子にパンツなんか要らないよな」 B「アクセスしたいなら脱がせればいい」
パンツはアクセスしないでほしいから履くものじゃないだろw
>>71 PHPの開発者もアクセス権なんかは糞みたいなものだけど
まぁ、みんなが欲しがってるのでつけといたよ
みたいな発言してるから、その考えもあながち間違いではないと思うよ。
ソースは?
オブジェクト指向のお勉強をしてください
83 :
nobodyさん :2012/11/23(金) 18:25:53.64 ID:EJg4ps4f
>>71 俺もその考え方は分るよ。
昔は面倒だから全部publicだったし、実際それで問題は起きない。
でも第三者に使わせると絶対バカが出てくるから、仕方ないからprivateも導入した。
84 :
nobodyさん :2012/11/23(金) 18:28:05.42 ID:EJg4ps4f
まぁ、彼のいってる事の意味を本質的に理解できない有象無象は、頭の良し悪しとは別に、頭がかたいね。
彼ってどれのことだ
再利用する側が内部のコードを意識する必要がないように隠蔽するのがカプセル化
車輪の再発明が好きなやつには理解できない概念
一度SourceForgeかなんかのプロジェクトでチーム開発に参加してみたらいいんじゃないの?
>>83 のような考えはオブジェクト指向の設計思想にそぐわないので参考にしないように
リフレクションが使える時点で アクセス権なんてのは砂場の線引みたいなものなんだけどな
クラスの内部でしか使うことを想定してないメソッドもpublicにすんのか?w
そこをpraivateにしても読めるし変更できるし、全然privateじゃねーじゃんってことだろ。
自分で決めるルールだしな。たいしたことないものだと理解できたんなら それであってるから。
praivateにしたらそりゃ隠ぺいできないだろうな
つまり、まとめると、 PHPは、女子のパンツのシミ
みみっちいアプリを量産するための言語にそもそもオブジェクト指向実装なんていらなかったからな。 Javaからの客寄せに実装しただけ。 おまえらは手続き型でセコセコみみっちいのを量産してればいいんだよ。 速度も早いしいうことなしだろ?
PHPerはそのシミに群がる虫けらども
>>90 確かにpraivateにしても、全然privateじゃねーじゃんってのは同意だなwww
冗談はおいといて、隠蔽化をソースを読まれたくない、中身を知られたくない、
って勘違いしてる奴が多いのかな
そういう考えだったら、ソースを読める時点でソースがpublicだろw
そういう隠蔽じゃないし
97 :
nobodyさん :2012/11/24(土) 01:03:19.53 ID:XZgD7S0e
99 :
nobodyさん :2012/11/24(土) 01:09:15.04 ID:XZgD7S0e
マルチになっちゃって申し訳ないわ。ごめんね
要するにアクセス権に関しては、 砂場の線引であろうが、パンツのシミであろうが、 自分でルール作るよりかは随分便利だってことでいいだろ。 それ以上でもそれ以下でもないよ。
101 :
nobodyさん :2012/11/24(土) 12:38:01.43 ID:QlZbs/Cx
【OS名】Linux 【連携ソフトウェア】MySQL ImageMagick 【PHPのバージョン】MySQL 4.0.27 【質問内容】 PC、ガラパゴス両対応のサイトを、 MySqlのバージョンの都合上EUC-JPで構築しています。 で、手持ちのガラケーではEUC-JPでも影響はなかったようなのですが、 一部端末では文字化けや、POSTが出来ないなどの不具合があるみたいです。 それで、SHIFT_JISで出力するのが一番硬いかな?と 吐き出すコンテンツを出力前に丸呑みして、 mb_convert_encodingを介してから出力しようかと思っています。 もっとスマートな方法はありますか? お願いします。
102 :
101 :2012/11/24(土) 12:39:27.24 ID:QlZbs/Cx
以下訂正です。 【連携ソフトウェア】MySQL 4.0.27 【PHPのバージョン】PHP 5.2.5
MySQL4.0もPHP5.2ももうサポートされてないよ
104 :
110 :2012/11/24(土) 12:50:20.03 ID:???
>>103 借りてる環境がそうなので仕方がないのです。。。
>>101 あうと、その他で
文字コード違った記憶が
遠い昔の話だ
106 :
nobodyさん :2012/11/24(土) 13:00:39.39 ID:EIr96TZT
CURLでレスポンスヘッダを取得したいんですけど、どうしてもCURLOPT_WRITEHEADERで一度ファイルを作る必要があるのどうにかなりませんか php://memoryに書き込ませようと思ったけど、curl_multi_initで複数個のcurlを作れないし
ファイル作るとどう問題が?
108 :
nobodyさん :2012/11/24(土) 14:56:43.13 ID:sD6jEt/b
>>96 >praivate
wwwwwwwwwwwwwwwwwwwwww
バカぐらま
そういうとこ拾い上げてもしょうがないじゃん くだんねーな小学生はネットやるなよ
大人の会話に参加したかったんだろ、察してやれ。
111 :
nobodyさん :2012/11/24(土) 16:41:14.54 ID:sD6jEt/b
英語も出来ない雑魚がコードを書くなよwww private だよ。いい加減覚えろや。雑魚グラマども。
これは恥ずかしい また出てきちゃったところが
>>90 に言うのはまだ分かるが、
>>96 に言っちゃってるのが痛さを際立たせてるね
114 :
nobodyさん :2012/11/24(土) 18:57:17.33 ID:sD6jEt/b
you should learn english las ,but not least your brain is worst or rot.
、、、 , , _ ,. -┬i^i、._ ィ`,、,、,、,、,.、'、 . / | | .|=ゞ=、 __l/\ v~/!| l. l l l \\{f‖ミゞ, ,ィ≪:lf^i もういい・・・! /ヽ. ノ「,ト、「.lヘ‐iヾ|rー~r〉〉,こlレ' / `ヽ//| ト、ヽlイ| |/|{王王王王}ト、 | レニ| lニゝ冫! l!L_, , ,ー, , , ,_」シ’、 もう・・・ ヽ __|ーL|┴^ーヽ>'^ヾ二三シ´\\ ,ゝ,/ .}二二二二二二二二二lヽ. ヽ \ 休めっ・・・! l/ |ト、./´\ ||. レ'´ ̄`ヽ || ! 、\ ||. / :| || |.l l゙!.|i |ヽ) |l/ / 休めっ・・・! || `ヘ)U'J /-─ ,イ.| || _ /-─ / ヽ| sD6jEt/bっ・・・! || r‐-゙=っ`ヽ,.--r-─ ''"´ ̄`ヽ / } ||. {三二 | │ / / ||. ヾ=--一'`ーゝ _,. く ノ|
116 :
nobodyさん :2012/11/24(土) 19:35:00.50 ID:reHCp+jT
ちょっと質問させてください。
php.iniを編集してApache2.0.64を起動したところ、php.iniにsyntax errorが出ました。
ファイルを開いてみたものの、どこに構文あやまりがあるのかわかりません。
エラーメッセージは「syntax error. unexpected BOOL_FALSE in C:\Windows\php.ini on line 1046」です。
↓ファイルの一部抜粋
[Pcre]
;PCRE library backtracking limit.
;
http://php.net/pcre.backtrack-limit ;pcre.backtrack_limit=100000
;PCRE library recursion limit.
;Please note that if you set this value to a high number you may consume all
;the available process stack and eventually crash PHP (due to reaching the
;stack size limit imposed by the Operating System).
;
http://php.net/pcre.recursion-limit ;pcre.recursion_limit=100000
[Pdo]
; Whether to pool ODBC connections. Can be one of "strict", "relaxed" or "off" ←ここに問題があると言われる
;
http://php.net/pdo-odbc.connection-pooling ;pdo_odbc.connection_pooling=strict
;pdo_odbc.db2_instance_name
[Pdo_mysql]
どこに構文エラーがあるか分かる方がおられましたら、ご指導ください。
offでも消してみたら? あとはファイルうp
118 :
nobodyさん :2012/11/24(土) 20:04:10.09 ID:reHCp+jT
>>117 ありがとうございます。
すいません、UPについては私の技術的にちょっと難しいです^^;
ここについてはPHPの5.3.5をダウンロードした時から、いじっていないのですが…。
119 :
nobodyさん :2012/11/24(土) 20:33:19.71 ID:EIr96TZT
120 :
nobodyさん :2012/11/24(土) 20:41:58.06 ID:TP/2drOU
>>87 いやいや、お前の方が質問者の意図を汲み取れてないって。
原理主義の話はしてない。実際に使う時の話をしてる。
こっちはお前の言ってる事の更に上の話をしてるんだっての。
121 :
nobodyさん :2012/11/24(土) 20:42:36.95 ID:reHCp+jT
お騒がせしてすいません。
>>116 です。
原因がわかりました。php.iniの【root_doc】の末尾を【"】で区切っていなかったことが原因のようです。
root_docは400行あたりに書いていたので、見落としました。
本日のキチガイ ID:sD6jEt/b ID:TP/2drOU
125 :
nobodyさん :2012/11/25(日) 00:08:15.93 ID:bYqcAo7Y
まぁ事実を認めるのは辛いよね。
>お前の言ってる事の更に上の話 これは笑うところだよね・・・?
更に上の話をしだしたら、最後の方は「殴られて気絶してる間に指を切り落とされて指紋認証突破されるからprivateじゃない」とかなるから privateって書いてたらprivateで良いと思う
128 :
nobodyさん :2012/11/25(日) 08:32:19.95 ID:Her++2al
教えてください。 $a = 'hoge'; このように定義された変数 $a から、変数 $hoge を生成するには どのようにコーディングすれば良いですか?
質問の意味がわかんねえよ!!!!! ふざけんなてめえ!!!!!
'hoge' の文字列から変数名 hoge の変数を定義したいんだろ?
あ〜俺それ知ってるわマジ知ってる でも教えてやんねーwww
${$a}
>>128 if ($a == "hoge") {
$hoge = ゴミ;
}
とでも書いとけゴミ
135 :
nobodyさん :2012/11/25(日) 10:59:33.86 ID:bYqcAo7Y
>>87 あーこういう奴いるな。こういう奴が居なければ
>>71 も好きなようすればいい。
でもたいてい
>>83 の言うように、バカが出てくるから、privateにする。
クラスのアクセス権は、頭の良い人用にあるんじゃなく、頭の悪い人用にあるんだよ。
つまり
>>87 がこの議論の中で一番バカ。
フールプルーフと一言書けば済む話をわざわざ長文にする
>>135 が馬鹿を晒しました。
突然なんですが、みなさん、PHPを修正する時は何かソフトを使ってます? ぼちぼちやってる中級者くらいだったりするんですが、未だにテキストを直接修正するタイプです。 既存の大き目のアプリを修正することになって、何かよいソフトないか探してます。 JSとかCSSが複雑に絡み合ってる感じのWEBアプリです。
IDEのこと?
絡み合ってるのは下手糞だから
だからといって捨てるわけにもいかない
あるメソッドを変更しようとして影響範囲(呼び出し元)を調べるとき、 privateであればそのクラスのみ調べればよい
PHP厨って何か根本的にレベルが低いよな そのゴ.ミ同士でレベルが高いとか低いとか言ってるんだもんなw
まだ生きてんのか、このクズ
PHPはク_ズ それを捨てないPHPerもク_ズ
>>128 $a = 'hoge';
${ $a } = $a;
echo $hoge;
PHPってパチンコみたいなもんだろ 金と時間の無駄でしかないのにハマる異常者がいるという パチみたいに中毒性でもあんの? それともまともな言語の習得ができないorしようという発想が生まれてこないほどアフォなの?
>>138 IDE等は最初っから使わずsublime text editor2使ってる。
僕はEclipsewithPDTちゃん!
メモリ1GBのクソスペックでヒィヒィ言いながらNetBeans使ってたけど、4GBにしてもらったのでやっとまともに使える
メモリ1GBだとOSだけで終っちゃいそうだな
>>153 メモリー512MBでネットビーンズ使ってる人に謝ってください
(512MB!?、今時512MBのメモリなんてあったっけ?)
>>155 XP起動しただけでもうヤバいだろ
>>156 クソスペ1GBだった頃は512MB2枚刺しでした
Androidアプリ作るときは何度止まったことか・・・
今は2GB2枚刺し
32bitXPなので3.5GBくらいしか使えてないけど
やっぱりNetBeansってeclipse に比べたら軽いの?
昔のeclipseとNetbeansの差が今はちょうど逆だなw
余裕の大容量640KB
i7だけどnetbeansくっそ重いctrl押したら固まる
うちも今年の3月に買い換えるまで 512MBのXPで普通にvisualstudioとかeclipseとか使ってたわけで 無印XPなら128MBでも動くし 3月にC2Dで1.5GBに買い替えたけど 笑っちゃうほど快適 chromeでタブを数十個開けるし 仮想マシンでWin7動かせるし やっぱXPは神OS でもそんなXPでも長く使うと重くなってくるから今はlubuntuでネットビーンズ使ってる php開発程度ならネットビーンズさえ動けばスペックは要求されない
今はeclipseのが軽いのか
ださい自慢してんじゃねえよ貧乏人
今年の3月にC2D メモリ1.5GBに買い換えるってどんな神経してんだよ 100円で売ってたのか?
>>165 いや中古で安かったから
確か15000円くらい
PHP開発にCore iシリーズがオーバースペックなのは火をみるより明らかだしこれでいいやってことで
メモリーは必要になったら後で増やす(最大2GB)
次のPCは自作予定
中古とかよく買えるな
PHPで使うIDEとしてPHP Tools for Visual Studio ってのはどうよ?
スレチなんだよカス
俺はNetBeansだわ
おれ、netbeans捨てました。 理由はcoffeescriptとstylusの色付けがうまくいかないから。 移転先はsublimetext。 こいつは自分で色付けできる。 自作拡張についても自分で色付けできるからナイスです。
Sublime Text 2調べてみたけど面白いな しかし日本語に難ありじゃちょっとな
日本語に難ないよ、 それはtextmateの1じゃなかろうか。
スレチな話題続けるなボケ まとめて消えろ
俺は誰の指図も受けない
またお前か?巣に帰れよ
178 :
nobodyさん :2012/11/27(火) 11:54:40.27 ID:FBiuTRnj
インスタンスを作成するときに指定した引数って 自動的にコンストラクタの引数に入るんですか?
試せば
180 :
nobodyさん :2012/11/27(火) 13:53:46.81 ID:FBiuTRnj
試した渡った
>>173 SJISやUJISの対応のことかな。プラグインで解決だけど。
あとは左上に目線が移動する手間があるくらいかな。
デバッガ走らせることもBuild System経由でできるし
PHP用のエディタとして最低限の機能は揃えているよ。
頭おかしいんじゃないの
あなたの頭です
184 :
nobodyさん :2012/11/27(火) 18:14:49.32 ID:FBiuTRnj
いいえ私です
>>181 いや、日本語打ち込むと文字の表示がカーソル位置からズレる現象の事
文字コードはutf-8だからいいんだけど。
Sublimeが良いとかどうせ自演だろと思って見たけど結構よさそうだな とりあえず試してる
サブライムつかってるけど、 自分にあうパッケージを入れると唸るぞ
いつまで続けてるんだよ
サブライムクローン問題
Sublimeのお陰でようやく卒業できそうだわ、メモ帳から。
sublimeはカスタマイズの幅が広いから細かい設定大好きな人にとっては天国だよな あらかじめいろんな物がそろってるIDEが好きな人とは対極的なものな気がする 日本語打ち込むとズレるってのは海外製のエディタでよくありがちだね そんなバグがあるなら使いたいとは思わないだろう でも使ってる人がいるということは回避できるのか、そんな問題は起こらないのかのどっちかだろう
Sublimeで半角と全角のスペースを区別させる表示とかは簡単に出来ますか?
お前には無理です
じゃあお前にはできんの?
俺にも無理です
APIは公開されてるし、言語はpython最強伝説だから簡単だよ。 って、pythonにハマって、pythonで書き直したくなる誘惑と戦うことにw
やっぱり日本人には秀丸がぴったりってことだな
このスレッドはPHPの勉強をするのに持って来いですね。 とても参考になるPHPの話題ばかりです。 本当にありがとうございました。 ごきげんよう。
参考になるほど読んだクセに
>>1 も読んでないやつw
200 :
nobodyさん :2012/11/28(水) 17:26:15.58 ID:CNbhD8+O
ここまででいくつ質問でた?
エディタスレに誘導したのに無視する阿呆ども
$A_arrayと$B_arrayの2つ配列を比較して、片方にしか無いものを抜き出したい。 $A_arrayと$B_arrayを比較 $A_arrayにしかないものを$aに代入 $B_arrayにしかないものを$bに代入 ということをしたいのですが、このような関数はあるますか?
203 :
202 :2012/11/28(水) 19:11:13.32 ID:4Uq9YV8B
sageっぱなしだった・・・
205 :
202 :2012/11/28(水) 19:23:25.73 ID:4Uq9YV8B
>>204 おおお、まさに求めていたものです!ありがとうございます
関数ないかな?と思ったらマニュアルの関数のページくらいチェックしようよ
このスレいらないっすね^^;
このスレって関数聞くためだけにあるのか
関数ないですか? 20% データベース関連 10% セッション関係 10% 俺は誰の指図も受けないスレチオナニー質問 60%
210 :
nobodyさん :2012/11/29(木) 08:22:27.09 ID:W4c6bNmg
回答の内訳 そんなこともわからないのかクズ 40% マニュアル読め 20% もっと難しい質問持ってこいカス 30% ああ、それはね〜で〜だよ 10%
質問する時の注意に明記されているのだから守らないのはルール違反
いい加減sageること覚えろや
213 :
nobodyさん :2012/11/29(木) 08:30:49.33 ID:W4c6bNmg
俺は誰の指図も受けない
暇だから最初から目を通してみたけど、 秀丸が最強ってこと以外何もないじゃなかこのスレ
馬鹿が1人まじるとこうなる 別スレに分けたのになんでいつまでこっちにいるのかね
オレらプロのスキルアップのためにと思ってこのスレを覗いてみたんだけど、素人ばっかだな
>>216 さすがプロかっこいいですね。
大阪府警でサイバー捜査官募集してるのでご自慢のPHPスキルでぜひ応募してください。
219 :
nobodyさん :2012/12/01(土) 15:19:34.93 ID:sw6dUIr5
相談です PHPでフォームから送るパラメータで、例えば「在庫あり」「在庫なし」のようなものを 数値で定義するとき、 在庫あり:1 在庫なし:0 みたいに1と0で表現するのはあまりしない方が良いんでしょうか。 if(isset($params['stock'])){ if($params['stock'] == 1){ //在庫ありの処理 }else if($params['stock'] == 0){ //在庫なしの処理 } } 上記のように、isset()で判別して分岐する処理だと$params['stock']がカラの値(入力なし)の場合でも 在庫なしの処理にまわってしまいなんだかなぁという感じです if(is_numeric($param['stock']))などで再判定すれば良いのですが、冗長というか… 1or0ではなく、1or2などにした方が良いんでしょうか どうしてますか?
チェックボックス使えば
仕様による あり なし 未定義の3値をフォームでどう表現するんだい?
>>220 おお…、恥ずかしながら一度も===を使ったことがありませんでした
これが正解のように思います、勉強してみます!
>>221 画面のデザイン上プルダウンで考えてます。CBは確かにこの場合安心ですね
>>222 プルダウンで、未定義を<option value="">在庫の状態:すべて</option>で設定しようとしてました
そしてそれこそが、カラで送られてくるケースとして困っていたのでした(==0にヒットしてしまうので)
皆さんありがとうございました
PHPで誰もが通る道だよなぁ。 バグを生むので、可能な限り === を使うようにしたほうがいい。 特に strpos で文字列の先頭にヒットする場合とか。
はい?用途に応じて使い分けろよ
すみません、実際試してみたら if($val === 0) にヒットしませんでした if($val === "0") にはヒットします GET送信される<option value="0">text</option>の値って、文字列として扱われるんですか? 実際var_dump($val)すると string(1) "0" ってなったし… かなり恥ずかしい質問してますね、すみません
そうだよ 謝らなくてもいいけど、IDは出してね
デザイン目的でHTML変更しない方が良いと思うよ
229 :
nobodyさん :2012/12/01(土) 22:10:09.20 ID:TogwSkE+
人が書いたコードをたくさん読んで勉強したいのですが なにかおすすめはないでしょうか? ためしにwordpressを見てみたのですがカオスなことになっていたので それ以外でお願いします…
自分のレベルは?
231 :
nobodyさん :2012/12/01(土) 22:16:16.93 ID:TogwSkE+
>>230 どう答えていいのかわかりませんが
勉強し始めて半年くらいのレベルです
>>231 Zend Framework
phpmyadmin
phpbb
半年でPHPしかやったことないなら
合計100kb単位のコードは厳しいんじゃないかな
>>232 みたいなメジャーなアプリケーションは避けて
そこらへんにある50kb以下のコードをたくさん読んでみたほうがいいかもね
PHP アプリケーション名(掲示板とかアクセス解析とか)
で検索して読みやすそうなの探せばいいと思う
自分に言えるのはレッツPHPはやめたほうがいいってことぐらいだな
バイトで判断w
バイトで判断はあながち間違ってない。 コード量が多いと頭の整理が追いつかなくなるからな。
コメントは? 外部ライブラリは? べた書き、モジュール化、MVCモデルの有無は?
そんなの実際にコード見て確かめればいいでしょう・・・
読むより作ったがいいよ
このスレ的には 使いたい関数や興味ある機能をPHPマニュアルで調べて そこに書かれてるサンプルコードやユーザノートを参考にする じゃないのかw プログラムはそんなしょぼいサンプルの集まりで出来るものだし
質問まだぁ
バイトで判断w
共同開発してるようなもんでもない限りオナニーコメントなんて入ってないでしょう。
へー、コメント入ってないコードのほうが良いコードなんだw
>>232 ありがとうございます!
具体的に挙げていただけるととても助かります。
>>239 短いサンプルではなく、なんと言ったらいいのか…
どんな風にクラスを作るのか、使うのかを学びたいです
設計というんでしょうか? MVCフレームワークを使っていても
めんどくさい処理はモデルとは別にクラスを書きますけど
書きながら、もっとスマートに書けるんだろうなぁといつも思います
自分の書き方に自信を持てません
そういうところを学ぶには
人の書いたコードを読むのがいいのかなと思い質問した次第です
なにか勉強によさげなものがあれば是非教えて頂きたいです
具体的なものでなくても構いません
githubでこう検索すればいいとかでも助かります
よろしくお願いします
悩んでる暇があったら手を動かしたほうがいいと思うよ
247 :
nobodyさん :2012/12/02(日) 00:55:16.18 ID:MSbR24kc
>>246 汚いコードを量産したくないんですよね
趣味でやってるので最終的には動けばいいんですけど
やっぱり気になってしまって…
「何十年も修行して達人にでもなるのを待ってから戦場に出るつもりか? 気の長げェ話だな」
汚いコード書きたくないだけなら、フレームワーク使ってコーディング規約に従って書けばいいんじゃね
>>244 コメントは?っていったからそんなものその辺のプログラムには入ってないって言っただけ。
つうか煽り方が子供かよw
流れ嫁
なんで嫁が出てくるの?
WordPressはそのへんのプログラムではないんですか? だったらどのへんなんですか?
>>254 文盲か?
その辺のプログラムで教えてほしいとは言ってないけど教えてほしくないとも言ってない
単に人の書いたコードを読みたいと言ってる
どのへんなんですか?
wordpressを出したのは有名だからであって、主眼を置くべきは他人が書いたものってとこだな。
>>258 だから流れ嫁よ
なにかおすすめはない?
↓
ZendFW phpmyadmin phpbb
↓
経験少ないなら↑のようなメジャーなものは避けてその辺のバイト数少ないのがいい
↓
バイトで判断?コメントは?
↓
その辺のはそもそもコメントないだろ
そのへんに転がってるコードの話だろ すり替えるなハゲ
>>260 なるほど、君は「その辺にある50KB以下のコードが良い」という前提で「それらにはコメントがないから気にしなくて良い」と言っているけど、
俺は「その辺にある50KB以下のコードはコーディングの勉強には適さない、コメントが適当であることがその理由の一つ」という考え
斜め上のレスありがとう
斜め上から目線
なんでその辺のプログラム限定なの?の理由を流れから説明したら、 訳の分からない自己主張されたでござるの巻。 さすがPHPユーザーだぜwwwww
空気読まないで発言すると、普段Cakeしか使ってないけどソース読むならZendFWが一番。 その一番の理由は規約がしっかりしてる。 コメントをきっちり書くっていうことは規約に含まれてるからもちろんコメントも十分。 英語の言い回しの勉強にもなる。 PSR-3に完全準拠してたんじゃないかな?
PSR-2までだった。orz...
PHPの英語ってphp.iniのコメント部分のスペルミスなどのみの変更を 大量に見てきたせいかあまり好きじゃないw
wrapper を wraper とか、お前わざとかとw
リファラーの綴り知ってる?
ネットスケープの開発に物申したいのか
あぁ、物申したいな
巻舌ができなかったんだよ。
274 :
nobodyさん :2012/12/02(日) 16:57:02.34 ID:9ocxfrdL
ソース見てると毎回ifとかforの前に $string = ""; みたいに宣言してる人いるけどあれなんなの
知らんけどループの中で追記してるんじゃ?
>>274 ・条件の中やループの中を通るとは限らないから
・スコープの問題にあたったことある人が癖で{}使うところでそうする
・わかりやすいから
ほんとだ。ありがとう 追記の時は宣言しておかないとエラーになる? PHPのマニュアルだとこんな感じだけど $unset_str .= 'abc'; var_dump($unset_str); PHP では変数を初期化する必要はありませんが、そのようにするのはとてもよいことです。 って書いてあるから宣言したほうがいいのかな
PHPだけやってるつもりなら好きにすればいいんじゃね 例えるなら標準SQLかMySQL専用の違い程度
279 :
nobodyさん :2012/12/02(日) 17:38:11.59 ID:9ocxfrdL
>>275 ,276,278
ありがとうございました。
ソースの可視性を上げるためにも自分も最初に変数を初期化することにします。
そのようにすることはとてもよいことですw 下手糞な翻訳だなあw
PHPの公式マニュアルって直訳みたいだよな
原文もそのようにかかれてるわけだが
原文を見て、外国語を英語に訳したような下手糞な文だよな、と思っているとでも?
notice出るだろ
出ないよ
phpのメタ言語ってどこかでやってないですかね。phpソース書き出しの為の記述言語…bakeとかoilとかの自動生成の意味合いではなくて、本番用に最適化されたグッチャグチャだけど高速に動くソース吐く、みたいな
白いのがいっぱい出た
=だけなら出ないよ
>>265 その辺のプログラムで勉強ってのがそもそもだめだろ
拾い食いプログラマ
293 :
nobodyさん :2012/12/02(日) 21:33:08.66 ID:2RwVg9eG
294 :
nobodyさん :2012/12/02(日) 21:34:57.41 ID:2RwVg9eG
すげーそんなのあるんだ
>>294 Facebookの!あーそういえばあったの忘れてた…ありがとう〜
どれどれ。CentOSかFedoraでのみ動きます…んー何その微妙なセレクション
微妙っていうより単にRHEL系だろ
298 :
nobodyさん :2012/12/02(日) 22:00:20.38 ID:FlGCwzUt
質問させてください。 BMI測定ツールを作っています。 購入した本の通りに、コードを入力したのですが、どうにも上手くいきません。 コード自体にエラーはないのですが、体重・身長を入力して実行しても、入力フォームが出るばかりです。 どなたか、原因がわかる方いませんか? <?php //フォームからデータが送信されたか確認 if (isset($_GET["w"]) && isset($_GET["h"])){ //データが送信されていればBMIを計算 $w = floatval($_GET["w"]); $h = floatval($_GET["h"]); $bmi = $w / pow($h / 100, 2); $per = floor(($bmi / 22) * 100); //結果を表示 echo "体重{$w}kg,身長{$h}cm<br/>"; echo "BMIは{$bmi}<br/>"; echo "肥満度は{$per}%です。"; }else { //データが送信されていなければフォームを表示 echo "<form>"; echo "身長:<input type = 'text' name = 'h'> cm <br/>"; echo "体重:<input type = 'text' neme = 'w'> kg <br/>"; echo "<input type = 'submit' value = 'BMI判定'>"; echo "</form>"; } ?>
formのアクションとメソッドが抜けてる
300 :
nobodyさん :2012/12/02(日) 22:47:15.06 ID:FlGCwzUt
>>299 ご指摘の通り、直そうと思うのですが、こんな感じにすればよいでしょうか?
[修正前]
echo "<form>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";
[修正後]
$self = $_SERVER["SCRIPT_NAME"];
echo "<form='$self' method='POST'>";
echo "身長:<input type = 'text' name = 'h'> cm <br/>";
echo "体重:<input type = 'text' neme = 'w'> kg <br/>";
echo "<input type = 'submit' value = 'BMI判定'>";
echo "</form>";
302 :
nobodyさん :2012/12/02(日) 23:03:23.61 ID:FlGCwzUt
>>301 すいません、そこを直しても動かないです…。
303 :
nobodyさん :2012/12/02(日) 23:18:05.73 ID:FlGCwzUt
ちなみに、こっちのコードなら動きます。
<?php
// フォームからデータが送信されているか?
if (isset($_GET["w"]) && isset($_GET["h"])) {
// データが送信されていればBMIを計算
$w = floatval($_GET["w"]); // 体重(kg)
$h = floatval($_GET["h"]); // 身長(cm)
$bmi = $w / pow($h / 100, 2); // BMI値を計算
$per = floor(($bmi / 22) * 100); // 肥満率を計算
// 結果を表示
echo "体重{$w}kg,身長{$h}cm<br/>";
echo "BMIは{$bmi}<br/>";
echo "肥満度は{$per}%です。";
} else {
// データが送信されてないので、フォームを表示
echo "<form>";
echo "身長:<input type='text' name='h'> cm <br/>";
echo "体重:<input type='text' name='w'> kg <br/>";
echo "<input type='submit' value='BMI判定'>";
echo "</form>";
}
>>298 とどう違うのかさっぱり分からないです。
304 :
nobodyさん :2012/12/02(日) 23:33:51.35 ID:FlGCwzUt
すいません、単純なスペルミスでした。
>>298 は<name>を<neme>にしているところがありました。
methodをpostにするなら 値は$_GETじゃなくて$_POSTで取得しなきゃ
>>304 まずは、if文とか分岐のところでechoとか使って
「狙った通りの所に来てるか」を確認すると良いよ。
んで、思った通りの流れになかったら、
変数をvar_dumpでダンプするとかして、
「どうしてここに来てないのか」を原始的に見てみればいい。
スペルミスみたいな凡ミスは変にハマったりしやすいから
逆にベーシックな手段で確認すると意外と早い。
IDE使うと自動で指摘してくれるかもよ
var_dump作戦意外と強力 cakephpで詰んだときコントローラ内だろうと容赦なくバーダンしてる
バーダン
テスト書けよ
311 :
nobodyさん :2012/12/03(月) 14:22:44.53 ID:q8toeDgl
■ローカル環境 【OS名】WindowsXP 【PHPのバージョン】5.3.8 【連携ソフトウェア】apache 2.2.21 ■サーバ環境 【OS名】linux 【PHPのバージョン】5.2.17 【連携ソフトウェア】apache 2.0.64 ■質問内容 header()を使ってprint文でファイルをダウンロードさせようとしています。 ローカル環境では、動作しましたが、サーバ環境では、ダウンロードしたい データ(CSV形式です)が画面表示されてしまいます。 同じPHPファイルを使っているので、PHPの設定なのかなと思いますが どこが影響しているのでしょうか。
headerに何書いたんだよ?
ダウンロードしてHTTPヘッダーを覗け
314 :
nobodyさん :2012/12/03(月) 16:34:36.23 ID:bEYYQFwC
データ保存の方法で悩んでます。 データベースを準備する程でもないけど かと言って何も考えずにファイルにガリガリ書いたら複数人が同時にアクセスしてあっという間にデータが抜けてしまいます ユーザー数は千人、一人あたりのデータは1MBくらいで、いいライブラリありましたら教えて下さい
データベースを準備中するまでもない理由は?
準備
317 :
nobodyさん :2012/12/03(月) 16:59:46.58 ID:ZlLn0Tb0
ロックかけろよ
最近の若いのはロック処理もしないのか
データベースに最適な内容 SQLiteから始めてみればいいじゃん わからないから避けてるようにしか見えん。
なんでファイルベース? データベース使えばいいのに
321 :
311 :2012/12/03(月) 17:58:23.95 ID:q8toeDgl
>>312 DBからデータを取得して
header("Content-Type: application/octet-stream name=hoge.csv");
header("Content-Disposition: attachment; filename=hoge.csv");
print $data;
です。
>>313 HTTPヘッダの覗き方がわかりません。教えてください。
header()より先に何かが出ていると思うのですが、
同じPHPファイルなのに動作の違いがでるのがよくわかりません。
>>321 コンソールからtelnet で直接通信するか、FirefoxのアドオンのLiveHttpheaderみたいなツール使うとか
覗くプログラムをPHPで書けばいい
>>314 >ユーザー数は千人
思いっきりDB用意するほどのものじゃねえかw
サーバー側のapacheの設定は疑った?
>>314 この程度のスキルの奴が1人あたり1MBものデータ所持してんのかよ・・・
mysqliだっけ?ファイルベースのmysqlは?
SQliteか。ごめん間違えた上に外出だった
なんだよファイルベースのmysqlって mysqlとSQLiteは別物だよ
エスケープするより英文字だったらis_alnumとかpreg_matchでいいよな?
どういう意味でエスケープって言ってるんだ
DBへのクエリとか後に表示するユーザー固有識別名とか まあ前者はPDOで済むけど
PDOで済む・・・?
PDO使えばいいじゃん
>>333 PDOで済まない・・・?
要するにエスケープ関数使うよりpreg_matchで条件分岐の方が楽で正確って言いたかった
楽で正確の根拠は?
指定した文字以外を弾ける
preg_matchとかしたあと、PDO使うんじゃないの
>>338 エスケープに関して
値に関してじゃなく安全性について
>>338 例えばPDOが入っていない状況で、
mysqlのエスケープを使用せずpreg_matchを使用するのはどうでしょうか?
PDOわざわざ無効にしてんの? 漏れが出てくるから自前のエスケープはせずに、素直にPDO使ったがいいよ
バインド機構のことをPDOって呼んでるのかな?
プレースホルダって言うんですよ
344 :
nobodyさん :2012/12/04(火) 17:40:32.87 ID:2gy0/x6N
おまえら、もっと洗練されたphpの書き方教えろ。おら、もっと強くなりてえだ。 簡単に言うと、wordpressのテンプレをhtmlからスラスラ、カポッと作れる様なアレだ。 もう、シンプルで合理的すぎてすみませんと謝罪される程のスキルが欲しい。 ※すみません、こういった煽りタイプの書き込みの方がレス多く貰えると思ったので。
あ?
で?
347 :
nobodyさん :2012/12/04(火) 18:28:46.04 ID:2gy0/x6N
おまいらありがとう。なんかアイディアが出てきた。 モレスキンにメモったから、あとは数週間寝かせてじっくり熟成してみる。
あ と で の二人のお陰であいでぃあが出てきたか
350 :
nobodyさん :2012/12/04(火) 20:15:43.59 ID:4+ZLGXb5
351 :
nobodyさん :2012/12/04(火) 20:31:13.94 ID:VY3MlHj0
【OS名】WINDOWS XP 【PHPのバージョン】5.3.5 【連携ソフトウェア】XAMPP 1.7.4 【質問内容】 echoで文字連結した言葉を出したいです。 以下はコードを抜き出してきたのですが、"."ではなく"{}"で区切りたいです。 しかし、うまくいきません。原因分かる方、教えてください。 【正常動作】 <?php if (isset($_GET["year"])) { echo "今年".($this_year - intval($_GET["year"]))."才です。"; } ?> 【異常動作】 <?php if (isset($_GET["year"])) { echo "今年{($this_year - intval($_GET["year"]))}才です。"; } ?>
なんとなく思ったんだけど 配列って $test[] = 900; $test[] = 920; って感じでキー指定なしで格納して foreachで全部出力できるよね
>>351 無理
変数が展開できるだけで式が書けるわけではない
>>351 結論からいうと無理
文字列中の{}は演算子は使えないし単純な変数を入れることを想定してる
if (isset($_GET["year"])) {
$yo = $this_year - intval($_GET["year"]);
echo "今年{$yo}才です。";
}
例えばこんなふうにしないとだめ
355 :
nobodyさん :2012/12/04(火) 20:58:53.81 ID:VY3MlHj0
356 :
nobodyさん :2012/12/04(火) 21:50:04.05 ID:jU+DWC4p
if(isset($ch2))と if($ch2)はどう違うんですか?
358 :
nobodyさん :2012/12/04(火) 22:10:42.81 ID:jU+DWC4p
ありがとうございます。 $ch2 = "";だと 前者はTRUEで、 後者はFALSEなんですね
"0"なら?
360 :
nobodyさん :2012/12/04(火) 22:18:17.46 ID:jU+DWC4p
前者が、TRUE 後者が、FALSEですよね
$ch2を$_POSTに変えた場合は?
質問したいならID出せ
$ch2を$_POSTに変えた場合は?
"1"なら?
getするたびにNotice: Undefined indexがでるんですけど 出す理由あるんですか・・・
367 :
311 :2012/12/05(水) 10:17:40.54 ID:njrAbACp
>>322 長らく使ってなかったXPのドス窓からtelnet...connect localhost 80
接続中...のまま。なんかカーソルの位置もおかしくなるし・・・。
いつかの課題にします。
とりあえずファイルを作って、そのリンクから「名前をつけて保存」にしました。
ありがとうございました。
Windowsのtelnetは癖がある 接続したらカーソルの位置とか画面表示とか気にせず そのままHTTPリクエスト打ち込むだけ まあMacかLinuxからやる方がやりやすいけど
>>367 ちょっとしたリクエストプログラムくらいPHPで書けよ
そんな処理さえ書けないのかよ糞言語PHPは
ドス窓wwwwコマンドプロンプトだろ、昭和かw
コマンドプロンプトをDOS窓と呼べたのは9xまでな 2k以降はDOSとは全く無縁
WindowsもそろそろLinuxとかBSDをベースに開発した方がいいんじゃないだろうか PHPerはWindows使いが多いのかもしれないが他の言語だとマカーが多いよね
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇 PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
いい加減その糞ブログの宣伝やめろカス
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇 PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
どうせならurl貼るべき
>>376 ここのヤツらが荒らしてるんだよ
【PHP】気軽にPHP質問スレ
http://kohada.2ch.net/test/read.cgi/php/1343015189/ 837 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 12:37:35.10 ID:???
「PHPなめんな」と「(Perl|Python|Ruby)をなめんな」の違い
ttp://blog.livedoor.jp/dankogai/archives/50993137.html 838 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 12:56:34.85 ID:???
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇
PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
839 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 13:31:29.07 ID:???
相変わらずPHP叩くやつは粘着だな。
840 名前:nobodyさん[sage] 投稿日:2012/12/05(水) 13:35:03.79 ID:???
404 Blog Not Found:惰訳 - プログラムは大変だ、スクリプトにしよう - 過去篇
PHPは初期のPerlが犯した過ちを、Perlよりゆるやかに進めているといえます。
378 :
nobodyさん :2012/12/05(水) 22:34:49.86 ID:uNgx55hD
【質問内容】 ページを開いたときに表示する内容がランダムに決まるプログラムを作りたいです。 <div style="font-size:32px;"> <?php $no = rand(1, 5); switch ( $no ){ case 1: $msg = "まいどおおきに"; break; default: $msg = "どうも、どうもです。"; } echo $msg; ?> </div> このコードを以下のように修正しましたところ、"echo $msg"と表示されました。 <?php $no = rand(1, 5); switch ( $no ){ case 1: $msg = "まいどおおきに"; break; default: $msg = "どうも、どうもです。"; } ?> <div style="font-size:32px;"> echo $msg; </div> スタイルを設定するのは分を表示する所だけで良いじゃないかと思い、このような事をしています。なぜ、"echo $msg"とそのまま表記されるのですか?
echoはphpの言語構造だから <?php echo $msg; ?>
380 :
nobodyさん :2012/12/05(水) 23:07:41.07 ID:uNgx55hD
かわい子ちゃんを、PHP地獄から救い出して他の素晴らしい言語の世界を勧めるのが、僕らの使命
こういう謎の使命感に溢れてるヤツの方がキモいわ
384 :
nobodyさん :2012/12/07(金) 00:50:12.75 ID:klW3K1/S
phpでfaviconを生成し HTML側で <link rel="shortcut icon" href="?content=value" /> といったタグで読み込んでますが、ChromeやFirefoxでは表示されるものの Internet Explorerでだけ表示されません。 拡張子が.icoでないと読み込まないのかと思いきや、 試しにfavicon.icoファイルをtest.png等にファイル名変更し、 PHPを使わず直接 <link rel="shortcut icon" href="test.png" /> としたらInternet Explorerでも読み込めました。 なので、ファイル名が原因ではなさそうなのですが、 何が原因かどなたかご教示下さい。 なお、phpでは念のため、以下のようなヘッダも出力してます。 Content-Disposition: attachment; filename="favicon.ico" Content-Type: image/x-icon; name="favicon.ico" IEのバージョンは9.0です。
俺わかるけど答えてやんねー
>>385 分かるんでしたらよろしくお願いします。
387 :
nobodyさん :2012/12/07(金) 04:28:51.92 ID:RkD6YFRt
PHP関係ない IE ファビコン 表示されない で検索
>>387 Windows形式のiconにもなっているようです。
デスクトップで表示できました。
他にも原因があるのでしょうか?
混んてんと体ぷ
391 :
nobodyさん :2012/12/07(金) 18:31:11.59 ID:ziDoG41n
GETで取得する際、値が整数かどうか調べたいです。 is_intだとフォームからの入力を受け付けず、 is_numericだと小数点が含まれている場合もTRUEを返してしまいます。 どのように行えばよいでしょう?
正規表現
ctype_digit
ctype_digitって数字以外は弾くんですね
幸い自然数なのでこれを使用しようかと思います。
>>392 ,393さん
ありがとうございました。
頭0で通してよければな
>>394 伍萬弐千参百壱
とかの漢数字は弾かれちゃうけどそんなんでいいの?
397 :
nobodyさん :2012/12/07(金) 21:44:28.04 ID:ziDoG41n
>>396 じゃあお前
漢数字を含む場合もTRUE返す手段書いてくれよ
>>397 荒しに乗るのも荒し行為です。考えてスルーしてください。
>>397 $num = get_number_from_kanji($_GET['num']);
そんな関数ねーけどw
get_number_from_kanji (PHP5 >= 5.3)
402 :
nobodyさん :2012/12/07(金) 23:10:54.76 ID:pCtXAQSD
配列は["name"=>"yamada","sex"=>"m"]の用に一度に定義出来ますが stdClassで同じような書き方をするにはどうしたらよいのでしょうか
403 :
nobodyさん :2012/12/08(土) 00:00:59.43 ID:YANMBvR5
すいません、教えてください こんなコードを書いてます。 switch ($param) { case "big-qrcode": show_qrcode(300);break; case "small-qrcode": show_qrcode(150); break; default : show_form();break; } default :の後に全角の空白を入れるとFatal ERROR というものが出ました。 半角の空白にするとエラーは無くなります。 どうして、全角の空白を入れるとエラーになるのでしょう?
>>403 どんなプロセスで学習したらそんな質問が出るのか、
それがむしろ気になるわ
406 :
403 :2012/12/08(土) 10:02:38.58 ID:???
>>405 @学習用の本を購入
Aその本に記述しているSAMPLEコードを入力
B模写してるのにエラーが出る。
C原因箇所を修正して、実行するとエラーがなくなる。
D何で全角スペースは駄目なんだろう? ←今ここ
という流れです。
>>402 (object)array("name"=>"yamada","sex"=>"m")
>>403 全角の空白を使えるのって、C#とかjavacriptぐらい?
perlなんて、文字列中の全角スペースすら後ろのバイトが@なもんだから変数展開がおきたりしてた
>>406 どうせ箇条書きに丸数字を書いてるんだろw
まる1とまる2の間を詳しく
409 :
nobodyさん :2012/12/08(土) 11:14:10.51 ID:ZdBWbcl6
>>406 学習机の購入のあたりからお願いします。
>>406 そう定義されてるからだよ
お前の言ってることは
なんで1 + 4 は良いのに1 たす 2 はなんで駄目なんだろうっていうのと一緒
+の読み方なんてplus たす プラス + +とか色々あるんだから一々考慮してられないし誤表記による誤動作が増えるだろ?
ましてや全角スペースなんて対応文字コードが限られてるんだから省かれるのは当たり前
>>403 だって全角スペースっという不正な文字をおいてるんでしょ?そりゃエラーになる。
「printあ("Hello");」がダメだってことは分かる?
全角も半角も空白だ 差別すんなハゲ
413 :
403 :2012/12/08(土) 13:59:02.36 ID:???
>>408-409 何を知りたいのかさっぱりわかんね。
>>410-411 なんとなく分かりました。PHPは全角スペースを一つの文字として認識するからそうなるのかな。
ありがとうございます。
>>413 普通、参考書買ってサンプルコード書く間に
基本的なルールの説明だとかがあるだろうってことだ
初心者向けの参考書ならswitch書かせるまでに説明あるだろ普通。
AVで前戯のシーンをスキップばっかしてるからそういうふうに
途中がごっそり抜け落ちちゃうんだよ。
つまらないと思っても早回しでいいからざっと目を通さないと。
415 :
403 :2012/12/08(土) 14:37:33.47 ID:???
>>414 ところがどっこい、書いてなかったのです。
どの本か書いてよ 勧めないようにするから
あ、あと、ID出してね
419 :
403 :2012/12/08(土) 14:58:45.36 ID:YANMBvR5
>>416-418 その辺は内緒です。例え叩かれようが、著者に迷惑がかかることはしません。
403の存在が迷惑
言わないということはその著者への濡れ衣が晴れないまま、ということか・・・恐ろしい
422 :
403 :2012/12/08(土) 17:48:22.42 ID:YANMBvR5
>>421 著者への濡れ衣と言うか、どの著者に濡れ衣がかかっているかも分からないんだがら問題なし。
初めてコードを書く人用の書籍ならインデントに使える文字等を記載するだろうけど
少し触った人ならそのレベルの話は書かなくても理解出来るからなぁ
>>403 は自分の技量に合わない書籍を買ったんだろう
424 :
403 :2012/12/08(土) 17:57:57.22 ID:YANMBvR5
ちゃんと読んだら書いてあったってオチかw
428 :
nobodyさん :2012/12/09(日) 03:08:25.03 ID:ulB7TX+D
webサイト等で広告貼る時に、javascriptと〜.phpのurlで やってますか、あれって何て手法なんでしょうか? どうやってやってるのでしょうか?
430 :
nobodyさん :2012/12/09(日) 03:20:27.29 ID:ulB7TX+D
>>428 たとえば、webサイトに
<script type="text/javascript" charset="euc-jp" src="
http:// 〜ads.php?aid=1234">
</script>
を貼ると広告が表示される仕組みが知りたいです。
javascirptで表示してるだけでは?
>>430 そのphpを直接アクセスしてみたら?
js返してるでしょ
JSの内容をサーバ側で変更したいときだ
434 :
nobodyさん :2012/12/09(日) 23:13:38.53 ID:ulB7TX+D
URLを直接開くとdocument.write('<style type="text/css">中略〜table>');
というソースコードでしたこれってechoやprintなどで表示してる
だけでしょうか?
<script type="text/javascript" charset="euc-jp" src="
http:// 〜ads.php?aid=1234">
</script>
のように使う時webサイト
http:// 〜ads.phpに負担がかかるのでしょうか?
>>434 PHPの基礎から学んだ方がいいと思うよ
やばい何言ってんのか全くわからない
意味不明
439 :
nobodyさん :2012/12/10(月) 19:39:50.60 ID:K34L/8wn
ユーザーデータの保存 取得についてです 今は1ユーザー1ファイルで管理していて、md5(ユーザーid."solt")でファイル名を作ってfile_get_contentsして読み書きしています 大体千人くらい居て1リクエストで読み書きは1回〜数回です これ、mysqlのDBにした方がよいでしょうか?パフォーマンス的な意味で。 mysqlはデータベース・サーバーと通信しないといけないから、ファイルを直接読み書きするより遅くなるのかな?とも思いますし 現在の1ユーザー1ファイルでも一つのディレクトリに1000個ファイルがあるからちょっと付加がかかるかなとも思いますし
>>439 そのくらいならしない方がいいかな
管理対象は少ない方がいい
>>439 連携しないんならそれでいいんじゃない?
でも適切なインデックス付けたmysqlとか早いよ
>>439 書きが数回で1000件ならsqliteがいい。
数回なら関係ないけどfile_get_contentsは遅いよ。
>ファイルを直接読み書きするより遅くなるのかな? 試してもいないことがわかるな。 何で試してないかというとわからないからだろ?
DB使う脳がないならファイルで一生やるしかないな
むしろファイルよりDBの方が導入しやすい
まずDBを7つ集めろ
そしてテーブルを77個作れ
さらに777件INSERTしろ
そして願い事をinsertしたら願い事がかなう
まんこ得たら考える。 千のくらいじゃ何使っても大差ない。
我が名はシェンロン… さあ願いを言え… どんな願いも一つだけ叶えてやろう… なお、[免責事項]もお読み下さい Type ‘help;’ or ‘\h’ for help. Type ‘\c’ to clear the buffer.
die;
You must die.
質問です。サークルのゲームを作ってます。 ゲーム本体はphpですが、開発バージョンを公開バージョンに上書きする際、 たまたま誰かがアクセスするとクライアント側でエラーを起こすようです。 てっきり上書中はファイルシステムがロックしていると思ったのですが、 そうでもないのかな?と思いましたが私の勘違いなのでしょうか? 開発バージョンを公開バージョンに切り替える動作はゲームに限らずよくある と思いますが、どうやって切り替えるのが正しいのでしょうか? ときどき見る「スイッチ(フラグ)をファイルに置いて切り替える」というのも そのフラグを格納しているファイルの更新中にアクセスされるとどうなるのか気になるし、 DBにスイッチをおいて参照するというのも考えましたが、オーバーヘッドが好ましくないため できれば避けたいです。 なお、当方 CentOS5.5 php5.2 apache2 に WinSCP 4.3.5 でアップしてます。 アクセラレータは eaccelerator-0.9.6 を使っています。
切り替え中にエラーをおこしたくないなら、 リリース時に、ファイルをすべて別ディレクトリにアップして ドキュメントルートのディレクトリのリンクを変えるとかどう?
>>458 さっそくありがとうござい鱒。なるほどー。
その方法は確実である上、バージョン管理もまとめてできる魅力がありますね。
特に開発版を公開版にいちいち上書きしなくても、開発版のディレクトリを
そのまま公開版とすることでいろいろと捗りそうですね。これにしようかな・・・。
ちなみにその場合だと アパッチの restart かけるわけでしょうから、
別ディレクトリにアップしない場合でも 一度 apache を stop させて
変更したファイルをアップして、restart する方法もありえますね。
ほかにうまい考えあります?
>>459 apacheのrestartなしで、シンボリックリンクを変えるだけだから、大丈夫だとおもうよ
元に戻すときに、すぐrollbackできるから
バージョン管理を使ってないならいいかもね。
ホントはsvnなりgitは使った方がいい
461 :
nobodyさん :2012/12/13(木) 02:28:22.15 ID:ur824Bvh
あまり詳しくなさそうだから、ちょっと補足。要するにこう。 リリース前 /var/www/html -> /srv/release/2012121210/ ↓ リリース後 /var/www/html -> /srv/release/2012121302/ DocumentRootが/var/www/htmlだとしたら、それは変えないから、 apacheのリスタートはいらない。 /srv/release/2012..../が毎回SCPする先。 で、リリースの時にリンクを変える /srv でも、どこでも、好きなところにreleaseディレクトリ作ったらいい。 ってか、PHPじゃねーな。
>>461 なるほど、apache の設定を変えるわけじゃなくて、シンボリックリンクを変えるのですね。
これならいけそうです。事細かに教えてくださってありがとうございます!
確かに、PHPじゃないね。
>>1 質問する側は勿論、回答する側もルール守れよクソ野郎
アプリの作りによる Ajaxの有無とか
465 :
457 :2012/12/13(木) 11:27:25.87 ID:???
もう答えもらったからいいです
466 :
nobodyさん :2012/12/13(木) 13:36:33.63 ID:SZPRAQln
気軽に質問版では無視されたのでこっちでも質問させていただきます PHPのコードをデータベースに格納して、必要なときに呼び出して実行しようと思ったんですが、 evalって関数がそれにあたるようです この関数って速度的に問題とかありますか?
evalは関数じゃなくて言語構造だ
>>467-468 ありがとうございます。
こういうやり方って大手のサイトでは普通に行われていることなんでしょうか?
それともurlごとにファイルを作ってコードを書く方が一般的なんでしょうか?
evalの速度よりもデータベースにコード取りに行ってる時間の方が遥かに遅いよ
eval自体一般的に使われない >PHPのコードをデータベースに格納して、必要なときに呼び出して実行しようと思ったんですが こういうことも普通しない あらかじめPHPファイルとして用意してincludeなりすればいいだけでは?
evalはバックドアとして使ったりするよね
>>470-472 なるほど。。
やっぱり個別にファイル作ったほうがよさそうですね
ありがとうございました
一瞬ストアドプロシージャのことかと思ったが違うか
フレームワーク使うほうがいいと思うよ 他の言語行くときもフレームワーク使うのが普通だし、PHPで慣れておいても悪くない
evalだとどんなコードも実行するから危険
477 :
nobodyさん :2012/12/13(木) 17:34:02.19 ID:w+I6Bs3d
PDOのインスタンスを作成する際のコンストラクタの内容は暗号化されますか? コンストラクタ内にはユーザ名やパスワードなども含まれていると思うのですが、平文で通信されているのでしょうか? そうなると外部ホストのMysqlはどのように接続するのが正しいのでしょうか?
PHPもPDO関係ないっすよ?PDOが独自に暗号化してたらMySQL側が困るだろ? 簡潔に答えるとパスワードが平文で送られることはない、だがデータは盗聴可能 それが困るならMySQLサーバにSSL接続すりゃいいじゃん?
平文で通信してまずいのはクライアント側で無線LANを使ってサーバにログインした時だ
盗聴対策、成りすまし対策
eval なんて初めて知ったわ。サンクス。 アクセラレータが効かないだろうと思うと速度が不安になる。
>>474 全くスレチだが、最近ストアドファンクションを使うようになった。
phpから複数のSQLを発行するとそれだけで時間がかかっていたが、
1回のSQLで一連の処理を行うようにしたら鼻血が出るほど早くなってびびったわ。
ただ、いまつかってるのが PostgreSQL で、 PL/pgSQLなんだな。
大分慣れてきたけど、思い通りに書きづらい・・・
こんどPL/phpでもインストールしようかな、とおもってるけど、やってる人いる?
484 :
nobodyさん :2012/12/14(金) 20:27:59.49 ID:9UEb71lr
scandir()でディレクトリのファイル一覧を取得して画像ファイルだけを抜き出すとき、 スマートに書くには結局、正規表現を使うしかないのかな? jpg, jpeg, png, gif, bmpだとして、glob()だと大文字小文字を区別するし、 strpos()とかの文字列操作系の関数だと単一の文字列しか渡せないし
質問なのか独り言なのかはっきりしてくれ
拡張子だけで判断sるのか
Warning: Smarty error: problem creating directory '○○/templates_c/%%45/45E' in ○○/Smarty/Smarty.class.php on line 1088 Warning: Smarty error: problem writing temporary file 'templates_c//%%45/45E/○○' in ○○/Smarty/Smarty.class.php on line 1088 Warning: fetch(templates_c//%%45/45E/○○%%index.tpl.php) [function.fetch]: failed to open stream: No such file or directory in ○○/Smarty/Smarty.class.php on line 1251 Warning: fetch() [function.include]: Failed opening 'templates_c//%%45/45E/○○%%index.tpl.php' for inclusion (include_path='.:/usr/local/lib/php') in ○○/Smarty/Smarty.class.php on line 1251 さくらサーバだと何も出ないのですがスマイルサーバ上でこんなエラー出るんですが何が原因かお分かりになりますでしょうか? Smarty.class.php内を $smarty->use_sub_dirs = false; にすると回避できるとあったのですが変わりませんでした。
さくらのレン鯖はWarning消してるからな ディレクトリに全角が入ってるんじゃね ’○○’とか
489 :
nobodyさん :2012/12/15(土) 19:34:58.88 ID:3wnazU1p
PHPで毎回DB読みにいくと負荷がかかると思いますが、 ちょくちょく更新するページの場合はどうやって対応してますか? 更新するたびにキャッシュを削除するような仕組みがあればいいんですけど
491 :
nobodyさん :2012/12/15(土) 19:58:30.88 ID:3wnazU1p
>>490 ありがとうございます
smartyのキャッシュってブラウザに残ったキャッシュを使ってるんですか?
それともサーバ側に作成したキャッシュを表示してるんですか?
492 :
487 :2012/12/15(土) 20:01:53.92 ID:???
○○の部分のディレクトリは全角はないですし他のとこもtemplates_c内の%1D/1D910A%ってのなんですよね。
>>492 知らんけどアクセス権限足りてないんじゃない?
494 :
487 :2012/12/15(土) 20:41:25.25 ID:???
エラー元っぽいtemplates_cはとりあえずパーミッションは777に設定したんですが駄目みたいです・・
777は悪魔の数字
smartyは3からキャッシュやtplファイルの存在をfiletimeで判断しててそれを@で制御してる。 だからnoticeが出る。 display_errorsを0にするか、error_reportingでnoticeを非表示にする。
498 :
487 :2012/12/16(日) 01:17:41.02 ID:???
>>497 すいません。それだと画面真っ白になるだけで・・
499 :
nobodyさん :2012/12/16(日) 04:07:56.16 ID:Wv0oIgsD
class aaa { private $_var = null; public static function factory() { $obj = new aaa(); $obj->_var = 'bbb'; return $obj; } public function __construct($str) { $this->_var = $str; } } これのfactory()でbbbを代入できるんだけど、こういう書き方でいいの?? それともコンストラクタに渡して代入する方がいい??
どっちもありだろ。 そもそもこれで実装が終了するわけでもないだろうから、 その後の展開や見通し次第ってところでしょ。
意味わからん
502 :
nobodyさん :2012/12/16(日) 13:42:36.56 ID:REzOWsIO
PHPのmysql系の関数はdisplay_errorsをオフにしててもエラーとして出力されてしまうのでしょうか?
$rs=mysql_ホニャララでエラーキャッチ出来なかったっけ。それでもダメならtry{}
505 :
nobodyさん :2012/12/17(月) 16:09:36.68 ID:9egvz8Qq
失礼します。初歩的なことなのですが、GET変数の渡し方についてご教授願えませんでしょうか。
【PHPのバージョン】5.2.17
【連携ソフトウェア】WordPress MySQL
【テストページ】
ttp://test.anekipedia.com/ 【質問内容】
FormタグのGET変数の受け渡しでうまく動作しないので質問させていただきます。
テストページ(
ttp://test.anekipedia.com/ )にて
ドロップメニューで記事の順番を変更、各listボタンで記事の並び方を変更しています。
GET変数にて複数の値を受け渡しを行なっているのですが、ドロップメニューを変更すると各listボタンで渡していたGET変数が消されてしまいます。
どのようにやればうまくいくのでしょうか?
該当の部分の記述:
<form name="irekae" method="get" id="sort_form5" class="sort_form5">
<input type="submit" value="list1" name="retu">
<input type="submit" value="list2" name="retu">
<input type="submit" value="list3" name="retu">
<select name='narabi' onChange="document.forms['irekae'].submit()" >
<option value="sort1"<?php if(!isset($_REQUEST['narabi']) || $_REQUEST['narabi'] == 'sort1') echo ' selected="selected"';?>>投稿日時が新しい順</option>
<option value="sort2"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort2') echo ' selected="selected"';?>>投稿日時が古い順</option>
<option value="sort3"<?php if(isset($_REQUEST['narabi']) && $_REQUEST['narabi'] == 'sort3') echo ' selected="selected"';?>>五十音順(あ〜わ)</option>
</select>
</form>
アドバイスいただければ幸いです。
それjavascriptの質問だろ。 javascriptからsubmitするまえにmethod変更すればできるよ とりあえずすれ違いね。
>>505 1.送信前(表示時)のretuの値はどこにも保持されてません。
2."document.forms['irekae'].submit()"して送信されるデータは
narabiの値だけです。
不都合なければhiddenか何かでretuの値も送信すればよいです。
あの・・・だからといってhidden name='retu'とかして動きませんとか
言わないでね。
508 :
nobodyさん :2012/12/17(月) 17:10:00.36 ID:9egvz8Qq
>>506 ご返事ありがとうございます。
>>507 様でのご指摘でも対応できましたので、
今回の修正は、こちらの手段で行なおうと思います。
javascriptでの修正法も後で調べてみたいと思います。
>>507 アドバイスありがとうございます。
記述:
<input type="hidden" name="retu" value=<?php if($_GET['retu'] != '') {
echo ($_GET['retu']);} else {
echo ("list1");} ?> >
を追加することで、望みどおりの動作をするようになりました。
509 :
nobodyさん :2012/12/17(月) 17:16:33.01 ID:9egvz8Qq
510 :
nobodyさん :2012/12/17(月) 17:17:55.99 ID:9egvz8Qq
連投してしまいスミマセン。間違って投稿してしまいました。 上記の点は問題ないのでしょうか。
そりゃ2つ書いたら2つくるだろ
そういえば同じ変数が2つ以上あったらどういう挙動になるんだっけか
は?
え?
変数ひとつとか意味ねえwwwwww
へ?
>>509 「あの・・・だからといってhidden name='retu'とかして動きませんとか
言わないでね。」ってわざわざ書いたのになんでそうするのかな。
例えばボタンクリックから来た場合とリスト選択から来た場合とを判断するとかさ。
な!?
520 :
nobodyさん :2012/12/18(火) 15:48:07.25 ID:s5ZiWdpn
is_numericのericって何の意味 || 略?
ちょっとプログラム覚えたからってorを||って掲示板で書いちゃうような恥ずかしいやつは 英語もロクにできない阿呆なのがよくわかりますね
釣りならけっこう優秀w
>>520 numericっていう意味がある
is_numericでnumericであるか?という意味。
んで肝心のnumericが何かというとナメック星人という意味。
is_numeric('ベジータ') //false
is_numeric('ピッコロ') //true
525 :
nobodyさん :2012/12/18(火) 21:19:20.98 ID:f4m9o410
アクセス解析プログラムでIPとかホスト名とることは多いとおもいますが、 IPv6でアクセスしてきたらログはどのようになるんでしょうか? IPv4のxxx.xxx.xxx.xxxという形式からだいぶかけ離れた表記になりますが、 ちゃんとPHPはそれを取れるのか(REMOTE_ADDR) ホスト名にちゃんと変換できるのか(gethostbyaddr)が不思議です。 IPv6環境がないので実験できないので詳しい方教えてください。
エリッククラプトン
ごミphp酎はPerlスレを荒らしにくるな ほんとphp酎って人格歪んでるわ
なにそれブーメラン?
530 :
nobodyさん :2012/12/19(水) 07:42:14.20 ID:XMsmfmT0
PHPで更新pingの受信を自作でやろうと思ってるんですが、 受信側って受信しましたよってことを知らせるために何か出力しなきゃならないルールとかあるんでしょうか?
仕様書読め 他を真似しろ
532 :
nobodyさん :2012/12/19(水) 08:55:46.91 ID:XMsmfmT0
わかりますた
533 :
nobodyさん :2012/12/19(水) 10:44:25.18 ID:y/s/8Rtw
スレ違いかと思ったのですが、CGIの質問スレがなかったのでこちらで聞かせて頂きます。 【OS】windowsXP 【ソフト】FFFTP cgiに文章を一文だけ追加したくて、変更を行い上書きをした所、Internal Server Errorが出てしまいました。 何か失敗したかと思って、バックアップしていたcgiに再度置き換えを行ったのですが、またInternal Server Errorが出てしまいました。 元のファイルに戻してもエラーが起こってしまい困っています。 FFFTPで属性変更[755]にしてもダメでした。HTMLがちょっとわかるぐらいで触ってはいけない物ですね… どなたかご教授お願い申しあげます。
サーバ側のエラーログみろよ どうせ改行コードあたりだろ
改行コードならアスキー(テキスト)モードで送信な
536 :
533 :2012/12/19(水) 11:02:13.17 ID:y/s/8Rtw
>>534 エラーログの場所がわからないので調べてきます…
windowsで編集していない文書の改行が変わってしまうのでしょうか?
>>535 FFFTPの上部[A]を押してからアップロードしているので、その部分は大丈夫だと思います。
どっかスレないのかよ >windowsで編集していない文書の改行が変わってしまうのでしょうか? バックアップはどこに置いてたんだよ。 情報の後出しして質問済んなよ。
>>536 大丈夫かどうか、バイナリモードで落として確かめてみるといいよ。
バイナリモードならFFFTPに変換されないから。
539 :
533 :2012/12/19(水) 11:32:38.88 ID:y/s/8Rtw
>>537 申し訳ありません、バックアップは上書きの直前にwindowsXPのローカルに保存しました。
先ほど見つけたエラーログに以下のように記述がありました
(2)No such file or directory: exec of '/var/www/cgi-bin/cginame.cgi' failed, referer:
https://~~/cgi-bin/menu.cgi cgiの一行目にperlの場所が指定されていましたが、問題無さそうでした。
>>539 Windowsの改行コードがCRLFで、サーバが何だか分からんけど755って言ってるから
おそらくUNIXかLinux系だと仮定して、改行コードがLF
1行目の#!/usr/bin/perl が
#!/usr/bin/perlLF ならいいけど
#!/usr/bin/perlCRLF だと、
/usr/bin/perlCRなんてコマンドは無いって怒られる。
ということでやっぱり改行コードだと思うけど。
転送し直してもダメなら
1行目
#!/usr/bin/perl --
とかにしてみ?
No such file or directoryぐらい意味を把握しろ
542 :
533 :2012/12/19(水) 11:40:48.88 ID:y/s/8Rtw
>>538 ありがとうございます。
アスキーモードで上げたファイルをバイナリモードで落としてみました。
どのように確かめればよろしいのでしょうか?
37785byte>up>39180byte>down>39180byte とサイズが変わりました…
543 :
533 :2012/12/19(水) 11:47:40.43 ID:y/s/8Rtw
>>540 1行目 #!/usr/bin/perl -- にしたら直りました!
本当にありがとうございました…
>>541 ファイルかディレクトリがないよ、というニュアンスは分かるのですが
どこを言っているのかわからず質問してしまいました。失礼致しました。
皆様こんな質問に答えてくださって本当にありがとうございました。
おう!いいってことよ
545 :
nobodyさん :2012/12/19(水) 11:54:38.38 ID:XMsmfmT0
ちっ pingの質問した俺は冷たくあしらわれたっていうのによ
PHPと関係もなければめんどくさいから仕方ない
たまたまだろw
>>545 XML_RPC.phpがあるのに自作したいくらいの勉強家なんだから、
公式の仕様書から実装するくらいの勢いがあって当たり前なんじゃないかな。
549 :
nobodyさん :2012/12/19(水) 12:21:38.40 ID:XMsmfmT0
>>548 そんなのあったのかよ!
まあいいやもうすぐできそうだから無理ならそれ調べてみる
ありゃと
えっ……
551 :
nobodyさん :2012/12/19(水) 16:00:56.43 ID:qAL3Ngf1
すみません。初歩的なことですが教えてください。 【ファイル1】 $a="あああ".$b.""; 【ファイル2】 require_once 'ファイル2'; $b="いいい"; $c=$a; echo $c; ファイル2で あああいいい と表示させたいのですが『いいい』は表示されません。 globalとかつけてみたのですがダメでした。 アドバイスよろしくお願いします。
【ファイル2】 $b="いいい"; require_once 'ファイル2'; $c=$a; echo $c;
553 :
551 :2012/12/19(水) 16:25:28.91 ID:???
>>552 さん
うわっ・・・
できました。
ありがとうございました。
ユーザ側がPOSTメソッドでhostを適当な名前に変えてきた場合、 それを受信するサーバ側のphpで$_SERVERのHTTP_HOSTやSERVER_NAMEを取得すると そのユーザが指定してきた適当な名前になってしまいます。 その受信側のPHPスクリプトが自分がサーバなのかローカルなのかを判定するにはどうしたらいいでしょうか?
>>554 お前が書いてるプログラムのせい、としか
ホスト名を適当なのに変えるというのが無理だから
いやまあそれはできるだろ
自分がサーバかローカルかってどういう区別? httpd下で動作してるかどうか?
$_SERVERのHTTP_HOSTはHostヘッダだが SERVER_NAMEはApacheであればその設定通りで ユーザ側で偽装はできないだろ
たとえば送信側がこういうスクリプト(send.php)を書くとします。 $header = array( "User-Agent: test", "Host: testhost", "Content-Type: text/xml", "Content-Length: ".strlen($data), ); $context = array( "http" => array( "method" => "POST", "header" => implode("\r\n", $header), "content" => urlencode($data) ) ); echo file_get_contents('receive.php', false, stream_context_create($context)); receive.phpには echo $_SERVER['HTTP_HOST'] とだけ書きます。 この状態で、ブラウザでsend.phpにアクセスすると、ブラウザには「testhost」と表示されてしまいます。
>>558 ローカルのテスト環境とレンタルサーバ側の環境ではMySQLのユーザとパスワードが違うので
どちら側で実行されているかを調べる必要があるんです。
>>559 それがSERVER_NAMEにしても「testhost」とひょうじされてしまうんですよ
テスト環境か本番サーバーか分かるようにサーバー側にデータを置けばいい
$_SERVER{HTTP_HOST} $_SERVER{SERVER_NAME} ともに、リクエストヘッダから取ってます。 SERVER_NAMEは、リクエストがない場合のみ、apatch設定の値を返します。 嫌な仕様ですね
>>563 マジですか・・・
じゃあ
>>562 さんの言うようにこういう原始的な方法で判定するしかないのかな・・
めんどくせえ
ありがとうございました
受信側のPHPでContent-typeを取得する方法ありますか?
はい? すいません、最近耳が遠くなったようで何言ってるのか分からなかった
質問連投してる気違いがいるな
クレクレ厨
ID出さない奴に構うからつけあがるんだろ
>>564 本番サーバにSetEnv APP_ENV PRODUCTIONとかやっとけばいいじゃん
$_SERVER['APP_ENV']をみりゃ本番サーバかどうか分かる
571 :
nobodyさん :2012/12/20(木) 11:21:37.42 ID:YTGC1BLf
XMLがXMLの形式かどうかを判断する方法ってありますか? 変な文字が入っている場合は除去できるんですが、閉じタグや文法的におかしくてパースがうまくいかないことがあります。 XMLとして正しいかどうかを判別する関数があればご教示いただけないでしょうか。
パースがうまくいかないってのは正しくないってことなのでは
>>571 simplexml_load_fileで読み込んでおかしかったらfalse返してくるじゃん
574 :
nobodyさん :2012/12/20(木) 11:35:55.07 ID:YTGC1BLf
>>572 読み込むRSSが正しいこと前提なのでRSSがおかしいとエラー出てきます。
>>573 $rss = simplexml_load_string($contents, "SimpleXMLElement", LIBXML_NOCDATA);
で読むと、この時点でブラウザ上にWARNINGが表示されるので、それをどうにかしたいと思っています。
PHPの組込み関数ってほとんど例外吐かないよね
577 :
nobodyさん :2012/12/20(木) 13:47:37.36 ID:B4406POj
すみません、2点質問したい事があるのですが、 function test($x, $y='bbb', $z='ccc'){ echo $x, $y; } test('aaa', $z='zzz'); これだとaaazzzcccと出力されますが、期待通りaaabbbzzzと出力させるようにすることは可能でしょうか? ($yと$zを逆にする以外でお願いします。pythonで出来たのでphpでもする方法がないかと思って質問しました。) class MyClass { public function test(){ echo 'test'; } } function test(){ global $myclass; $myclass->test(); } $myclass = new MyClass(); test(); これは期待通り動きますが、$myclassを関数内で扱う時毎回このようにglobal宣言するのは 少し面倒な上、不格好になってしまいます。 これを防ぐにはどのように書けばいいのでしょうか? どなたかアドバイスよろしくお願いします。
>>577 上:$zをechoしてないように見えるけどなんでcccが出力されんの?
下:インスタンスを引数で渡すなり関数内でnewすればいいだけでは?
>>577 現状のPHPには名前付き引数はありません
function test($a) {
$default = array('y' => 'bbb', 'z' => 'ccc');
$a = array_merge($default, $a);
echo $a['x'],$a['y'];
}
test(array('x' => 'aaa', 'z' => 'zzz'));
こうするとかかね?5.4のクロージャを使って名前付き引数を再現する方法があるとかないとか
例で示してるのがecho 'test';してるだけなので具体性に欠けてアドバイスになるか分からないけど、
class MyClass {
public static function test(){
echo 'test';
}
}
function test(){
MyClass::test();
}
test();
それか
class MyClass {
public function test(){
echo 'test';
}
}
function test($myclass){
$myclass->test();
}
test(new MyClass());
こうとか?
効かねぇのかよw JaneStyleのプレビューだと効くのに!恥かいたわ・・・
nbspきもいw
ワロタ
2ちゃんの仕様が先月変わったからねえ
>>579 提示されたものをコピペしたんですが、動きませんでした(;_;)
半角スペーステスト | 1 | 2 | 10
>>583 調べてみたらそのようですね
セキュリティに問題があるから変更したっぽいですが、いったいどんな危険が潜んでたのか・・・
一部のAAは文字実体参照とか使ってたんじゃないのかな それがヒドいありさまに・・・
589 :
577 :2012/12/20(木) 15:07:37.69 ID:???
>>578 すいません、上は投稿時に$zを誤って消してしまっていました。
下はそれも書かずに済む方法は無いかと思って質問しました。
>>579 こういうのを名前付き引数って言うのですね、知りませんでした。
使ってるphpのバージョンが5.4だったので
クロージャを使って再現する方法について調べてみようと思います。
下はMyClass::test()の方法で期待通り動きました。
MyClassについては具体性に欠けた質問ですみませんでした。
みなさんアドバイス有難うございました。
>>586 ふぅ……
抜いてきました!
動けなくなりました(;_;)
>>589 ×:投稿フォームでコーディング
○:再現する最少のコードを作成→動確→貼り付け
ルール違反:ID出さない
もう2ちゃんがいろいろと残念な感じになってきたな
593 :
577 :2012/12/20(木) 20:58:21.76 ID:???
ヴァカしかいないから結構釣れるなw
>>592 今日のニュースで見たけど、最近はK察から削除要請あったらすぐ削除するらしい
結局権力に従った
権力に従うってことは・・・分かるな?
7日間ルールとか、反論があったら公表しないとか、アレはどうなった?
犯罪予告、薬物売買、人身売買、実名出した誹謗中傷 普通の人間には関係ないことだし別に問題ない
もうこの板いらないよね 質問スレ含めて、1日で5スレぐらいしか更新されないし
2chがもういらない
2ちゃんのいけてない感が最近ひどい 洗練されていない感じがカッコイイと思ってるんだろうな 特に随所にある楽屋受け的な箇所が 会社でオヤジギャグを聞かされている感じ
600 :
nobodyさん :2012/12/21(金) 19:01:05.59 ID:4RPXLz0Z
助けてください! URLの置き換えができません。 $short = "短縮URL"; $origin = "元のURL"; $text = "短縮URL"; $text = str_replace($short, $origin, $text); このコードだと$textが"短縮URL"のままで置き換えが出来ていません。 良い方法を教えていただけないでしょうか。
>>600 echo $text;したら元のURLって文字列が出力されたぞ?
602 :
nobodyさん :2012/12/21(金) 19:11:34.46 ID:4RPXLz0Z
>>601 回答ありがとうございます^^
twitterなどで短縮されたURLを元のURLにしたいと考えています。
>>echo $text;したら元のURLって文字列が出力されたぞ?
実際のURLでもうまくいきますか?
$shortの中身出力してみ?
>>602 shortとtextは、同じ値が入るの?
それなら、
>>601 の言う通りになるはずだけど。
そもそも、短縮URLの仕組みは理解してるの?
606 :
nobodyさん :2012/12/21(金) 19:47:39.24 ID:4RPXLz0Z
>>603 実際のコードです。
$short_url、$original_url、$textには思い通りの値が入っていました。
$short_url = $tweet['entities']['urls']['0']['url'].'<br>';
$original_url = $tweet['entities']['urls']['0']['expanded_url'].'<br>';
$text = @$tweet["text"].'</div>';
$text = str_replace($short_url, $original_url, $text);
>>600 のコードではURLを書いたところ、書き込むことができなかったので、文字にしました。
607 :
nobodyさん :2012/12/21(金) 19:53:31.47 ID:4RPXLz0Z
>>605 shortには短縮URL、
textには短縮URLを含んだツイートが入ります。
>>そもそも、短縮URLの仕組みは理解してるの?
短縮された後のURLともとのURLは分かっているので、
それを置き換えるだけで、しくみは分かってなくてもできると思っています、、、
$textの中の短いURLの後ろには、<br>がついてるのか?
ああ…… 質問サイトで、タイトルに「お願いします!」とか書いちゃう思考のヤツか。 もうちょい状況を説明しなさいよ。 何をしたいの? Tw APIを利用したウェブアプリを作りたいんかな?
610 :
71 :2012/12/21(金) 20:01:27.73 ID:???
>>576 > PHPの組込み関数ってほとんど例外吐かないよね
例外を投げられると面倒なケースがあるからね。
あと、素人の作ったプログラムはやたら例外を投げるけど、デバックできなくて困る事が良くある。
例えばZend_Frameworkっていう、いかにも学生かオタクが作ったようなフレームワークがあるんだけど、あれはひどいね。
611 :
600 :2012/12/21(金) 20:02:42.94 ID:4RPXLz0Z
すみません!出来ました! $short_url = $tweet['entities']['urls']['0']['url'].'<br>'; $original_url = $tweet['entities']['urls']['0']['expanded_url'].'<br>'; の最後の<br>が余計でした。 おさわがせしてすみませんでした。 ありがとうございました。
612 :
nobodyさん :2012/12/22(土) 00:29:14.15 ID:RsB7VEoj
【OS名】さくらレンタルサーバ 【PHPのバージョン】5.2.17 【質問内容】 PHPでMeCabを使いたいです。さくらにはデフォルトでMeCabが入っていますが、辞書の文字コードがeuc.jpです。 なので辞書のみ、自分のサーバーのホームディレクトリにインストールしutf-8に指定し使用したいです。 PHP側で使用する辞書を指定するにはどのように記述すれば良いですか?
ルート権あんのか?
>>612 >【OS名】さくらレンタルサーバ
そんなOSは無い
VPS以上のプランならcentOSだからデフォで内部文字コードUTF-8なんじゃね?(使ったこと無いけど)
辞書をutf-8にするよりも戻ってきた形態素をphp上でエンコードするほうがスマートだと思う
615 :
nobodyさん :2012/12/22(土) 11:56:57.77 ID:RsB7VEoj
>>614 ありがとうございます。
さくらのレンタルサーバのスタンダードなので、ルート権限はないです。
616 :
nobodyさん :2012/12/22(土) 12:09:56.19 ID:b4fHgnvI
>>615 $権限でいけるいける
マウントとかOSパッケージのインストールとかじゃなければ#権限じゃなくてもいける
ていうか デフォでmecab入ってるってほんと?公式だとビジネスプラン以上って書いてあるけど
【質問】ディレクトリどこよ?
618 :
nobodyさん :2012/12/22(土) 13:48:43.05 ID:RsB7VEoj
>>616 mecabがあるディレクトリは
/usr/local/bin/mecab
です。
スタンダードでも使えるみたいです。
何回かsuで試したのですが、パーミッションディナイドと出てきます。
euc_jpのままでいいじゃない
620 :
nobodyさん :2012/12/22(土) 13:58:20.44 ID:RsB7VEoj
>>617 そちらの方は既に試しました。ブログ通りターミナル上で試す分には上手くいくのですが、
実際、サーバーにアップしたものをwebブラウザ上で見るとeuc.jpです。
621 :
nobodyさん :2012/12/22(土) 15:00:39.48 ID:RsB7VEoj
%mecab -D を試したところ インストールしたutf-8のものに変わっていました。 しかし、デフォルトのものでなくなってパスがあってないためか、 Webブラウザ上では Class 'Mecab' not found とエラーが出てしまいます…
php.iniやらhttp.confいじらなきゃだめなんじゃね?
623 :
nobodyさん :2012/12/22(土) 17:29:37.60 ID:b4fHgnvI
>>618 うぎゃああああ 入ってたああああ ちくしょおおおお
$comment=mb_convert_encoding ($comment, "EUC-JP" , "UTF-8");
してからメカブに渡して戻りをを
mb_convert_encoding ($ret, "UTF-8", "EUC-JP" );
でphpにもどしてやればいいんじゃね
ここは頭を柔軟にして、日本語を使わないという手もある
mecabいらねーじゃんw
626 :
nobodyさん :2012/12/22(土) 19:19:29.14 ID:RsB7VEoj
>>623 それだと変数の中身が
Array
という文字列だけになってしまいました。
配列の中身を展開しろよ
628 :
202 :2012/12/22(土) 19:42:46.10 ID:8rmgur1Z
print_r
629 :
nobodyさん :2012/12/22(土) 20:11:06.27 ID:RsB7VEoj
$str = "MeCab extensionのインストールは大変だった"; $result = mecab_split($str); $result = mb_convert_encoding($result, 'utf-8', 'euc-jp'); print_r($result); これだとWebブラウザに表示される文字列はArrayのみです。 3行目を消して試すと、euc-jpでちゃんと表示されます。
mb_convert_encodingで渡すのはstringだし $resultは配列だと思うのでそんなもの渡しちゃいけません array_mapとか使ってください
mecabとか初めてきいたわ
めかぶ酒
633 :
nobodyさん :2012/12/22(土) 22:33:05.11 ID:b4fHgnvI
<?php
>>626 強引にやったった
$mecab = mecab_new();
$str_org = '私には夢があります。ベッカム夢の夢567 by 菊蔵下さいabcマートです。5本指。ABCマート。ABCマートベです。123';
$str=htmlspecialchars($_GET['comment'], ENT_QUOTES);
$noun_array = array();//名詞を格納する配列
$str2mecab=mb_convert_encoding ($str, "EUC-JP" , "UTF-8");
if ($node = mecab_sparse_tonode($mecab, $str2mecab)){
while ($node){
$node_array = mecab_node_toarray($node);
//char_typeが2、5、7の単語を抽出
if($node_array["char_type"] == "2" || $node_array["char_type"] == "5" || $node_array["char_type"] == "7"){
array_push($noun_array, $node_array["surface"]);
}
$node = mecab_node_next($node);
}}
$utf8_array=array();
foreach($noun_array as $value){
$value_utf8=mb_convert_encoding ($value, "UTF-8", "EUC-JP" );
array_push($utf8_array, $value_utf8);
}unset($value);
$str2php = implode("<br />\n",$utf8_array);
echo <<<EOT
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd ">
<html xmlns="
http://www.w3.org/1999/xhtml ">
<head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /></head>
<body>
$str2php<hr />
<form action="" method="get"><textarea name="comment" cols="50" rows="10">$str_org</textarea><br />
<input type="submit" value="Analysis" class="sbtn" /></form></body></html>
EOT;
mecab_destroy($mecab);
?>
ちなみにさくらの共有サーバーのOSはfreeBSD
PHPかMySQLかどちらで聞こうか迷ったのですが、何となくこちらに。 現在ec-cubeで運用中のサイトのリニューアルを行なっています。 運用中のサイトに影響が出にくいよう、 開発用のサーバとは完全に分離の上、 更新分のSQLを用意する形で移行したいのですが、 その方法で悩んでいます。 PHPのソースだけならsvnなりgitなりの差分更新でおしまいなんですが、 DBの部分はそれが効かないので、 うまいことSQLで開発環境の開始前、終了時の差分をとって 一発ドゴーンでおしまいにしたいのですが。 (手作業で無理やりマージすると、今度はsvnでバッティングの嵐に…) このあたり検索したらmysql structure compareなるものを見つけましたが、 これはテーブル定義の差分は取れましたが 中身の差分まではとってくれませんでした。 なにかよい方法がありましたらアドバイス頂けないでしょうか?
テキストにダンプ取れば一般のツール使えるんじゃね?
ダンプ一択
ダンプ、ダンプじゃねぇよ糞共、ID出させろよ ったく、最近は回答側もスレタイすら読めないクズばっかか。
641 :
636 :2012/12/24(月) 17:23:56.53 ID:4BlK1+LV
ID表示方法見ていなくてすみません。
>>637-638 insertは簡単に抜き出せても、updateはダメじゃ手間かかりすぎかなと。
phpmyadminにテーブルの追跡なる機能を見ておっとなったのですが、
phpmyadminからの更新しか監視してくれないし。
うーんどうするかなぁ。
642 :
nobodyさん :2012/12/24(月) 22:48:28.65 ID:bhWdVJQ6
【OS名】FreeBSD 【PHPのバージョン】5.2.17 【質問内容】 PHPの配列で重複項目をカウントし、その重複数ごとに別々の配列に格納したいです。 例えば $a = ("りんご","りんご","みかん","なし","りんご","なし","いちご","みかん"); $a = array_count_values($a); それこの後、 重複数が3つ以上なら => $ar3 重複数が2つなら => $ar2 重複数が1つなら => $ar1 に格納されるようにしたいです。 上記のものなら $ar3 = ("りんご"); $ar2 = ("みかん","なし"); $ar1 = ("いちご"); のような感じで。
個数を数えろゴミカス
644 :
nobodyさん :2012/12/24(月) 22:56:57.38 ID:sujgadE1
foreachでまわしてそれぞれカウントすればいいじゃん
名無しだからクソコードでも恥ずかしく無いモン! <?php $a = array ("りんご","りんご","みかん","なし","りんご","なし","いちご","みかん"); $a = array_count_values($a); $b = array_unique($a); foreach ($a as $key => $value) { ${'ar' . $value}[] = $key; } foreach ($b as $value) { print_r(${'ar' . $value}); } ?>
646 :
nobodyさん :2012/12/24(月) 23:22:41.88 ID:sujgadE1
phpはいいよな 誰にもソース見られない HTMLが汚くても自動出力だからしょうがないと思ってもらえる
$a = array("りんご","りんご","みかん","なし","りんご","なし","いちご","みかん"); $a = array_count_values($a); $ar = array(); foreach ($a as $value => $key) { $ar[$key] = (isset($ar[$key])) ? $ar[$key] : array(); array_push($ar[$key], $value); } print_r($ar);
648 :
nobodyさん :2012/12/25(火) 00:58:53.04 ID:+G43GQs5
ありがとうございます。 $aに りんごというワードが12個 みかんというワードが6個 なしというワードが5個 いちごというワードが2個 入ってて 10個以上なら $ar1に 5個以上、10個未満なら $ar2に というようにするにはどうしたらいいですか?
小出しにすんじゃねえよ
丸投げにしないで少しは努力しろ if-else使え
651 :
nobodyさん :2012/12/25(火) 01:20:52.06 ID:+G43GQs5
if文を使うのは分かるのですが 変数の部分をどう書くかが分からなくて。 if(○○○ >= 10 ){ }else if(○○○ < 10 && ○○○ >= 5 ){ } という感じで書くのは分かりますが、変数をどうカウントして○○○の部分を書いたらいいか分からなくて。 お願いします。
各位に使用できる数字(または文字)に制限がある n桁の整数(文字列)を生成したい。 1桁目: 1, 2 2桁目: 4, 5, 6 3桁目: 7, 8 この場合だと 2*3*2 = 12 通りの整数が作れます。 forを3重にすればできるのですが、このやり方は避けたい。 n桁になっても対応できるコードを書きたいです。 いいやり方、教えてください。
655 :
652 :2012/12/25(火) 01:44:19.26 ID:???
自己満足しました。どうもです。
656 :
nobodyさん :2012/12/25(火) 01:47:25.03 ID:+G43GQs5
【OS名】FreeBSD 【PHPのバージョン】5.2.17 【質問内容】 PHPの配列で重複項目をカウントし、その重複数ごとに別々の配列に格納したいです。 $aに りんごというワードが12個 みかんというワードが6個 なしというワードが5個 いちごというワードが2個 入ってて 10個以上なら $ar1に 5個以上、10個未満なら $ar2に というようにしたいです。 $ar1 = ("りんご"); $ar2 = ("みかん","なし"); のような感じで。 $a = array_count_values($a); if(○○○ >= 10 ){ }else if(○○○ < 10 && ○○○ >= 5 ){ } のような感じに書くのは分かりますが、途中が分からなくて。 色々なページを見たのですが、分からないのでよろしくお願いします。
659 :
nobodyさん :2012/12/25(火) 02:12:24.47 ID:+G43GQs5
マニュアルは既に見ました>< ○○○の部分は $inputでいいのでしょうか?
661 :
nobodyさん :2012/12/25(火) 02:30:25.71 ID:+G43GQs5
>>660 array_count_valuesの部分です。
配列の使い方とforeachの勉強をしませんか?
>>656 何にでも関数があると思うな
少しは自作しろクズ
>>652 2進数をすべて列挙するとか問題を単純化してみろ
>>656 マニュアルの「パラメータ」と「返り値」の項目、および「例」を
見るだけじゃなくて、理解してください。
天才でもない限り、絵画を見るように文字を見て理解する人はいません。
返り血
戻り値だな 昔は返り値っていう人が多かったけど今は戻り値が多い気がする
669 :
nobodyさん :2012/12/25(火) 12:41:00.66 ID:TWYXsO9B
どっちでもいいじゃんww
返り血を連想するから返り値を避けて戻り値にするが、 値を戻すとは言わず値を返すと言うのである
アクセントの箇所が違うし(返り値=え 返り血=ち) 返り血と間違うから使うなって主張はあるみたいだけど馬鹿なこと言ってんなと思う
672 :
nobodyさん :2012/12/25(火) 13:29:17.29 ID:7T5WksfN
え、、、違うか?
>>671 別にどっちでもいいんだけど、統一された考えがないから紛らわしいのを避けるんだよ、普通の人はね?
そのアクセントの違いが統一された考えなの?
松本龍じゃなくても「コンセンサス得ろよ!」って言われるよ?
674 :
nobodyさん :2012/12/25(火) 13:57:20.99 ID:KLz+uV4m
>>652 強引にやったったったあああ
<?php
//データ部
$num=array(
array(1, 2),
array(4, 5, 6),
array(7, 8),
//array(4, 5, 6),
array(7, 8),
);
//処理部
$digit=count($num);//桁数
$max_num=str_repeat(9,$digit);
$min_num=str_repeat(1,$digit);
for($i=$min_num;$i<$max_num;$i++){
$mach=0;
for($j=0;$j<$digit;$j++){
if(in_array(substr($i,$j,1),$num[$j])){
$mach++;
}
}
if($mach==$digit){
echo $i."<br />\n";
}
}
?>
>>652 $num=array(
array(1,2),
array(4,5,3),
array(7,8),
);
$start=pow(10,count($num)-1);
$end=pow(10,count($num));
for($i=$start;$i<$end;$i++){
foreach($num as $k=>$v) if(!in_array(substr($i,$k,1),$v)) continue 2;
print $i."\n";
}
戻り値って胸焼けする響き・・・吐きそうで嫌だ!
返り血とか返却のがきもい
>>652 $num = array(
array(1, 2),
array(4, 5, 6),
array(7, 8),
);
function get_combinations($digits)
{
$first = array_shift($digits);
if ($digits) {
$combinations = get_combinations($digits);
} else {
return $first;
}
$ret = array();
foreach ($first as $digit) {
foreach ($combinations as $combination) {
$ret[] = $digit . $combination;
}
}
return $ret;
}
print_r(get_combinations($num));
もうreturn valueでいいじゃん和訳なんていらんわ
英語と日本語混ぜて使ってるとルー語と勘違いされるよ
今日もくだらない事よく議論し続けられるな
ドキュメントが歯抜けなフレームワークとかの質問とかだったらまだありそうだけど、 素のPHPのことについての質問はマニュアル読めば解決することばかりだからな そんなスレがこの板で一番勢いがある・・・
685 :
nobodyさん :2012/12/25(火) 18:11:05.61 ID:KLz+uV4m
アジェンダ党を思い出すな
wikipediaで関数か函数かで揉めたことあったなw
市立 いちりつ 私立 わたくしりつ
売春 ばいしゅん 買春 かいしゅん
690 :
nobodyさん :2012/12/25(火) 23:49:58.52 ID:HlTbcV5b
APIの仕様まで聞かれてもなあ
692 :
nobodyさん :2012/12/25(火) 23:54:34.25 ID:HlTbcV5b
やっぱりスレチになってしまいますかね… 別所で聞いてみます
693 :
nobodyさん :2012/12/26(水) 05:04:32.68 ID:yPzrDhQJ
素人質問ですが下の配列のキーがpassの値をforeach使わずに取り出すのはどうやるんですか? $_SESSION["login"]=array( "name" => $row["name"], "sex" => $row["sex"], "birth" => $row["birth"], "ID" => $row["ID"], "pass" => $row["pass"], "h_pass" => $row["h_pass"], "mail" => $row["mail"], "aikotoba" => $row["aikotoba"], "login_time" => time() )
>>693 >>694 さんの仰る通りだ。
どこの誰かわからん人の解説には
一番基本的な方法は書かれていない事が多い。
本当に素人ならググるな。公式見ろ。
696 :
nobodyさん :2012/12/26(水) 05:25:51.87 ID:yPzrDhQJ
いやスレタイに…
セッション持ちだしてきてその質問はないだろう。。。
>>696 >>1 >・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
>(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
ルールを守っていないのはどなた?
あんまいじめんな ヒント:多次元配列
擁護はID出せ
要介護はID出せ
いじめっ子現るw
どこがいじめだ朝鮮人みたいな奴だな
謝罪と賠償を要求する頃
ニコンのあれか
>>693 $_SESSION["login"]["pass"]
$_SESSION['login']['pass'] の方がいいよ!
708 :
nobodyさん :2012/12/26(水) 17:01:19.04 ID:vB6Sb+xf
execを書いているtest.phpにブラウザからアクセスしても反応無しですが、 SSHのコマンドラインからtest.phpを実行すると、正常に処理されます。 これって何が原因なのでしょうか? ファイルの所有権はrootでsafe_modeもOFFです。
アクセス権の実行は?
710 :
nobodyさん :2012/12/26(水) 17:33:09.06 ID:vB6Sb+xf
>>709 ファイルのパーミッションじゃなくてですか?それは問題ないと思います。
ちなみに、
exec('ls -l', $buf);
print_r($buf);
とすると、ブラウザからアクセスしてもコマンドが実行されて
ブラウザ上にディレクトリ内一覧が出力されます。
反応なしってどういう反応を期待してんだよ?
php経由で実行するときのユーザーは誰なんだよ、apacheとか? そしてそのユーザーの実行権限は入ってるの? lsがうまくいくって言ってるけど、該当のプログラムは標準出力に出してるの? httpdのエラーログに何か入ってない?
714 :
nobodyさん :2012/12/26(水) 21:41:44.78 ID:vB6Sb+xf
>>711-713 wkhtmltoimageというスクリーンショットを取れるソフトを試しているのですが、
exec('/usr/local/bin/wkhtmltoimage
http://google.co.jp/ google.jpg');
というコードを書いても無反応(画像が生成されない)です。
SSHのコマンドから「php -f test.php」と実行すると生成されるので、
ソフトやインストールに問題は無いと思います。
スッポソ、いや亀だけど、返り血といえば、マヌアルで、nullやfalseが返されるとき、 それをちゃんと書いてないのがある まあ、PHPのマヌアルは親切すぎるぐらいだから、それぐらいは目をつぶられるけどね でも返り値を===でチェックしたいときとかは、いや〜んな感じ
スッポンの返り血
718 :
nobodyさん :2012/12/27(木) 12:46:17.37 ID:2W1mTkak
【OS名】windows7
【PHPのバージョン】5.0?
【連携ソフトウェア】分かりません…
【サーバ】
ttp://www.1freehosting.com/ 【質問内容】 htmlをxmlに変換したい
【結果】htmlソースがそのままxmlファイルにコピーされた
phpはじめて3日です、すみません・・・
一応、組み込んだクラスや文法についてはドキュメント読みました
続きます
719 :
718 :2012/12/27(木) 12:50:21.91 ID:2W1mTkak
<?php
$url = "
http://xxxxxxxxx/test.html ";
// 指定されたurlの内容をhtml文字列として返す
function url2html( $url ) {
return file_get_contents( $url );
}
// html文字列をDOMDocumentオブジェクトとして返す
function html2xmldoc( $html ) {
$xmlDoc = new DOMDocument('1.0', 'UTF-8');
$xmlDoc->preserveWhiteSpace = true; //スペースを削除
@$xmlDoc->loadHTML($html);
return $xmlDoc;
}
// DOMDocumentオブジェクトをxml文字列として返す
function xmldoc2xml( $xmlDoc ) {
return $xmlDoc->saveXML();
}
// 指定されたurlの内容をxml文字列として返す
function url2xml( $url ) {
$html = url2html( $url );
$xmlDoc = html2xmldoc( $html );
$xml = xmldoc2xml( $xmlDoc );
return $xml;
}
$xml = url2xml( $url );
$fno = fopen("./test.xml", 'w');
fwrite($fno, "$xml");
fclose($fno);
?>
以上がソースになるのですが、これを実行してもtest.htmlのhtmlソースが
そっくりそのままtest.xmlにコピーされてしまいます。
720 :
718 :2012/12/27(木) 12:53:11.12 ID:2W1mTkak
試しに最初の function url2html( $url ) { return file_get_contents( $url ); } のみ記述してechoでreturn結果を見てみたのですが、この時点ですでにtest.htmlのソースが そのままreturnされているのですが、何がおかしいのかさっぱり分かりません どなたかアドバイスお願い致します
仕様だからしょうがない
>>720 それの何がおかしいのかさっぱり分かりません
>>718 具体的に何がしたいのか分からないけど、もし他人のサイトから何か読み取ろうとしてるんだとしたら、
PHP Simple HTML DOM Parserとかの方がいいと思うぞ?
724 :
718 :2012/12/27(木) 14:17:28.32 ID:2W1mTkak
>>722 すみません、私の認識がおかしいんだと思います
ttp://php.net/manual/ja/function.file-get-contents.php ドキュメントには文字列に読み込む、とありますが、これは引数のfilenameというドキュメント(私が読み込ませたいのはhtml)
の内容そ整形せずそのままreturnして$htmlへ格納するという事になるんでしょうか
だとすると確かにそれをechoするとtest.htmlがそのまま出力されるので正常動作になります
>>719 の処理では、%htmlへ格納したxmlしたいhtmlファイルの内容を文字列として格納し、
それをDOM生成クラスDOMDocumentのloadHTMLメソッドへ渡し、その情報を元に
loadHTMLにてxmlツリーを$xmlへ格納し、fwriteでtest.xmlへ書き込む、という動作を意図しているものと
認識しているのですが・・・
もしかして全然違う事やってますか?
725 :
718 :2012/12/27(木) 14:19:17.57 ID:2W1mTkak
>>723 自分のサイトのトップページがindex.htmlなのですが、このhtmlを結構更新するのですが
その更新したhtmlの内容をxml化して、それを他の人のブログなどのRSSリーダーで表示してもらいたいのです
htmlとxmlは別物だから一意には変換できない
>>725 RSSのフィードの仕組みを勉強したまえ
相当おかしなことを書いてるぞ
728 :
718 :2012/12/27(木) 14:29:38.74 ID:2W1mTkak
>>725 >>726 マジですか・・・
もしかして一年二年やらないとできないような難易度の処理になるのでしょうか?
できれば早いうちに実装したいので、他の方が書いて公開しているサンプルコード的なのが
ないかと検索してみたらそれっぽいのを見つけ、それをほぼそのまま使用させて頂いたのが
>>719 なのです
もし私がやろうとしている事が可能になるようなサンプルコード、もしくはクラスや関数をご存知であれば
ご教授頂きたいのですが、ないですよね・・・・
RSSの例をエディタで開いてみろ まずは何を出力すればいいかを知れよ
その様子だとindex.htmlも手動で書いてそうだから、RSSも手動で書けばいいんじゃないのか?
731 :
718 :2012/12/27(木) 14:49:55.86 ID:I8WvgqA0
index.htmlはmagpieRSSを使った自動更新です magpieRSSの記述はサンプルコードが落ちてたので、それをほぼそのまま使わせて頂いてますので なんとか自動更新にできました
ものすげぇゴミサイトの予感www
他のサイトのRSSがコンテンツなわけか
734 :
718 :2012/12/27(木) 15:07:40.25 ID:I8WvgqA0
>>733 他のサイト(知り合いとか)になるのか、自分のになるのかは分かりませんが、そんな感じです
今まだ適当なサーバでテストしてるだけなので、特に何かを配信しているとかはないです
やろうとしている事の参考になるサイトとかでもいいので教えて頂ければ嬉しいです
2chまとめとかはお互いのRSSを表示してるからそれらを参考にしてみたら?
736 :
nobodyさん :2012/12/27(木) 16:50:48.51 ID:LMdLghLx
Array ( [0] => 果物,りんご,赤い [1] => 果物,みかん,黄色い [2] => 飲み物,リアルゴールド,黄色い ) お伺いいたします。 phpの配列名$arrayが上記のようになっていて、値が「飲み物」で マッチしたものの答えを[黄色い]と出力したい場合は、 どのように書けばよいでしょうか。 配列になれなくて、かれこれ2時間立ち止まってます><
RSS内のどのタグに何を出力するべきかなどは知っておくべき
>>736 foreach ($array as $value) {
list($a, $b, $c) = explode(",", $value);
if ($a == '飲み物') {
echo $c;
}
}
739 :
718 :2012/12/27(木) 17:18:53.83 ID:I8WvgqA0
>>735 >>737 そういうの(fc2であればURL+/?xmlで表示されるもの)は見て、どういう構造になってるかは知っています
ただ、どうすればそれをphpにより生成できるのか、が分からないです
例えば、そういう適当なxmlをDLしてきて、手動でその中身を自分の好きなように変えて
表示させる、という事はできます
しかし、index.htmlは数時間おきに自動更新されるので、それをその度に
手動でxmlへ<item>や<link>や<title>などを書き換える事はできないので・・・
wordpressとかは使えないのでしょうか(関係ないですかね)
今色々見てるのですが
index.html更新するときにRSSも更新すりゃいいんじゃないの
どうすれば生成できるか? 出力するだけだ
もしかしてXML=RSSだと思ってる?
普段、PHPでHTMLを出力するときどうしてんの? まさか何かのライブラリに頼りっきり?
744 :
718 :2012/12/27(木) 17:57:38.53 ID:I8WvgqA0
>>742 xml=データ形式
rss=xmlというデータ形式で書かれた文書みたいなの
と認識してますが・・・
>>743 はい・・・
magpieRSSに任せています
746 :
718 :2012/12/27(木) 18:02:26.19 ID:I8WvgqA0
>>745 すみません、何日もレスがなかったので動いていないスレかと思い
こちらにも投稿してしまいました
消えます、すみませんでした
747 :
sage :2012/12/27(木) 18:12:03.13 ID:LMdLghLx
>>738 ご教示いただき誠にありがとうございます!
心お優しい方に助けられ、また一つ学習できました;;
そして私自身大きな間違いに気付いたのですが、配列は以下の形式でした><
Array
(
[0] => 果物
[1] => りんご
[2] => 赤い
)
Array
(
[0] => 果物
[1] => みかん
[2] => 黄色い
)
Array
(
[0] => 飲み物
[1] => リアルゴールド
[2] => 黄色い
)
この場合で同じ答えを出す方法ってありますでしょうか??
たびたびのご質問で恐縮ですが、なにとぞよろしくお願いしますm(__)m
foreach ($array as $value) if ($value[0] == '飲み物') echo $value[2];
749 :
736 :2012/12/27(木) 19:09:21.20 ID:jYOWBrau
>>748 即レス誠にありがとうございます!
おかげさまで求めていた形式にたどり着けそうです。
ノンプログラマには配列の思考が難しいですが、おかげさまで頑張れそうです^^
マルチの意味が分かってないやつってどこにでもいるよな。 まぁ、2ちゃんは低学歴が多いから仕方ないけど。
752 :
nobodyさん :2012/12/28(金) 02:48:10.56 ID:mgwe0miJ
html5で画像ファイルを同時に複数枚アップロードするときの話なんですが その一時保存ファイルである$_FILES["upfile"]["tmp_name"][$i]をブラウザに表示することって可能ですか? 二通り試してみたんですが文字化けしてできませんでした。 (1) for($i=0; $i<count($_FILES["upfile"]["tmp_name"]); $i++){ $image = file_get_contents($_FILES["upfile"]["tmp_name"][$i]); header("Content-type: image/jpeg"); echo $image; } (2) for($i=0; $i<count($_FILES["upfile"]["tmp_name"]); $i++){ $image=ImageCreateFrmJPEG($_FILES["upfile"]["tmp_name"][$i]); ImageJPEG($image); }
複数回繰り返してるからじゃ?
754 :
nobodyさん :2012/12/28(金) 03:05:57.73 ID:mgwe0miJ
一度、for($i=0; $i<1; $i++)で試してみましたが両方文字化けしました。。
ほんとにそれ、文字化けか?
試してみたら、できたけど
757 :
nobodyさん :2012/12/28(金) 03:30:51.68 ID:mgwe0miJ
はい、実行したら1500行以上出てきたんできっと文字化けです。 でもprint "$image";をすると、きちんとリソースIDが格納されてました。 なので俺もプログラム自体は問題ないと思います。 もしかしたらブラウザかレンサバに問題があるのかもしれないですね。。 ちなみにブラウザはfirefoxです
文字化けではなくヘッダが適切に出力されていないからバイナリが文字列で表示されてるんでしょ 広告が自動で挟まれたりしてるのでは?
759 :
nobodyさん :2012/12/28(金) 03:50:57.78 ID:mgwe0miJ
すいませんimagejpeg($image);の前に header("Content-type: image/jpeg"); を追加したら見れるとのことなんですがcan't modifyみたいなエラーが出てきました おかしいと思って新規ファイルにphp部分だけコピペして再度リンクさせるとなんとか表示できました ちなみに広告は挟んでません。普通のhtml文書にphpを挟んでる感じです。
760 :
nobodyさん :2012/12/28(金) 03:53:16.66 ID:mgwe0miJ
どうにかhtml文書の中で表示させることはできませんかね。。 phpだけでやっちゃうと見栄えが簡素で殺風景になってしまいます…
ヘッダ既に出力されている場合は出力バッファでも使わない限り変更できないよ HTML中に出したいならスクリプトを別出しにすれば?
762 :
nobodyさん :2012/12/28(金) 04:06:36.73 ID:mgwe0miJ
既に出力ですか?このヘッダ関数てのはhtmlヘッダとは別物ってことであってますか? だとすると、特に他にheader関数を呼び出したりはしてないんです。 いまいち良くわからないです
763 :
nobodyさん :2012/12/28(金) 04:08:44.46 ID:mgwe0miJ
スクリプトを別出しにするってのをもう少し詳しく知りたいです
jpegを出すスクリプトを単体で書いてimgタグで参照
765 :
nobodyさん :2012/12/28(金) 04:19:27.49 ID:mgwe0miJ
その単体のスクリプトファイルをincludeするってことですか?
<?PHP なんか ?> <?PHP なんか みたいなこといなってるか、BOMとかいう落ちは無いの?
767 :
nobodyさん :2012/12/28(金) 04:28:59.78 ID:mgwe0miJ
どうですかね、一応簡単にですけど文書構造はこんな感じです <!doctype html> <html><!-- InstanceBegin template="/Templates/base.dwt.php" codeOutsideHTMLIsLocked="false" --> <head> <meta charset="UTF-8"> <!-- InstanceBeginEditable name="doctitle" --> <title></title> <!-- InstanceEndEditable --> <style type="text/css"> </style> <link href="main.css" rel="stylesheet" type="text/css"> <!-- InstanceBeginEditable name="head" --> <!-- InstanceEndEditable --> </head> <body> <div class="basic" id="header"> </div> <div id="navi"> <ul> <li><a href="main.php">〜〜〜</a></li> ・ ・ ・ </ul> </div> <!-- InstanceBeginEditable name="contents" --> <?php なんか ?> </body> なにか問題ありそうですかね?
>>767 文中は無理。PHPモード以外ではtext/htmlが自動出力される。
766の人が言っているのは、単体の画像出力用スクリプト中に空白が入っていてtext/htmlヘッダが出力されているケースで、767とは違う。
てか、HTML中に画像埋め込んだとして、そのHTMLファイルのヘッダは何にするつもり?
769 :
nobodyさん :2012/12/28(金) 04:51:47.82 ID:mgwe0miJ
自動出力されるんですか、それじゃどうしたって無理ですね それと式書くときとか=の両側に一つ空白入れるようにしてるんですがその空白もダメってことですか? HTMLファイルのヘッダを何にするとはなんですか? 一応ここのスクリプトが完成すればすべて完成なつもりなんですけど
>>769 そのスクリプトのContent-Typeは何にするのという意味
スクリプト自体ではなく、スクリプトにアクセスした際に出力されるものね
772 :
nobodyさん :2012/12/28(金) 05:04:30.60 ID:mgwe0miJ
画像のサムネイル表示のためでタイプはimage/jpgかimage/pngですね
773 :
nobodyさん :2012/12/28(金) 05:11:08.69 ID:mgwe0miJ
ちょっと頑張ってみます ありがとうございました
がんばってくれ
変な頑張り
画像のバイナリをbase64でエンコすればdataスキーム使ってHTMLのなかに直接埋め込める HTMLのサイズがバカでかくなるけど
HTML、HTTPの基本についてお勉強が必要
MHTMLという手も
779 :
nobodyさん :2012/12/29(土) 18:08:39.67 ID:DQDV95vy
".$oStatus->created_at." を装飾してdate("Y/m/d H:i",strtotime($status->created_at)); のような感じに変換したいのですがどこかが間違っていてうまくいきません 正しい記述を教えて下さい
$status->created_atじゃなくて $oStatus->created_atじゃないのか?
781 :
nobodyさん :2012/12/29(土) 18:17:43.45 ID:DQDV95vy
>>780 そこをそう治しても真っ白になってしまい表示されません
782 :
nobodyさん :2012/12/29(土) 18:19:50.71 ID:DQDV95vy
ちなみに今の正しく表示される状態の記述は echo "<p>・\n".$sText." ".$oStatus->created_at." </p>\n"; こうです 日付を Y/m/d H:i の形式に変換したいのですがうまくいきません
echo "<p>・\n".$sText." ".$oStatus->created_at." </p>\n"; これの実行結果を言わないとどうにもならんわ ようは$sText.と$oStatus->created_atの中身がどういう値が入ってるのか
TwitterAPIで取れる投稿日時のことなんだろうけどね
785 :
nobodyさん :2012/12/29(土) 18:32:37.68 ID:DQDV95vy
実行結果…ですか どう書いたらいいか ツイッターのapi使ってやってるもので 該当スレ見当たらずここでまた質問してしまってすみません 日付の実行結果はFri Dec 28 23:44:03 +0000 2012 みたいになります stextの値は自分のつぶやき内容です 基礎知識がほぼなく見よう見まねでやってるものですみません
786 :
nobodyさん :2012/12/29(土) 18:34:24.33 ID:DQDV95vy
<?php
//twitteroauth.phpをインクルードします。ファイルへのパスはご自分で決めて下さい。
//同じディレクトリにファイルがある場合は以下でOKです。
require_once("twitteroauth.php");
//Consumer keyの値をTwitterAPI開発者ページでご確認下さい。
$consumerKey = "----------------------------";
//Consumer secretの値を格納
$consumerSecret = "-------------------------";
//Access Tokenの値を格納
$accessToken = "------------------------------";
//Access Token Secretの値を格納
$accessTokenSecret = "-------------------------";
//OAuthオブジェクトを生成する
$twObj = new TwitterOAuth($consumerKey,$consumerSecret,$accessToken,$accessTokenSecret);
//home_timelineを取得するAPIを利用。TwitterからXML形式でデータが返ってくる
$vRequest = $twObj->OAuthRequest("
http://api.twitter.com/1/statuses/user_timeline.xml ","GET",array("count"=>"30"));
//XMLデータをsimplexml_load_string関数を使用してオブジェクトに変換する
$oXml = simplexml_load_string($vRequest);
//foreachでオブジェクトを展開
foreach($oXml->status as $oStatus){
$iStatusId = $oStatus->id; //つぶやきステータスID
$sText = $oStatus->text; //つぶやき
$iUserId = $oStatus->user->id; //ユーザーID
$sScreenName = $oStatus->user->screen_name; //screen_name
$sUserName = $oStatus->user->name; //ユーザー名
echo "<p>\n".$sText." <br>".$oStatus->created_at."</br> </p>\n";
}
?>
参考になるかわかりませんが一応全部だとこう記述してます
consumer keyなどの値は今は-------に置き換えてます
>>785 echo date("Y/m/d H:i", time());
これだけでちゃんと表示される?
788 :
nobodyさん :2012/12/29(土) 18:38:15.49 ID:DQDV95vy
>>787 それだけだとちゃんと表示されます
自分の組み込み方が悪いみたいですね
どこだかがさっぱり…
http://php.net/manual/ja/function.date.php > timestamp
> オプションのパラメータ timestamp は、 integer 型の Unix タイムスタンプです。
>timestamp が指定されなかった場合のデフォルト値は、 現在の時刻です。
>言い換えると、デフォルトは time() の返り値となります。
ってかいてんじゃん
>Fri Dec 28 23:44:03 +0000 2012
これがinteger型のUnixタイムスタンプに見えますか?
というわけでまずこれをUnixタイムスタンプに変えてください
>日付の実行結果はFri Dec 28 23:44:03 +0000 2012 みたいになります みたいに? みたいにじゃなくて、ちゃんと書けよ? Friのあとにカンマないの?
ごめんstrtorimeしてたね
792 :
nobodyさん :2012/12/29(土) 18:44:37.13 ID:DQDV95vy
echo strtotime("Fri Dec 28 23:44:03 +0000 2012"); //1356738243 echo date("Y/m/d H:i", strtotime("Fri Dec 28 23:44:03 +0000 2012")); //2012/12/29 08:44 本当にstrtotime($status->created_at)がFri Dec 28 23:44:03 +0000 2012なら問題無いように思えるが
2012の後ろに全角スペース入ってんだろ?
echoじゃなくてvar_dumpしなさい
796 :
nobodyさん :2012/12/29(土) 18:54:11.38 ID:DQDV95vy
ええと、 echo date("Y/m/d H:i", time()); これだけだとちゃんとこの形式で今の時刻で表示されるんですけど ツイート時の時刻を表示させるので echo date("Y/m/d H:i", time());に $oStatus->created_at を組み込むとおかしくなるんです ".$oStatus->created_at." は Fri Dec 28 23:44:03 +0000 2012 となります
797 :
nobodyさん :2012/12/29(土) 18:54:41.84 ID:DQDV95vy
798 :
nobodyさん :2012/12/29(土) 19:01:01.94 ID:DQDV95vy
echo date("Y/m/d H:i", time($oStatus->created_at)); これだとすべてのツイートの時刻が現在時刻で echo date("Y/m/d H:i", time(.$oStatus->created_at.)); だとページ真っ白 echo date("Y/m/d H:i", time(".$oStatus-.">created_at)); これでもすべてのツイートの時刻が現在時刻になってしまいます
799 :
nobodyさん :2012/12/29(土) 19:02:25.85 ID:DQDV95vy
echo date("Y/m/d H:i", time(".$oStatus->created_at.")); 三番目のは間違いです正しくはこれですべてのツイートの時刻が現在時刻でした
二番目 echo date("Y/m/d H:i", time( . $oStatus->created_at . )); ここのピリオドいらない 後apiの/1/〜.xmlはもう使うな。
なんなんの2番めの変数前後のドットは echo date("Y/m/d H:i", strtotime($oStatus->created_at)); これでいけるだろ
>>798 strtotimeからtimeに変わっちゃってるじゃないか
803 :
nobodyさん :2012/12/29(土) 19:17:29.82 ID:DQDV95vy
echo date("Y/m/d H:i", strtotime($oStatus->created_at)); これでいけました ありがとうございました! あとこの日付の下に<hr style="border:none;border-top:dashed 1px #CCCCCC;height:1px;color:#FFFFFF"> を挿入したいのですがこれもやろうとすると真っ白になってしまい… 教えて頂けると嬉しいです
何故その前後の行を書こうと思わないのか
806 :
nobodyさん :2012/12/29(土) 19:24:14.22 ID:DQDV95vy
すみません
echo "<p>\n".$sText." <br> ここ </br> </p>\n";
}
?>
に
date("Y/m/d H:i", strtotime($oStatus->created_at))
を入れると真っ白になってしまいます
<hr>を入れたい箇所はdateの行の下です
前後の行は
>>786 の通りです
ある程度理解してると思ったらただのコピペ丸投げ厨だったか・・・
>>803 を解決したいなら基礎から勉強してこい
つーかDateTimeクラスでやれ
809 :
nobodyさん :2012/12/29(土) 20:46:59.54 ID:8IgiEK0o
win sjis(cp932)の日本語ファイル名でc5が出てくるファイルが読めない(file_exists()やfile_get_contents()...)のって、 中の人がファイルパスを展開するときに、単にc5(\)をパスセパレータとしてパスを切ってるからってこと? \user\home\申請書.pdfだと\usr\home\申\請書.pdfみたいな これだと中の人を騙さない限り回避策はない??
mb_*は入ってない環境なの?
中の人?c5?
c5は半角カナの何か 5Cが円記号 file_get_contentsが日本語ファイル名を正しく処理できるかの話
>>806 1つだけいいこと教えてあげる
”真っ白になる”ってのは通常起こり得ない
普通はエラーメッセージが出て修正箇所がわかりやすくなる。
たぶんレンサバにさくら使ってるんだと思うけど
さくら PHP エラーでぐぐってエラー出してみればいいよ
>>813 真っ白になることぐらいよくあるよ
display_errors
display_startup_errors
による
開発中は表示したほうがいい
よくはないだろ PHPのインストール先で.$hoge.なんて引数渡して syntaxエラーも出ず真っ白になる確率なんて1桁% 日本じゃさくらのシェアが多いから多く感じるだろうけど あれはCGI版PHPだったり色々他と比べても特殊
816 :
nobodyさん :2012/12/30(日) 04:10:23.02 ID:vfz9Ho+1
class内のconstが未定義だとfatalが出ますが、これをcatchする方法ってありますか?
無い。 const 未定義って、そんな状況想像できないんだが
回復できないエラーだからキャッチ出来るようには作ってない。
変数と定数の違いから勉強しやがれですう
fatal 致命的な
>>817 いや、あり得るだろ、普通に。
ひょっとして、constは何のために使うか理解できてない?
>>818 プログラムを理解できてないのか、日本語の文法を知らないのか、どっち?
回復できないエラーだから、キャッチできるけど、あえてしてない。と思ってるの?
キャッチできないから、回復できないんだけど?
>>819 無理にレスしなくていいよ。
>>820 覚えたての英語ですか?
816=817=818=819=820=821
定数未定義なんてありえるの?バグ以前の問題じゃないか。
Javaとかでは例外投げられんの?
>>823 まぁ、constの使い道がただの定義定数だと思ってると、どうして未定義が発生するか想像できないよ。
まぁ、普通は、ちゃんと抽象化してコードの再利用をしてると嫌でも遭遇する。
自社サイトしか作った事がないとか、納品したらもうそれで終わりとかいう、なんちゃってベンダーで働いてたら分からんと思うよ。
Javaはconstは仕様上はあるっぽいけど、実装はされてないよ。
あとheadが、production、staging、develop などと分岐してて、developで作業しながらproductionのデバックも並行して行う。 みたいな、ちゃんとしたプロのプログラマーじゃないと、理解は難しいと思うよ。
JavaはFinal使ってconst代りにしてるな。 つうか、お前らPHPしかできないのかよ!
もしかしてdefinedのこと?
Javaだってそんなアホな実装したらコンパイルエラー出るだろ? 何言ってるか分からん
831 :
nobodyさん :2012/12/30(日) 15:59:28.46 ID:RkadAwyD
すみません。PHPに限ったことではないのですが一つ質問させてください。 随時情報が随時更新される部分だけを ajaxで再度情報を読み込んで部分的に再レンダーをしています。 だいたい5秒につき1回の処理で実施させています。ご察しのとおり1万人がアクセスしていたとしたら 5秒の間にほぼ同時に1万アクセスが集中します。 しかし、チャットのように即時性が求められるものの場合 頻繁な更新が必要になります。 皆さんならどのように対処しますか? 5秒→10秒ロードに伸ばす 鯖の環境を限りなくいいものにする その他 何かいい案があれば教えてください
だから君はまだ、そのステージに登ってないんだよ。
だから君はまだ、そのステージに登ってないんだよ(ドヤァ
>>831 随時更新される部分を非同期I/Oにして、Server-Sent EventsかWebSocket
836 :
nobodyさん :2012/12/30(日) 16:14:37.34 ID:RkadAwyD
>>832 はい、一日がだいたい丁度1万PVですね
>>835 やはりWeb socketが定番なのかなぁ
>>836 じゃあ同時アクセス数ははるかに少ないんじゃないの?
>>833 ステージについてkswk
客観的に見て負け惜しみ言っているようにしか見えないぞ
839 :
nobodyさん :2012/12/30(日) 16:31:46.29 ID:RkadAwyD
>>838 わかんない時点でもうダメだと思うよ。
>>840 あーそれ、言うと思った。プロの意味が分かってないんだよ。日本人は英語が苦手だからね。
>>838 > ステージについてkswk
英語どころかカタカナアルファベットも使えてないじゃん…あいたた
>>838 >>827 に書いてあるよ?
バージョン管理とかした事ないとか、TortoiseSVNは使ってるけど、単なるバックアップになってるとか、
svnは単なるコンフリクト回避にしか使ってないとか、
gitを使ったことがないとか、
gitを使ってるけど、使い方がsvnとかわらないとか、
そういうステージに要る人には、どだい理解し難い話だと思うよ。
844 :
nobodyさん :2012/12/30(日) 17:57:21.47 ID:isnFcWhy
intとintegerってどう違うの? 公式読んでもよくわからん
>>843 それとconstの未定義がどうこうという話とどうつながるの?
>>836 1日1万回リロードされる訳か
5秒に1回とすると15時間くらいかかるな
>>815 さくらに思い入れがあるのは分かったが、
真っ白になるかどうかは設定と作り次第だってば
エラー表示オフにしてたら、syntaxエラーが画面に表示されるわけないだろ
共用サーバしか使ったことないのか?
なんか今日は痛いやつがいっぱいいますね
オレのPC画面はよく真っ青になる
851 :
nobodyさん :2012/12/30(日) 22:00:03.97 ID:0Jhm5lX3
>>846 どのような要件が重なった時に未定義のconstにぶつかるのですか?
煽りじゃなく、純粋に知りたいので良ければ教えて下さい。
>>849 なんてったってPHP厨も冬休みだからな
基本的にPHP厨には屑しかいないが、冬休みで暇になったから加速してるんだろう
>>827 デバッグをデバックと書いちゃうゴミはさっさと消えろ
>>815 何の根拠もなく1桁パーセントですってよ
そうだな1桁%とか笑っちゃうな 1/1000%ぐらいなのにな
確率を主張したいなら、大々的に実験して母集団を統計学的に推定するくらいしろ
display_errorsはデフォルトではオンになってるけど本番ではオフにしろって書いてるし ほとんどのレン鯖でエラーが見えるように デフォルトの設定を当たり前のように利用してるレン鯖は多いけどそれは厳密にはよくないこと つまりさくらは正しいことをしているってことだな
サクラはmagic_quote_gpcが確かオンだったけどなwww
まだ5.3なの?
AというサーバーでPOSTリクエストをHTTPヘッダに入れて送信するものを作って、実行すると Bサーバーのフォームに書き込むって処理をやりたいんですが HTTP/1.1 404 Not Found となって正常に通信できません。 POSTリクエストファイルをBサーバーにあげると正常に動くんですが サーバーが違うとできないんでしょうか?どっちもxreaです
861 :
nobodyさん :2012/12/31(月) 10:18:12.40 ID:WNJWSLTr
↑おねしゃすです
862 :
851 :2012/12/31(月) 15:14:45.18 ID:UZPpiA5D
864 :
nobodyさん :2012/12/31(月) 19:05:15.12 ID:WNJWSLTr
ソースはこんな感じです $fp = fsockopen('127.0.0.1', 80); $data = http_build_query(array('何が' => '何です', 'key' => 'value'), '', '&'); $request = array( 'POST /test/bbs.php HTTP/1.1', 'Host: www.example.com', 'Content-type: application/x-www-form-urlencoded', 'Content-length: ' . strlen($data) . '', ); fwrite($fp, implode($request, "\r\n") . "\r\n\r\n" . $data);
とりあえずcURLでやれ
>>864 allow_url_fopenが無効になってるとか?
ログ見れば
868 :
nobodyさん :2012/12/31(月) 22:48:41.19 ID:WNJWSLTr
>>866 ONみたいです。log
HTTP/1.1 404 Not Found
Date: Mon, 31 Dec 2012 13:47:46 GMT
Server: Apache
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html; charset=iso-8859-1
ってなります。
レスポンスじゃろそりゃ
870 :
nobodyさん :2012/12/31(月) 23:05:02.37 ID:WNJWSLTr
ログとはどうやってみたらいいんですか?
レスポンスよりリクエスト見ろ
872 :
nobodyさん :2013/01/01(火) 10:14:58.22 ID:jqUxa8v5
リクエストは↑に書いたんですが
>>872 レスポンスで404が帰ってるんだから、本当に404なんだろう。
httpdが受け取ってるリクエストが予定通りなのかどうかを
確認した方が早いんじゃないの?
PHP厨の存在自体がくだらない
そりゃすいません
876 :
nobodyさん :2013/01/01(火) 12:28:36.84 ID:jqUxa8v5
>>876 リクエスト出してるのが自分の書いたスクリプトなんだろ?
その時にリクエスト内容いったんファイルに書き出してチェックするとかしたら
ところで、 $fp = fsockopen('127.0.0.1', 80); これは?
Bサーバーだと動くとか書いてるから、コード見てなかったw 一つ目のパラメータにarray()とかしないで、 外で作って変数に入れとけ。 その方がミスを見つけやすい。
正常に動いた例だろ?
正常に動くんなら解決だろ キチガイ乙
画面を見た感じ、
端末→A→B
の端末部分の表示に見えるが。
だとしたら意味無いけどw
でももう
>>878 で解決だと思うのだが。
本人まだ来てないが。
884 :
nobodyさん :2013/01/01(火) 17:22:57.28 ID:jqUxa8v5
キチガイ登場です
>>878 で解決しました。ありがとうございます&サーセンw
あとデータ送れてなくても200にはなってたので一応報告しときます
リクエストの1行目を見せろ&見ろゴミ
888 :
nobodyさん :2013/01/01(火) 20:47:08.89 ID:4XuGAmb/
質問です。 PHPはオブジェクト指向言語の代表格なのでPHPを先に学習すると JavaとかC#とか超簡単に覚えられるし、これからはPHPの高い信頼性を 生かして他の言語で作られたシステム、特に銀行系のシステムが PHPに置き換えられていくと会社の先輩から聞きました。 そこでオススメの参考書を教えて下さい。
会社の先輩に聞いて下さい。 おっと、無職でしたっけ、失敬。
過去スレで既出
>>887 ローカル環境で送信側と受信側のスクリプト用意して動確してるんだと思ってた
892 :
nobodyさん :2013/01/02(水) 05:13:50.35 ID:qU6EREs2
memcahedで困っています。 キャッシュが無い場合は以下を実行して複数レコードのクエリ結果を保存しているのですが、 while($row = mysql_fetch_array($my_Row)){ $menu1_0_title = $row["book_title"]; $menu1_0_no = $row["book_no"]; $menu1_0_chosha = $row["book_chosha"]; if(empty($menu1_0_chosha){ $menu1_0_chosha = "不明"; } echo "<li><a href=\"./".$menu1_0_no.".html\">".$menu1_0_chosha." - ".$menu1_0_title."▼</a></li>\n"; } $row = serialize($row); $memcached->set("bookcache", $row, MEMCACHE_COMPRESSED, time() + 300); }else{ $row = unserialize($row); キャッシュが存在する場合、この後の処理はどのように書けば良いのでしょうか? while(){}の中身がうまく書けずに困っています。
if(キャッシュがある){ キャッシュから取得して変数に格納 } else { DBから取得して変数に格納 } 変数を使用する
まず memcached->get して、 FALSE が帰ってきた時に set すればいいんじゃね?
895 :
nobodyさん :2013/01/02(水) 07:05:16.50 ID:qU6EREs2
こんなに早くお返事がいただけるとは思っていませんでした。
ありがとうございます。
>>893 まさにその「キャッシュから取得して変数に格納」の記述方法がわからず苦悩しています。
while(『ココ』){
$menu1_0_title = $row["book_title"];
$menu1_0_no = $row["book_no"];
$menu1_0_chosha = $row["book_chosha"];
if(empty($menu1_0_chosha){
$menu1_0_chosha = "不明";
}
echo "<li><a href=\"./".$menu1_0_no.".html\">".$menu1_0_chosha." - ".$menu1_0_title."▼</a></li>\n";
}
複数レコードなのでシリアライズを使ってみたのですが、
これは問題ないでしょうか?
>>894 長くなりすぎると思ったのでその部分を省略していました。
実際はmemcached->getも上の方で実行しています。
誤解を招く表現で申し訳ありません。
>>895 よく分からん。『ココ』はDBから取得している処理では?
897 :
nobodyさん :2013/01/02(水) 21:20:30.84 ID:BJXyvJDc
>>896 説明が下手で申し訳ありません。
mysqlからクエリ結果を取得する時には
『mysql_fetch_array』を使うというのはわかるのですが、
キャッシュに保存されたクエリ結果の取得なので
どんな関数を使えばいいのかわかりません。
『mysql_fetch_array』を使って以下のようにしても良いのでしょうか?
while($row =mysql_fetch_array($row)){
$menu1_0_title = $row["book_title"];
(省略)
}
echo "<li><a href=\"./".$menu1_0_no.".html\">".$menu1_0_chosha." - ".$menu1_0_title."▼</a></li>\n";
}
ああ、そういうことか 配列の状態でキャッシュに入れておいて、foreach文かfor文でループさせれば同じことができるよ。 例えば以下のような感じ foreach($rows as $row) { 〜〜
899 :
nobodyさん :2013/01/03(木) 00:06:28.30 ID:g593pwmY
>>898 ありがとうございます。
foreachを使い、
>>893 で教えていただいたように順番を変更しました。
serializeを使うとキャッシュがある時に表示しなくなるので外してみました。
キャッシュ有りでもキャッシュを読んでくれないのですが、
何がまずいのでしょうか?
900 :
nobodyさん :2013/01/03(木) 00:07:54.37 ID:g593pwmY
$memcached = new Memcache; $memcached->connect("localhost", 11211); if (($row = $memcached->get("bookcache")) !== false) { //$row = unserialize($row); foreach($row as $row2){ $menu1_0_title = $row2["book_title"]; $menu1_0_no = $row2["book_no"]; $menu1_0_chosha = $row2["book_chosha"]; if(empty($menu1_0_chosha)){ $menu1_0_chosha = "不明"; } echo "<li><a href=\"./".$menu1_0_no.".html\">".$menu1_0_chosha." - ".$menu1_0_title."●</a></li>\n"; } }else{ $my_Row = mysql_query("SELECT book_id,book_no,book_title,book_chosha FROM book_table ORDER BY book_id DESC LIMIT 0,50",$my_Con); while($row = mysql_fetch_array($my_Row)){ $menu1_0_title = $row["book_title"]; $menu1_0_no = $row["book_no"]; $menu1_0_chosha = $row["book_chosha"]; if(empty($menu1_0_chosha)){ $menu1_0_chosha = "不明"; } echo "<li><a href=\"./".$menu1_0_no.".html\">".$menu1_0_chosha." - ".$menu1_0_title."▲</a></li>\n"; } //$row = serialize($row); $memcached->set("bookcache", $row, MEMCACHE_COMPRESSED, time() + 600); }
902 :
nobodyさん :2013/01/03(木) 23:13:48.39 ID:g593pwmY
>>901 DBのクエリ結果をキャッシュに保存したいんです。
>>902 1レコード?
複数レコード?
型は?
キャッシュできるのはどういうデータ型?
>>903 複数レコードです。
book_id (int)
book_no (varchar)
が英数字で
book_title (varchar)
book_chosha (varchar)
が日本語です。
全てUTF-8にしています。
下がったら倍プッシュロングに限るぜ
おっと、誤爆した
>>904 >>900 の
$memcached->set("bookcache", $row, MEMCACHE_COMPRESSED, time() + 600);
は複数レコードのデータになってんの?
あと、型はarrayだろ
DBのデータ型はどうでもいい
memcacheはresourceじゃなきゃ自動でシリアライズするみたいだから、
arrayならそのままでよさそうだな
908 :
nobodyさん :2013/01/04(金) 23:49:31.57 ID:EuFkCruD
mod_expiresのキャッシュ機能とPHPのsmartyのキャッシュ機能ってどう違うのでしょうか? わかりやすく説明していただけないでしょうか?
909 :
nobodyさん :2013/01/05(土) 00:03:01.67 ID:jcFksBli
すいません質問を変えます。 mod_expiresのキャッシュ機能はレスポンスヘッダーにexpiresフィールドを付加してブラウザ側にキャッシュさせるものですよね? つまり、あるデータベースにアクセスするページがあるとして、このページに「初めて」ユーザが5000人アクセスしてきた場合、 5000回データーベースにアクセスすることになるってことですよね? 2回目以降はブラウザのキャッシュが使われると思いますが最初は必ずどのユーザもデーターベースにアクセスすることになるっていう認識でいいでしょうか? 逆にsmartyのキャッシュ機能はテンプレートファイルごとにキャッシュした場合、 あるデーターベースにアクセスするページにユーザがアクセスしてきた場合、 その一人目のユーザのアクセス時にはデーターベースを読み込みにいきますが、そこで出力結果のキャッシュが生成されるので、 2回目以降のユーザはそのキャッシュを読みにいくことになるので、 結果的にはDBに負荷がかからないのはsmartyのキャッシュ機能という認識でよろしいでしょうか? 長文で申し訳ございません。 ご回答よろしくお願い致します。
mod_expires >ユーザの指定した基準に基づいた Expires と Cache-Control HTTP ヘッダの生成 ブラウザのキャッシュは有効期限が切れたらサイトから再取得するが その有効期間を伸ばしたりようはブラウザのキャッシュをHTTPヘッダをいじって制御する SmartyやPHPのキャッシュ <?php echo "hello"; ?> これの実行結果はhelloだが毎度phpにアクセスして実行すると効率が悪いので 実行結果(この場合はhello)だけをhtmlなんかの別ファイルや変数(メモリ)にキャッシュしておくような仕組み
911 :
nobodyさん :2013/01/05(土) 00:12:15.27 ID:jcFksBli
>>910 ありがとうございます。
SmartyやPHPのキャッシュのほうは、それは個々のユーザに対して行われるのですか?
>>909 でもいってるように、たとえば一人目のユーザがアクセスしてきてキャッシュが生成されますよね?
次の2人目のユーザがアクセスしてきた場合はそのキャッシュが使われるのでしょうかか?
それとも2人目のユーザは2人目のユーザでまた別にキャッシュが生成されるのでしょうか?
>>909-910 mod_expiresが動的コンテンツをキャッシュできるかは知らんけど
だいたい
>>909 の認識でいいんじゃない
使用目的と照らし合わせるとその選択肢ではsmartyのキャッシュ機能で正解かと
>>912 ですよね。
ご回答本当にありがとうございました。
memcached使えば?
>>914 そんなのあるんですか・・
調べたらみたらすごそうですね
勉強してみます
ありがとうございました
>>911 当然共通
共通ではないならキャッシュの意味ない
>>916 ですよね。。
安心しました
ありがとうございました
ユーザーごとのマイページとかに工夫なしにそれやると、他人のマイページが・・・ってことになるので注意 まぁ、そんなアホなことする人いないかw
919 :
nobodyさん :2013/01/05(土) 11:49:11.83 ID:JD7D6E3p
条件によって、HTTPステータスコード403をブラウザに返し アクセス禁止するような処理を header('HTTP/1.0 403 Forbidden'); により実行してますが、Chromeでは 「ウェブページへのアクセスが拒否されました」というメッセージが表示されるものの Firefox 17.0.1では真っ白の何も書かれてないページが表示されます。 IE(version 9)でも別のページより推移してきた場合は 拒否された旨のメッセージが表示されますが リロードしたときに真っ白の何も書かれてないページが表示されます。 ブラウザによって対応・非対応があるのでしょうか?それとも何か他に対処法があるのでしょうか?
ヘッダ出力したあと何かechoしてみたら?
404だと、大抵サーバー側が出力したエラーメッセージが表示されるのはよく知ってるはずだ 403だと、サーバー側のエラーページを表示するかブラウザーが持ってるエラーメッセージを表示するかが、 ブラウザーやその設定によって異なる
挙動をすべてのブラウザーで統一するには 403ではなく200でアクセス拒否のエラーページを表示するしかない
>>920 回答ありがとうございます。
echo 'test';をheaderのあとに入れてみたところ、
いずれのブラウザでもtestとだけ出力されます。
Chromeで表示されていた「ウェブページへのアクセスが拒否されました」は
表示されなくなりました。
>>921 回答ありがとうございます。
あああー なるほど。そういうことですか。
でも何も表示されないというのは、どっちのメッセージを表示しようとしてるんだろ。。
>>922 回答ありがとうございます。
やはり自作ページを表示したほうが安全ですかねー。
>>921 =
>>922 だけど、
ヘッダーだけ出力するということは
空白ページを出力するのと同じことだよ
ヘッダーはユーザーには見えないからね
>>925 ヘッダさえ出力すればあとは全部ブラウザが勝手に
エラーページ生成してくれるもんだと思ってました。
ありがとうございました。エラーページ自作することにします。
良回答乙
自画自賛乙
929 :
nobodyさん :2013/01/05(土) 22:26:54.88 ID:EDQDuImz
質問です。
あるページからpreg_matchで任意の文字列を取得してすべて表示するにはどうしたらいいでしょうか?
URLを全て取得したいのですが、下の例では1つしか取得できません…
$url = "
http://example.com/test.html ";
$html = @file_get_contents($url);
$html = mb_convert_encoding($html,mb_internal_encoding(),"auto");
if(preg_match("/<a href='(.*?)'>/i",$html,$matches)){
echo $matches[1];
}
preg_match_all
良回答乙
ちょうど似たようなの作ってた
<?php
$url="
http://ava.pmang.jp/clans/ranking?page=1&type=clan ";
$html = file($url,FILE_IGNORE_NEW_LINES|FILE_SKIP_EMPTY_LINES);
$htmlsource = "";
foreach($html as $key => $val){
$htmlsource .= trim($val);
}
preg_match_all("/<a href=.*?>/", $htmlsource, $linkarray);
print_r($linkarray);
?>
こんな感じにしたよ
933 :
nobodyさん :2013/01/05(土) 23:07:32.50 ID:EDQDuImz
つうか参考のリンクは関連関数なんだからマニュアルもちっと隅々まで見ろ
年末年始memcachedについて質問をした者です。 皆さんのアドバイスのおかげでまともにキャッシュが応答するようになりました。 どうやらもっと早い時期に動くようになっていたようなのですがNginxのリバースプロキシが応答している事に気付かずにあれこれ悩んでいたのですが、先程ふと思い立ってプロキシの有効期間を1分にして動作確認を行ったところページ内のmemcacheは全て正常に動作していました。 あとはmemcached、リバースプロキシ、expiresヘッダそれぞれの有効期間を調整するだけです。 本当にありがとうございました。
良質問者乙
938 :
nobodyさん :2013/01/06(日) 22:21:55.72 ID:5o7VoGpS
【OS名】Free BSD 【PHPのバージョン】5.2.17 【質問内容】 PHPでmecabを利用し、名詞を抽出したいです。 <?php $mecab = mecab_new(); $str = 'MeCab extensionのインストールは大変だった。私は猫が好きです。猫カフェに月2回は行っています。最近は寒いですね。明日は洋服を買いにルミネに行きたいです。2013年になりましたね。今現在、JavaScript、PHP、Javaを勉強しています。'; //名詞を格納する配列 $noun_array = array(); if($node = mecab_sparse_tonode($mecab, $str)){ while ($node){ $node_array = mecab_node_toarray($node); if($node_array["stat"] != 2 && $node_array["stat"] != 3 && preg_match("/名詞/", $node_array["feature"])){ print "OK"; }else{ print "NO"; } $node = mecab_node_next($node); } } ?> このようなプログラムを書きましたが上手く動きません。 print $node_array["feature"]; をするとちゃんと'名詞'が含まれた文字列も出力されるのですが。
出来るわけねえだろそんなの・・・と思ってググってみたら出来るんだなこれ すごいな
>>938 どこまで想定通りでどこから想定外の出力が出ているのか切り分けてみては
まずメカブのサンプルからやれよ
942 :
nobodyさん :2013/01/06(日) 23:27:44.59 ID:5o7VoGpS
>>940 print $node_array["feature"];
を試すと、名詞が含まれる文字列も出力されるのですが、
if($node_array["stat"] != 2 && $node_array["stat"] != 3 && preg_match("/名詞/", $node_array["feature"])){
ここのpreg_match("/名詞/", $node_array["feature"]) が上手く行かなくてエラーになっているみたいです。
色々試したのですが、自分ではどうしたらいいか分からなくて
またmecabか
もしかして配列
基礎もできてないのにいきなりメカブとか
>>946 文字コードの問題でした。
ありがとうございます!
くだらない 馬鹿しかいない
高度な問題だ 文字コードだけにwwwwwwww
高度とコードを掛けたわけですか。 ハイレベルでハイグレードな大ネタですね。
キャラの使い分けが高度だ キャラクターコードだけにw
次スレは くだらねぇギャグはここに書き込みやがれ 125でいいですか?
高度なギャグはここに云々で
【PHP】高度なコードはID出して行動しやがれ 125
次スレが不要だということは分かった
こうドヤ顏で言ってます
957 :
nobodyさん :2013/01/07(月) 18:46:56.49 ID:d/5dHw2t
PHPの連想配列の値に配列指定することってできますか? $array1 = array(); $value = array(1, 1); $array1['test'] = $value; みたいにできるのか教えてください。
その書いたコードそのまま試せばわかるじゃん
あした
悪質質問者乙
誰にレスしてんだよ
965 :
nobodyさん :2013/01/07(月) 23:31:28.47 ID:Ba3rRhi9
a=100% b=22% hogehoge=xx% c=3% ↑の文字列のから「100」と「22」と「3」(数字は変動します)を取り出そうと思い 下記の文を書きましたが、最初の1つしか取り出さないようです。 複数取り出すにはどのようにしたらよいでしょうか? $content = "a=100% b=22% hogehoge=xx% c=3%"; preg_match("/\=([0-9]{1,3})%/", $content, $matches); echo $matches[1]; echo $matches[2]; echo $matches[3];
言葉を慎みたまえ
俺だ!
このスレが必要な質問は出てこないな
いつもくだらない質問をする側のくせに何を言ってるんだ
971 :
nobodyさん :2013/01/09(水) 00:33:10.56 ID:5kmbCoak
質問1. たまに引数に class名 変数名 のようにしてある関数を見ますがこれはそのclassのインスタンスを要求しているということしょうか? class TestClass{ public $i; } class Main{ function test (TestClass a){ $a->i = 0; } } こんな感じのものです。 質問2.漠然とした質問ですみません。 関数を指定したあとにさらに関数を指定してあるコードを見かけますがあれは何なのでしょうか? $this->instance->methodA()->methodB(); のようなコードです。考えられる要因を教えて欲しいです。
メソッドチェーンの場合もある
974 :
nobodyさん :2013/01/09(水) 07:04:25.96 ID:5kmbCoak
>>972-973 こんな曖昧な質問に答えて下さってありがとうございました!
無事理解できました。
975 :
nobodyさん :2013/01/09(水) 17:37:43.70 ID:ZlJTdZpn
同じファイルに1万回アクセスあるか、 1万のファイルに1回ずつアクセスがあるとします。 この場合、後者の方がサーバの負荷がかかるって 聞いたのですが、本当ですか?
そりゃキャッシュが効けば物理的にアクセスしなくて済むしな
977 :
nobodyさん :2013/01/09(水) 17:44:12.16 ID:ZlJTdZpn
ということはドメインや利用者を分けたい場合、 1つのファイル上で分岐すれば良いだけなんですね。 利用者ごとにファイルを生成して そこからシステム用のファイルにincludeするのかと思っていました。
!?
前提となるシステムが書いてないから何の話かさっぱりわからんw
Wordpressのマルチブログ機能を使ってみろ サイトもDBで管理して、設定ファイルが増えるわけじゃない
>>981 すまん。何度か試しているが無理だった・・・
建てるわ
乙華麗
986 :
nobodyさん :2013/01/09(水) 23:11:09.56 ID:DiImble8
質問です、file_get_contents()などでhttpのpost送信したいんですが、
ただのテキストの送信は上手くいってるんですが、画像を送信する時はどうしたら良いんでしょうか?
こんな感じでやっているんですが…
$graph_url = "
https://graph.facebook.com/ ". $album_id . "/photos?access_token=" . $access_token;
$postdata = http_build_query(
array(
'source' => '/img/test.jpg',
'message' => "写真を画面遷移なしで投稿します。"
)
);
$opts = array('http' =>
array(
'method'=> 'POST',
'header'=> 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = json_decode(file_get_contents($graph_url, false, $context));
見ての通りfacebookのapiへの操作なんですが、その部分はおいといてhttp-post送信での画像送信はどうしたら良いんでしょう
よろしくお願いします
987 :
986 :2013/01/09(水) 23:27:16.12 ID:DiImble8
pearを使うと良いっぽいですね そちらを試してわからなかったらまた質問させてもらいます、スレ汚しすみませんでした
最近質問者が固定になってんな 似たような質問の続きだし 勢いみても2chの衰退が激しい
>>975 ファイルを開いて読んで閉じる処理が重いし、
大量にファイルがあるフォルダーを開くのが重い
>>989 それ、答えになってない
開いて読んで閉じる回数はどちらも1万回
1ファイルだとしても大量にファイルがあるフォルダーのうちの
1ファイルかもしれない
だからキャッシュだってば
さらにAPCとか使ってれば中間コードキャッシュもある
次スレいらない お開きにしましょう
WPがこれだけはやったのも、無料というのはあるだろうけど MTと比べてPHPでページを生成するから早いってのもあると思う。 MTはいちいち静的なファイル作ってたし。
wordpressって、どうやって金儲けしてるんだろう?
995 :
990 :2013/01/10(木) 05:18:01.81 ID:???
性的なファイルなら負けない
997 :
990 :2013/01/10(木) 10:30:07.68 ID:???
性的な意味で
てす
てす
てす
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。