【PHP】下らねぇ質問はここに書き込みやがれ 60
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2007/12/01(土) 21:18:36ID:MnWwNIk0PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1195204145/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0881nobodyさん
2007/12/17(月) 13:31:54ID:???Javascript で document.フォーム名.up.value にアクセスすれば、パス名が取得できないかな?
onSubmit で hidden パラメータにでも設定して渡せば PHP側でも取得できる気がする。
できたら教えて。
0882nobodyさん
2007/12/17(月) 13:35:12ID:???0883nobodyさん
2007/12/17(月) 14:51:47ID:???0884nobodyさん
2007/12/17(月) 14:54:01ID:???臨機応変にいこうぜ
0885nobodyさん
2007/12/17(月) 14:58:04ID:vIqFWs9Lこの画像ファイルからスクリプトを取り除く、または無害化するときの処理で質問です。
1.画像をバイナリとして開く
↓
2.開いたら画像ファイルの中身をで<?phpと?>を置換して消しさる
↓
3.いじったこの画像ファイルを保存する
この流れ、またはこれだけで十分でしょうか?
0887nobodyさん
2007/12/17(月) 15:20:40ID:BlMrBpea時(22)と分(15)をそれぞれ別個に取得したいんですが、
どういう関数を使ったらいいんでしょうか? すみません、お願いします
0888nobodyさん
2007/12/17(月) 15:26:03ID:???echo $hoge[hours] , $hoge[minutes] , $hoge[seconds];
0889nobodyさん
2007/12/17(月) 15:37:40ID:???DB側で用意されてる関数を使う
explodeを使う
strtotimeとdateとかstrptimeを使う
0890889
2007/12/17(月) 15:39:24ID:???0891nobodyさん
2007/12/17(月) 15:43:46ID:8ZC8+hJ8これって本質的には PHPスクリプトを実行可能なディレクトリを制限すべきものだよね。
ただ設定方法は自分も知らない。知ってる人居たら教えて。
0892nobodyさん
2007/12/17(月) 15:52:29ID:???engine offでいける
http://jp.php.net/manual/ja/ref.apache.php#ini.engine
0894nobodyさん
2007/12/17(月) 15:56:23ID:8ZC8+hJ8ありがとう。こんなのがあったのか。
考えてみると、ファイル置くだけで実行できちゃうって怖いな。
0895nobodyさん
2007/12/17(月) 16:08:00ID:???でも外から実行できちゃうの?
0898nobodyさん
2007/12/17(月) 16:21:27ID:8ZC8+hJ8自分の認識が間違ってたっぽい。
>>885 の対応は、そのサーバ自身を守るのが目的じゃないんだな。なんか奥が深い。
http://d.hatena.ne.jp/teracc/20070715#1184515587
0899nobodyさん
2007/12/17(月) 17:34:31ID:???0900nobodyさん
2007/12/17(月) 19:24:12ID:???どういう状況だ??俺にはわからん。
0901nobodyさん
2007/12/17(月) 20:08:08ID:???0902nobodyさん
2007/12/17(月) 20:21:01ID:???0903898
2007/12/17(月) 20:33:33ID:???>>885が対応したいのは、自分が>>898で書いたようなことでは無いのかな。
どうして>>885は 画像ファイル中のphpタグを外したいんだろう。
0904nobodyさん
2007/12/17(月) 20:45:46ID:4quWNqrXこれを読んだのですが、イマイチ理解できません。
$obj1 = new Test_class;
$obj2 = $obj;
$obj3 =& $obj;
$obj4 = clone $obj;
これらの違いってなんですか?
内部的にどうなってるのか教えて下さい。
参考になるURLでもいいので、よろしくお願いします。
0905nobodyさん
2007/12/17(月) 20:55:21ID:???http://jp2.php.net/manual/ja/langref.php
0906nobodyさん
2007/12/17(月) 22:21:21ID:MrXYi2D3どのように記述したらよいでしょうか?
よろしくご教示のほど、お願いいたします。
HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 3
<CR><LF>
OK<LF>
0909nobodyさん
2007/12/17(月) 22:28:13ID:???とりあえず、>>906 はマニュアルぐらいは読まないと。
http://jp.php.net/manual/ja/function.header.php
0910nobodyさん
2007/12/17(月) 22:41:51ID:???休み時間ヒマだったので、上司のパソコンに
「せんじつは」→「先曰は」
「けっさん」→「抉算」
「ねんどまつ」→「年度未」
「しゃちょう」→「杜長」
「おくえん」→「憶円」
などを辞書登録しておいた。
どうやらまだバレていないようだ。
0912906
2007/12/17(月) 23:04:47ID:MrXYi2D3HTTP/1.0 200 OK
Content-Type: text/plain
Content-Length: 3
上記の3行は、header()にて出力することはわかったのですが、
<CR><LF>
OK<LF>
上記の2行は、どのようにしたらよろしいでしょうか?
header()でよいのでしょうか?
よろしくご教示ください。
0914nobodyさん
2007/12/18(火) 00:14:17ID:???\r\n
OK\n
0915nobodyさん
2007/12/18(火) 05:04:43ID:UAiWi55+お答え頂けるのか、無理なのか、だけでもお答え頂けませんか?
他のQ&Aに質問しようにも出来ないのでお願いします!!
0916nobodyさん
2007/12/18(火) 05:12:16ID:???0917nobodyさん
2007/12/18(火) 05:41:31ID:UAiWi55+おいおい忘れたのかよ。24年前、渋谷のマクドナルドで生き別れた眞理子だよ。
0918nobodyさん
2007/12/18(火) 06:35:13ID:???0920880
2007/12/18(火) 08:32:35ID:31/C79f0遅くなりましたがありがとうございます。
JavaScriptについて明るくなく色々試し続けてるのですが、document.フォーム名.up.valueでパスを取得することは出来ました。
しかしJavaScript内で利用することは出来るみたいですが、Formとの関連付けができません。
そのプロパティをFormのOnSubmitに設定した場合、フォーム送信後PHP側で取得出来る関数はあるのでしょうか?
input hiddenのvalueに直接設定できればいいんですが、プロパティは無理なようですね。
>>880のリンク先にあるよう確認ページに用いたいので、何か取得方法があればよろしくお願いします。
0921nobodyさん
2007/12/18(火) 09:50:37ID:BXvnHaJkif(!$cnn){echo "接続に失敗しました";}
みたいなエラー時に吐き出すメッセージを書いてありますけど、
現実的にはそんなメッセージ出しても利用者としては困るだけだと思います
管理者としてはどう対応したらいいんですか?
エラーが発生したときに管理者あてに通知メールを出す処理とかが必要なのか?
と、思うんですが、、皆さんどうされてるんですか?
まともな商用サービスじゃそうなってるの?
(というか、同一ハード上のDBに接続できないなんてそんなに起こるものでしょうか?)
phpのテクニカルな質問じゃなくてすみません
0922nobodyさん
2007/12/18(火) 09:54:13ID:???適当に作ってみた。試したら、IE7/FireFox2 だと正常だけど、opera だとフルパスで取れない。
多分 operaでは無理。
<html><head><meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" /></head>
<body>
<?php print_r($_POST); ?><hr/>
<form enctype="multipart/form-data" method="post" action="test.php" onSubmit="this.path.value=this.up.value;return true;">
<input type="file" name="up"/>
<input type="hidden" name="path"/>
<input type="submit"/>
</form>
</body>
0923nobodyさん
2007/12/18(火) 09:59:06ID:BXvnHaJk以下みたいな感じじゃダメだったですか?
function getPath(){//パスを取得する処理
document.fm.hidinp.value=取得したパス;
}
<form><input type="hidden" value="javascript:getPath"></form>
?? アップロードする画像のPC上でのパスがほしいんですか?
0924nobodyさん
2007/12/18(火) 10:10:27ID:???話がそれるけど、value に javascriptって書けるの?
試したところ、FireFox2 では動作しないっぽい。
というか、これが可能だったらセキュリティホールになる気がする。
0925nobodyさん
2007/12/18(火) 10:13:22ID:???0926nobodyさん
2007/12/18(火) 10:17:47ID:???function getPath(){
document.fm.path.value=document.fm.image.value;
}
<input type="file" name="image" onchange="javascript:getPath()">
<input type="hidden" name="path">
これじゃだめだったかなぁ こんな感じでやってた気がする
質問の意味取り違えてたらすみません
>>924できないみたいですね 今試しました ウソついてすみませんw
0927nobodyさん
2007/12/18(火) 10:34:29ID:O4OXReDXまた、PDOの中にサニタイジングをするメソッドって無いのですか?
0928nobodyさん
2007/12/18(火) 10:46:00ID:???0929nobodyさん
2007/12/18(火) 10:56:41ID:???c/c++でつくられたExtensionだからじゃね?
0930nobodyさん
2007/12/18(火) 11:01:30ID:???c/c++で作った方が処理が早いわな
pdoにサニタイジングするメソッドは
php側で各々好きに設定すればいいと思うのだが
高速処理を目的でc/c++で作ってるのなら
余計な機能だと思うので入ってないんじゃねーの
0931nobodyさん
2007/12/18(火) 11:06:36ID:nIdDRyEi1と2ではどちらがサーバにやさしいでしょうか?
1.
for ($i=0;$i<1000000;$i++){
echo rand();
}
2.
for ($i=0;$i<1000000;$i++){
$str .= rand();
}
echo $str;
0932nobodyさん
2007/12/18(火) 11:07:58ID:???2は$strのメモリ消費量がハンパない
0933nobodyさん
2007/12/18(火) 11:19:39ID:Cs1LoUMv3.
$radns = array();
for ($i=0;$i<1000000;$i++){
array_push($rands, rand());
}
$str = implode('', $rands);
と 2 ではどっちがやさしい?自分は 3だと思うが、ちょっと自信が無い。
0934nobodyさん
2007/12/18(火) 11:26:00ID:???0935nobodyさん
2007/12/18(火) 11:28:21ID:???0936nobodyさん
2007/12/18(火) 11:33:00ID:Cs1LoUMv0937nobodyさん
2007/12/18(火) 11:33:30ID:???ここが最高だと思うよ。
http://w1.nirai.ne.jp/freeze/
あとは、画面の右側にあるリンクもすごい役に立つからクリックしてみるといいよ。
0938nobodyさん
2007/12/18(火) 11:40:10ID:???ありがとう!
ここじゃスレ違いかと思って書籍スレでも聞いてしまったけど、他意はないよ
たすかったよー、勉強します
0940nobodyさん
2007/12/18(火) 11:41:55ID:???使いまくらないとダメだろ
PHPは負荷よりも生産性重視だからな
負荷重視ならアセンブラで書けばいいだけのこと
0941nobodyさん
2007/12/18(火) 11:56:44ID:???0942nobodyさん
2007/12/18(火) 12:07:46ID:???処理速度を速くしたい→アセンブラでやれば最速
文字列操作で困っている→正規表現でやれば何でも出来る
CやっているのでPHPは簡単→俺なんか言語だけじゃなくてネットワークも出来る
0943nobodyさん
2007/12/18(火) 12:08:40ID:???0944nobodyさん
2007/12/18(火) 12:08:47ID:???$rensou_table = array($name => array("id" => $hoge_id, "kingaku" => $kingaku_today);
のような連想配列を作成しました。
$rensou_sort_table = array();
foreach ($rensou_table as $v) $rensou_sort_table[] = $v['kingaku'];
$sort_result = array_multisort( $rensou_sort_table, SORT_DESC,$rensou_table);
このような形でkeyがkingakuの金額順にソートしました。
しかし、ソートされたはずの連想配列の中身を表示(取り出し)することが出来ません。
すごく初歩的な部分だと思うのですが、よろしくお願いします。
0945nobodyさん
2007/12/18(火) 12:12:05ID:???0946nobodyさん
2007/12/18(火) 12:15:42ID:???$rensou_sort_table は連想配列じゃない気がする。
それよりも kingaku が kinbakuに見えた俺は間違いなく廃人。
0947nobodyさん
2007/12/18(火) 12:35:16ID:???$rensou_table =
array("NAME1" => array("ID" => "ID1", "kingaku" => 100),
"NAME2" => array("ID" => "ID2", "kingaku" => 200),
"NAME3" => array("ID" => "ID3", "kingaku" => 150),
);
// array_multisort
print_r($rensou_table);
0948nobodyさん
2007/12/18(火) 12:38:24ID:???0949880
2007/12/18(火) 12:44:32ID:31/C79f0ありがとうございます。
>>922でほとんど完全に望みどおりのものが表示されました。
出力結果でprint_rを用いてるためArray ( [path] => C:\\WindowsXP1.jpg )と配列的に表示されますが、
C:\\WindowsXP1.jpgのみを取り出す関数はありますか?
変数に割り当て、後の文字列処理で条件を設定し余分な部分を削除しても可能ですが、もしあれば教えて頂きたいです。
本筋と離れて下らない質問ですがよろしくお願いします。
0950nobodyさん
2007/12/18(火) 13:04:28ID:???0951nobodyさん
2007/12/18(火) 13:45:39ID:Cs1LoUMv17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
って、UTF-8 ならOK?
0952nobodyさん
2007/12/18(火) 15:26:49ID:nIdDRyEiあとひとつ疑問があるのですが、
掲示板スクリプトを制作してます。ログファイルには一定の容量、または一定の行数まで書き込んだら、
古いログを消すような処理をしたいのですが、そういうときに使う関数ってありませんか?
0953880
2007/12/18(火) 15:31:47ID:31/C79f0やはりその方法しかないようですね。
ltrimとrtrimを使ってパスのみ抽出出来ました。
レスありがとうございました。
0954オタリツ大学
2007/12/18(火) 15:39:05ID:e40IrYD60955nobodyさん
2007/12/18(火) 15:39:46ID:???http://jp.php.net/manual/ja/function.PDO-quote.php
の説明をどうぞ。
0956nobodyさん
2007/12/18(火) 16:12:57ID:???case 'aaa' : echo 'aaa'; break;
case 'bbb': echo 'bbb'; break;
default: echo 'default'; break;
}
で$keyが0なら最初のaaaにマッチするのはなんで?
0957nobodyさん
2007/12/18(火) 16:20:26ID:???http://www.php.net/manual/ja/language.operators.comparison.php
>整数値を文字列と比較する際、文字列が 数値に変換されます。
>数値形式の文字列を比較する場合、それは整数として比較されます。これらの ルールは、 switch 文にも適用されます。
だそうだ。
知らなかった。びっくりした。
0959nobodyさん
2007/12/18(火) 16:25:49ID:???http://www.php.net/manual/ja/types.comparisons.php
「==による緩やかな比較」の「0」行「"php"」列
0960nobodyさん
2007/12/18(火) 16:55:13ID:v9ot0Jprタレコミ一行ニュース
ttp://www.elog-ch.com/news/
(アダルトサイトなので閲覧注意)
このPHPニュースって何を元に改造して使っているかわからないでしょうか?
もしこのようなphpスクリプトがあったら教えて下さい。
スレ違い本当にすいません。
0961nobodyさん
2007/12/18(火) 16:55:32ID:???ありがとう
ややこしい
この場合は型をあわせてswitch ( (string) $key) {
にすればいいのか
0963nobodyさん
2007/12/18(火) 18:21:38ID:eVhWLaJn「PlayStation」みたいな書き方を、パスカルケース。
「iPod」みたいな書き方を、キャメルケース。
後者のラクダは理解できますが、
パスカルはなんでパスカルなのでしょうか?
0964nobodyさん
2007/12/18(火) 18:35:58ID:???0965nobodyさん
2007/12/18(火) 18:36:37ID:BXvnHaJkクダ質なんで緊急ではないですが、気になってしょうがないです
0966nobodyさん
2007/12/18(火) 18:38:48ID:9fbVLtn5の結果が B になるのが納得できません。
JavaScriptだと、A になります。
javascript:alert(1 ? 'A' : 1 ? 'B' : 'C')
PHPの ?: とJSの ?: は別物なのでしょうか?
0967nobodyさん
2007/12/18(火) 18:46:30ID:???echo (1 ? 'A' : (1 ? 'B' : 'C'));
だと A が出るから、結合順位の問題か?
0968nobodyさん
2007/12/18(火) 18:47:13ID:???0969nobodyさん
2007/12/18(火) 18:52:49ID:9fbVLtn5javascript:alert((1 ? 'A' : 1) ? 'B' : 'C')
だと B になりますね。
これからは括弧を付ける事にします。
ちなみにPerlはJSと同じ結果になりました。
0970nobodyさん
2007/12/18(火) 18:55:29ID:???JavaScript:右から
C: 右から
Java:右から
PHP:左から
http://www.inside.ne.jp/js/ref3.html
http://www9.plala.or.jp/sgwr-t/c/sec14.html
http://www.tech-faq.com/lang/ja/java-operator-precedence.shtml
http://www.php.net/manual/ja/language.operators.php
0974nobodyさん
2007/12/18(火) 19:48:56ID:???接続できない大方の原因はサーバの混雑だろ。
>現実的にはそんなメッセージ出しても利用者としては困るだけだと思います
なら、その後どういう対応をすべきか利用者に通知すればいい。
接続失敗メッセージとともに、時間をしばらく置いてアクセスしてくださいとか。
>エラーが発生したときに管理者あてに通知メールを出す処理とかが必要なのか?
ちゃんとした商用サービスの場合、逐一サーバを監視して対処するエンジニアがいるので必要ない。
そんなお金ないなら、こういうのもあっていいと思うけど、
結局管理者が少数の場合、異常が発生した時間に寝てたら対処が遅れる可能性があるから根本的解決にならない。
非商用で個人でやってるならそこまで細かいことは気にすべきでない。
>というか、同一ハード上のDBに接続できないなんてそんなに起こるものでしょうか?
そうならないようにテストを繰り返してください。
0975nobodyさん
2007/12/18(火) 19:59:28ID:???わかりましたすいません。
違う所できかせてもらいます。
宣伝ならhはつけると思います。
それにそのサイトをみるとアクセス数がかなりあると思うので宣伝しても意味ないと。
0977921
2007/12/18(火) 20:24:02ID:???ありがとう
>>974
詳しく書いてくれてほんとに助かりました すごく納得いきました
そういう管理についてのハウツー本探してみます ありがとうございました
0978nobodyさん
2007/12/18(火) 20:56:24ID:SRVY/Xk9過去ログないやつならPHPを殆ど知らない時に
レッツPHPの何かを改造して使ってた事はある
0979nobodyさん
2007/12/19(水) 00:01:21ID:???PHPっぽいんだけど。
レス数が950を超えています。1000を超えると書き込みができなくなります。