【PHP】下らねぇ質問はここに書き込みやがれ 70
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
次スレは970が立ててください立たなかった場合は980よろ
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/ ◆質問する時の注意
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を必ず明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくは質問時のトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
【簡易FAQ】 (1/3)
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)、起動&再起動あたり
【簡易FAQ】 (2/3)
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.を参照
【簡易FAQ】 (3/3) 21. 画像処理一般 or GDの限界 → ImageMagick(PECLのやつ or シェルから実行) 22. 画像・音・動画はファイルで保存?DBに保存? → 好きにしてください
MediaWikiのテキスト変換部分ってどのへんなんだ 全く見当たらない
>>1 テンプレ変えるなタコ
トリップつけてもageてなければ答えないのが昔からのスタンスだろ
まず読め→【PHP マニュアル】
http://www.php.net/manual/ja/ PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは
>>2-10 辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/ ◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
こんにちわ。php5 の simplexml関数について教えて下さい。 ・取得したいXMLの内容 <results> <SAVE_COUNT u="http%3A%2F%2Fblog.katsuma.tv%2F" ct="1"/> </results> ・どうしたいのか? 上記の u= と ct= の値を simplexml 関数を使って取得したいのですが、うまくいきません。 print_r($xml->SAVE_COUNT); で SimpleXMLElement Object ( [@attributes] => Array ( [u] => http%3A%2F%2Fblog.katsuma.tv%2F [ct] => 1 ) ) となるのですが・・・。 ct と u っていうのは要素になるのでどうやれば取得できますでしょうか。 教えて下さい。よろしくお願いします。
$xml->SAVE_COUNT['u']
>>13 です。すいません。自己解決しました。
板汚し失礼しました。
>>11 過去に縛られ生きてるんですね
トリップが駄目な理由なんだよ
>>16 先人が議論して作りあげてきたものを独断で変えるなよ
トリップがだめなのはトリップをつければsageたままでいいという馬鹿が生まれるからだ
質問者はスレをあげるのがここでのマナー
あげれば回答者は質問があることがわかるしスレも上位にあると際立って人がきやすいからだ
有効な回答をほしいと思ってるのならageて当然
つまりsageたままでは適当な回答でいいと言ってるようなもの
偽者防止だけが理由だと思ってるなら100年ROMってろ
専ブラ使ってりゃageだのsageだの激しくどうでもいい
>>17 先人が議論ってどこにあんのよ?
過去スレ以前に読んだ事があるが
議論らしい議論はなかったが?
それにageて当然とかお前の思い込みも良い所
それに議論しようとしても全く聞く耳も持ってねーし
質問どころかスレですら低レベルな煽り合いかよw PHPユーザーしょうがねぇな。
質問です。 チェック項目の条件に応じた店舗を表示するさいに 各店舗の情報をXMLでデータベースを作りたいのですが XMLでのテキストファイルが3000行ほどになってしまいます。 そこで店舗ごとに1つのファイル化を考えたのですが 3000行あるひとつのファイルを読み込み検証するのと 60行ほどのデータを50コ開いて検証するのとでは どちらが軽量で負荷が少ないでしょうか? また設計上どちら望ましいでしょうか?
全部まとめてでおk
>>20 手持ちの過去ログが45までしかないが、
今のテンプレにガラっと変わったとき前後に、
そんな話をしていた。
もう2年ぐらい前だったと思うけど。
回答者の煽りや自演は、一切無視して質問者の負担だけ増やすのもどうかと思うよ。 回答する気もないくせに、回答者ぶって煽る奴が、このスレは多すぎる。 ID表示必須なら回答者にもそう義務づけるべきだな。
いや別に回答者にはいらない
>>20 あげるのがルール
それが気に入らないなら他いくかスレ作って一人で答えてやれ
しかし何度とあったループだなこれ
本当腐ったスレだね
>>22 パフォーマンスで言えば一括の方が有利。
IOにおいてシーケンシャルリードの効果をより期待できるし、
実行時間ではパーサの複数回初期化によるオーバーヘッドが減る。
メモリでは最大消費量が多くなる場合がある。
それはパーサがXML文章全体をDOMに変換する場合。
対処としてXMLReaderといったAPIの利用が考えられる。
設計で言えば、分割する必要はない。
旧本スレまでみてきた
>>24 議論は一度も無い
くだ質スレでテンプレが変わったのが23から
22では次スレのテンプレに関して旧本スレのを貼っておく
というレスがあってその後議論されていない
旧本スレでIDに関する注釈が入ったのが17から
16のスレでもIDに関して議論は別にされていない
(この時点ではただage進行でと言う事のみ)
で、旧本スレのテンプレが現行の物に変わったのが34からだけど
旧本スレは34で終了しくだ質スレに統合
>>27 その上げるのがルールはどこから出てきたんだ
まともな理由がどこにも無かったわけだが
そして上げるのがルールと言ってる奴に聞いてもまともな回答がない
こいつは何一人でがんばっちゃってるの? 質問者はageろって言われ続けてるんだからおとなしくageればいいんだよ。 ageてない質問者に回答する回答者はただの荒らし。
32 :
nobodyさん :2008/06/26(木) 02:00:27 ID:LMAVX0ml
モジュール版PHPと、FastCGI+PHP(CGI)使った場合と、 どっちが速いですか?
試せ
IISでPHP標準サポートされるようになったんだね 知らなかった
>>29 はいって何だよ。出来んのかよ。さっきから何度も。何がはいなんだよ。
出来もしねえ奴が軽々しくはいなんて言うんじゃねえよ。
わかってんのかよ。はいって言う事の責任の重さを。
社会勉強のつもりでやってんだったら辞めろおまえ。
>>31 なにそのとりあえずやっとけみたいなのw
元々議論すらされてないのに
ageてない質問者やそれに答えるのが荒らしとか
なんか前から思ってたけど、結構前から粘着質のキチガイが棲み着いてるよね。 やたら仕切るくせに、質問に答えることはほぼ皆無で、 毎回毎回、質問の形式にひたすらクレームを付ける。 こいつか……。
40 :
nobodyさん :2008/06/26(木) 11:53:10 ID:FZ89xb6m
ロボットハンドと画像認識装置を使って生産システムを構成する場合どのような制御システムになるか誰か教えてください
41 :
22 :2008/06/26(木) 12:03:25 ID:???
>>36 池沼氏ね。
>>37 全くそのとおりだなageてなくても答えろよなカス回答者しかいねえんだから。
>>38 お前もそんなくらだねえレスしてる暇があったら早く俺の質問に答えろ。
>>39 行かせる前に俺の質問に答えてからにしろ。
んなもん全く知らないが、PHP向きではなさそうだな
43 :
nobodyさん :2008/06/26(木) 12:06:14 ID:FZ89xb6m
わかりました、すんません
>>29 ありがとう。一括の方向でいきます。
>>45 とりあえずXMLは手書きで作ります。
余裕があればデータ編集も作りたいですが
簡単に登録できるphpが使えるフリーのサーバーか、ブログありませんか?
レン鯖板で聞け
49 :
にんにく ◆cxt6jyx9JU :2008/06/26(木) 17:42:16 ID:8GCvPVyj
2ch tripper
のソースコードをみつけました。
http://nullpo.biz/down/trip.phps これの、検索結果を表示するページに、
いくつトリップが見つかったか表示したい
($triplist)の数を数えたい
のですがどうしたらよいのですか?
count($triplist);
では、配列じゃないので1と返されます。
遅レスだが前スレ1000はいいセンスしてる
>>49 数カウント用の変数作って、見つかったときに++
最後にそれを表示。
52 :
nobodyさん :2008/06/26(木) 18:01:06 ID:xST1VWMi
dateでtime()のデータを年月日にすることは出来ますけど、 その逆はどのようにすればいいでしょうか?
55 :
nobodyさん :2008/06/26(木) 19:41:59 ID:4CdQjp6e
PEARのImage_Graphで棒グラフを作ると、 デフォルトでは縦の棒グラフになるのですが、 これを横にする方法はありますでしょうか? Image_Graphは便利なのですが、日本語の情報が少なくて困ります;; よろしくお願いします。
PHPで、Z-Z BOARD
http://z-z.jp/ のトリップを作りたいのですが、作り方どうしたらいいかわかりますか?
どうやったら、作り方がわかるか教えてください。
60 :
◇832bhO5Akc ◆832bhO5Akc :2008/06/26(木) 21:34:06 ID:8GCvPVyj
管理人さんにメールする
62 :
◇832bhO5Akc ◆832bhO5Akc :2008/06/26(木) 21:42:26 ID:8GCvPVyj
>>61 そう簡単には見せてくれなさそうです。
直接CGIソースの見方教えてほしいです。
ソースが公開されてないのにわかるわけねえだろ
ハッシュのような不可逆な一方向関数で作られてるのが多いのに
解読しろっていうのも不可能
直接CGIのソースってなんだよw
サーバでもハッキングする気か?
ほんとこれだからコテトリップは嫌われるんだよ
>>1 氏ね
管理人が見せないなら仕方ないだろ。 盗もうってことか。
65 :
nobodyさん :2008/06/26(木) 21:46:49 ID:ythtWhVe
特定のサイトの仕様をここで聞くなんて変な奴だな 俺たちをエスパーか何かと勘違いしてないかw
66 :
◇832bhO5Akc ◆832bhO5Akc :2008/06/26(木) 21:59:06 ID:8GCvPVyj
またお前かw 4桁の英数字らしいから、2chトリップを半分にすればいいじゃんw
そう簡単には見せてくれないなら、 教えてくれる可能性もあるんだからメール出してみればいいじゃん
てかググれば
>>66 自分で適当に入れてできたトリップをでDBに突っ込んでるだけのお粗末なもの
それに気づけないようじゃ仮に生成方法がわかってもお前じゃどうもできないから諦めろ
好きなトリップを生成するためにソースが見たいとかいってるならなおさら諦めろ
無限ループで適当な文字列つっこんで好きなトリップと一致するまでやり続けるシミュレーターなんかは
作れるだろうがPHPじゃそういうのは向いていない
そしていい加減スレ違いなんだよ糞野郎
・・・?
72 :
nobodyさん :2008/06/27(金) 02:00:18 ID:Fo33kr6K
iframeでサイトを読み込んでいるのですが、 たまに物凄く重くてなかなか表示されない時があります。 例えば、一定時間以上かかった場合、途中までしか表示しない と言う事は出来るのでしょうか?(PHPだけで 出来る場合、参考になる関数などを教えて下さい。
flush
74 :
72 :2008/06/27(金) 02:21:03 ID:???
ありがとうございます。 ページの末尾(</body>の上)に ob_flush(); flush((); を追加したのですが、iframe内のサイトは ページが全て読み込むまで表示されません。 やはり無理なのではないでしょうか?
他のサイトを読み込んでるんだろ そりゃ、あっちのサーバのレスポンスによるわな つうか、凄い迷惑行為なんだけど?
迷惑行為かどうかはその状況によるから何ともいえないが、 外部のサーバの読み込みを制御できるかどうかは論ずる間もないな
fileでいったん読み込むようにしておいて、タイムアウト設定 って手が無いわけでもない。
サーバ側でそんなこと可能なのでつか
そもそもiframeの参照先を PHPでどうこうできると思う思想がめでたいなと思う。 PHPで参照した参照先のHTMLを そのままレスポンスとして吐き出すなら分かるが。
80 :
72 :2008/06/27(金) 11:14:24 ID:???
皆さん、ご指摘ありがとうございます。 サイトに登録されているリンク集を ランダムで表示したいと思っていたのですが、 読み込み先の表示が遅くて一定間隔でページが 切り替わらないので、それで困っていました。 file_get_contentsでリンク先の内容を取得しようかともおもったのですが、 フレーム内に入れるのであれば、結局同じ事だと思いますし、 CSSでの疑似フレームでも<html>〜</html>のソースが入ると誤表示されるので、 iframeを使うしかないと思い、「もし出来たら」というおめでたい発想でした。 とりあえず、無理なのが分かったので、諦めます。
debian + apache2 + PHP Version 5.2.0-8+etch11 定義済みの文字型変数の中の$から始まる文字列に値を代入したい。 とりあえず例を作りました。 $arg = 'testString'; $parse = 'this is $arg'; var_dump($parse); //string(12) "this is $arg" eval('$outputString="'.$parse .'";'); var_dump($outputString); //string(18) "this is testString" $parseの中身を再評価して$argをtestStringにしたい、ということになります。 $parseの定義時にダブルクオーテーションでくくれよ。となると思いますが、たとえば関数の外から$parseが来る場合にはその手法は使えません。 正規表現で$arg等変数名を抽出して置換か、例のようにevalを使うか。 例で出したevalは微妙に重そうだし、コードの実行なので変な文字列が入ったら致命的な結果になりかねないので躊躇。 (たとえば何らかの拍子に $parse = '";exec("Malicious command");echo"';が外部から入ってくるとか。) それ用の関数とか用意されてないのかなと思い調べましたが見当たらず。 ダブルクオーテーションの文字型変数への代入時のパースがコンパイラの仕事かも・・・ $argがオブジェクトで__toString()の定義とかもありえるわけで、当然単純なパースだけでは無理かも・・・などと挫折気味。 どなたかお時間のある方、教えて頂けないでしょうか。
正規表現で$で始まる変数を抽出したうえでevalして置き換えてみては
>>80 読み終わらなくても次に切り替えちゃえばいいじゃないか?
javascriptの話しね。
>>82 ご返答ありがとうございます。
悪意のあるコードが入ってくる可能性があるのは$parseの方なので正規表現で変数抜き取ってもeval使う時点でNGというか。
安全面では単純に正規表現の置換が良いのですけどね。
$parseがヤバイ事を忘れなければevalかなぁ。と思うんですよね。
でも三日経ったら忘れちゃうよなぁ・・・とか。
あとは$parseでダブルコーテーションのチェック入れるか。
それとたかが文字列組み立てるのにあまり処理コストかけられないという悲しき内情。
これは泥臭いコードにならざろうえないのですかねぇ
正規表現でとって 定義済みの変数取得して 同じものがあれば置き換えでいいんじゃ
>>80 html取得して中身編集してから出力するか
javascript使えばいくらでも制御できるんじゃ?
87 :
nobodyさん :2008/06/27(金) 15:24:53 ID:H/xGfrQF
どなたか『Excel_Reviser』の最新版v0.30alphaをお持ちの方いらっしゃらないでしょうか? 現在配布を中止しているようで、どうにも入手できません。 もしいらっしゃったら、どこかへアップロードしていただけませんか? よろしくお願い致します。
>>87 今週末をメドに配布再開って言ってたけど。
89 :
nobodyさん :2008/06/27(金) 15:33:34 ID:H/xGfrQF
>>88 それは確かな情報なのでしょうか?
実は仕事で使いたいと考えておりますので、入手の可否が重要なのです。
返答をいただいておいて失礼ですが、信じてよろしいでしょうか…?
気になるなら、情報源を聞いて自分でも確かめりゃいいだろ
91 :
nobodyさん :2008/06/27(金) 15:39:47 ID:H/xGfrQF
>>90 そうですね、大変失礼しました。
では
>>88 殿、情報源を教えてはいただけないでしょうか?
>>91 Excel_Reviserのフォーラムだよ。
Macで作ったXLSのテンプレートで
メモリ食いつぶす現象が出たらしい。
途中でPOSTしてもたwww 俺も最新版欲しくて見に行ったんだけど、 そんな理由でまだ取れてないwww Mac版のEXCELのファイル提供して、 そのときのコメントがそういう内容だった、 ってことがソース。 脳内ソース乙と言われても仕方ないwww
94 :
nobodyさん :2008/06/27(金) 16:02:18 ID:H/xGfrQF
>>93 ありがとうございます!
またこまめにチェックしてみます。
予定通り、無事配布再開されることに期待…
95 :
nobodyさん :2008/06/27(金) 16:48:43 ID:K7e2dC+6
すみません、質問します var_dump()で array(1) { [0]=> array(12) { ["title"]=> array(1) { [0]=> string(14) "タイトル11" } ["artist"]=> array(1) { [0]=> string(13) "出演者11" } ["musicGenre"]=> array(1) { [0]=> string(1) "2" } ["url"]=> array(1) { [0]=> string(5) "URL11" } ["kaisetsu_text"]=> array(1) { [0]=> string(24) "解説・レビュー 11" } ["DELmujiPic"]=> string(1) "1" ["DB_mujiPic"]=> string(1) "1" ["myWork"]=> array(1) { [0]=> string(1) "0" } ["act"]=> string(6) "確認" ["genre"]=> string(5) "Music" ["mode"]=> string(6) "modify" ["modifyId"]=> string(2) "26" } } を返す配列 $postAry があります この配列から"mode"抜き出して出力するにはどうしたらいいでしょう? echo $postAry["mode"] としても何も表示されません どなたか回答よろしくお願いします
$postAry[0]['mode']
97 :
nobodyさん :2008/06/27(金) 17:49:38 ID:K7e2dC+6
>>96 ありがとうございました
あと、本当に恥ずかしいんですが"title"を出力するにはどうしたらいいんでしょう?
echo $postAry["title"][0] でも echo $postAry[0]["mode"] でもうまくいきません
$postAry[0]["title"][0] かな?
print_rで整形して見れ
文字列の配列を , で連結するにはimplodeだけど 連結するときにそれぞれの文字列を ' ' で囲いたい。 泥臭く書くのはいくらでもできるけど 余計な変数を使わずに エレガントに格好よく書ける?
>>100 echo "'".implode("','",array('a','b'))."'";
102 :
JS :2008/06/27(金) 18:27:42 ID:???
2chの掲示板の最新版スクリプトをダウンロードしたいのですが、どこかありますか?
ぐぐる
104 :
JS :2008/06/27(金) 18:30:40 ID:???
2007/12 から更新がな(ry うらるあったら教えてください
やふる
>>100 function add_quote($value){
return "'".$value."'";
}
implode(", ", array_map("add_quote", $array));
108 :
nobodyさん :2008/06/27(金) 20:00:06 ID:FgqYA5k2
windows版PHP 5.2.6入れてみたのだけど、どうしてもphp_pgsql.dllの読み込みエラーになってしまうので、 windows版のPHP 5.2.5を探しています! どなたか情報下さい
110 :
nobodyさん :2008/06/27(金) 20:18:42 ID:FgqYA5k2
111 :
nobodyさん :2008/06/27(金) 20:31:31 ID:XX5w51Rl
php6やMYSQL6の話題が全然出てこないけど、 みんな使っていないの? 使っていたら、不具合の感じや良かった点とか聞きたいけど。
どっかの廃スレで自演でもして盛り上げる
ゲームの新作感覚かよ
114 :
nobodyさん :2008/06/27(金) 20:48:54 ID:XX5w51Rl
っているか、php6は名前空間が使えるようになって、Javaと肩を並べる位になっているし、 MYSQL6だって、新しいデータタイプが増えた上に、処理が格段に早くなっているらしい。 なのに、話題にならない方が可笑しいだろ? 枯れた技術が最高だとか、詰まらない執着心を持った人の集まりかと勘ぐりたくなる。
じゃあ話題出して
仕 事 で 使 っ て ま す
ここはくだ質 雑談する場所ではない
>>117 そんなの遥か昔に語りつくされてんだけど
MySQLは板違いで論外として PHP4/5はcurrentでまだ随時アップデートされてるんだけど 枯れた技術ってどういう意味?
枯れた技術っていい意味で使うけどイメージ悪い感じがするね
PHP4は枯れたと言っていいと思うが・・・ あとはセキュリティフィックスぐらいだろ?
>>122 あれは枯れる前に捨てられたという感じが強いので
あまり信用する気にはなれない
◆◆◆◆◆◆◆◆◆毎日新聞社による日本人への誹謗中傷◆◆◆◆◆◆◆◆◆
・母親は受験勉強をする息子の学力向上のためにフェラチオをする
・日本人女性の55%は、出会ったその日に男と寝る
・ファストフードは女子高生たちを性的狂乱状態におとしいれる
・ティーンたちはバイアグラを使ってウサギのようにセックスをする
・女子高生は、刺激のためにノーブラ・ノーパンになる
・日本の最新の流行 : 70歳の売春婦
・老人の売春婦の人気にもかかわらず、日本では小学生の売春婦にも仕事がある
・日本の若い看護婦は売春婦に勝る
・24時間オルガズムが止まらない病気で苦しむ日本人女性の数が増えている
・15未満の子供を対象とした疑似ポルノが日本に蔓延している
・OLの72%が、セックスをより堪能するために何らかのトレーニングを受けている
・人妻は気分転換の目的で昔の恋人に抱かれに行く
・主婦は郊外のコイン・シャワーで売春をしている
・日本男子は柔道や空手の部活で男相手に童貞を捨てている
・ほとんどすべての漁師は海でマンタとSEXしている
・まだ10代の少年から退職した老人までみんな2980円の手コキを利用している
・六本木のあるレストランでは、食事の前にその材料となる動物と獣姦する
※同社が全年齢向けコーナーで七年以上にわたり世界に向けて配信していたものの一部です
※同社の行為は日本人への偏見や人種差別、婦女暴行、幼児虐待を助長するものです
◆毎日新聞の英語版サイトがひどすぎる まとめ@wiki
http://www9.atwiki.jp/mainichiwaiwai/ ◆毎日新聞問題の情報集積wiki
http://www8.atwiki.jp/mainichi-matome/ つまり日本人なら
http://www.vipper.net/vip552788.jpg
PHPの吐いたバイトコードを見るにはどうすれば良いですか? どんな風にコンパイルされるか知りたいです。
126 :
nobodyさん :2008/06/28(土) 18:08:12 ID:Eb3UB5kL
質問です。 みんな、アップロードファイルのタイプ判別ってどうやってますか? $strVal = $_FILES['upFile']['type']; if($strVal != "image/jpeg"){ //JPGじゃないです } …というやり方で判別してるんですが、firefox2or3とsafari3では判別できてるのに IE6ですべてを「JPGでない」と判定してしまいます 問題点やうまいやり方があれば教えてください。お願いします。
>>126 やったこと無いけど、自分ならまず、
IE6の場合に$strValが何になってるか見ますけども。
各フォーマットを調べ一致するか確かめる 画像ならGDがエラーにならないか確かめる セキュリティの点から、ブラウザから送られた付加情報を信用してはいけない
>>126 image/jpegが
image/pjpeg
にでもなってんじゃないの。
拡張子でいいじゃん いちいちバイナリを解析するなんてキチガイ沙汰
132 :
126 :2008/06/28(土) 21:14:07 ID:???
133 :
nobodyさん :2008/06/28(土) 22:19:13 ID:VC7dBI7a
session_start()でエラー出ちゃいますー php5.2.6です Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\web\test\jisaku.php:6) in local\test\test.php on line 6 単なるソースはセッションによるアクセスカウンターです <html> <head> <title></title> </head> <body> <? session_start(); if (isset($_SESSION["counter"])) { $_SESSION["counter"]++; print($_SESSION["counter"]."回目の読み込みです。"); } else { $_SESSION["counter"] = 0; print("はじめての読み込みです。"); } ?> </body> </html> 長くなってすいません。お願いします
早漏
>>133 エラーメッセージに書いてある通り、HTTPヘッダが出力された後にsession_startしてもエラーでる。
<html>の前に処理して下さい。
137 :
nobodyさん :2008/06/28(土) 23:10:51 ID:6GRXIQcO
しつもんです。 php5.2.3です。 LAN内の話なんですが、 サーバからクライアントのMACアドレスを知りたくて、 $arp = `arp クライアントIP`; echo "$arp"; っていうphpを クライアントからアクセスしてみたんですけど空の結果しか返ってきません。 arpってphpじゃ実行できないんですか? ちなみにarpじゃなくてlsとかなら普通に結果が表示されます。 あとサーバではarpは問題なく実行できます。
apacheの枠で軽労働しかしていないPHPに無理難題を言ってやるなボケ。
139 :
nobodyさん :2008/06/29(日) 00:23:07 ID:no0HV7ZX
PHP5で、UTF8でプログラムしてます hoge.php?category=パスタ、スパゲッティ でリンクされたページで、 $var = $_GET['category']; print htmlspecialchars($var); としたところ、 「パスタ、スパゲチEィ」と出力されます IE6です。fx3やsafariではなりません、正常に書き出されます。 どこが問題なのでしょう? 教えてください、よろしくお願いします
そもそもURL欄に全角文字入れるのが間違いで、urlencode()しておくべきかと思われます。
PHPはスクリプト自体をメモリにキャッシュして高速に動作できますが それでもpythonには速度で負けますでしょうか。いろいろ調べても見つからなかったので ご存知のかた教えてもらえればうれしいです。
143 :
139 :2008/06/29(日) 10:40:30 ID:???
>>140 なるほど firefoxで無事に動いてたんで気づきませんでした
知らなかった ありがとうです
質問:basic認証以外で各ディレクトリに閲覧制限をかける方法はありますか? 目的としては、アップロードした各会員専用画像ファイル置き場を、本人と管理者以外からアクセスできなくしたいです。 会員は複数で、会員同士が共有するわけではなく、あくまで個人用ファイル置き場、という条件です。
このスレ的に解答するなら、各ディレクトリはhttpdが直接アクセスできない場所にして phpで会員の有効チェック後に画像を出力するコードを書け
なるほど。早速その方向性でやってみます。ありがとうございました。
>>146 自分は使ったこと無いけど、Apache なら mod_xsendfile 使うとパフォーマンス的に幸せになれるかも。
mod_xsendfileについてもっと詳しく書け
150 :
nobodyさん :2008/06/29(日) 21:00:10 ID:96o86FsF
phpが有名なサイトでは全く実績がないのはなぜでしょうか? ことごとく、Javaで作られていると聞きます。 派遣で仕事をしている人間に聞くと、 phpはソースが筒抜けで、ユーザーに見えてしまうと言っていました。 私のサイトのphpで作っていますが、 プロがみると、ソースが見えてしまっているのでしょうか。 ただ、ソースが見えなければブラウザをレンダリングできないわけですから、 見えること自体ごく自然のことだとも思いますが、 それを仕様として提示していないことが、大手制作会社の不信感を招いているのかもしれません。
お前は何を言ってるんだ
日本語でおk
これはひどい
有名なサイトと言われても曖昧で判らないな。 Javaの需要があることは認める。 ソースが筒抜けって誇張表現なんじゃない。 ソースが見えなければブラウザをレンダリングって意味不明。 大手制作会社の不信感?
マジレスする気も失せるなw
まずJavaで作られている有名サイトを列挙していってもらいたいな
> 有名なサイトでは全く実績がない ヤフーって無名サイトだったんだ・・・
158 :
nobodyさん :2008/06/29(日) 22:12:51 ID:96o86FsF
言葉足らずですみません。 たとえば、派遣会社の求人検索サイトで、 PHPよりもJavaの方が検索数が多く、 また、内容も保険や金融など大規模なサイトと思われるものばかりです。 Javaも同じインタープリタ言語ですし、 中間コードにコンパイルしたから速度が優位だといっても、 PHPだってeAccelelatorなど中間コードにコンパイルして速くする方法が存在するわけで、 速さ優位だとは思いません。 で、結局はソースが見えるか見えないかですが、 ブラウザがサーバーからソースを受信してレンダリングする際に、 ブラウザにとってはソースが筒抜けになるわけですよね。Javaにしても。 パケット透過ツールを使用すれば一目瞭然です。 だから、それを仕様として挙げていないphpの不透明感が、 大手制作会社がクリティカルミッションに使おうとする気に させないのだと考えたのですが。開発会議でクライアントに突っ込まれる可能性もありますし。
お前開発しちゃ駄目、絶対
楽天もPHPでしょ?
>>158 発注や求人はJavaが多いかもな。
Javaでサイト作る需要>JavaでWebサイト作れる人ってことでしょ。
それなりのところなら自分でPHPでサイト作れるだろ。
レンタルでPHPが使えるサイト多いしプロじゃなくても作れる。
JavaもPHPもブラウザが実行しているわけじゃないよ。
Webサーバで実行してその出力が送信されブラウザはHTMLを表示してるんだよ。
ということでそれ以降の発言はクライアントにまだしてなくて良かったね。
あまりにかわいそうだからマジレスするけど・・・ PHP(or JAVA)のソースと、HTMLソースの違いがわかってからここに来てね♪ おたふくソースとも違うからね☆
164 :
nobodyさん :2008/06/29(日) 22:22:11 ID:96o86FsF
phpのスレでphpを否定するような発言をしてすみません。 ずっと疑問に思っていたので、ぶつけてみたのですが、 期せずして反感を買ってしまってしまって申し訳ありませんでした。 私は純粋に技術論をお聞きしたかっただけです。他意はないです。 この質問は撤回します。 お騒がせしました。
165 :
nobodyさん :2008/06/29(日) 22:22:46 ID:3JlRTfJh
.
test
ユーザからphpのソースが見えるとか言ってる人とどう技術論を語ればいいんだ
クライアント側で実行すると勘違いしちゃってる人だろ
>>164 は
なんで、こんなところにいるんだろう
170 :
MEH :2008/06/29(日) 22:30:38 ID:3JlRTfJh
>>158 俺は趣味でPHPをちょっと勉強しているだけでよくわからないが、
PHPやJSPなどのHTMLのなかにスクリプトとかを混在して書くタイプは大規模に向いてないかもね。
PHPのバージョンでだいぶ違うとかも関係してるかな。
Javaでのは大規模が多いから人手がいるのかもね。
>>164 反感買ったのはその通りと思うけど
俺個人的には撤回でなかったことにすることよりも
ブラウザがJavaやPHPを実行しているわけではないと判ってくれたよね。
反感は買ってないと思うぞ どちらかと言うと呆れて開いた口が塞がらない感じ
173 :
nobodyさん :2008/06/29(日) 22:39:00 ID:96o86FsF
たびたびすみません。 ソースが見えるというのは、たとえば、 共通のphpとしてinclude("./common.inc");とした場合に、 エラー表示が、common.incの何行目にエラーが出てしまうと、 悪意のユーザーがcommon.incを直接指定すると見えてしまうからです。 もちろん、Javaでもエラー画面でstacktraceで表示されますが、 それをたどってどこのクラスでNullPointerExceptionが出ているとわかっていても、 直接ソースをみる方法はありません。それはコンパイルされているからです。 あと、Javaはwebサーバーで実行されるという発言されている方がいましたが、 Javaのコードは通常アプリケーションサーバーです。 ソースが見える見えないという点で言えば、やはりJavaであり、 クリティカルミッションに使われる理由なのではないかと思った次第です。 色々とご意見を頂きましてありがとうございます。
>>173 一つだけ忠告しておくとだな、開発会議に参加しないほうがいいぞ
特にクライアントがいる会議にはダメ絶対
俺はPHPは無理強いされない限りは絶対に使わん超アンチPHPな人間だが、別にJavaより劣るとも脆弱だとも思わんよ。 単に、使う人間がPHPしか使えず、PHPで入門したプログラミング初心者ばかりだから、PHPは低く見られるんだよ。 悪いのはPHPではなく、使う人間のスキルが低過ぎること。 たとえば、PHP界隈では、rfc2616やrfc2822を熟読していたら、ほとんど神扱いだろ。 他のWeb系の言語・開発環境では、ありえない。だって、それが最低限度だから。
>>173 common.incはパーミション変えたりcommon.phpに変えるべきだってどっかで見かけたことある。
普段そんなこと忘れてるけど。
Javaはwebサーバーで実行されるって俺が言ったんだけど
>Javaのコードは通常アプリケーションサーバーです。
俺には難しくてわかりません。
Javaアプレット?
Javaが使われていることは認めるがソースが見える見えないに拘るのがよくわからない。
Javaのよさってそこ?
>で、結局はソースが見えるか見えないかですが、 >ブラウザがサーバーからソースを受信してレンダリングする際に、 >ブラウザにとってはソースが筒抜けになるわけですよね。Javaにしても。 >パケット透過ツールを使用すれば一目瞭然です。 よく分からんのだが、これはどういう意味?
なんだよビビったじゃないかよ。 (アプリケーションサーバを調べてみた) そりゃ3階層システムのミドルにPHPはないね。
>>175 > たとえば、PHP界隈では、rfc2616やrfc2822を熟読していたら、ほとんど神扱いだろ。
> 他のWeb系の言語・開発環境では、ありえない。だって、それが最低限度だから。
技術者の善し悪しって、別にそんなところじゃないだろw。
RFCなんかを例に出して奴の方が痛い。
javaがphpに比べて優れているのは大規模な開発の設計がやりやすい事。
あとは、堅牢性や分散処理する際など、色々メリットは大きい。
>>173 見られて困るものは見られる場所に置かねーよwwww
圧倒的にphp、ひいてはインタプリタ言語の知識が足りないんでは。
>>173 ミドル層のJavaとフロント層のPHPを比較することがおかしくない?
PHPを使うことがありえないけどミドル層ならPHPのソースがユーザに見えないでしょ。
フロント層で変な文字受け取ってエラーでしょ。
俺って煽っていると思われて反論されたのかな。
趣味でやってる俺でも、見られちゃまずいものはドキュメントルート外に置いたり、.htaccessでdenyするよ……。 Webアプリのセキュリティの知識足りないんじゃ。
ところでサーバーでそのまま出力できるファイルをincludeしてはいけません。かしこ
このスレの住民って、評論家タイプばかりで実務やったことない人ばかりのようだね。
私の統計によればプログラマの90%は自称です。
>>173 納品先のクライアントがソースコードを見れるってことの間違いではないの。
PHPは確かにソースそのまま納品するから、内容見られるかなぁとか思うけど。
ぜんどがーどがあらわれた
だいたい本業でphpやっている奴がここに来るわけないじゃん。 こんな残業続きで、2chすらみている暇がないんだから。 俺は、今は過労によるパニック障害で休養中だ。
192 :
nobodyさん :2008/06/30(月) 04:14:37 ID:7Iaq6WLH
apache1.3と2.2 PHPを走らせるのに適したバージョンはどっちですか?
>>192 好きなほうどうぞ
今更1.3xを入れるやつはいないと思うが
【やりたいこと】 テンプレ通りに作ったhtmlファイルが50個ある。 各ファイルのn行目とm行目のデータだけを取り出し、別ファイルにまとめたい。 ///////////////現在のアルゴリズム////////////// 1.fgetsをn回空ループ 2.N行目でfgets。 3.空ループ 4.M行目でfget。 array[][n.m]に保存 /////////////////////////////////// array[][n,m]をファイルに出力 /////////////////////////////////// とやっているのですが、無駄が多いように感じます fseek()も試してみたのですが、ファイル先頭からのバイト数は変動するので、中々うまくいきません。 ファイルポインタを任意の行の先頭に移動させる関数はないのでしょうか?
file関数
196 :
194 :2008/06/30(月) 05:58:21 ID:???
>>195 fileを使うとソースは綺麗になるのですが、ファイル全体を変数に収納してしまうため、処理速度が極端に低下してしまいました。
それならその空ループが一番軽くて早いと思われ
>>194 別ファイルに書き出すだけの処理ならPHPでやるようなことでもない
処理速度を求めるのであればPHPでやることじゃないね
こんなことするバッチ作って連結 100行目だけ出力 head -100 ファイル名 | tail -1
↓のようにしてファイルをダウンロードさせています。 これをブラウザで「保存」を選ぶと正常に保存できるのですが、「開く」を選ぶとうまく開けません。 どうもアプリケーションが開こうとしたときにはテンポラリファイルがなくなっているようです。 「開く」を選んでも正常に動作させるにはどうすればいいでしょうか? header('Content-Disposition: attachment; filename="'.$filename.'"'); header('Content-Type: application/octet-stream'); header('Content-Transfer-Encoding: binary'); header('Content-Length: '.$filesize); $fp = fopen($filepath, "rb"); while (!feof($fp)) { $contents = fread($fp, 1024*1024*5); echo $contents; }
どうして肝心な所の情報を書かないんだろう
どうして予想される場合わけがたった3つなのに答えられないのだろうか。
質問者が煽ってるなw
>>201 お前さんだって知りたい情報(肝心な所)が何なのか書いてないじゃないか。
ダウンロードにコンテンツタイプって変な話だよな
そうか?
Content-Typeの指定がないとブラウザに内容表示したりメモ帳開いたりするかもしれないじゃないか。
とりあえず、こちらで。 MySQL連携のプログラムを、UTF-8で作っています。 で、文字エンコーディングを変更するコード SET NAMES は アプリケーションから使うとSQLインジェクションの脆弱性につながる、 との記事を見つけました。 幸いにも、自分が使っているサーバーは mysqli_set_charset() が使えるので助かりましたが、この先の参考にも聞いておきたく思います。 本当に アプリケーション内で SET NAMES を発行するとSQLInjectionの脆弱性につながるのでしょうか。 また、もし、mysqli_set_charset 等が使えないサーバーの場合、どうすればよいのでしょう? PHPなのかスレスレですが、ご助言いただけると幸いです。
コンテンツタイプがコンテンツタイプでなくダウンロードの命令としていつまでも利用される歪みに疑問 仕方ないでしょうけど
ダウンロードするためのアプリケーションが起動する、、、無理があるかなあ
>>208 何で危険なのかがわかってればいいよ。
特に問題になるのは、エスケープ関連(SET NAMESだとエスケープAPIは
現在どのエンコーディングを使ってるかわからない)だし、
自分のとこの運用でどうしてるのか把握して問題ないのならいいでしょ。
ほんとに下らない質問ですまん。 PHPでWEBの仕事してるプログラマーって、よくある一般的なイメージな残業、休日出勤な プログラマーよりは残業時間とか少ないの? 人によりけりだと思うが、軽い気持ちで答えてほしい。
スレ違いどころか板違いですよ
214 :
nobodyさん :2008/06/30(月) 18:15:19 ID:LUnLRZ5m
1.クエリ取得 2.ランダムで1個選択 3.飛ぶ
216 :
208 :2008/06/30(月) 18:45:53 ID:???
>>211 まだSQLの知識が薄く、照合順序とか多すぎてよくわからないので、理解に時間がかかりそうですが……。
とりあえずは、SET NAMES は使わずに mysqli_set_charset なり mysql_set_charset なりのAPIレベルのもので、設定することにして、
SQLの知識をある程度蓄えてから、対策を練ることにします。
お早い回答、ありがとうございました。
# でも、持ってる参考書とか読んでも、文字コードの設定は SET NAMES...
参考書に書いてあることなんて10%くらいしか当てにならないぜ?
10冊買えば大丈夫
>>212 案件の1つにPHPが入ってくるというのはあるが
だいたい普段は.他の言語でWeb以外のことをやっていたりする
つまり一緒だ
プロジェクトに遅れが出れば残業も休日出勤もあるし
そもそも早く終わったからといってノルマ達成で帰っていいよというわけにはいかない
やることがなければ自習になるが普通は何かしら手伝ったりすることになる
PHP専門でやってるような会社はないに等しい
大学生のベンチャーならありえるが
そういうところも将来的にはPHPのみってことはなくなってくる
まぁそんな都合のよい仕事はないので諦めてください
給料は都会のバイト並でよければ地方で探せばまったりな会社あるかもね
>>215 クエリは取得出来るんだけどランダムに分割させる仕組みがどうしても分からないんです…
array_rand
222 :
nobodyさん :2008/06/30(月) 20:05:31 ID:Eb0PY41u
ちょっとした図書検索やりたいのに 意外にサンプル少ないんで泣いてまつ 書籍追加(確認窓もほすぃ 編集 削除 検索 モヌヌメの書籍、webあったらおしえて〜 apache2 php5 mysql5 linux
PHPなんとかスーパーサンプルとかいうやつは?読んだことないけど
>>200 何でだろうね?
小さいサイズのテキストファイル
Content-Transfer-Encoding指定なし
Content-Length指定なし
readfile($filepath);
だと開けた。
>>223 立ち読みしたけど厚いだけだった
orz
筋肉痛になるじゃねーかw
>
>>222 基礎PHP。
DBとの連携が、まんま、それ、図書検索。
>>226 dクス!さっき紀伊国屋で立ち読みして買ってきたお!
たしかにこれはそのままだ〜!
ってか書籍スレもあったのねw
228 :
nobodyさん :2008/07/01(火) 00:35:17 ID:A4l+wdTU
require()でテキストファイルを呼びたいんですが HTMLの前に$textfile="todo.txt"; として 書いてるんですが require($textfile)で呼び込むと todo.txtは呼んでるがそのままソースが全部出てきてしまいます <HTML> <HEAD> <BODY> 内容・・・・ </HTML> みたいな感じです。PHPの設定なんでしょうか?
テキストファイルを呼んでるのにソースが出来たらまずい?ワケワカメ
230 :
228 :2008/07/01(火) 00:37:45 ID:A4l+wdTU
あ、すいません 勘違いしてました・・・ 癖でTODOリストなのに・・・HTMLで書いてしまってました 申し訳ありません・・・
HTMLではないということ?todo.txtの中身が表示されてはまずいの?何をどうしたいの?
232 :
228 :2008/07/01(火) 00:45:06 ID:???
すいません簡単なことで質問してしまって テキストエリアにtodo.txtの編集書き込みが出来るようなソースを 書いていたんですが、todo.txtはテキストなのに HTML文章で書いてしまっていただけです HTMLで書いてたからタグが出てきたので気づいて消したら普通に 文章だけ表示されました。すいません
たまにURLで test.php?test という形式で値の受け渡しをしているのを見かけるのですが どうすれば受け取れるのでしょうか?
環境変数QUERY_STRING
235 :
233 :2008/07/01(火) 15:05:09 ID:???
>>234 「php 空 name 値」とかでぐぐってて涙目でした
ありがとうございました!
PDO SQLiteで、トランザクションを開始すると、PDO::ATTR_TIMEOUTが無効になるんだが これってバグ??
PDOを使うのはやめておけ。 原因不明のメモリーエラーで落ちる。 MySQL使った時、それで原因が特定できず大変な目にあった。 preparedを使いたいなら、自分で実装してくれ。それくらい簡単だろ?
>>237 prepared statement使うならMDB2でいいじゃん。
>>237 236ではないが、マジか。
この前使ってみて使いやすかったから、今度からこれ使おう、とか思ってたのに。
まだ、取れてないの? そのバグ。
>>240 バージョンは、5.1.6
WindowsXP、BSD6.2の両方で使って、どちらでも落ちた。
起動してから時間が経つと、突然DBへ接続できなくなる。
再起動すると直る。永続的コネクションを利用しても利用しなくても落ちる。
で、同じ構成でphp標準のmySQL関数でやったら直った。
今Linuxの5.1.6でPDOを使ってるけど、その現象は出てないな 5.2.1でprepareの無限ループバグをfixedってあるけど、使うSQLによって発生するんかね
243 :
241 :2008/07/01(火) 19:06:47 ID:???
思い出した、接続時にエラーは起きないけど、 参照するとデータがかえってこない。更新すると失敗する。っていう現象。 何回もデータが可笑しいのかと確認しちゃって原因究明にすごい時間がかかった。 速度が上がったわけでもないし、プリペアードのためだけだったから、すぐに標準関数に変えた。 それ以内何も起こらず、DBは連続稼働78日目。
244 :
nobodyさん :2008/07/01(火) 19:26:12 ID:r/sMGUKq
データベース関係の話があがっているので、質問させて下さい。 私のシステムは、データベースへ接続するクラスを用意していまして、 あとは、各業務クラスに以下のようなコードを書いています。 $sql = "INSERT INTO ..."; $databaseClass->($sql); あちらこちらの業務クラスに生のSQLが書いてあります。 抽象的なご質問ですが、このような実装をどう思いますか? 市販されている解説本を読むと、テーブル毎にデータベース接続用のクラスを分けろと 書いているものもあるのですが、それだと複数のテーブルをjoinする場合、 どちらのクラスに入れるべきか迷うので、そのような実装はしていませんでした。 結構、正規化しているテーブルが多いので、joinするSQLが少なくありません。 データーベースに関する良いクラス設計指針があればアドバイスお願いします。
テーブル毎のCRUDを行うクラスは分けるとして joinしてるSQLを発行するクラスは業務毎に纏めてクラスを分けてるな、俺は 業務モデルから業務DAOとテーブルDAOを呼ぶ感じで
246 :
nobodyさん :2008/07/01(火) 22:52:13 ID:ZeCzXD4I
IIS+PHPでサバ立ててPHPにアクセスしたら認証がかかるんですが、これってどうすれば解除されるんですか? 普通のhtmlにアクセスしたら認証なんてないのに
247 :
nobodyさん :2008/07/01(火) 23:45:17 ID:FRuokrT4
すみません、質問です \1000という表示がIEとSafariで バックスラッシュ+1000 になってしまいます \部分はSQLから引き出してるのではなく、PHPに直書きしてます winXP、apache2、PHP5.2.3でUTF8を使っています どう対応すればいいでしょう? アドバイスお願いします
>>247 PHPはブラウザに依存しないサーバサイド言語で
すべて同じ結果が得られるようになっている
ブラウザによって表示が違うなどの不具合は
PHPとは関係ない
バックスラッシュになるのはブラウザの言語指定がおかしいからとか
そういったことが要因
\ではなく文字参照&yen;(&は半角で)で出力するなど工夫すべし
>>236 エラーが起きる最小限のソースを。
>>241 5.2.0から5.2.6でPDOに関する数十ものバグが修正されているし、MySQLでおきたエラーがSQLiteで起こるとは限らない。
>5.2.0から5.2.6でPDOに関する数十ものバグが修正されているし、 そんな情報どうして知っているの? 関係者?それとも逆コンパイルしてソースをcompareしたとか???
お前は何を言ってるんだ
バグ修正したって、もしかしてお前のプログラムのバグかよ???w
253 :
nobodyさん :2008/07/02(水) 02:09:08 ID:TfVbJDoG
>>250 ChangeLogとか見ないの?死ぬの?
256 :
200 :2008/07/02(水) 10:40:54 ID:???
257 :
236 :2008/07/02(水) 10:42:53 ID:???
DBは a.db で、テーブルはcreate table a (i ingeger);とする コマンドラインより、a.phpを実行後すぐに別端末からb.phpを実行する。 b.phpにおいてbeginTransaction();をコメントインすると、 PDO::ATTR_TIMEOUTが無効になる。 と、まぁこんなかんじです。 a.php --------------- <?php $pdo = new PDO('sqlite:a.db'); $pdo->setAttribute(PDO::ATTR_TIMEOUT, 5); $pdo->beginTransaction(); $pdo->exec("insert into a(i) values(5)"); sleep(100); $pdo->rollBack(); ?> b.php --------------- <?php $pdo = new PDO('sqlite:a.db'); $pdo->setAttribute(PDO::ATTR_TIMEOUT, 5); //$pdo->beginTransaction(); $sth = $pdo->prepare("insert into a(i) values(10)"); if (!$sth->execute()) { var_dump($sth->errorInfo()); } //$pdo->rollBack(); ?>
ATTR_TIMEOUTはデータベースとの通信に対するタイムアウトです
>$pdo->setAttribute(PDO::ATTR_TIMEOUT, 5); >sleep(100); ここは笑うところか
260 :
236 :2008/07/02(水) 11:56:55 ID:???
>>258 う〜ん、そういわれると仕様通りなのかなぁ
でも、トランザクションを開始しないときは、ちゃんと5秒待機するんだよな
sqlite_busy_timeout()と同じように動作させたいだけなんだが・・・
>>259 ソース見てわからないなら、笑ってたらよいと思いますよ
なんだこのふてぶてしい態度w
262 :
nobodyさん :2008/07/02(水) 12:05:15 ID:LR4oDanJ
phpで、 function array_collect($key, $array) { $list = array(); foreach ($array as $arr) { $list[] = $arr[$key]; } return $list; } のような関数が標準であったりしませんか?
トランザクション中じゃなかったら通信してない状態なのでは。
暇だったからJavaScriptでジャンケンゲーム作った <html> <head> <title>じゃんけんぽん!</title> <script type="text/javascript" language="javascript"> <!-- function Janken() { alert("あなたの負けです!"); } --> </script> </head> <body> <input type="button" value="グー!" onclick="Janken()" /> <input type="button" value="チョキ!" onclick="Janken()" /> <input type="button" value="パー!" onclick="Janken()" /> </body> </html>
うーん、負けたぜ。
>>265 ちょーつえー
どんなアルゴリズム使ってんだ?
×アルゴリズム ○アルゴニズム
270 :
nobodyさん :2008/07/02(水) 17:18:28 ID:YKp2VoP0
/htdocs | +-/admin <- 要認証 | +-/form | form.php こういうディレクトリ構造になっているところに、 /admin以下にBASIC認証やDigeset認証をかけました。 認証されていないform.phpから、認証がいるadminディレクトリ以下のファイルに書き込むことは可能ですか? 試してみるとOKだったのですが、もしかして事前に自分で認証してしまってそれで通ってしまったのかな? と不安になったので質問しました。
書き込むときにhttpd通ってないでしょ? 影響するのはパーミッションですね。
272 :
nobodyさん :2008/07/02(水) 17:41:28 ID:l+FlpTuR
274 :
nobodyさん :2008/07/02(水) 17:53:53 ID:l+FlpTuR
>>273 それって「$_SERVER['HTTP_REFERER']」という文字列を渡してるから意味なくね?
それをヒントに意味あるものにしてみると言う発想はないのか
書かれたまんまにしか理解できないのかよ・・・
おチンチンびろーん ∩___∩ | ノ ヽ/⌒) /⌒) (゚) (゚) | .| / / ( _●_) ミ/ .( ヽ |∪| / \ ヽノ / / / | _つ / | /UJ\ \ | / ) ) ∪ ( \ \_)
俺もわからん phpなのか
そもそも呼び出し元がPHPならIMGタグ無くても解析できる。 JavaScriptが使える条件になるがJavaScriptで取って渡す。
phpで仕事を2年くらいしていますが、 データベースと接続して、文字列操作するだけの仕事に尽きるのですが、 phpというかwebの仕事って、みんなこんな単調な仕事なのでしょうか? もっと、特許がとれる位のアルゴリズムを考えるのが、 プログラマーの仕事だと思っていたので、 仕事に対するマンネリ感が積もっています。 大学で専攻した知識もほとんど役に立ちませんし、がっかりです。
phpでやってるからだろw
>>282 phpのスレで、phpの悪口を必死に昼夜分かたず書き込んでいるって何?馬鹿?バッカ?ハッカ?
>>281 早く独立して会社おこしてphpで特許を取れるアルゴリズムを開発しなよ
仕事を貰ってる立場で、しかもどうせ自分で営業した案件じゃないんだろ?
それでがっかりとか、いい身分ですなあ
自分のふがいなさを、言語のせいにしたいお年頃
自分で志願して発明して特許取れ 待って与えられた仕事してたら何時の間にか特許取れてたなんてことない
web関係でも特許取ってるじゃん
そのつまらん仕事を楽しくする特許を取る。 で、特許申請に金かかったが誰も使ってくれない。
あのグーグルですらほとんどの社員は単調な仕事だそうな
もっと面白い意見をお伺いできるかと思って投稿したのですが、 うちの会社の上司と大して変わらないご意見ばかりでした。 思うに、言語のような言語の壁がなく、労働集約型のプログラマーの仕事は、 数年後にはほとんど安い外国の労働市場に持って行かれるのではないでしょうか? 職業としてプログラマーとして従事している方は、もう少し向学心をお持ちになられた方がいいと思います。 少なくても、生産資源が乏しく技術を売りするしか世界で存在価値を示せない日本が、 このような低付加価値の仕事ばかりをしていたら、ますます国力が衰えていくだけです。
その低付加価値の仕事をしてる人に言われても説得力が全くありません
ここはPHPの技術的な質問をするスレですよ スレ違いなので、というより板違いなので仕事の愚痴は別板でお願いします。
散々レスした挙げ句、都合が悪くなるとすれ違いとか板違いといって逃げるのですね。
>>290 そんな仕事してるのはお前の能力が足りなかったせいだw
まぁこんなところでわざわざ釣り乙www
だから勝手に取れ 特許料もらえるまで赤字だから研究・特許なんてそうそう許可できん。 いい特許アイデアできたら上司と喧嘩してでも予算とれ
>>281-294 以上、俺の自作自演でした^^
おチンチンびろーん
∩___∩
| ノ ヽ/⌒)
/⌒) (゚) (゚) | .|
/ / ( _●_) ミ/
.( ヽ |∪| /
\ ヽノ /
/ /
| _つ /
| /UJ\ \
| / ) )
∪ ( \
\_)
物足りないんだったら車輪の再発明でもすれば?w
>281,290 見てる世界狭すぎ。 え、あれ?釣りなの?w
上司に言ったんかそんな話w
率直に話し合った方がいいだろ 当たり前だが営利企業は斬新だろうが普通だろうが金になる事が正義
301 :
nobodyさん :2008/07/03(木) 14:31:17 ID:3X5/4UgX
ちょいと質問と言うか相談ですが、 複数のディレクトリーがあってその中には複数のhtmlファイルが入っています。 複数のhtmlのそれぞれの更新日時を調べて更新日時順で ファイル名・更新日時・ページタイトル を一覧で出すにはどんな流れで書いていけばいいんでしょうか? 全ファイルの一覧や上位10件とかもあればなお良いのですが。
>>301 htmlのそれぞれの更新日時を調べる。
更新日時順にファイル名・更新日時・ページタイトル を出す。
>>301 readdir
ディレクトリだったら再帰
ファイルだったら必要な情報を調べる。配列にでも格納
次のファイルへ
全部調べたら好きなように加工
304 :
nobodyさん :2008/07/03(木) 15:16:00 ID:3X5/4UgX
レスありがとう。 各ファイルの更新日時・URL・ページタイトルなど必要な情報は個別に取得できていて すでにsitemapとしてgoogleに登録してるのですが、 それを更新日時順に並べるのが出来ていない状況です。 更新日時とファイル名の関連付け?がどうすれば出来るのかって事でしょうか。
Arrayに入ってるならソートすればいいんじゃ?
$dirurl[] = '../test1/';
$dirurl[] = '../test2/';
foreach($dirurl as $key =>$value){
$dir = @opendir($value);
while($file = @readdir($dir)) {
if (!is_dir($file)){
@include_once($value.$file);
if($sitemap_ok != '1') continue;
$pegedata = explode("." , $value.$file);
$lastupdate = @date("Y-m-d\TH:i:s\+09:00",@filemtime($value.$file));
$sitemaps = <<<_EOD_
<url>
<loc>
http://$SERVER_NAME$pegedata[2].html</loc >
<priority>$priority</priority>
<changefreq>$changefreq</changefreq>
<lastmod>$lastupdate</lastmod>
</url>
_EOD_;
echo $sitemaps;}}
closedir($dir);}
今こんな感じです。それぞれ必要な内容は取り出せているのですが、これを更新日時順で並ばせたいと思っています。
arsort($xxx,SORT_NUMERIC);などで更新日時順で並べれる事は分かるのですが、どこをどうすればいいのやら…
もう1ど最初から作り直した方がいいでのでしょうか。
>>307 DBすか!やっぱりその方がいいんでしょうね。
将来の事もあるのでsqlを少し勉強した方がよさそうですね。
あまり長くなるのも迷惑なので勉強して出直してきます。失礼しました。
>>306 たとえばarsort使いたいなら
$array_nanika[更新時間unix_time] = ファイル名;
みたいな配列を一度作って、arsort。
ただコレだと同じ時間に更新されたファイルがあるとダメだからもう一工夫は要るね。
なんにせよ一度配列に収めろってことです
311 :
nobodyさん :2008/07/03(木) 18:51:15 ID:0wf3u7xU
クラスをnewするときに引数を渡したいのですが、 引数のチェックに失敗したときはクラスの作成自体を中止したい場合ってどうすればいいんですかね? class hoge{ public function __construct($fuga){ if(!$fugaのちぇっく){ //ここで自分自身を破棄? return false; } 〜 } みたいな
それPHP? まあ例外投げるんじゃね
313 :
nobodyさん :2008/07/03(木) 19:22:00 ID:NDuREgXX
負荷が高いサイトを運営していますが、 例えば、Apacheを80番と81番で平行運用することで負荷分散を図ることは可能でしょうか? 例えば、スクリプトAは80番で処理して、スクリプトBは81番で処理するということです。 これで、速度が倍になれば、Apacheを数十個起動して、速度を10倍位に上げたいと思います。 現在は、一ページ返却するのに10秒から15秒かかり、クライアントから遅すぎるのではないか、 と言われておりまして、これ以上クライアントに我慢してもらうことも難しくなっています。
すげー馬鹿だなw
天才現る
>>313 スレ違い。ここはPHPスレ
君のような馬鹿が来るところじゃない。
まったくこれだからApache厨は馬鹿といわれる。
スイーツ(笑)
80番のスクリプトAはサーバAに処理を依頼して、81番のスクリプトBはサーバBに 処理を依頼すれば、倍とはいかないまでも速くなるぞ オススメ
>>318 その回答だとWebサーバAとWebサーバBを、同一のハードで運用するかもな。
>>319 ヒントありがと!
VirtualBoxつかってやってみる!
おチンチンびろーん ∩___∩ | ノ ヽ/⌒) /⌒) (゚) (゚) | .| / / ( _●_) ミ/ .( ヽ |∪| / \ ヽノ / / / | _つ / | /UJ\ \ | / ) ) ∪ ( \ \_)
ラウンドロビン的な?
ロードバランスしたいわけか 1台じゃ意味ねー
というかどこに時間かかってるのか 原因も突き止めず対策しても・・・
インデント無しで見にくいxmlを $path = "xml_test.xml";//XMLパス(ファイル or URL) $dom = new DOMDocument("1.0"); $dom->encoding = "UTF-8"; $dom->formatOutput = true; $dom->load($path); $dom->save($path); で整形させようと思ったら出来ない。 $pathの中身が何も変ってないのは何故? さくらインターネット、FreeBSD 6.1-RELEASE-p23 i386 、Apache/1.3.39 (Unix)、PHP 5.2.5 です
>>325 別名でsaveしても変わらないならそういう仕様なんだろ。
>>325 書けてるか確認した?
echo $dom->save($path);
328 :
たまちゃん :2008/07/04(金) 17:36:17 ID:DM0Om0jz
PHP 正規表現 PHPの正規表現を勉強しているのですが、どうもうまくいきません。今回は一番簡単な正規表現をつくったのですが、どうやったらよいのでしょうか。 $h = '(名前)様の会員IDは(abc12)で、(5)番目に偉い方です。'; とあったら、名前、会員ID、番号を抜き出すには、どのようにしたらよいのでしょうか? 実際に()は使用しません。 また、$1 や $2 などを使いたいのですが、解説までできればお願いしたいです。 一応自分なりに考えました。 preg_match('/^*.([a-zA-Z0-9]){2}([0-9]+)','名前$2.ID$1 $3 番目に偉い'); ()を使えば、2つマッチさせたいときなどに分けることができるのでしょうか? (名前)様は(数字) 例:太郎様は5 このとき太郎様という日本語の文字を取得するには/^(+.)([0-9])$/ ここで名前は$1になり、数字は$2になるのでしょうか? どのような時に$1や$2がどっちがどっちなのかは、どのようにしたらわかるのでしょうか? 長々した質問すいません。わかるかた教えてください。
330 :
nobodyさん :2008/07/04(金) 18:36:56 ID:ya62/r1Y
昨日、Apacheの複数起動で質問したものですが、 全く役に立ちませんでした。 phpやっている人の大半はApacheを利用していると思いますが、 Apacheを毛嫌いする理由がよくわかりませんし、 Apacheというより、phpの論点だと思ったので、ここで質問したのですが。 がっかりというか、呆れています。
スレ違い
332 :
nobodyさん :2008/07/04(金) 18:42:27 ID:ya62/r1Y
>>331 スレ違いというより、むしろあなたの勘違いです。
まぁまぁ、そう熱くならずに自分のおならの臭いを嗅いでエクスタシー感じようよ!
>>327 確認しましたがしっかり書けていました
ファイル名をフルパスでも試して見ましたが同じでした
うーん、formatOutputってあんま意味ないのか…
がっかり
>>330 一回のリクエストで10秒掛かるのの処理を分散した言って事?
数万行のCSVファイルを読み込み、指定した行列のものを取り出す場合では、 数万行のファイル一つを読み込み表示させる方法と 数万行のファイルを分割して、それぞれ読み込み表示させる方法では速度に違いはでてきますか? どちらが効率よいでしょうか。
DBを使う
>>336 例えば1000行ごとにファイルを分けて1100行目なら二つ目のファイルを読み込むってことか?
こっち
任意のテキストファイルを読み込み、その内容をブラウザ上に表示 と、いうことをやりたいです。 プログラム上でテキストファイルを指定し、表示させることまでは出来ました ですが、『任意のファイルを選択』させることが出来ません 何か良い方法や考え方は無いでしょうか? 教科書など持っていないので、オススメの本やサイトがありましたら、紹介していただけるとうれしいです
誰が選ぶんだ。俺か?断る!
>>340 ターゲットディレクトリ内に存在するファイルの個数を取得して、
その数だけの範囲を持つ整数の乱数=nを発生させて、
該当するn番目のファイルを開くようにすれば良いんじゃね?
>>330 これ、釣りじゃないの?
こんな知識、というか思考力で過負荷になるようなサイト構築できるのか?
信じられん。よほどサイトコンテンツが良いのか、サーバにMSXでも使って
いるんじゃないのか?
345 :
nobodyさん :2008/07/04(金) 22:53:21 ID:zZLzuSUy
>>343 我々の想定外のリソース超消費ロジック組んでるんだとオモ
数万行のファイルならすぐに過負荷になる。PHPのようなブラウザ表示デバッグだと、その時点で気付くはず。
>>347 たかだか10MB程度のファイルで?
一行256バイト×5万 = 12,800,000 = 約12MB
凄まじい密度だな
密度? CSVファイルで? なんのこといってんの?
お前ら早朝に喧嘩してないで、 ジョギングでも行ってこいよ。もう外は明るいぞ。
<?xml version="1.0" encoding="UTF-8"?> <head> <score sort_no="2"> <score sort_no="1"> <score sort_no="3"> <score sort_no="4"> </head> こんな感じのxmlファイルをsort_noでソートして保存しようと思って、simplexmlで読み込んで usort、uasort、uksortやったけど全部ダメだった まぁオブジェクトだから当然と言えばそうなんだけど、オブジェクトをforeachする時に出てくる順番を変える方法教えて下さい php5です
出来ました foreach($dom->score as $value){ $dom2[]=$value; } uksort($dom2,"sort_list"); こんな感じで リファレンスって難しいなあ
お前は何を言ってるんだ
355 :
nobodyさん :2008/07/05(土) 04:55:12 ID:FcvNsP01
出来てなかった…
>>348 とりあえず一回、「PHP 配列 メモリ」で検索してみたほうがいいんじゃない。
メモリ使用量はかっこいいぜ。
∩___∩ (ヽ | ノ ヽ /) (((i ) / (゜) (゜) | ( i))) …なんちゃってねっ! チンポっ☆ /∠彡 ( _●_) |_ゝ \ ( ___、 |∪| ,__ ) | ヽノ /´ | /
358 :
nobodyさん :2008/07/05(土) 11:33:06 ID:oP1dT0fT
test.php?1の場合、$no=1のようにGETリクエストの値を動的に変数に入れたいんですけど、どういった方法が存在しますか。
noなんてどこにも出てきてないのに動的にとか意味がよく分からない
>>358 $no = $_SERVER['QUERY_STRING'];
>>358 適当なフレームワークのソース呼んで、ルーティング処理パクレ
例えば、
symfonyなら /index.php/1を
/index.php/hogeModule/hogeAction/no/1みたいにしてくれるのを設定ファイルでかけるから
362 :
358 :2008/07/05(土) 13:01:14 ID:oP1dT0fT
いやそれだけかよ。言葉足らずなんだからちゃんと説明しろよ。
364 :
nobodyさん :2008/07/05(土) 16:40:16 ID:7nNiVjXj
>>363 言葉が足りていても、私の時には全然回答もしてくれませんでしたが。
Apache複数起動で悩んでいる中年SEより。
。・゚・(ノД`)・゚・。
しつこいな 回答あるだろ
複数起動はかえって負荷かかる
>>364 たとえ2つPHP実行しても速くならないよ。
玉子焼き1000個同時に焼いても1秒で焼けない。1個と同じ時間かかる。
負荷分散の対策が、どういった理屈で複数起動にたどり着いたのかが不思議。 同一サーバーでの複数起動って意味だよね?何かあるんだろうか。 それとも日本語が不自由で考えてることをちゃんと文章化できていないのか。 てか、どっちにしろPHPとはまったく関係ないからスレ違いになるのか・・・
遅い原因調べないSEはいなくなって欲しい。
372 :
nobodyさん :2008/07/05(土) 17:13:56 ID:7nNiVjXj
前にも書きましたが、スクリプトがAとそこから呼び出しているBがあります。 スクリプトAは、2000行以上ありますが、0.1秒程度で終わりますが、 スクリプトBは、400行しかないのに、10秒前後もかかります。 そのことから、スクリプトAを80番ポートで動かし、 スクリプトBを10分割して、81〜90番ポートで動かせば1秒で終了するという見積もりです。 ただ、やり方がよくわかりません。 スクリプトBが遅いのも原因不明です。 phpがインタプリタ言語だから遅いって言ってしまえばそれまでですが、 だからといって10秒は遅すぎます。 負荷分散する方法としてこれ以外に思いつきません。
373 :
nobodyさん :2008/07/05(土) 17:16:26 ID:7nNiVjXj
もう一つ付け加えると、Apacheはマルチスレッド処理といって、 平行処理ができると聞いています。phpの中だけで並行処理ができる方法があれば、それを教えて頂く方が簡単ですが。
ソースうp
その前に、その400行で何をやっているの? ざっくり400行じゃなくて、遅い箇所があるとおもうけど。
376 :
nobodyさん :2008/07/05(土) 17:24:01 ID:7nNiVjXj
スクリプトBでは、単にデータベース(MySQL)と接続して、 データを取得して更新して、取得したデータをスクリプトBに返す処理しかやっていません。 MySQLは、処理速度が速いデーターベースと聞いておりますし、 それ以外では、文字列を編集する処理をやっていますが、それはデータベースにデータを渡す際の エスケープ処理です。ソース全体を呼んでみましたが、特に遅いと思われる箇所もありませんでした。
じゃあDBが速くならないとPHPが速くても速くならないよ。
>>376 とりあえずさぁ、そのスクリプトに時間計測するコードを入れて、
一番遅い所を一行に絞って、そのコードをココに貼ればわかるよ。
どう考えても処理のある点がボトルネックになってるだろうに phpはインタプリタ言語だから遅くても仕方ないと 納得する発想がPGとしてありえないってw てか最初からずっと同じこと言われてるじゃん。少しは質問の仕方も進歩してくれ。
プログラムする人ってこんな能書きをダラダラ言う人多いね。 キモイ。
>>376 マルチスレッドが知りたいのなら、「PHP マルチスレッド」でググリなよ。
ここで説明するより分かり易いところがいくつか見つかるよ。
Apache複数起動とかポートがどうとか、
PHPとは関係ないことを言うから、スレ違い、ネタだと判断されたんだよ。
「マルチスレッドを利用する方法を知りたい」だけでいいじゃん。
マルチスレッドも関係ないだろw
正直その程度の知識で金もらって仕事してんの? と思うわけだが できない事はできないって言うのも仕事の内ですぜ
>>376 > データを取得して更新して、取得したデータをスクリプトBに返す処理しかやっていません。
えーと、ウェブアプリに限らずほとんどの処理は
データを取得して、更新して、取得したデータを何かに渡す物ですが?
その処理の内容で遅くないと判断できるわけが無いよね?
いいか、あんたがヘボだから、あんたが作ったソフトが重いんだ。
技術不足なんだよ。あんたは。
>>376 君には難しいことを言ってもわからないと思うから
技術者じゃなくてもわかることを聞くねw
サーバー費は月いくらかかってる?
もう答えが出てるなら、まったく関係ないところをネチャネチャ叩くなよ気持ち悪い奴らだな
>>383 できないって最初から言ってるのにどんどん小難しい案件が舞い込んできます。
当然やりますが。でも出来ませんっていつも言います。
物理的に台数増やしてロードバランス、これ でもDBサーバが先に悲鳴をあげるだろうから レプリケーションもやっとけ
>>382 関係なくはないだろう。早くなるとは思えんが。
ボタンを押すと飛ばすようにするにはどうすればいい? print"で<a href=〜>〜</a> で、リンク生成は出来るんだが、
ネタじゃなかったのか…。そんなに案件が降ってくるなら他の専門家に 任せて自分はちょっとピンハネの方が顧客も自分も幸せだと思うぞ。 現在の技術うんぬんよりも、解決方法にたどり着く術が間違っているから。
ネタか真性か判断するPHPコードを教えてくん。
>>394 d、php配布されているのじゃなく、自分で作りたいんです
その検索エンジンのサイトにやり方出てるだろ
いい加減荒らすのはやめてくれ
>>396 なんだかPHPじゃなくてHTMLのformとinputの使い方の質問ぽい気がするんだが。
まあ俺には難しくてわかんないや。
>>398 わからないがあまり教えてほしいとは思わなかった。
401 :
396 :2008/07/05(土) 21:42:04 ID:???
>>400 それです。
HTMLとphpの組み合わせは対象外でしょうか?
>なんだかPHPじゃなくてHTMLのformとinputの使い方の質問ぽい気がするんだが。 >それです。 >HTMLとphpの組み合わせは対象外でしょうか? え?? ごめん、あなたの質問は難しくて俺にも理解できないや
検索エンジンのページに検索窓のHTMLタグがあるだろ それコピペしてHTMLに貼っとけや
>>400 自分のサイトのフォームから外部検索エンジンで検索したいってことだから、
phpの範囲に含めても問題ないと思う。
ただ、検索サイトを見に行けばいいだけなのに
わざわざここで質問する意味もわからんが。
まぁ、
>>394 が答えを出してるから終了した質問だな。
406 :
nobodyさん :2008/07/05(土) 21:52:36 ID:7nNiVjXj
色々とアドバイスありがとうございます。その殆どは辛辣なものばかりでしたが。 一つ一つコードを時間計測しましたが、 時間がかかっているところは、参照用のSQLを発行してデータを戻す関数が原因だとわかりました。 $rs = mysql_query($sql, $dblink); このmysql_queryの実行だけに10秒かかっています。 ただ、これでは並行処理ができません。 mysql_queryを速くする方法はありますか?
>>406 その質問では「あるよ」としか答えることはできない
煽り抜きの話
最初っから答えはみんなわかっている。 その$sqlの文字列の中身が悪いんだろw
SQLが悪いとしたら、完全にPHPのスレでやることじゃないなw SQLのスレに逝ってください。ここにはもうレスしなくていいです。 誰も答えませんから。
>>406 Webシステムの経験が足りないんだから焦っても上手くいかないよ
基礎からちゃんと学んだほうがいいよ
それから質問者なんだから立場をわきまえて嫌味とか言わないようにね。社会でやってけないよ。
>>406 最初から意味無いって応え出て(馬鹿にして)たじゃん。
判りにくくて無視したのかもしれないが
>>324 が良回答だよ。
解決法 ・mysqlデータベースのチューニング ・mysqlサーバを別のマシンに移す 解決手順 ・他社に依頼
indexしてないという落ちだったら殴るぞ
414 :
nobodyさん :2008/07/05(土) 22:46:55 ID:7nNiVjXj
私は、phpについてはそこそこ経験と実績がありますが、 MYSQLは今回初めてなので、よくわかりません。 通常は、DBチームがSQL文を作成したりDAOを作成するため、関与しないのですが、 今回は予算の関係で人が足りず、一人で作りました。 とりあえず、クライアントには、導入したMySQLの性能に問題があるということで理解を得たいと思います。 選定の際に、導入コストが安いMySQLを選んだクライアント側にも責任の一端はあるわけですから。 ここのスレは役に立つ情報も有ると思いますが、 雑音が多くて、せっかくの情報が埋もれてしまうのが残念です。 何かと問題が多い2chですから、それを承知で投稿させて頂きましたが、 使い方次第ですね。 とりあえず、感謝の気持ちは表しておきます。 ありがとうございました。
>>414 違う。MySQLの問題ではなく、
遅いSQL分を書いたお前がヘタレ。
MySQLやクライアントのせいにするのムカつく
>>414 おまえなぁ。最初に自分に問題があると考えられるようにならないとだめだぞ。
感謝の気持ちがとりあえずww 同僚でこんなのいたら最悪だなwww
クライアントが(´・ω・) カワイソス
なにこのキモイ流れ
うむ、ID:7nNiVjXjは反省すべき
あと30分後に「釣れた、大漁www」という書き込みがある悪寒
423 :
nobodyさん :2008/07/05(土) 23:28:37 ID:f4JIQhYU
INSERT INTO tabele_name(カラム名,カラム名) VALUES(値,値) 上記のとき、カラム名を [`]で囲む必要はあるのでしょうか? [`]をつけないとエラーになるときがあり、その理由がわかりません。
425 :
nobodyさん :2008/07/05(土) 23:35:49 ID:T4jgJP6e
フォーム処理でのファイルアップロードについて質問です。 フォームの流れを、「入力→確認→完了」としているのですが、 画像を確認する為に、一度ファイルをアップロードして 確認画面で問題なければ正規のディレクトリに移動させています。 おそらく大多数の方がこのような確認方法をとっているのかと思いますが、 一度ファイルをアップロードして、再度ファイルをアップロードし直す時、 古いファイルが残ってしまいます。 これも一定時間置きに、確認ディレクトリ内を削除すると思うのですが、 どうも非効率だと思います。 そこで質問ですが、上記の方法以外にアップロードしたい画像を 確認する方法はないでしょうか?
>>406 回答に必要な情報が足りない。
$sql
$dblink
それぞれの内容及びdbのtable構成、レコード数
それ位は最低限必要。
>>422 IDが変わる日を跨いだ瞬間偽物が釣れたとレスする悪寒も。
>>414 DB板のMySQLのスレでDB構造とどんな感じのSQL発行してるか書いてみ
あとループ内で数1000件のSQL発行してるとかは無いよね?
DBチームが居てあまりSQLに精通してないなら
悲惨なSQLやDB構造になってる可能性が高い
じゃあお言葉に甘えてつれたwwww
>>425 同一人物がアップしてできるテンポラリのファイル名を
固定しちゃえば?
まぁどっちにしろゴミファイルを削除しないとだけど
>>425 セッションと組み合わせて、セッションがGCされるタイミングで
同じくコレクションするしかないんじゃないかな。
効率的といえばクーロンで一気に削除する方が効率的だと思うけど 俺だと、tmpファイルか否かと、tmpファイルのライフタイムが分かるのを前提にして、 次回処理時にtmpディレクトリを走査していらないファイルは消すだな
ディレクトリあらってタイムスタンプが数時間以上昔のファイル を消すってやり方してるじょ。ちんぽちんぽ
>>406 10秒は異常。よくある話だけどね。
どんな遅くたって1秒以内に返るようにすることはできるが
キミがそのスキルが無いんじゃ無理かも。
普通に金取るならそんな問題瞬時に解決できるよ。
435 :
nobodyさん :2008/07/06(日) 05:18:10 ID:Uta9DmJU
$a = split(",", "abc,defg,hi"); これは、「,」があるところで分割していますが、2種の分割条件を設定したい場合は どのようにしたらいいんでしょうか? たとえば「きょう、はれ。あしたは、くもり。」とあった場合に、「、」「。」と両方で区切りそれぞれ 変数に格納したいのですが。。よろしくお願いいたします。
置換してから分割するというのは?
>>87 今更だがExcel_Reviser再公開されたぞ。
「、」「。」と両方で区切りそれぞれ 変数に格納ってどういう風に? Array([0]=>きょう,[2]=>はれ,[3]=>あしたは,[4]=>くもり) Array( [0]=>Array([0]=>きょう,[1]=>はれ), [1]=>Array([0]=>あしたは,[1]=>くもり) )
>>435 [。]の場合は三点リーダー(…)の変換しそこね[ 。。。]があるから単純に分割すると予期せぬ動きが出る。
「今日は。。。はれ。あしたは、くもり。」
Array(
[0]=>Array([0]=>きょう,は),
[1]=>Array([0]=>null),
[2]=>Array([0]=>null),
[3]=>>Array[0]=>あしたは,[1]くもり)
)
こんな感じ。
このような問題に大して対処する必要はあるの?
XP SP2です。 Eclipseというコンパイラを使いたいのですが、 プロジェクトを作成する際、「メモリ不足」というエラーが出てしまいます。 メモリを足して1024までふやしても、同じです。 このコンパイラを使えるようにするために他にできることは何がありますか。
441 :
nobodyさん :2008/07/06(日) 15:33:52 ID:u0xbCZgf
XP SP2です。 Eclipseというコンパイラを使いたいのですが、 プロジェクトを作成する際、「メモリ不足」というエラーが出てしまいます。 メモリを足して1024までふやしても、同じです。 このコンパイラを使えるようにするために他にできることは何がありますか。
そんな糞PCは窓から投げ捨てる
443 :
nobodyさん :2008/07/06(日) 18:59:55 ID:kCPlCvkd
まあまあ投げる前にスペックをちゃんと書いてください。 CPUとかも。 あと一度再インストールを実行しましょう。
>>435 とりあえず、例外が発生しない前提だったら
$a = split('、|。', "きょう、はれ。あしたは、くもり。");
でいいんじゃない。
splitは正規表現使えるわけですし。
445 :
nobodyさん :2008/07/06(日) 20:04:43 ID:OiP9S+tK
>>442 これはひどい。殺人未遂の教唆。
さっき、通報しておいた。
プログレッシブをインターレースに変換したいんだけど、 何を使えばいけるんでしょうか。
448 :
nobodyさん :2008/07/06(日) 21:37:54 ID:7trC5Wsc
ちなみにJpegです。
>>445 とりあえず標準のmail関数投げたらいけるの?
Xamppってなんて読んでる?
くさっ!ぷー!
453 :
nobodyさん :2008/07/06(日) 23:54:30 ID:OiP9S+tK
>>449 smtpになげたら成功しました。
ありがとうございます。
454 :
nobodyさん :2008/07/07(月) 03:13:50 ID:v4RGtv07
正規表現について質問させて下さい。 Linux(ubuntu7.1)、PHP5で動かしています。 $tst = "select"; if ( preg_match( "/[text|textarea|file|pass]$/i", $tst ) ) print "hit - {$tst}<br />\n"; このような正規表現を書いた場合に、真となり、hit - select と出力してしまうのですが何故でしょうか? 動作としては、 $tst = "text"; $tst = "textarea"; $tst = "file"; $tst = "pass"; の場合のみ、プリント文を出力させたいのです。 正常に出力されないので私が間違っているとは思うのですが、正規表現ドキュメントを見たり、このコードと睨めっこしても間違いに気づくことが できませんでした。 お力添え頂ければ幸いです。 宜しくお願い致します。
[] -> ()
456 :
454 :2008/07/07(月) 03:31:08 ID:???
>>455 レスありがとうございます。
ぇっ・・・これってpreg_matchもしくはphp特有のケースでしょうか?
それとも正規表現における私の完全な勘違い?
試してみると期待通りの動作を確認しました。
とても感謝なのですが、何か頭の中でモヤモヤが。()ってパターンマッチ変数を格納する為の符号だと思っていました。
もしよろしければ少し説明もしくは該当箇所についてのサイト、ドキュメント等ありましたご紹介頂けないでしょうか。
度々申し訳ありません。
宜しくお願い致します。
とりあえず正規表現スレあるからそっちいくといいよ
[char-list]
[]の中に置かれた文字のいずれかにマッチします。
よくある勘違い
[^foo]bar という正規表現は、「fooではない文字列に続いてbarという文字列が続くもの」 ではありません。
「fでもoでもない文字に続いてbarという文字列が続いたもの」です。
[]で囲んだものが表しているのは文字列ではなく文字の集合(その中に含まれる/含まれない文字のどれか) だということに注意してください。
http://www.kt.rim.or.jp/~kbk/regex/regex.html
459 :
454 :2008/07/07(月) 04:07:39 ID:???
>>457 >>458 有り難う御座いました!
完全な私の勘違いでした・・・
これでスッキリしました。
本当にありがとうです。
うちのサーバーの稼働時間が400日を超えました。 私の運用能力による所もありますが、 400日も連続して働いてくれるサーバーの部品たちに感謝。 すぐ切れる子供が多いというのに、サーバーは全く切れない。 幼児教育のネタにしてほしいと思う今日この頃です。 明日は、燃料高騰とサーバー運営費との関係性についてお話します。
>>460 とりあえず、400日稼動ってことは、
セキュリティホールがある状態だから
アップデートしたほうがいいよ。
windowsを基準に考えるのはやめたほうがいいよ
windows apache2.2.9です。 httpd.confには Options FollowSymLinks ExecCGI IncludesNOEXEC を指定しています。 htmlファイル内に <!--#include virtual="/common/header.html" --> が記述されていて、 ちゃんと、includeされて画面表示できます。 ここで、phpが使いたくなり、 phpをインストール・環境設定を 行い、phpinfo.phpは正しく表示されます。 htmlの拡張子でもphpを動かしたく、 httpd.confに AddType application/x-httpd-php .php .html を追記し、apacheを再起動しました。 その結果、 ブラウザ画面上には an error occurred while processing this directive とメッセージがでて、 apacheのログには、 unable to include potential exec "/common/header.html" in parsed file hoge と出力され、正常に動作しません。 SSI使用及びPHPを拡張子htmlで実行したいのですが、 どこが間違っているか分かる方、ご教授ください。
>>462 Linuxのセキュリティ情報見たほうがいいよ。
いや、マジでw
>>464 枯れたkernelなら400日くらいの稼働もめずらしくないがな
daemonのアップデートなんて再起動は必要ないんだし
uptimeが400日越えでも
>>460 がちゃんとパッチあててるならいいんじゃね?
>>464 >>442 はWindowsみたいにサーバ再起動を要求する
セキュリティフィックスばかりだと思うなって事だとオモ
40日セックスしてません!
400日の間に再起動が必要なkernelの アップデートぐらいあるだろ。常識で考えて。
類は友を呼ぶ
471 :
nobodyさん :2008/07/07(月) 11:38:38 ID:hqpY620v
質問です。 携帯サイトを構築してるのですが、画像のダウンロードボタンを 作成する場合、どのようにしたらいいのでしょうか? ググったけど分からずに困っています・・・。 もしかして、携帯で画像の自動ダウンロードはできないのでしょうか? PCサイトみたいにheaderで作成してもできませんでした。 よかったらご教授願います
PHPのゆの字も出てこないな
>>471 <input type="button" value="Download">
で表示されるだろwww
JpGraphでフォーマットをgifで出力すると背景色を白にしても少し黄色み(#FCFEFC)がかっています pngやjpgはちゃんと真っ白(#ffffff)になります gifでも真っ白にしたいのですがどうすればいいでしょうか? ご教授ください
475 :
nobodyさん :2008/07/07(月) 13:58:47 ID:hqpY620v
>>473 表示されて、メニューから保存ではなく、
自動的にダウンロードされるようにしたいのですが
動画などは<a>タグや<input>で問題ないのですが
画像は別画面になるだけですので・・・
>>475 携帯は知らんけどContent-Disposition指定すればいけるんじゃ?
477 :
nobodyさん :2008/07/07(月) 14:07:07 ID:hqpY620v
>>476 phpのheaderで
header("Content-Disposition: attachment; filename=hoge.jpg");
これを指定してもだめでした
>>478 すでにリンクが赤くなってますw
.htaccessなども色々試したのですが、言われてる通り
キャリアによってできたりできなかったりしますね。
<object type="image/jpeg">などもやったのですが、
auだけ動いて、他のキャリアは動かなかったりとか・・・
headerの指定で、携帯用などがあるのであれば、
どなたかご存知の方がいるかなと思いレスさせていただきました
480 :
471 :2008/07/07(月) 14:20:15 ID:hqpY620v
↑すみません471です
そういうこと言うんだったらもう知らん。勝手にやってくれ。
>>469 出来合いのカーネルならね。
>>465 は自前でリビルドしたやつ使ってるんでしょ。
セキュリティフィックスに該当する部分が
最初から入ってなければ、問題は出ない。
> セキュリティフィックスに該当する部分が > 最初から入ってなければ、問題は出ない。 で、セキュリティフィックスに該当する部分を 最初っから入れないようにするにはどうするの?
枯れたの使ってるんでしょ
配列に関する質問なのですが、よく配列操作をする際にcountを使うように解説されています。 いろいろ弄っていて気づいたのですが以下の場合ではcountが目的通り機能しません。 配列要素の最後の配列数を取得するような関数は御座いませんでしょうか? $a[0] = ""; $a[1] = "1"; $a[3] = "3"; $count = count( $a ); print "{$count}<br />\n"; print_r( $a ); $countは3になり、print_rでも$a[2]は欠落した状態で表示されます。 事前に$a[2] = "2";と定義すれば$countも4となり、print_rでも$a[2]は空変数として表示されます。 このような配列を $c = count( $a ); for( $i = 0; $i < $c; $i++ ) { print "{$i} - {$a[$i]}<br />\n"; } の式でループすると$iの配列ポインタが一致せずに 0 - 1 - 1 2 - と表示されてしまいます。 0 - 1 - 1 2 - 3 - 3 と表示するようにしたいのです。 アドバイスの程、どうぞ宜しくお願い致します。
枯れた技術っていう言葉使うのはやめてください。 お客さんが勘違いしますし、日本語としても間違っています。 使うなら、「熟した技術」という言葉をお使い下さい。 お願いします。
foreach
もしくはmax(array_keys())とか
熟した女 枯れた女 大違いだ
>>488 おお、これでいけました。ありがとうございます。
492 :
nobodyさん :2008/07/07(月) 18:57:25 ID:cOv9SSky
セレクトボックスについてなんですが <select name="color1"> <option value="白">ホワイト</option> <option value="赤">レッド</option> <option value="黄">イエロー</option> <option value="青">ブルー</option> <option value="緑">グリーン</option> </select> これで例えば黄を選んだとき300円 緑を選んだとき200円 といったnedanと言う値をPOST値に加える場合どうしたらいいんですかね
493 :
nobodyさん :2008/07/07(月) 19:12:27 ID:YMIYH7F4
class Base { // Singletonパターン static function get_instance() { /* 略 */ } function main() {$instance = self::get_instance(); $instance->exec()} } class Ex extends Base { function exec() { /* 略 */ } } このとき、ある場所からEx::main()と呼び出したときに、"Ex"という継承クラスの名前を Baseクラスで知ることができる方法がありましたら、ご教授お願いします。 もしあれば、継承クラスのget_instance()などをまとめて指定できて、すっきりできるのですが…。
>>492 POST値に加える必要ないだろ
サーバー側で黄→300円、緑→200円の変換をかけるんだ
HTMLに手を加えられて
0円とか、-100,000,000円とか
送られてきたらどうするんだよ
改竄できるから値入れるのどうかと思うが。 value=200,黄色 でなんとか出来たらいいよね。
>>492 switch使うくらいしか未熟な自分には出来ないなw
他にいい方法あるだろうけど。
497 :
492 :2008/07/07(月) 19:22:20 ID:cOv9SSky
改竄は戻ってきたときに検証かけるから
OKなんですが、別鯖に送るときはきちんとデータを
送らないといけないんですよね
>>494-496 自鯖内でもいっかいPOSTしてswitchするのが
一番ですかね。
>>493 いまのところそれを知る方法は無いよ。
PHP5.3.0とかPHP6.0だったらわかるようになるはず。
エスパーの修行が足りませんね
501 :
492 :2008/07/07(月) 19:42:00 ID:cOv9SSky
502 :
493 :2008/07/07(月) 19:46:32 ID:YMIYH7F4
>>498 回答ありがとうございます。やはり無理でしたか…。
今のところは我慢して継承クラスに書くことにします。
>>497 どうしても送りたいならJavaScriptでやればいいでしょ。
>>497 俺も判らん。
突然別サーバの話とか出されても
先にどういうシステムか説明してよ。
自鯖内でもいっかいPOSTって何言ってんのさ。
正しい値で別サーバに送ればいいじゃん。
てか改ざんチェックして別サーバに送るなら
最初から200円とか面倒を起こす必要ない情報をPOSTしなければいい。
505 :
nobodyさん :2008/07/07(月) 20:16:38 ID:PSaYvrzk
おれも全く意味がわからない。 日本語か?
「○○なPHPのスクリプトはありますか」っていう質問はどこですればいいですか?
形容動詞? ex. 大きなPHPのスクリプトはありますか
自分で探せボケ
多分、つまらない質問だと思いますが、教えてください。 index.htmlからsub.phpを引数つきで呼び出したいのです。 例えば、 index.htmlで、 <?php call "sub.php 3"; ?> というような感じで呼び出して、 sub.phpで2倍してechoするというような仕組みが作りたいです。 以下はsub.phpの例えです。 <?php return (argv[1]*2); ?> エスパー様、教えてください。
死ね
511 :
509 :2008/07/07(月) 21:10:19 ID:???
まじで教えてください
>>509 エスパーも何も、拡張子がhtmlのファイルにphpのコードを入れてどうするのw
1もマニュアルも読まない人間がまじで質問してるとは到底思えない
514 :
509 :2008/07/07(月) 21:14:04 ID:???
>>512 拡張子がhtmlでもphpは実行できますよね?
apacheのhttpd.confの
AddHandler application/x-httpd-php html
の指定で。
ああ、確かに>512はPHPの拡張子は.phpだけだと思ってる素人だな。
517 :
509 :2008/07/07(月) 21:20:12 ID:???
俄さんでもいいんで教えてください。
そんなやり方はおすすめされないが
>>512 は初心者
俺もindex.htmlにphp入れてどうすんのさっていいたいからいってみる。
俺だったらcall "sub.php 3";はあきらめる。
関数じゃだめなの?と一応聞いておく
俺エスパーどころかクラスとか使ったことない初心者だからincludeしてfunctionでポン
524 :
509 :2008/07/07(月) 21:31:54 ID:???
>>522 関数でもなんでもいいです。
ただ、index.html内にphpのコードを書くのではなく、
外部ファイルのphpに引数を渡してechoの戻りが
欲しいのです。
お願いします。
<?php
echo file_get_contents('
http://hogehoge.jp/sub.php?arg=3 ');
?>
sub.php
<?php
if (isset($_GET['arg']) == false) {
exit;
}
$arg = $_GET['arg'];
echo $arg * 2;
?>
まぁsystemとかでphp -f使えとかいわれそうな気もするが
拡張子が.htmlの場合phpにするか
そのファイルだけphpにするという設定を.htaccessに書くかけば動くよ
526 :
509 :2008/07/07(月) 21:43:09 ID:???
>>525 ありがとうございます!!!
明日、試してみます。
function
>>526 散々駄々こねといて
明日かよ!みたいな
529 :
509 :2008/07/07(月) 21:55:59 ID:???
530 :
やらたん :2008/07/07(月) 22:17:23 ID:e8gC2p2T
セキュリティホールがあればFireFoxを使って、ブラウザだけでスクリプトが見れるとききました。
実際にFPには、穴があって、スクリプトを見るのに使えるらしいのですが、どうやるか知っていますか?
引数?idに、何か%00のような値を入力したら、バグってみれるそうです。ヌルバイト攻撃でしたっけ…
http://tool-1.net/index.cgi それを使ってみたいのですが、どうやったらいいかわかりますか?
TELNETでは無理でした。
Firefoxだし、意味がわからないので却下
>>440 です。昨晩は申し訳ありませんでした。
仕切りなおしさせてください。
昨日の書き込みはお見捨て置きください。
●PCスペック
XPPro Ver2002 / SP2 / HP Compaq dx7300 Slim Tower Intel(R)
Celeron(R) D CPU 3.46GHz
3.46GHz、488MB Ram
●症状
Eclipseというアプリで、プロジェクトを作成しようとすると、
Java heap spaceというエラーが出る。
●補足
この言葉をネットで検索すると「メモリの割り当てを増やすと解決する」
とあったので、348MBまで増やしたのですがそれでもダメでした。
再インストールしてもダメでした。
他に手はないでしょうか。先輩方、どうかよろしくおねがいもうしあげます。
533 :
やらたん :2008/07/07(月) 23:19:22 ID:e8gC2p2T
単刀直入に申しますとFirefoxを使って、CGIソースを見たいです。やりかた教えてください。
>>532 そのメモリじゃ動作してもきつい気がするが、、、
JDKから入れなおしてみ。
535 :
nobodyさん :2008/07/07(月) 23:30:44 ID:0vUgsI9q
phpからhtpasswdを呼び出したいんだけど、パスワードとリタイプの所をうまくクリアする方法ってないですか?
最近スレタイ通りの愚質問多くね?
まあそのためのスレだし
>>533 なるほどそんな方法があったのね。
やってみたら見れたよ
教えてくれてありがとう。
自分のスクリプトにも対策を施しておこう。
540 :
nobodyさん :2008/07/08(火) 01:57:01 ID:4wqeMBNv
どうやってみるの?
>>540 バカでなければわかる。バカなら諦めたら?
>>483 これが無いと動かないっていうモジュール以外をできる限り外して、
カーネルをリビルドして、バージョンを固定する。
該当するセキュリティホールが出たら、また、手動でリビルドする。
入っているモジュールが絞られているので、引っかかる可能性が
下がる。運がよければ2年くらいそのままで行けることもある。
2000年頃のサーバ関連の本だと、出来合いのカーネルは使わ
ないのが常識くらいに書いてあるよ。
543 :
nobodyさん :2008/07/08(火) 05:15:28 ID:sA/0fAo9
>>509 htmlでサーバサイドインクルード使うって手もあるんだが。
>>543 意味がわからないんだよ
もっと具体的に
>>535 パスワード生成したいだけならcryptでいいよ
ああ、そういうことか。
htpasswdと同等の機能があればいいなら
>>546 の通りだな
htpasswd --helpしたら、 htpasswd -b[cmdpsD] passwordfile username password と、パスワードをコマンドライン上に書ける書式があるようなのだが。
すげー馬鹿
550 :
nobodyさん :2008/07/08(火) 12:52:51 ID:wHbZE3VJ
どこで、聞けばいいのかわからんから、おしえてちょんまげ。 PHPの求人ってみんなどこで探してるの?Find Job!とインターネットハローワーク くらいしか見てなくて、あんまりない。どこにPHPの求人情報があるサイトってあるんかな? どこもあんまりないんだけど。。
就職したいんだったらPHPに限定してるとロクな数ねえよ なんでもできるようになっとけ
就職するなら一点突破の方がいいんでない?
就職するならソフ開とオラクルマスターくらいは取らないと
初めてのPHP&MySQLいいね
556 :
550 :2008/07/08(火) 14:26:17 ID:???
>>551 ありがとうございます。色々でてきますね。確かに、。意外な盲点でした。
ありがとう。
>> 皆様。
ありがとうございます。資格は一応持ってます。でも、求人情報がすくなく。。
他の言語はCとC++ができますが(Windowsプログラム)、これもあまり求人ないですし。
どうすりゃいいんだか。。
ありがとうございました。
とりあえず、javaとDBなら口は多いけどな
ソフ開とかオラクルとか言ってる奴って学生だろ? そんなの無くても就職できるぞ あとfind jobとかはたまにしか良いの無いし 新卒とかだともっと厳しい
>>558 全くその通りだ。そんなの無くても就職だけならできる。
金も貰えないのにソフ開の勉強とかだるいわ
板違い
>>558 どの求人サイトがおすすめですか?教えてください
ちなみに30歳です
定期 明解Javaのレビューはほとんど望洋の自演(単発ID)
Javaで、何も持っていない無資格者ですが、 金融系のシステムに従事していたときは、 残業代込みで税込み85万円でしたよ。 資格より経験値で値段が決まる世界だし。 あと、面接のアピールをうまくして好感度アップを。
565 :
nobodyさん :2008/07/08(火) 21:20:29 ID:QzhvBmuW
先日MYSQLの件でアドバイスを頂いたものです。 その節を色々アドバイスを頂きどうもありがとうございました。 無事解決しましたので、事後報告をさせて頂きたく投稿しました。 本日午前中に暇しているDBチームのメンバーがいたので、 見てもらったところ、MYSQLがおかしかったせいで、 遅かったみたいです。10秒かかっていたのが、0.2秒程度で処理できるようになりました。 クライアントにも喜んでもらえそうです。 MySQLは鬼門ですね。やはり、プロ用のOracleを無理にでもクライアントに呑ませるべきでした。 安物買いの銭失いを地でいくようなお話で、恥ずかしい限りです。 このスレには、たくさんのアドバイスを頂き、色々お世話になりました。 また、お騒がせしました。どうも、ありがとうございました。
>>565 また、そうやって荒れるような事を書くし…
だから、最初っからお前が書いたSQL文が悪いって言ってるジャンw やっとわかったのか。
スルーしろよ
>>565 おまえならOracleを使っても同じ結果を出すよ
自分の無能に気づいたほうがいい
どうせ職場でも人の話を聞かないで大騒ぎしてたんだろ 中年SEはリストラするに限るなw
リアル困ったちゃんなのかネタなのか、それが問題。
572 :
nobodyさん :2008/07/09(水) 01:22:14 ID:vfd79F2N
shine
シャイン?
575 :
nobodyさん :2008/07/09(水) 01:54:30 ID:U9Y+NLIi
572の意味がわからん shine
shineとか懐かしすぎる
You are my 三 社員
shineといったら、ユア、マイ、オンリー、シャイニング、スターでしょ。
579 :
nobodyさん :2008/07/09(水) 04:27:46 ID:o++cyH1p
usortで、拡張子を元にファイルの並べ替えをしたいと考えています。 $extention = array( 'html', 'htm', 'shtml', 'php', 'cgi' ); $files = array( 'index.cgi', 'index.php', 'index.html', 'index.htm', 'index.shtml' ); usort( $files, 'func' ); function func {}; usort処理後、 $files = array( 'index.html', 'index.htm', 'index.shtml', 'index.php', 'index.cgi' ); になるようにしたいのですが、func内にどう記載すればいいのか分かりかねています。 どなたかヒントを頂けませんでしょうか?
>>572 URLエンコードで駄目ならshiらne
>>579 index.html
って言う文字列から
strpos()とかsubstr()使って
拡張子取り出す処理は書ける?
pathinfo()使ってもいいけど。
>>581 $str = "index.html";
substr( $str, strpos( $str, "." ) + 1 );
書けますが、その意図が分かりません。
clearstatcache(); $file = $_SERVER[PHP_SELF]; if( file_exists( $file ) ) { print "{$file}は存在する"; } else { # リンク切れ print "{$file}は存在しない"; } 何度やっても、存在しないってなるんだけど、 PHP.INIかどこかがおかしいのかな? 自分自身のファイルを確認してるわけだから、存在しないわけないのに。
>>583 サーバのパスとURLのパスがごっちゃになってないかい?
585 :
583 :2008/07/09(水) 10:18:47 ID:???
>>585 その場合、/test/test.php をチェックしてるんだろうが、
実際のファイルの場所は、(httpdで設定したドキュメントルート)/test/test.phpだろ
httpdで設定したドキュメントルートは、例えば何もいじってないApacheなら、/usr/local/apache2/htdocs とか
echo $fileしてみろよ。
ほかの人のphpがどのようなクエリをもらって処理しているか調べる方法ってありますか? たとえば、fileupするときにどのようなクエリもらって処理しているのかなど
>>588 送信ボタンがあるHTMLのFORMやINPUT
ってことかな
FirefoxでLive HTTP Headersのアドオンを使うとか?
そもそもPHP_SELFなんて・・・
593 :
583 :2008/07/09(水) 13:06:10 ID:???
$array1 = array( 'a', 'b', 'c', 'd' ); $array2 = array( 'b', 'c' ); この時、 $array1 - $array2 のように差分を求める関数、または良い求め方はありますか? この場合だと、array( 'a', 'd' ) が返ってきて欲しいのです。
594 :
583 :2008/07/09(水) 13:08:30 ID:???
あー、順番間違えました。
>>583 については、
>>584 ,
>>586 氏の言った通りでした。
ドキュメントルートからファイル名を得ることで、正常に処理できるようになりました。
>>593 ここには君の家庭教師なんていません。
いい加減にしろ
596 :
583 :2008/07/09(水) 13:11:01 ID:???
>>593 もarray_diffでできるようです。
解決しました。
597 :
583 :2008/07/09(水) 13:34:14 ID:???
>>595 あなたのようなどうしようもない人間しかこのスレにはいないですしね。
もう2度ときませんさようなら。
>>597 老婆心ながら・・・
冷たいレスがつく時はドキュメントに載ってる場合がほとんど
老婆乙
熟女は好きですがさすがに老婆は守備範囲外です、 を表すコードを教えてくださいな。
602 :
583 :2008/07/09(水) 14:26:37 ID:???
>>597 は僕じゃないです。
他に
>>579 も質問していましたが、
array_search( substr( 'index.htm', strpos( 'index.htm', "." )+1 ), $extention );
の応用でほぼ解決しました。
ほぼか
604 :
nobodyさん :2008/07/09(水) 14:44:25 ID:GllHLeeR
サーバー会社が突然PHP4からPHP5に上げたら 「fatal error: cannot re-assign $this 〜」 というエラーが出るようになりました 電話で聞いたら 「PHPの動作モードが選べるので4に戻せば動きます でもサポート終了なので自己責任ですよ」 と言われました。 それで今はとりあえずPHP4モードにしてエラーが出なくなりましたが 何か不安、でも一々修正箇所を探すの面倒 と言うわけで、一発でPHP5で問題のある箇所が分かる方法は無いでしょうか? 何かコマンド一発で出るとか、もしくは該当のエラーが出た場合、 そのファイル名と日時を記録とか通知するように出来ないでしょうか?
質問のレベルが上がると回答者は存在せず、 質問のレベルが下がると回答者は無能者ばかりになる。 役立たずスレここに極まれりだな。
>>604 どこの行でエラーが出てるのか書いてるだろ
そこを5風に書き直していけ
608 :
nobodyさん :2008/07/09(水) 14:55:46 ID:dvrZbz4K
dHd
>>608 そういうことも分からないのにPHPなんて早すぎる。
まずはなんとかブリーダとか使ってなんちゃってサイト作ってみれば。
>>605 質問か高度かどうかはともかく、
「質問者」のレベルが低いとろくな回答はつかないだろう。
この場合のレベルとはPHPのスキルではなく、他人に物事を正確に伝える能力な。
抽象的過ぎて複数の解釈が出来る質問なら、トンチンカンな回答が含まれるのは当然だし
判断に必要な情報が足りなければ、エスパー以外は回答できないのも当たり前。
615 :
nobodyさん :2008/07/09(水) 15:55:15 ID:n5MnIPD/
>>605 はなかなかいい所を突いてる。
難易度の高い質問に答えられる回答者は、このスレ見てない。
自分のレベルでも答えられる回答を見つけると、勘違い回答者続出。
そもそもレベルの高い人はPHP使わないしね
キモっ
ApacheならDirectoryIndex、ScriptAlias、等の動作、 それとPATH_INFO を調べればいくらでも工夫できると思うよ。
620 :
604 :2008/07/09(水) 17:35:51 ID:GllHLeeR
>>618 氏
何となくピンと来ました
以前.htaccessで、ファイルが無い場合はエラーページへ飛ばす文を書いたことあるんで
それを応用してエラーが出たらエラー処理ページに飛ばして
ファイル名と日時を記録or通知sればOKですね。サンクスです
そういうのを処理する機構として例外処理があるわけだが
622 :
572 :2008/07/09(水) 23:46:18 ID:???
>>580 わんばんこ。
URLエンコで無事解決したよ。
サンキュー。
623 :
nobodyさん :2008/07/10(木) 01:02:35 ID:g7ks3HVV
try〜catch って PHP でも使えるんだな
何年前の話だ
配列のキーを初期化する良い方法はありませんか? $array = array( [4] => 'foo', [12] => 'bar' ); を $array = array( [0] => 'foo', [1] => 'bar' ); に変える方法です。 現在、以下のような方法でやっています。少し不細工な気もしますが。 $array = array_merge( $array, array() ); ベストプラクティスがありましたら、ご教示下さい。
array_values
今年一年目の社会人です。 3ヶ月の研修期間が終わって、配属されました先がphpでプログラミングを担当する部署でした。 同期は、Javaやネットワークを扱った案件に回されているらしく、 どうして自分だけがと悩んでいます。 phpについてほとんど知識がありません。ただ、聞くところによるとルールが緩い言語で簡易言語だと教わりました。 このスレで聞くのもなんなんですが、私がこのような部署に回した会社の意図はどこにあるのでしょうか。 結構真剣に悩んでいます。批判でも結構ですので、アドバイスを下さい。
Smartyの{if}って、 等号使っての式はできるが、 普通に計算式(和を求めたり)できないな {if ($value + $value2) > 10}{/if}
>>630 ああ、半角スペースだめなのかorz
{($value-$value)/10}とかはできなかったなぁ・・・
>>628 俺人事部じゃないから知らん。
>結構真剣に悩んでいます。
気にしたら損。たとえ変な理由であることを後から知ることになっても。
何が不満なのか不安なのか知らんけど。
>会社の意図
お前の会社の人事が悪い意味での適当なのかイイ意味の適当なのか俺は知らん。
部署の要望 > 新入社員の希望
>どうして自分だけが
1人要望していた部署があったか、PHPを扱う部署が1つしかないんだろ。
1つの部署に必ず新人は2人以上なんて規則ないだろ。
PHPの仕事が増えれば来年の人事異動で同期が来るかもしれない。
>PHPについてほとんど知識がありません
すでにJavaとかが判るんだったらPHPできないなんてことはないよ。
>>627 お前文盲か
他の言語と比べて見劣りすると言われているPHPでもそんなことができるんだーってことだろ
>>632 >>634 早速のアドバイスどうもありがとうございます。
研修の半分はJavaでした。ただ、Javaは大学でもやったことがあり、
既に研修でしていることは、私にはわかりきっていることで退屈な位でした。
初日に同期がclasspathの設定で環境構築に苦しんでいる中、
一日で研修テキスト一冊目(150ページ)の最後の課題を終了したくらいです。
それが、phpに部門に配属されるという意味が分かりません。
人を見る目がない会社なら、将来が暗いと考えていまして、
第二新卒を狙って、他の会社に転職することも考えています。
>>635 ですが、そろそろ仕事が始まるので、
ノートPCを閉じないといけません。
又、夕方来ます。宜しくお願いします。
そういう愚痴、嫌味、空気の読めなさがJavaの大規模案件任せるのに不向きと判断されたのでは
1.即戦力で期待されてる。 既にJava出来るならPHPなんて楽勝でしょ。 即実践投入でサクサク銭稼げるようになってくれよ。 知識のない奴はOJTしつつJava習わせて、 適当なところでJava案件の常駐に行かせて稼がせよう。 2.知識はあっても…と何かorzされてる ということで、PHPの部署以外引き取り手がなかった。
classpathの設定に苦しむとか やめたほうがいいよ同期
> それが、phpに部門に配属されるという意味が分かりません。 phpの方が将来性あるから。 ぶっちゃけJavaはもうはやらんよ。 オープンソースのシステムなんかほとんどphpでしょ。
手取り足取り教わったんじゃなけりゃ、最初に躓くのはclasspathだと思うけどな。
>>641 は初心者か
>>645 たまたま自分がそこで躓かなかったからそういうものだと知らなかった
スマンコ
CakePHPの質問でも大丈夫でしょうか? CakePHP1.2,PHP5でviewにチェックボックスを表示しています。 デフォルトをチェックが入った状態にしたいのですが、以下のようにvalueを指定してもチェックが入りません。 どのように指定すればチェックが入るのでしょうか? echo'<div>'.$form->checkbox('comset/admin',array('label'=>"",'value'=>1)).'管理者のみ表示</div>';
>>635 PHPなんて一時的なもんだろ。
今のプロジェクトが終わったら次は.NETやるから3日でC#と基礎的なこと覚えろ。
って言われるのが仕事ってもんだ。
最初の仕事がたまたまPHPだっただけだろ?そんな嘆くようなことでもあるめえ。
それより仕事にいちいち反発持ってるゆとり全開な態度だとこの先大変だぞ?
会社の意向は絶対だ。不満があるからころころ転職するのは新卒だからといってそんな通用しない。
学部生時代面接の仕方とか教わっただろ?
意向しない部門へ所属することになっても平気ですか?ときかれたらハイ!と答えろって。
650 :
647 :2008/07/10(木) 11:01:49 ID:???
>>648 失礼しました。
教えていただいたスレの方で質問してみます。
ありがとうございました。
中規模サイト対応レベルのCMSをフルスクラッチで実働10時間で作れる実力があれば うちでは即採用してるよ。
中規模サイトって曖昧だな
>>651 中規模サイト対応レベルのCMSをフルスクラッチで開発してください。
実働10時間ってことですので、費用は5万もあれば十分でしょう?
>>651 そりゃ、普通の経営者なら即採用するさwww
>>651 そこまで行くと待遇次第じゃ逃げられるんじゃね?
即戦力目当ての中途採用でその程度以下じゃ 使い物にならんだろ。
俺なら中規模サイト対応レベルのCMSをフルスクラッチなら2ヶ月は余裕でかかるぜ 仕様にもよるけどな
>>658 ∧,,∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ミ ,,゚Д゚彡< キミフサイヨウ!
__ ミ ミ ミ .\___________
\,,ιミ~ ̄ ̄ ̄\
||ヽ||第1フサ ̄||
...||... ̄ ̄ ̄ ̄||
中規模ってLivedoorかgooぐらいでよいのかな?
つーかさ、10時間で作れるってテストやドキュメントの工数をどう考えてるんかな 新人なら考えてなくてもいいけど、即戦力としてなら考慮してなきゃダメだろ
余程作りなれてないと出来なさそう
つーか、ここまで絞った内容だと 作ったことがあるかどうかにかかってくるんじゃ?
納品しない社内で使う品質のCMSなら10時間あれば余裕で作れるな
結局
>>651 はダメダメ人間ってことか。
常識的な基準すらわかっていないようだ。
いや、ここのレベルが低すぎるだけだよ
10時間で作れるレベルのCMSがどんなもんか教えてくれないかな 大雑把な要件でいいよ
スレ違いはもういいから仕事しろ!
すいません・・・
それより山本モナの話をしようよ
まあ現実と極端に離れたことをいっても
すぐにばれるってこったw
>>651 、嘘をつくのならもう少し現実味のあるうそにしとけよw
>>671 自分の無能を棚に上げすぐキレる、
あなた加藤さんですね?わかります。
加藤さんw
鷹か
>>667 中規模かどうかは知らんが
・執筆者アカウント管理
・ページ作成編集
・インデックスシステム
・テンプレート編集
・ファイルアップロード&管理
・RSS生成
こんなもんじゃね?
これだったら10時間で(装飾とか抜きで)作れなくもない。
676 :
nobodyさん :2008/07/10(木) 17:01:32 ID:fDpfFXNS
日本語の文字列をURLでも使える %A1%B2みたいな文字列に変換したいのですが、 どのようにすればいいのでしょうか? どういう名称で探せばいいのか分からないので困っています。
url_encode
>>675 中規模だと執筆者の権限を管理してワークフローが必要だろう
ページの公開管理や版管理も必要かもしれんな
まあそれ無しとしても10時間では俺にゃ無理だな
その要件を10時間で作れるなら大したものだ
680 :
nobodyさん :2008/07/10(木) 17:14:04 ID:fDpfFXNS
早く作れれば良いエンジニアなのか・・・・?
>>681 Noだな。
だからといって納期守れないんじゃ困るけどな。
納期そのものが、短すぎる場合は 守れなくても当たり前。
早いと嫌われるけど遅いと痛がられるのなぁんだ?
作れるといっている奴は、たいてい証拠を出さないよなw 作ってからいえという話。
加藤容疑者さんが帰ってきました。
さあさあ、将軍様! 虎を(r
「俺はこれだけのものを○時間で作れるぜ!」 「すげー、俺だったら△時間もかかっちまうよ」 とかいう会話が成り立つ時点でそいつの会社の程度って・・・
チーム開発が主な業務じゃフレームワークを使ったRADが当たり前
早く正確なものを作れて当然な世界だ
個々のプログラミングに対しての技量も作業を進める上で大事だが
それよりも重要なのはいかに用意されたものをうまく利用できるかということ
採用にあたっては個人で短期間ですごいプログラムを作ったから即採用なんてとこは危険
もともと方向性が1つにきまってる会社ならまだいいが(エロゲー専門とか)
多岐に渡る業務を会社していると特に(Webから組み込みまでとか)
>>635 がいい例だがある程度実力があったりするとプライドが先行して会社にとって扱いにくくなる
何も知らないほうがまだ会社色に染めやすくて可愛いものだ
ぶっちゃけデザイナ上がりのマの方が使いやすい、弊社の業務上。
>>651 を読む限り実力を計る指標としてはありだろ、短時間で作るには
基礎は当然として効率的な設計・コーディング能力は必須だからな。
ドーマンセーマン
曖昧な課題に対してどういうアウトプットを 出すかも採用判断材料に面白いかもな
693は間違いなく素人
困った時のレッテル貼り みんなも覚えておくように
木乃伊取りが木乃伊にw
698 :
nobodyさん :2008/07/10(木) 22:38:11 ID:fDpfFXNS
ちょっと変なことになったのですが、 "ああああ"という文字列をstrlenとmb_strlenの関数に入れたところ どちらも12と返ってきたのですが、 これは何が原因なのでしょうか?
ファイルと指定した文字援交ディングは合ってるかい?
UTF-8か
えと、一応PHPのエンコーディングと出力ファイルのエンコードはUTF-8です
702 :
nobodyさん :2008/07/10(木) 23:16:20 ID:yMjtvAY/
php.iniの設定はちゃんとした?
703 :
698 :2008/07/10(木) 23:22:08 ID:???
設定ですか? このあたりの関数をうまく使うために設定が必要だったのであれば、やってないかもしれません。 どこの設定を変更すればいいのでしょうか?
echo mb_strlen('ああああ','UTF-8'); としたらどうなる?
mbstringあたり
両方12って事はmb_だな
mb_internal_encodingとmb_regex_encodingを 適切に設定すれば直るよ
708 :
nobodyさん :2008/07/11(金) 06:12:23 ID:aaHf0NGL
バージョン 5.2.6 で Zend を 使いたくて
http://downloads.zend.com/pdt/server-debugger/ から落としてきた
5_2_x_comp\ZendDebugger.dll を
x:\PHP\ZendDebugger.dll にいれて
php.ini に以下を追加したのですが
[Zend]
zend_extension_ts="x:\PHP\ZendDebugger.dll"
zend_debugger.allow_hosts=localhost
zend_gger.expose_remotely=always
<?php phpinfo(); ?> をしてもZendに関する表示部分は
>Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
になってしまい、その下に出てきて欲しい
"with Zend Debugger ~" の表示が出てきてくれません
php.ini の
;report_zend_debug = 0
となっていたところを
report_zend_debug = 1
にしてみましたが結果は同じでした
何を調べていけばうまくインストールできるでしょうか?
gugurekasu
池沼と低脳しかいないスレw
同意w 俺たちも含めてな
ぶっちゃけ環境構築とか自分でやれって話だろ くだらねえといってもスクリプト全般の質問じゃなきゃな
情報を共有するのはPHPコーディング技術やスクリプトの話題でいい サポセン的なことをなぜここでやらないといかん ということじゃね?
>>714 昔は技術は盗んで覚えろと言われたものだが、
こういう情報を共有する云々という人は、
世間でいわれるスイーツ脳ってことかな。
>盗んで覚えろ バカ
昔昔って古臭い既成概念に縛られてるようなジジイは帰れよ 21世紀には不釣合いだ
くだすれで質問者の質を求めるとかバカなんじゃね? そりゃ最低限の事は自分でやるべきだと思うが トンデモな奴なんてどこにでもいるだろ
質問させてください。 $str = mb_strimwidth($str,0,18,'...'); 上記のように記述し$str(日本語文字列)を9文字で切りたいのですが、 $strにスペースや・が含まれていると7文字しか入らず、 最後に文字化けした文字が付きます。 なぜこのような現象が発生するのでしょうか。 また、どう記述すれば文字化けせずに表示されますか?
>>719 mb_strcutかmb_substrで可能じゃね?
>>719 mb_internal_encodingは正しく設定されてる?
>>720-721 ありがとうございます。
encodingをすっとばしていたのが原因でした。
設定したところ文字化けもなく表示されました。
とても勉強になりました。
>>722 マルチバイト文字使うのに、
encodingすっ飛ばすなよ。
>>724 俺は違うんだ!って思いたいのですね、わかります
defineしたものを未定義に戻すundefみたいなものはないですか?
>>729 定数を変数として使うって無いよ?
飛行機を新幹線として使いたいっていていると一緒。
例えが悪すぎる
クラス使ってゴニョゴニョすれば似たような事はできるけど __, ノ} _, ヾミ、 ,イl| ,ィツ ヾミ、 ノリlj'; ,ィ彡イ 〉ミミY杉ハ='杉彡" '^".:.:.:.:.:.:.::.:`丶{ /:.:.:.:.:.:.:.:.:.:.:.:.:.:.::.:.:.ヾミ三ニ≡=-ッ- / :.:.:.:.:.:.:.:.:.:.'.彡''"´ ̄ r==〈r==≦ミ :.:.:.:.ヽ.:.:.} {:.::::儿_:::::.:::.:}}≠======--、:} 弋彡'iゞr-=彡 f⌒ハ レ;;公^;ヽ . : :.: :. r' リ <オマエには無理だろな 爪rェェ弍 . : :.: :.:::.r-イ 川ーニ´jj{ . : :.: :.:: : イ 巛爪z从} ∠ニ=ヘ ゞ巛巛lリ _ _,∠二二、\  ̄ {/ ̄ \ \ / ヘ. ヘ / ∨ ,ハ { __ 「::レフ r::v‐ァ く::∨ '、 /(::c' |:::;〈 〉:::/ `ヘ | {ヘ `¨└^¨ `¨´ Y' | | /.ハ | | |
はなくそがうまい。
736 :
729 :2008/07/11(金) 18:03:53 ID:???
>>731 php本体のソースをいじらないといけないということはやはり普通の方法ではできないのですね。
ありがとうございます。
別にハックしなくても自分で作ればできるんじゃない? undefってのが内部的にどういう動作してるか知らないから憶測だけど
738 :
てんちゃん :2008/07/11(金) 19:29:55 ID:Z3Uae7Hu
telnetを使って、サーバのindex.phpのソースコードを抜こうと思って 80番ポートをたたいて いるのですが、どうもHTMLソースしか抜けません。なんか方法ありますか? telnet ホスト 80 GET /index.php
>>738 telnetで接続してhttpで取得してるんだからそりゃhtmlが返ってくるでしょうよ
どちらかというとunix板の話題なのでそちらへGO
どこがUNIX板の話題?
742 :
てんちゃん :2008/07/11(金) 19:52:14 ID:Z3Uae7Hu
>>739 おぉ(´・ω・`)さんくす
これ理解できたらPHPのソースコード抜けるかな〜
最近多いね 公開されていない他人のサイトのphpやらcgiのソース見たいとかいうやつ
telnetで80番ポートで接続してなんでソース抜けるのw
>>742 セキュリティーが甘いサイトは、
phpソースを表示させる方法はあるけど、
本来表示することを意図していないページを意図的に表示要求をすることは、
アクセス禁止法に抵触するとした東京高裁の判決が去年出ているから、
逮捕されるぞ。
他人のサーバにログインしてるんだろ? だとしたら抜けたらセキュリティーホールだろ 脆弱性をついてやると不正アクセスになるからやめなさい
747 :
てんちゃん :2008/07/11(金) 20:09:30 ID:Z3Uae7Hu
お前の今の知識じゃ100%無理だから諦めろ。
>>747 その方法を教えて君が逮捕されたら、俺まで巻き添えを食うわけだが。
それなら、仕返しの方法は簡単。運営者に言えば、
向こうが相当面倒なことになるだけ。
俺のサーバーにもSSHの認証をランダム文字列でクラックしよういう馬鹿な奴がいるが、
日本にあるプロバイダーならログ提出して猛抗議して、契約解除させられている。
日本のメジャーなプロバイダーなら、今は結構積極的に対応してくれる。
あとは、pingとかポートスキャンしている奴のプロバイダーにも相当文句言っているが。
750 :
てんちゃん :2008/07/11(金) 20:30:42 ID:Z3Uae7Hu
ならソースを抜く簡単な方法だけ教えてくれませんか? ソフト使ってもいいです。ソフト名だけわかってもいいです。 WEBアプリケーションの脆弱性は結構勉強したので知っています 昔はヌルバイト攻撃も通じたし。XSSも通じました。なのに今は対策されています。 やりかたさえ教えてもらえればあとはググルので。 全部丸投げはしません。 やった奴のIPをアクセスログより確認して、アクセス禁止にしたいのです。
根性は評価できる
アクセス禁止にしたいのとソースを抜くのは関係ないな
定期的にここに現われるかまってちゃん
サービスやってる管理人なら、わざわざココで聞く必要ないだろ^^;
まぁどうせ
>>747 は単なる自演で、実際攻撃したいサイトは他にあるんだろ
アホくさww
>>756 そんなこと今になって気づいて得意げにレスしているお前が痛い。市ね。
つうかホスティングしてる管理人に問い合わせてみればいいのに
759 :
てんちゃん :2008/07/11(金) 20:51:03 ID:Z3Uae7Hu
せっかくPHPの板にきたから、PHPを使ってやろうと思います。 ランダムに $data = arrary(a,b,c,d,e,f…); と、全てのアルファベットと全ての数字を配列に納め、配列からランダムに取り出して、 あらかじめ入手しといたHTMLのログインページの変数 ?id=自分のID&pass=配列で作成したパスファイル&mode=logincheck で、 whileで、見つかるまでループさせて、 file_get_contents でファイルを取得し、ソースも取得し、そのソースに "パスワードが違います"; 以外の文字だったらパスワードとみなして、表示する。 というPHPを考えたのですが、どうでしょうか? 他鯖に負担がかかるかな…
やってみればいいじゃん。自己責任で。
>$data = arrary(a,b,c,d,e,f…); >と、全てのアルファベットと全ての数字を配列に納め、配列からランダムに取り出して、 負担どうこう以前に一生見つかりませんね^^;;;;;;;;
>>759 なんで運営に連絡を入れないの?
本当なら明らかに違法行為でしょ
>file_get_contents >でファイルを取得し、ソースも取得し、そのソースに なんつう突っ込みどころ満載wwwww
764 :
てんちゃん :2008/07/11(金) 21:03:06 ID:Z3Uae7Hu
というよりセキュリティホールがあるかぎりどんだけパスワード複雑にしようが、パスワードファイルを開かれたら、おしまいですよね? 一応通報はしときましたけど、対応はいつになるやら不安です FPのセキュホってXSSですか?
じゃあ、俺が通報しといてやるよ
OK・・・誰か俺がわかるように翻訳してくれ 話についていけなくて俺涙目
767 :
nobodyさん :2008/07/11(金) 21:05:47 ID:RxUTiv/S
自分自身の変数名取得ってできるっけ? たとえば$hogeだったら文字列のhogeを取得する方法ってある?
768 :
てんちゃん :2008/07/11(金) 21:06:50 ID:Z3Uae7Hu
通報はみんなでしてくれたほうがうれしいですね。 うーん やっぱりセキュリティホールなかなか見つからないですね
769 :
てんちゃん :2008/07/11(金) 21:09:48 ID:Z3Uae7Hu
他所のサイトの迷惑になるからやめなよ そういうことをやっていいのは自分のサーバーだけ 常識無さすぎだぞ・・・
だいたいFPとかなんの話をしてるのかサッパリだな・・・ このゲームcgiっぽい仕様を調べろとでもいってるのか?
773 :
てんちゃん :2008/07/11(金) 21:18:21 ID:Z3Uae7Hu
>FP → フリーページ そりゃわかんねーわw ロリポやxreaとか有名どこならまだしもなぁ
根本的な解決にはならないけどとりあえずパス再発行してもらえばいいのでは? パス変えられただけでしょ?
>>774 っていうか、ロリポっていうのも、よく分からないが・・・
>>757 >市ね。
やだ!そんな事でしにたくない!
778 :
nobodyさん :2008/07/11(金) 21:57:26 ID:7DrXvr8B
聞きたいんですが、プログラムって一通りかけるようになったら 実行速度が気になると思うんですが、みなさんはどうやって効率的な 速度の速いプログラムの書き方を身に着けましたか? phpでそういうのを詳しく解説した本とかあるんでしょうか? 少なくともこういう処理は必須という「ノウハウ」があれば教えてください 環境はapache2/php5でお願いします 特にSQL処理関連について意見もらえれば嬉しいです
>>778 O/Rマッパ使うならそれに依存するし、
直にDBに投げるSQLならチューニング次第。
実行計画でも見ながらSQLチューニングしろ。
つかSQLだったらスレ違いだな。
> 実行速度が気になると思うんですが もっと力をつけたら、実行速度はあまり気にしなくなるけどねw 全体で数秒かかっている処理の、数ミリ秒なんて気にしたってしょうがないし。 重要な部分が、問題になるくらい遅ければ手をつけるけど。 その次は開発速度を気にするようになる。 どれだけ何も書かないで作るか。 えっと、どうやって身に着けたかだっけ? 速いプログラムのアルゴリズムはどういう仕組みになっているか勉強することだね。 SQLというかRDBMSね。の場合だと、JOINはどういうアルゴリズムで データを結び付けているかだとか、インデックスはどういう実装(B木とか)で どういう理屈で早いのかとか。
PHPならよっぽどのことがない限りそんなに速くはならないだろ
JAVAやC#畑で揉まれた方が身につくだろ
いや関係ない。そもそも速度を上げる方法というものは 言語に依存しないものだから。 言語に依存するやり方は、バッドノウハウでしかない。 言語やバージョンが変わると使い物にならない。応用力が身につかない。
785 :
708 :2008/07/11(金) 22:19:48 ID:???
php.ini のZendの設定の一つ上の項目の " を閉じ忘れていたのが原因でした。
>>783 いや、Javaはオブジェクト指向を取り入れた通常の開発をすれば、
間違いなく遅くなる。メモリーも食う。速度的には不利。
じゃ、言語に依存せずwebシステムにとって何が重要か?
早く開発する必要もないはないが、不十分。
webで特に求められているのは、全体の運用コストが安くなる開発。
その解の一つがオブジェクト指向なんだが。
>全体で数秒かかっている処理の、数ミリ秒なんて気にしたってしょうがないし。
そもそも、1reqestに数秒かかる処理が問題。
最適化すれば相当早くなるケースも相当ある。
それは、phpコードの最適化もそうだし、php以外の技術も使うが。
なんかこのスレさ、この板の総合質問スレみたいに思われてんじゃね?
ある程度開発になれてくると、三項演算子とか使いたがる奴。 そういう奴が一番やっかい。 いわゆる秋葉系の部類だよ。 本人は、できる技術者って勘違いしているだから、たちが悪いわ。
>>786 数秒もかかる処理。それを大幅に縮めるには
ロジックそのものを変えないといけないことがほとんど、
そしてそのロジックはPHPに限ったものじゃないことがほとんど
>>784 それはテンプレート的な覚え方をしてるからだ。
「方法」ではなく、速度を上げる「理屈」を覚えれば、色々と応用は利くぞ。
>>790 うん。そしてその「理屈」はPHP限定のものじゃないよ。
どの言語でも使えるものだし、PHPでももちろん使えるもの。
速度アップにあまり言語ってものを意識することは無いんだよね。
792 :
786 :2008/07/11(金) 22:34:22 ID:???
>>790 同意。
数学で、数式を覚えるのではなく、数式に至るまでの展開を覚える方が、
応用問題に対処できるのと一緒ってところか。
小細工的な高速化("を使わず'を使う)とか PHP限定のなら山ほどあるがな。
>>792 そういう話で、言語にこだわる人って、本質がわかっていないと思う。
漢数字じゃだめだよ。アラビア数字を使わなきゃ。みたいな。
>>793 そういうのも、他の言語でも無い話じゃないしな。
コンパイラ特有のノウハウとかもあったりなったり。
797 :
てんちゃん :2008/07/11(金) 23:22:33 ID:Z3Uae7Hu
結局TELNETでHTTP以外でソースを取得することはできないのですか? さっきからずっと試しています。 21番ポートもダメでした
shine
799 :
てん :2008/07/12(土) 00:25:37 ID:xw9p7232
わかってやってんだから放置しとけ
802 :
nobodyさん :2008/07/12(土) 00:49:59 ID:lql6772u
クラスの変数一覧ってPublicじゃないと取れんの?
>>802 やったことはないけど、そういうのをやるのはリフレクションの仕事だね。
調べてみたら。
804 :
nobodyさん :2008/07/12(土) 03:04:46 ID:z/JSD44Z
すいません、whileのなかのlist(, $val) = each($arr) がどのような処理をしているのか解説お願いします list(,$val)のように書くとどのような動作をするんでしょうか <?php $arr = array ('one', 'two', 'three', 'four', 'stop', 'five'); while (list(, $val) = each ($arr)){ if ($val == 'stop'){ // stopの文字列あれば処理抜け break; } echo "$val<br />\n"; } ?>
while (list(, $val) = each ($arr)) は foreach ( $arr as $val ) と同じ処理 each()はarrayのkeyとvalueを返すのでlistでvalueのみ受け取ってるだけ
806 :
nobodyさん :2008/07/12(土) 03:50:27 ID:GP2h4Bov
>>804 処理的に高負荷で可読性の悪いことしてると思うけど
たぶんPHP初期のころの素人の書いたコードだろうな
keyとvalがとりたければ
foreach ( $arr as $key => $val )
とすればいいだけ
無意味な処理だ
>>806 PHP/FIまでforeach構文はなかった。
ついでに言うと、$array as $key=>$val と list($key, $val)=each($array) のパフォーマンス上の違いはほとんどない。
実際に計測してみればよく分かる。
倍くらい違うけど
809 :
nobodyさん :2008/07/12(土) 08:11:12 ID:GP2h4Bov
>>807 step数で考えると
list($key, $val)=each($array)の方がstep数が多くなる
パフォーマンスに違いが無いなら
可読性がよくてstep数が短い方がいい
ちがうんか?ワレぼけ
810 :
nobodyさん :2008/07/12(土) 08:18:16 ID:GP2h4Bov
whileなんてつかえねー 今どき使ってる化石みたいやついるの? foreachさえあれば何でも出来るのによお
812 :
nobodyさん :2008/07/12(土) 12:36:02 ID:lql6772u
DirのReadが読み込むファイルの順番って同じなんかな
>>811 なにそのサイト
俺の環境だとめちゃくちゃ見づらいんだけど
↓俺の環境をどうぞ
IE6だとレイアウトが崩れるね
>>815 お前の使ってるブラウザの解釈が滅茶苦茶なだけ
>>816 813=815と思ったのかw
ちなみに俺の使ってるブラウザはfirefoxな
バージョンとOSくらいは書こうよ
819 :
nobodyさん :2008/07/12(土) 18:22:09 ID:m/I4pXMk
>>816 仕事ならそういうわけにも行かない。
ユーザーが多いOSで見れなければいけない。
>>582 $str = "index.html";
list($filename, $extension) = split("", $str);
速度が変わらないとか適当なことを書いて、間違いを指摘されて、そのサイトに責任を擦り付けて……
>>806 回答ありがとうございます
お礼遅くなってすいません助かりました
824 :
nobodyさん :2008/07/12(土) 23:12:48 ID:mrNymcfj
HTMLのselectやcheckboxってループで書き出してる? それともベタ書き?
フレームワークの関数使ってる
Smartyののプラグイン関数使ってる
827 :
nobodyさん :2008/07/12(土) 23:54:12 ID:mrNymcfj
フレームワークやテンプレートエンジンを使わない場合で
ループで済ませた方が楽そうな場合はループを使ってる 好きにすればいいと思う
830 :
824 :2008/07/13(日) 01:13:33 ID:???
>>828 ぁぃ、好きにしまふ
>>829 フレームワークやテンプレートエンジンを使おうと思う前に作った、
一人で開発してる携帯サイトだから
832 :
831 :2008/07/13(日) 01:21:08 ID:???
あ、OSはWindowsでApache 2.2.6を使い PHP 5.2.3で動かしています new DOMElement('hoge:fuga') とやると例外が発生してしまいます
>>830 使え
>>832 どううまくいかないのか書いてくれたのは素晴らしいことだけど
例外は何が例外だったのかちゃんと教えてくれているはずだが?
PHP初心者から来ました。
基礎からのPHPで勉強していざブログアプリケーション
を作ろうと思ったのですが、このサンプルlinuxでは動かないと
担当者に言われました。
2ちゃんの方や自分でadmin.phpなどは動くようにしたのですが
index.phpとsideBar.phpとentryView.phpと
loginform.phpの部分とかがおかしいみたいで
だめでした。
誰か動くようになんとかできませんか?
ソースは
http://gichioka.web.fc2.com/blog.rar です。
もう基礎からシリーズは絶対買いません
>>834 具体的に分からないところを質問してください。
あと
>>1 読んでください。
1.その環境にMYSQLがインストールされていない、またはDBの設定がされていない。 2.フレームワークを使える環境が整っていない loginform.php <FORM method="post" action="<?= $_SERVER['REQUEST_URI'] ?>"> ↑自分にPOSTしてんのにloginform.phpにスクリプトが書かれていない 技術屋に丸投げしたほうが楽だよー
また、繰り返すのかそのネタをw
838 :
831 :2008/07/13(日) 13:54:05 ID:???
<?php
echo '<pre>';
try {
$doc = new DOMDocument('1.0', 'UTF-8');
$doc->formatOutput = true;
$root = $doc->appendChild(new DOMElement('rss'));
$root->setAttributeNode(new DOMAttr('version', '2.0'));
$root->setAttributeNode(new DOMAttr('xmlns:hoge', '
http://xxxx '));
$channel = $root->appendChild(new DOMElement('channel'));
$channel->appendChild(new DOMElement('title', 'あ'));
$channel->appendChild(new DOMElement('hoge:fuga', 'aaaa'));
} catch (Exception $e) {
echo sprintf("Caught exception %s\n", $e->getMessage()) . $e->getTraceAsString();
}
echo "\n" . htmlspecialchars( $doc->saveXML() );
?>
ソースはこんな感じで実行すると
Caught exception Namespace Error
#0 test.php(11): DOMElement->__construct('hoge:fuga', 'aaaa')
#1 {main}
と出ます。
$channel->appendChild(new DOMElement('hoge:fuga', 'aaaa', '
http://xxxx '));
とやればうまくいくのは分かっているのですがhoge:fugaに毎回 xmlns:hoge="
http://xxxx " が追加されるのが嫌なので何とかしたいのですがうまい方法はありますか?
839 :
ひろき :2008/07/14(月) 01:22:49 ID:iw+5oFKv
質問があります。以下のスクリプトにセキュリティホールがあるといわれました。構造は @./のディレクトリに.cgiのファイルがあるかないかチェック Aファイルがあれば、ファイル名.cgiを呼び出す ですが、$_GET['file']に%00を付加されれば、チェックを擦り抜けられました。 <?php $file = $_GET['file']; echo "file test<br>"; echo "How do it?<br>"; if(!file_exists($file.".cgi")) { echo "file not found<br>"; } else { echo "file found<br>"; } $x = file_get_contents('./'.$file.'.cgi'); echo $x; ?> 上の場合、チェック機構を擦り抜けられてしまったので、下のように書き加えました。 <?php function check($arr){ if (is_array($arr)){ return array_map('check',$arr );} return str_replace("\0","",$arr );} $_GET = check($_GET); $file = $_GET['file']; echo "read test<br>"; if(!file_exists($file.".cgi")){ echo "file not found<br>"; }else{ echo "file found<br>"; } $x = file_get_contents('./'.$file.'.cgi'); echo $x; ?> しかし、まだセキュリティホールがあると、指摘され、詳細がわからずに困っています。誰か教えてください
またお前か
841 :
841 :2008/07/14(月) 04:20:33 ID:kV2rLyyb
外部phpをページに埋め込みたいのですが、どうすればいいんでしょうか? フレーム以外の方法でそのままhtml言語として元ページに融合させたいです。
>>841 日本語でおk
ちょっと意味がよくわかんないので意図したものになるかはわからないが
a.php
<?php
echo "Hello";
?>
b.php
<html>
<head></head>
<body>
<p><?php include_once("a.php"); ?></p>
</body>
</html>
こういうことか?
外部php(この場合a.php)で最終的にecho(出力)するphp作って
それをb.phpでinclude(require)する
843 :
841 :2008/07/14(月) 04:27:21 ID:kV2rLyyb
phpに対応していないサーバーにあるhtmlページにphpで書いた動的ページを埋め込みたいということです。 frameで呼び出した場合、参照元が変わってしまうので不便で・・・
844 :
841 :2008/07/14(月) 04:31:31 ID:kV2rLyyb
>>842 お、こんな朝早くにありがとうございます。
すみません、ちょっと大事なこといい忘れてしまいました。
なるほど、対応している場合は、こういう風に使うんですか。勉強になります。
842さんの説明で言うところのa.phpを呼び出すほうのb.phpにあたる側のサーバーがphpに対応していなくて・・。
PHPが使えないんじゃ話しにならないけど たとえ使えても他サーバのを呼び出すってのはセキュリティ上無理があるね JavaScriptは外部サイトのでも呼び出せるし サーバ側で特別な環境が必要のないクライアントサイドの言語なので PHPが使えるほうでPHPが使えない外部サイト用に PHPで出力する内容と対応したJavaScriptを生成してそれを外部から呼び出すとか 他にもトリッキーなやりかたがいくつか思い浮かぶけど JavaScriptでどうこうするのが現実的でないかと
PHPに対応していないサーバーな時点で、PHP以外の技術を使う必要がある。 スレ違いな気がするが……
847 :
841 :2008/07/14(月) 05:59:38 ID:kV2rLyyb
ありがとうございます、やはり、難しそうですね・・。 <script language="JavaScript"> <!-- document.write ("\<script type='text/javascript' src='data.php?key=dada1', uri, '' charset='UTF-8'\>','\</script\>'); // --> </script> こんな感じで呼び出せるでしょうか? 具体的にどんな感じのphpを書いたらいいか教えていただけないでしょうか? <?php echo 'document.write("Hello");' ?> なぜかうまくいかない・・
いや・・PHP使えないんでしょ?根本的に理解してないような
849 :
ひろき :2008/07/14(月) 06:50:07 ID:iw+5oFKv
>>839 の質問誰か答えてください(〇>_<)
よろしくお願いします
>>847 document.write ("\<script type='text/javascript' src='data.php?key=dada1', uri, '' charset='UTF-8'\>','\</script\>');
これってする必要ないんじゃ?
<script type="text/javascript" src="data.php?key=data"></script>
と直接呼出せば良いような
851 :
nobodyさん :2008/07/14(月) 11:16:52 ID:tNLuR7u3
フレームワーク、まずやるならどれですか?Zendとシンフォニーで迷ってます
>>849 妹か姉いる?教える代わりに交換だ・・ハァハァ
ありがとうございます
サブドメインとPHPカウンターを共有させたいんだけど何か方法ないですか?
includeは
http:// 〜略〜count.phpと入力するとエラーになってしまいます。
それならばと../www.hoge.com/count.phpとするとドメインより上にはいけないみたいで。
サーバーはxreaを利用しています。
FTPでの見た目上ではすぐ隣のフォルダにあるからアクセスできそうな気はするんですけどね…。
www.hoge.com ディレクトリ
├index.php
└count.php
sub.hoge.com ディレクトリ
└index.php (www.hoge.comにあるcount.phpをincludeしたい。)
>>847 phpでjavascriptのコードを直接はくんじゃなくて
jsファイルなんかを作ればいいのでは?
857 :
855 :2008/07/14(月) 14:47:01 ID:???
>>841 サーバーによると思うけど、そのhtmlをSSIで動作させれるなら簡単だよ。
<!--#include virtual="外部.php"-->
これでPHPの動作をさせた後にhtmlにそのデータを書き込んでくれる。
俺はこれで昔のshtmlのままカウンターやらアクセス解析やら色々延命させてる。
あら、勘違いしてた。
別サーバーにあるのを読み込ませたいなら
>>857 のは使えないね。
>>855 カウンタ処理簡単なんだから
サブドメインのほうはcount.phpは使わないで
count.phpが使用しているカウント用のファイルなりdbなりに
アクセスがあったら+1する処理をして
そのファイルなりdbなりを読みこんでカウンター表示するとか
ロックを忘れずに
public_html
|-count.php
|-www.hoge.com
|-index.php
|-sub.hoge.com
|-index.php
こういう構造でもだめ?
再現できる環境がないので全部憶測だけど
そもそもエラーの内容書いてないし。
PHPとAJAXに関する質問です。 AJAX経由でのPOSTの値を受け取れなくて困っています。 全てUTF8保存で他言語ではAjax経験済みです。主要部分のみざっと書きます。 index.php -------------------------- <button onClick="post();">post</button> ajax.js -------------------------- xmlhttp.open('POST','./ajax.php',true); xmlhttp.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); xmlhttp.send('type=test'); ajax.php -------------------------- <? if(isset($_POST['type'])){ echo 'ok'; }else{ echo 'null'; } ?> といった感じです。'null'はちゃんと返ってきます。 どなたかアドバイスお願いします。
862 :
ひろき :2008/07/14(月) 15:44:15 ID:iw+5oFKv
>>839 本当にこの質問答えてください(〇>_<)
よろしくお願いします。
人に読んでほしいなら もっと他人が読みやすいソースを書け
864 :
nobodyさん :2008/07/14(月) 16:46:45 ID:/EKuYqCm
サイトのカテゴリー毎にメニューを変更するために読み込みファイルを変更していました。 読み込まれる方 neko.php <?php print "ねこ"; } inu.php <?php print "いぬ"; } 読み込む方 index.php ねこと出したい <?php include 'neko.php'; } index2.php いぬと出したい <?php include 'inu.php'; } 続きます。
読み込まれる方に条件分けを全部記入して、読み込む方は条件だけを書いたら楽になるのではないかと考えてみました。 読み込まれる方 hoge.php <?php if($hoge == "1"){ print "ねこ"; } if($hoge == "2"){ print "いぬ"; } ?> 読み込む方 ねこと出したい index.php <?php $hoge = "1"; include 'hoge.php'; ?> index2.php いぬと出したい <?php $hoge = "2"; include 'hoge.php'; ?> この場合hoge.phpが読み込んだ時すでに処理されてしまっていて、うまくいきません。 phpのinclude関連のページを読んでいったのですが、まったくこういう考え方が出てきません。 基本的に間違っていると思うのですが、何の関数を使ったら外部のファイルをphpの部品のように読み込めるんでしょうか? まったく手がかりが無くって検索ができません。 ヒントだけでも教えていただけないでしょうか。
>>865 hoge.phpの中身をfunctionにしたら?
hoge.php
<?php
function response_msg($hoge){
if($hoge == "1"){
return "ねこ";
}
if($hoge == "2"){
return "いぬ";
}
?>
index.php
<?php
$hoge = "1";
include 'hoge.php';
echo response_msg($hoge);
?>
index2.php
<?php
$hoge = "2";
include 'hoge.php';
echo response_msg($hoge);
?>
hoge.phpは、index.phpと同じサーバ? 別サーバのをHTTPを通して呼んでね?
同じサーバーです。 ただ読み込むファイルの階層がバラバラなので絶対パスで読んでます。
neko.txt
ねこ
inu.txt
いぬ
いぬと出したい
<?php
readfile 'inu.txt';
?>
ねこと出したい
<?php
readfile 'neko.txt';
?>
そもそもの話になるんだが、
>>865 の考え方は
「楽に」はなってないんじゃないか?
872 :
864 :2008/07/14(月) 17:03:10 ID:???
>>871 そうです。そのように絶対パスで書いています。
873 :
864 :2008/07/14(月) 17:08:33 ID:???
>>870 それだと最初のファイル分割状態と変わらないので、すいません。
ねこ とか いぬ とか書きましたが、メニューなので本当はリストタグ<li>とかが書いてあります。
一つのファイルだと一気に変更できるので楽になるのです。
今の状態だと、一つ一つファイルを開いて、修正を全部のファイルでしないといけませんので。
>>872 URLの絶対パスかよ・・・
サーバのファイルシステムの絶対パスを使え
たとえば
/home/www/aaa/hoge.php
875 :
864 :2008/07/14(月) 17:15:45 ID:???
>>874 今試しに相対パスにしてみたらうまく行きました。
狙った階層だけですけど。
その方法も試してみます。
>>875 コードをincludeしたいならサーバ内のパスでやらないと無理。
http〜は普通絶対パスとは言わない。単なるURL(URI)。
includeするとスクリプトのコードではなく実行結果が返されるよ。
877 :
864 :2008/07/14(月) 17:34:47 ID:???
>>876 うまくいきました。本当にありがとうございます。
>includeするとスクリプトのコードではなく実行結果が返されるよ。
そうなんです。ためしにhoge.phpの<?php ?>はずしてみたら結果だったので、phpの状態で読み込まれていないなぁと思っていたのです。
とても基本的なことだったので、どこのサイトにも書いてなかったのですね。
>>866 せっかく書いてくださったのに、申し訳有りません。
試す前に解決してしまいました。
今回はありがとうございました。
>>877 http://jp2.php.net/include/ ファイルが読み込まれるときには、読み込まれるファイルの先頭で PHPモードを抜けてHTMLモードになり、
最後に再びPHPモードに戻ります。 このため、読み込むファイル中のPHPコードとして実行する必要があるコードは、
有効なPHPの開始タグおよび終了タグで括る必要があります。
"URL fopenラッパー"が 有効になっている場合(デフォルト設定では有効です)、ローカルなパス名 の代わりに
URL(HTTP経由)を用いて読み込むファイルを指定することが可能です。 URLで指定されたサーバがファイルを
PHPコードとして解釈することが 出来る場合には、HTTP GETを使用してURLリクエストに引数を指定することが
出来ます。これはファイルの読み込み云々やスコープの継承とは関係なく、 ただ単純にスクリプトがリモートの
サーバで実行されて結果がローカルの スクリプトに読み込まれる、というだけのことです。
879 :
864 :2008/07/14(月) 17:45:54 ID:???
>>878 そのページ見ていました。
最初読んだ時、何のことやらさっぱり意味が分からなかったんですよね。
今だと、なんとなく分かります。
その記述の少し上の「基本的なinclude()の例」で例題として、うまく行っている例が出てるんですね。
だから「考え方は間違ってない。何かやり方が間違っているんだろう。」と漠然と思っていました。
includeやらfileやらのURLラッパーは、WebProg初心者には混乱のもとだよな・・・
>>879 >URLで指定されたサーバがファイルをPHPコードとして解釈することが 出来る場合には、
>HTTP GETを使用してURLリクエストに引数を指定することが 出来ます。
.phpをPHPとしてパースするサーバならば「GETで変数を渡せる」というだけ。
そのスクリプトのコードを読み込めるわけではない。
逆に言うとそれができるなら、その自分が公開しているアプリや、yahooやgoogleなんかのコードも
外部に丸見えになるってことだぞ。
882 :
nobodyさん :2008/07/14(月) 20:37:04 ID:cWY3QFlw
質問させてください。 ImageMagickを使ってGIF画像をトリミングしようとしています。(画像の上下から一定の高さ分ずつ削った画像を作ろうとしています) 最初Imagickエクステンション(というのでしょうか)を使って ---------------------------------------------------------- $im = new Imagick(画像ファイル); $im->chopImage(0,削りたい高さ,0,0); $im->chopImage(0,削りたい高さ,0,残したい高さ); $im -> setImageExtent($im->getImageWidth(),残したい高さ);//※1 --------------------------------------------------------- のような感じで行って、上手く行きました。 まず、画像の上下を削り、トリミングをしたときに残る、画像の余白を、※1の処理で、削除する作業を行っています。 さて。ロリポップ上で、上記の処理を行う必要があるため、 コマンドで処理を行う必要があり、上記のプログラムを書き直す必要が出てきました。 そこで、下記のような感じで行ってみたのですが、 ----------------------------------------------------------- convert -gravity center -crop 横x縦+0+0 元画像ファイル 出力画像ファイル ----------------------------------------------------------- Imagickエクステンションの時に行っていたのと同様に、 画像に余白が出来ます。 しかし、その余白を消す方法が見つかりません。 -geometry (縮小されてしまう) -trim (変化無し) -resize (縮小されてしまう) など、いろいろ試してみたのですが、 使い方が悪いのかもしれませんが、上手く行きません。 よい方法はありませんでしょうか。よろしくお願いします。
申し訳ありません。あげてしまいました。
>>12 が正しいテンプレです
質問者はあげてIDを出さないと回答してもらえません
885 :
882 :2008/07/14(月) 20:50:15 ID:cWY3QFlw
>>884 早速教えていただきありがとうございます。
ぐだぐだで失礼しました。
環境ですが
サーバーは、前述のとおりロリポップを予定していますが、
現在はまだ自前のWinXpSP2+xampp(16.6a)で動作させております。
PHPは5.2.5
ImageMagickは6.4.1-Q16
となっております。
PHPじゃなくてImageMagickの質問だと思うんですが?
ImageMagickはPHPじゃないということですか?
Same "オフィスはWindowsじゃないということですか?"
890 :
nobodyさん :2008/07/14(月) 23:07:40 ID:BjvrU7ew
質問させて下さい。 PHP5を使っています。 PHPの正規表現関数を使ってデータを取得しようと思っているのですが上手くいきません <INPUT maxLength=20 name=id value=""> このような文字列を対象に、文字列「type」が含まれていない場合、後方の「maxLength=20 name=id value=""」 を取得したいのです。 全文に対して繰り返し取得したいのでpreg_match_allを使っています。 preg_match_all( "/<input (^type)[^<](.*?)>/is", $data, $matchs ) このように書いたのですがヒットしてくれません。 ドキュメントを見ると、特定文字に関しては[^a-z]のような書き方で対応できるのですが 文字列に関してはどのようにすればよいのでしょうか? アドバイス頂ければ幸いです。 宜しくお願い致します。
892 :
890 :2008/07/15(火) 00:10:30 ID:???
>>891 レスありがとうございます。そちらへ行かせてもらいます。
893
894 :
nobodyさん :2008/07/15(火) 08:53:55 ID:3TGKEqvg
どこでお聞きしたらよいか分からず、ここでお聞きします。 適切なスレがありましたら、ご誘導下さい。 httpsは、httpに比べてデータが暗号化されてパイプを流れると聞いたのですが、 それは本当でしょうか? httpsから始まるサイトを閲覧して、ブラウザのソースを表示を押したところ、 ソースが丸見えでした。ソースというのは、htmoソースのことです。 そのサイトのセキュリティーのせいなのか、それとも暗号化されるのは別のデータなのか? そこがよく分かりません。 ご教授下さい。
>>894 サーバからブラウザまでの通信経路において暗号化してるだけで、
ブラウザがユーザーに向けて表示する際には復号化されてるから、
ソースを見たら平文になってるだけだよ。。
パケットキャプチャして調べてみなよ。
896 :
nobodyさん :2008/07/15(火) 09:39:58 ID:3TGKEqvg
>>895 ありがとうございます。
ということは、ブラウザが暗号化するソフトで、
私が見たのはブラウザの外の部分を見ていたので、平文だったけど、
ブラウザの内側は暗号化されているということなんですね。
得心しました。ありがとうございました。
質問ですが、ヌル文字? は \0 で テキストで打てば%00ですよね? \x00 って何に変換されるんですか?
\0は8進数の0、\x00は16進数の0
900 :
X :2008/07/15(火) 14:33:07 ID:???
クリプトさせたデータを複合化するにはどうしたらよいですか? <?php $x = '12345678'; $data = crypt($x,'dc'); echo $data; ?> これでクリプトさせたデータを複合化したいです。
つうか答えなくていいよ
>>897 と
>>900 は同じやつだろ
名前もふざけてるしメル欄も釣りとしか思えない
2ch初心者じゃない?
904 :
nobodyさん :2008/07/15(火) 20:04:35 ID:l2rQTsjG
PHPをCGIとして動作させたときに、POSTがうまくいきません。 OS: CentOS 5 Linux PHP: PHP 5.1.6 (cli) (built: May 24 2008 14:07:53) Apache: Apache/2.2.3 Server built: Jan 15 2008 20:33:30 今までmod_phpでApacheのモジュールとして動かしていたPHPプログラムを、 レンタルサーバを使う関係でやむを得ずCGIとして動かすことにしました。 まずはテスト環境を本番サイトに合わせて変更。 LoadModule php5_module modules/libphp5.so AddHandler php5-script .php AddType text/html .php をコメントアウトしてモジュールとして動作するのをやめ、新たに Options ExecCGI AddHandler cgi-script .php らを追加してApacheを再起動。 ソースコードの冒頭に #!/usr/bin/php を追加して、実行権限も与え、アクセスしてみると ちゃんと表示できたので、楽勝楽勝なんて思っていたらここからドツボへ。 プログラム中でフォームからPOSTで受け取ったユーザ名とパスワードを使ってサービスに ログインさせる部分があるのですが、ちゃんとフォームに入力してPOSTしているのに $_POST["key"] が null となっていてちゃんと処理が進んでいません。 (長いので続きます・・)
905 :
904 :2008/07/15(火) 20:05:12 ID:l2rQTsjG
(904つづき) サンプルプログラムとして、 #!/usr/bin/php <?php if(isset($_POST["posttest"])){ printf($_POST["posttest"]); } else { printf("null"); } <html><body> <?php <form action="post.php" method="post"> <input type="text" name="posttest"><input type="submit" value="submit"> </form> </body></html> ここまで単純なプログラムを書いても、どうやっても null です。 超長文でほんとお恥ずかしいですが、アドバイスお願いします。
<html><body> <?php
907 :
904 :2008/07/15(火) 20:52:14 ID:???
失礼、そこはここへ書き込む際のわたしの入力ミスです。 実プログラムはちゃんと正しい閉じ括弧になっています。どうかスルーしてください。 文法エラーなど、ログに明らかな原因の出る状況ではありません。 手がかりが無く困っています。 PHPの本家のマニュアルで、CGIとして動作させる場合の説明も何度も読み直しましたが 禁忌をおかしているようには見えません。
毎回思うんだが 再現できない状態のコードを投稿するなよ 書き込む前にちょっと確認するだけじゃないか そんな事もできないからロクに(ry
>907 意図どおり動かないソースを、改変せずそのままコピペするのを勧める。 じゃないと検証しようもないよ
>>907 cgiが使えるxreaで検証してみたが別に問題ないけど?
エラーでてる様子がないから
>>907 のコードコピペしたときの
全角スペースによる問題ではないと思うけど
911 :
910 :2008/07/15(火) 21:05:02 ID:???
cygwinにphp-4.4.7.tar.gzを入れて使っています。 FTP関数を使おうとすると そんなのねぇよ的なエラーになってしまいました。 おそらくPHP をインストールする際に --enable-ftp をしなかったせいだと思うのですが、 既にインストールされている環境でFTPを有効できるのでしょうか? もし再インストールが必要であれば、 phpinfoで見れるConfigure Commandに--enable-ftpを追加したコマンドでインストールすれば大丈夫でしょうか? また、php.iniやhttpd.confは上書きされてしまうのでしょうか? よろしくおねがいします。
普通は設定ファイルはアプリケーション削除後残すことがおおいが Apache、PHPがどうするかはシラネ 設定ファイルだけバックアップとって自分でやってみれよ ていうかcygwinでやるぐらいならVM入れてlinuxでも入れとけって話ですね
914 :
nobodyさん :2008/07/15(火) 23:03:03 ID:tej4dQ8Y
既出でしたら案内していただけると助かります。 apache経由でpostgresに接続することができません。 すみませんが手元に実機がないため設定等すぐに確認できません。 centos4.5 apache2.0.52 デフォルトで入れてました。 postgresバージョン忘れてしまいました。ソースからインストール。 perl5.8.5 デフォルトで入れてました DBI使用 apacheとpostgresは同一機上で動作しています 症状 ・サーバ機内で直接スクリプトを実行した場合はDB接続できます ・PCブラウザ等のリクエストを受け取った場合、以下の2通りの現象が起こります 1.apachectlからの起動ではDB接続に失敗 2.httpdからの起動ではDB接続に成功 ahacheのerror.logには、「Refused permission」(だったかな?)という 権限が無いと思われる内容とDB接続を行っている行番号が残っています。 httpd.confのUserやGroupをpostgresやスクリプト所有者に設定してみましたが、症状は変わりませんでした。 ps -auxに出る実行ユーザはどちらもhttpd.confで設定したユーザとなっています(親プロセスはroot)。 apachectlで起動しているhttpdのフルパスは、検証に使用しているhttpdを指しています。 このため同じものだと思うのですが、動作結果が異なるのはどうしてだろうと悩んでいます。 またDB接続時の関数の直後にor dieやprint出力を書いても、接続に失敗した場合は出力されません(ファイル出力も同様)。 アドバイスや手がかりになりそうな情報がありましたら宜しくお願いします。
915 :
912 :2008/07/15(火) 23:05:33 ID:???
>>913 そうですね、やってみます。
マシンがしょぼいのでVMは無理なんです(T_T)
916 :
nobodyさん :2008/07/15(火) 23:06:12 ID:tej4dQ8Y
すみませんスレ違いでした
917 :
nobodyさん :2008/07/16(水) 00:15:27 ID:sBFLtzFG
redhat9 がOSです。 php-4.2.2-17.2jaがRPMでインストールされているのですが、 バージョンアップをしなければいけなくなりました。 手順ですが rpm -e でphpを削除して、php4.4.6をconfigure → make → make install しても大丈夫でしょうか? 今、動いているphpプログラムが動かなくなるか不安です。
大丈夫だと思います。 あとlinuxのエスパースレで聞いたほうがいいと思います
919 :
nobodyさん :2008/07/16(水) 00:45:45 ID:sBFLtzFG
920 :
nobodyさん :2008/07/16(水) 01:21:22 ID:gY/N3cCH
php.iniの設定で「date.timezone」というものがあります。
(設定一覧:
http://manual.xwd.jp/timezones.html )
たとえば、この設定が「Africa/Abidjan」と設定されていると、time関数の戻り値が日本時間(Asia/Tokyo)より9時間ずれてしまいますので、日時を表示する際に不都合が生じてしまいます。
time()+9時間
として現在対応しておりますが、それだと「Asia/Tokyo」や「Antarctica/Casey」と設定されている際に不都合(日時のずれ)が生じてしまいます。
if(ini_get('date.timezone') =='Asia/Tokyo'){
$time = time();
}elseif(ini_get('date.timezone') =='Africa/Abidjan'){
$time = time() + 9時間;
}elseif(ini_get('date.timezone') =='省略'){
〜以下、省略〜
というように対応するしかないのでしょうか・・・・orz.
php.iniの設定「date.timezone」の影響を受けない日時を返す関数などありますでしょうか?
ご教授よろしくお願いいたします。
gmdate()
922 :
nobodyさん :2008/07/16(水) 02:36:46 ID:f7vcectw
923 :
202 :2008/07/16(水) 11:15:04 ID:zBMhaK5C
>908-909 本当にすみません。 以下はいま動作確認に使ったものを一切改変せずそのままコピペしました。 なんとGETもちゃんと扱えていませんでした。ファイル名はpost.phpです。アドバイスください。 #!/usr/bin/php <?php print "Method is " . $_SERVER['REQUEST_METHOD'] . "<br />"; if(isset($_POST["test"])){ print $_POST["test"]; }elseif(isset($_GET["test"])){ print $_GET["test"]; }else{ print "both null" . "<br />"; } ?> <html> <body> <hr /> <?php print "POST: " . count($_POST) . "<br />"; print "GET: " . count($_GET) . "<br />"; ?> <hr /> <!--<form action="post.php" method="post">--> <form action="post.php" method="get"> <input type="text" name="test"> <input type="submit" value="submit"> </form> </body> </html>
924 :
923 :2008/07/16(水) 11:18:34 ID:zBMhaK5C
あれ・・番号がおかしく・・
>>923 =
>>904 です。
>>910 さんが、PHPをCGIとして動かせるサーバで動作確認できたということですので
わたしが
>>904 でやった、PHPをCGIとして動かすためのサーバ設定に不備があるのかも
知れません。
PHPをCGIとして動作させるためのサーバ設定はおそらく、このスレの範疇外ですよ・・ね・・
phpinfo() 実行して、variables_order どうなってる?
927 :
923 :2008/07/16(水) 13:45:18 ID:zBMhaK5C
928 :
nb :2008/07/16(水) 14:30:26 ID:D6JBW3d6
入力した値が3の倍数のときに、10個先の3の倍数までをすべて足していく プログラムを作っているけど、何が間違っているか教えてケロ☆ /* kadai2.c */ #include <stdio.h> main() { int seisu, gokei, handan; gokei=0; printf("整数を入力して下さい\n"); scanf("&d", &seisu); handan=seisu%3; if(handan=0) for(seisu=1; seisu<=10;) { seisu=seisu+3; gokei=seisu+gokei; printf("合計=%d\n",gokei); } else printf("できません\n"); return 0; }
$_REQUESTはどんな感じ? ついでに$_SERVER['REQUEST_URI']も表示させてみてよ。
>>927 ちょっと環境作ってみたよ。
phpはよく知らないんだが、
php -v で
PHP 5.x.x (cli) と出てないか?
うちでビルドしたら(cli)版と(cgi)版ができて、cgi版のほうだと普通に$_POSTもセットされてる。
>テストサーバのphpinfoの全出力をアップしてみました。 ってまあ、これtext/plainだからcli版なんだろうな。
933 :
923 :2008/07/16(水) 15:08:14 ID:zBMhaK5C
>>929 http://paruo.net/php_cgi_test/post.php に
print '$_REQUEST[\'REQUEST_URI\']: ' . $_REQUEST['REQUEST_URI'];
を追加して確認してみましたが、空のようです。
>>931-932 904にも書いてみましたが、
php -v
PHP: PHP 5.1.6 (cli) (built: May 24 2008 14:07:53)
で、ご指摘の通り(cli)です。なんと、まさかバイナリが違っていたということでしょうか。
いまからCLIについてググります。
このバイナリはRPMで導入したもので、PHPのバイナリに色々種類があるというのは
不勉強のためまったく知りませんでした。
まあ他の言語のcgiと同様にパースするコード入れて自前で何とかすれば何とかなるんだろうけど。
936 :
923 :2008/07/16(水) 17:04:40 ID:zBMhaK5C
みなさんのお陰で万事うまくいきました。 同じ道を通るかもしれない私のような初心者への道標として簡単に報告します。 Cent OS 5でデフォルトで提供されるPHPのRPMにもCGI用のバイナリは含まれていました。 なければ自分でビルドするつもりでしたがその必要もなかったようです。 # rpm -ql php-cli | grep -i cgi /usr/bin/php-cgi # /usr/bin/php-cgi -v PHP 5.1.6 (cgi-fcgi) (built: May 24 2008 14:03:19) 次にPHPスクリプト中のパスをphp-cgiに書き換えて実行すると、今度は Security Alert! The PHP CGI cannot be accessed directly. のような警告が出ましたが、それは php.ini を cgi.force_redirect = 0 のように変えて解決しました。 このオプション自体はどうもApacheでは推奨されないようですが、 これでともかく動作確認ができます。 ほんとうに、ありがとうございました。勉強になりました。
937 :
nobodyさん :2008/07/16(水) 21:35:19 ID:5rxq4nnT
質問お願いします。 区点コードから実際の文字に自動で変換したいのですが、なにか良い方法はないでしょうか? 区点コードは4ケタの数字です。 よろしくお願いします!
939 :
937 :2008/07/16(水) 22:04:49 ID:5rxq4nnT
>>938 レスありがとうございます。
ですが、PHPから利用できるライブラリや関数を教えていただきたいのですが・・・
わかりずらい質問で申し訳ありません。
packあたりを使えばいけたはず
942 :
937 :2008/07/16(水) 23:37:35 ID:5rxq4nnT
コードから文字に変換するだけならいらん
>区点コードから実際の文字に自動で変換したいのですが >こちらで、 >「Unicode⇔JIS区点コード間は必ずなんらかの変換表が必要になります。」 >とあるのですが、 どっちなんだよ
実際の文字の文字コードや、実行する環境は? JISがつくコード体系同士なら(EUC含む)計算だけでできる JIS系からunicodeへは表が必要だが、通常OSやライブラリが持ってるからいらん。
946 :
937 :2008/07/17(木) 10:10:00 ID:XimHmCfs
みなさん、レスありがとうございます。 どうも自分のやりたいことが整理できていなかったみたいで・・・ 自分のやりたいことは、たとえば、「1601」から「亜」に変換するということです。 開発環境はWindowsなのですが、 これを実現するには、どうすればよいでしょうか? 何度もすみませんが、よろしくお願いします。
区を上位バイト、点を下位バイトとして 0x2020 足してやりゃJISになるよ 亜が1601 なら、16区01点で (区 + 0x20) * 0x100 + 点 + 0x20 → 0x3021 JISになればあとはどうにでもなるだろ
$KIN = "\x1b\x24\x42"; $KOUT = "\x1b\x28\x42"; $n = 1601; // 区点コードの「亜」 $s = pack("C2", (int)($n / 100) + 0x20, $n % 100 + 0x20); print mb_convert_encoding($KIN.$s.$KOUT, "SJIS", "JIS"); // SJISで「亜」 やりたいことがよくわからんから適当に。 こっから自分の都合で取り込んでみて。
949 :
nobodyさん :2008/07/17(木) 12:24:13 ID:tFuEM5Bx
環境もスクリプトもUTF-8で統一し、これまで問題なくきたのですが CSVファイル(エクセルから吐き出されたもの)を読み込んで trim(mb_convert_encoding($list[$i], "UTF-8", "SJIS-win,SJIS")); で変換後に表示させるとマルチバイトの一部が文字化けしてしまい どうすれば良いのか分らないので教えてもらえないでしょうか? ちなみにCSVの読み取り処理をする前にCSVの文字コードをエディタで UTF-8に変え、mb_convert_encodingさせない場合は文字化けしません。
どの文字がどう化けるのかも書いてくれると話が早いんだが。
951 :
949 :2008/07/17(木) 12:35:30 ID:tFuEM5Bx
>>950 例えばCSV上で 北区田端 という住所の部分を
mb_convert_encodingかけPHP出力すると k区田端 と表示されます
k はSJISの「北」の2バイト目だね。 最終的にSJISになってるの?
北の前の文字のせいか、北そのものが半分削られてんじゃないかなあ
954 :
949 :2008/07/17(木) 12:56:53 ID:tFuEM5Bx
>>952 最終的にはUTF-8です
>>953 どうやらそうのようです
先ほど気がついたのですが、マルチバイト文字すべての先頭文字が
削られているような感じになっています。
(例)
フッサール → tッサール
1キョウ → Pキョウ
BOM
956 :
949 :2008/07/17(木) 13:13:24 ID:tFuEM5Bx
>>955 あたりのようです
var_dumpすると表示されているマルチバイト数+3になっていました
典型的な切り分けのできてない質問だな。 CSVの読み取りがきちんとできてない可能性と trim(mb_convert_encoding($list[$i], "UTF-8", "SJIS-win,SJIS")); の処理でおかしくなっている可能性があるので、 まずは$list[$i]の中身がどうなってるか確認するもんだろ。
958 :
nobodyさん :2008/07/17(木) 14:11:21 ID:tZP0UVf1
ファイル読み込み時に"r"を指定した場合は ロックする必要がないのでしょうか? $fp = fopen("aaa.txt", "r"); flock($filepointer, LOCK_EX);←必要? 複数人に使われるサイトを想定しております。 OS : CentOS4 PHP4.1.13
リードでロックする必要があるのかよく考えてみよう
>>958 書き込み途中の半端な状態のファイルを読みたくなければロック必要。
LOCK_EXはやりすぎでLOCK_SHで十分。
961 :
nobodyさん :2008/07/17(木) 14:20:21 ID:tZP0UVf1
>>959 >>960 ありがとうございました。
書き込まれない静的なファイルを読み込むだけなので
ロックせずに実装します。
助かりました
SQLを絡ませた質問です。 $query = "select * from table"; $res = mysql_query($sql); で返ってきた$resから列名(id, name, addressなど)を取得したいのですが、どうすればよいのでしょうか?
>>962 mysql_fetch_assocとかその辺をマニュアルで
ああごめん列名って事なら、 SELECTとかする前に何かのクエリ送っとくなりなんなりしておかないと いけなかったはず
mysql_fetch_field でとれるべ
967 :
962 :2008/07/17(木) 15:05:52 ID:???
>>965 ありがとうございます!
そのままググったられ日本語例文付サイトに辿り着きまして順調に進みそうです!
>>963 いえいえ、教えてあげようと気持ちだけでもありがたやです。
ありがとうございます。
イ`
つけない場合は、絶対パスまたは相対パスで、そこにたどり着けるように指定する。
ってこれだとファイルの中身が読めるだけだよ。 目的によっては別の手段使うほうがいいかも。 何がしたいのかな?
>>968 include 'path/sub.php';
<input type="text" name="hoge" value="今日の日付"> この「今日の日付」を YYYY-MM-DD形式にできないでしょうか?!?! day=求めるスクリプト <?php echo . $day. ?> とか色々やったのですが そのまんま表示されちゃうです orz index.htmlなんですけど 1からphpで書き直した方が早いでしょうかね?
>>972 何がしたいのか意味がわからないが
拡張子htmlをたんにphpにかえてphpにコード埋め込めばいいんじゃね
<input type="text" name="hoge" value="<?php echo date("Y-m-d"); ?>">
みたいに
978 :
976 :2008/07/18(金) 10:01:33 ID:???
>>977 system関数は、phpで記述されたプログラムを引数付きで実行し出力結果を貰うことは可能ですか?
もう少しやりたいことを正確に説明します。
windowsのapache環境です。
apacheの設定でcgi-binデレクトリは
c:\apache\cgi-binとして設定してあります。
htdocsのデレクトリはc:\apache\htdocsとして
設定してあります。
http://localhost/a/a.htmlや http://localhost/b/b.htmlの記述に /cgi-bin/sub.php?q=1というように
書いてsub.php?q=1の出力結果を
a.htmlやb.htmlの出力に埋め込みたいのです。
こういう場合でスマートな方法というは、
どういう感じで行えばいいのか
よく分からないのです。
httpd経由に変わりはないが、virtual() 使ってみては
>>976 引数渡したいならincludeの前に変数に代入すればいいじゃん
981 :
976 :2008/07/18(金) 13:55:49 ID:???
>>979 うまくいきそうなのですが、
sub.phpの中身を以下の
ように記述したのですが、
帰ってきた内容が
falseってなってしまいます。
なんでだろ???
引数は渡せないのでしょうか?
<?php
if (isset($_GET['q']) == false) {
echo 'false';
exit;
}
$arg = $_GET['q'];
echo $arg * 2;
?>
質問する前にちょっとは自分で問題切り分けてこいよ
983 :
976 :2008/07/18(金) 14:19:35 ID:???
だって、よく分からないんだもん。。。
失せろ
985 :
976 :2008/07/18(金) 14:28:42 ID:???
嫌だ
986 :
976 :2008/07/18(金) 14:41:58 ID:???
出来た。回答していただいた方ありがとう。 呼び出し元 <?php virtual("/cgi-bin/sub.php?1"); ?> sub.phpの内容 <?php if (isset($_SERVER["QUERY_STRING"]) == false) { echo "false\n"; exit; } echo $_SERVER["QUERY_STRING"] * 2; ?>
どういたしまして
988 :
nobodyさん :2008/07/18(金) 17:08:48 ID:euBIoVPk
PHPでカレンダーをつくっています。クリックしたら前月のカレンダー表示をする リンクの部分のタグが、 <a href=\"?year=$year1&month=$month1\">".$month1."月</a>"; (上記)のようになっていますが、?yearの『?』の意味はなんでしょうか? 初心者で勉強不足です。お願いします。
>>988 getで値渡す
index.php?a=1&b=2
とかだとindex.phpの
変数aに1を変数bに2をgetで渡している
990 :
nobodyさん :2008/07/18(金) 17:17:19 ID:euBIoVPk
そのレベルでアプリを作れるPHPって、実は凄い言語だとおもう
PEARを学んでるのですが、インスタンス作成時に=&でnewするものと、=でnewするものがあります。 参照渡しかどうかということなんでしょうけど、この違いは何故生まれてくるんですか?
php4時代の負の遺産
C言語だって、scanf("%s",&var)の&の意味わからないままでもある程度書けるのだが・・・
分からんのに書いちゃイカンだろ バッファーオーバーフローするぞwww
略してバッファロー…か。深いな。
さらに略してバーロー
梅
1001 :
1001 :
Over 1000 Thread このスレッドは1000を超えました。 もう書けないので、新しいスレッドを立ててくださいです。。。