【PHP】下らねぇ質問はID出して書き込みやがれ 81
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/02/18(水) 21:09:16ID:xNLzAD7T過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0637nobodyさん
2009/02/28(土) 17:01:27ID:???0638nobodyさん
2009/02/28(土) 17:05:42ID:???きょうび、CMSのコミッターですらその程度の認識をしてたりするから困るよな。
実行権限をはく奪って、もともとPHPは読み込み権限で動くわけだし。
画像ファイルにスクリプトインジェクションされるってのをケアしないんだろうし。
0639625
2009/02/28(土) 17:18:45ID:Ho2Fi0s+いや、最初はそう思ったのですがどうやらPHPの関数により速度が遅くなってるようなんです。
というのもPHPの関数が少ないページは高速に表示するからです。
ただ、何の関数が遅い原因なのかが割り出せません。
何なのか分かる奴よろしく。
0640nobodyさん
2009/02/28(土) 17:19:10ID:???ttp://websec-memo.blogspot.com/2007/06/php-getimagesizephp.html
0641nobodyさん
2009/02/28(土) 18:04:55ID:???つ xdebug.profiler_enable = 1
あと、Windows機があるならWinCacheGrid
0642nobodyさん
2009/02/28(土) 18:05:36ID:???0643nobodyさん
2009/02/28(土) 19:42:43ID:Lzy3hD4E画像のファイルサイズが0kb になって 保存できない・・・orz
ファイル名指定
header("Content-Disposition: attachement; filename=foo.jpg");
をつけても0kb・・・
どうしたらいいんだぁ・・・
0644nobodyさん
2009/02/28(土) 20:27:57ID:???ドッカン
m ドッカン
=====) )) ☆
∧_∧ | | / / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( )| |_____ ∧_∧ < おらっ!出てこい>>635-636
「 ⌒ ̄ | | || (´Д` ) \___________
| /  ̄ | |/ 「 \
| | | | || || /\\
| | | | | へ//| | | |
| | | ロ|ロ |/,へ \| | | |
| ∧ | | | |/ \ / ( )
| | | |〈 | | | |
/ / / / | / | 〈| | |
/ / / / | | || | |
/ / / / =-----=-------- | |
0646nobodyさん
2009/02/28(土) 22:32:57ID:???拡張子は別にして
0647nobodyさん
2009/02/28(土) 22:35:26ID:???そこから、
> それ以外にヘッダで判別できるところあんの?
っていう展開が意味不明
0649nobodyさん
2009/02/28(土) 22:49:44ID:???0650nobodyさん
2009/02/28(土) 22:54:24ID:???ヘッダの一部しか見てない って、他にも判別できる部分があるようにとれない?
ヘッダの(他にも判別するところはあるけど)一部しか見てない なのか
ヘッダの一部(で)しか見てない なのかってことね
0654nobodyさん
2009/03/01(日) 00:31:01ID:???これで回避できるとも読めるわけだが、どうなんだろう。
0655nobodyさん
2009/03/01(日) 00:31:30ID:???0658nobodyさん
2009/03/01(日) 01:09:42ID:???最終的にブラウザで表示できるんだから何でもいいだろ
0659nobodyさん
2009/03/01(日) 01:18:56ID:???0660nobodyさん
2009/03/01(日) 02:35:03ID:eUPI6W900661nobodyさん
2009/03/01(日) 03:05:47ID:ircjQ+OXtxtファイルや、htmlファイルは、
ユーザーにrを渡さないと
ブラウザで閲覧したときに見れないんだけど、
.phpファイルは、なぜか
ユーザーに渡す権限が0でも
ブラウザでアクセスしたときに、
動作してしまうんだけど、これってなんで?
0663nobodyさん
2009/03/01(日) 03:47:49ID:ircjQ+OXオーナー | グループ | 末端ユーザー
こういう概念です
0664nobodyさん
2009/03/01(日) 03:50:25ID:ircjQ+OX「CGIに関しては純粋にSuExecでの動作」
「CGI版をラッパーを使用し所有者の権限にて動作させる」
と書いてあります。
0665nobodyさん
2009/03/01(日) 04:31:12ID:???答えが書いてあるよ〜。
Webサーバの一番基本的な動きは分かってるかな?
ブラウザが「このファイルくれ!」ってWebサーバにいうと
Webサーバは自分の中から探して、読みこんで、「処理して」、結果をブラウザに返す。
このときWebサーバもユーザとして動いてる。
こんだけ。
0666nobodyさん
2009/03/01(日) 06:55:07ID:ircjQ+OXMySQLの例ばっかりなのだが、
これってSQLiteでもできるんだよね?
コードはどう書けばいいのかな?
特にDSNのあたり。
http://oshiete1.goo.ne.jp/qa3008843.html
このサンプルで、DSNをSQLiteに変更したものを
書いてもらえますか?
0667nobodyさん
2009/03/01(日) 06:59:03ID:ircjQ+OXpear::authを使うことの是非についても
意見を述べてもらえますか?
pearのページ見たら、認証のカテゴリだけで7つも
モジュールあるじゃないですか。
0669nobodyさん
2009/03/01(日) 11:45:18ID:???質問
の人な気がするぜ
0670nobodyさん
2009/03/01(日) 13:13:02ID:???0671nobodyさん
2009/03/01(日) 13:42:43ID:???0672nobodyさん
2009/03/01(日) 14:46:48ID:lFCp+aHu(ググろうにも「<?=?>」のようなワードでは検索できなくて・・・)
0673nobodyさん
2009/03/01(日) 14:50:54ID:lFCp+aHu0674nobodyさん
2009/03/01(日) 17:35:53ID:Jolk/1HKが含まれているかどうかを調べるにはどのようにするのがよいのでしょうか?
0675nobodyさん
2009/03/01(日) 17:41:35ID:???foreach
preg_match
0676nobodyさん
2009/03/01(日) 17:43:35ID:???strstrあたりでいいと思う
0677nobodyさん
2009/03/01(日) 17:43:53ID:???0678nobodyさん
2009/03/01(日) 17:46:03ID:Jolk/1HK0680nobodyさん
2009/03/01(日) 17:51:32ID:???0681nobodyさん
2009/03/01(日) 18:02:38ID:qwqgUI7e$list = file("hoge.txt");
for ($i = 0; $i < count($list); $i++) {
if (strpos($list[$i]), "hogehoge") {
echo $i . "行目にhogehogeが見つかりました<br>\n";
}
}
これと同じことをできるのなら俺もぜひ教えてもらいたい
0682681
2009/03/01(日) 18:04:25ID:???$i行目じゃなくて$i+1か
0683nobodyさん
2009/03/01(日) 18:20:01ID:???なんじゃこりゃ?
0685681
2009/03/01(日) 18:38:49ID:???for ($i = 0; $i < count($list); $i++) {
if (preg_match("/hogehoge/", $list[$i])) {
echo $i+1 . "行目にhogehogeが見つかりました<br>\n";
}
}
それじゃこれで
0686nobodyさん
2009/03/01(日) 18:41:12ID:???動作には問題ないけど
for内にcount($list)を入れると、ループ毎にcountが実行されるので、
$cnt = count($list);
$i < $cnt
みたいにするといいよー
0687nobodyさん
2009/03/01(日) 19:29:13ID:???preg_matchじゃだめだった
無駄にfileとforeachしなくてもpreg_match_all使えば一行で住む
0688nobodyさん
2009/03/01(日) 19:42:54ID:???0689nobodyさん
2009/03/01(日) 20:20:12ID:???0690nobodyさん
2009/03/01(日) 22:47:16ID:Jolk/1HKdatファイル(数字10桁)かどうかを調べるにはどうすりゃいいの?
これだとダメポ。
$datfile = 1234567890.dat;
$number = str_replace(".dat", "", $datfile);
if ($number != \d{10}){
print "2chのdatじゃない";
} else {
print "おk";
}
0691nobodyさん
2009/03/01(日) 22:52:53ID:???0692nobodyさん
2009/03/01(日) 22:54:09ID:???$datfile = "1234567890.dat";
if (preg_match("/^\d{10}\.dat$/", $datfile)) echo "おk";
else "2chのdatじゃない";
0693nobodyさん
2009/03/01(日) 22:59:06ID:Jolk/1HK0694nobodyさん
2009/03/01(日) 23:04:31ID:???0695nobodyさん
2009/03/01(日) 23:16:30ID:A3j42u8WPHPにZIPを解凍する関数ってあるのでしょうか?
やっぱり、フォームのfile要素をいくつも用意して
1つずつ選択して送信する方法しかないのでしょうか?
0696nobodyさん
2009/03/01(日) 23:21:54ID:???zipだけでもArchiveTarとかArchiveZipとかpecl zipとか色々
0697nobodyさん
2009/03/01(日) 23:26:26ID:???0698nobodyさん
2009/03/01(日) 23:27:29ID:???0700nobodyさん
2009/03/01(日) 23:38:13ID:???暗号化ZIPには対応してないようだけど
0701nobodyさん
2009/03/01(日) 23:40:37ID:???0702nobodyさん
2009/03/01(日) 23:50:07ID:???回答もらったらお礼ぐらい書けよksg
0706nobodyさん
2009/03/02(月) 00:56:54ID:???0707nobodyさん
2009/03/02(月) 06:17:58ID:???一部の文を変更するプロキシみたいなの
作りたいんだけど、できる?
「この商品を買った人はこんな商品も買っています」
↓これを
「この商品を買ってしまったかわいそうな人はこんな商品も買っています」
みたいに変更して表示したいんだけど。
チラ見だと気がつかないって言う。
よーく見ると違いがわかるっていう。
0709nobodyさん
2009/03/02(月) 06:36:54ID:xA87Qrbu指定したMD5(またはSHA-1)の値を持つファイルを取得したいのですが、
なにかよい方法はないでしょうか?
やはり、一度全部取得して、
ひとつひとつ確認する必要があるのでしょうか?
よろしくお願いします。
0710nobodyさん
2009/03/02(月) 08:01:04ID:Kxwrby6q$i = 2;
while($files[$i] != null ):
$files_end = $i;
$i++;
endwhile;
と、docフォルダに入っているファイル数をしらべるスクリプトですが、
while($files[$i] != null ):
の行で
Notice: Undefined offset: 5
と、Noticeが出て来ます。
この、Noticeを消すにはどうしたらいいでしょうか?
0712nobodyさん
2009/03/02(月) 08:05:07ID:???使えたらかっこいいんだろうなと思って
使いたい使いたいと思ってるけど結局使わないまま終わってしまう
0715nobodyさん
2009/03/02(月) 10:10:58ID:???OUT => while($files[$i] != null ):
IN => while( isset($files[$i]) ):
0716nobodyさん
2009/03/02(月) 10:18:29ID:???無理して使わなくていいよ
所詮プログラミング手法の1つに過ぎない
世の中には全てオブジェクトにしないと扱うことができない
言語も存在するがPHPはそうではない
使いどころを意識してるうちは概念も理解できないはずだ
オブジェクト指向が何かとかは考えないで
まずはオブジェクトにしないとプログラムが動かないと思ってはじめてみるといい
0717nobodyさん
2009/03/02(月) 12:30:23ID:???0718nobodyさん
2009/03/02(月) 12:39:55ID:???0719nobodyさん
2009/03/02(月) 13:33:46ID:qotKuiB9class hello
{
function asa(){$word="おはよう";return $word;}
function hiru(){$word="こんにちは";return $word;}
function yoru(){$word="こんばんは";return $word;}
}
これを呼び出して挨拶を表示するときにこのように書きました
$obj=new hello;
echo $obj->asa;
クラスの使い方としてこのような用途で使用するのは正しいでしょうか?
0720nobodyさん
2009/03/02(月) 13:47:22ID:yL43OBtlやはり、どうしてもクラス数が膨大になり、1ファイル1クラスにするので、
読み込むファイル数も膨大になってくるのですが、余程のことがない限り速度は気にするほど変わらないと考えても構いませんか?
0721nobodyさん
2009/03/02(月) 13:56:03ID:???0722nobodyさん
2009/03/02(月) 13:56:47ID:???0723nobodyさん
2009/03/02(月) 14:02:29ID:Kxwrby6qおお、ありがとうございます。 noticeが消えました!!
0724nobodyさん
2009/03/02(月) 14:03:01ID:???class hello {
function greeting(){ return $this->word; }
}
class asa extends hello {
var $word = "おはよう";
}
class hiru extends hello {
var $word = "こんにちは";
}
$obj = new asa(); echo $obj->greeting();
$obj = new hiru(); echo $obj->greeting();
こういうほうがより現実的。挙動を変えたければgreetingだけをいじればよいので。
0725nobodyさん
2009/03/02(月) 14:13:16ID:???0726nobodyさん
2009/03/02(月) 14:29:02ID:Be8+CZVlPDO::PARAM_STRとPDO::PARAM_INTを同じbindで使いたくて
PDO::PARAM_STR|PDO::PARAM_INTてやってみたのですが、
こちらでエスケープしたエラーになってしまいます。
int、str片方づつならデータが取得できるのですが・・
どのような手段でできますでしょうか
よろしくお願いします
0727nobodyさん
2009/03/02(月) 14:53:55ID:yL43OBtl勉強がてらのものなので、クラス分けなどが、まだうまくできてないのかもしれません。
ありがとうございました
0728nobodyさん
2009/03/02(月) 14:55:08ID:v7Ja9zye<form>
<input type="radio" name="s" value="0" />ページ1
<input type="radio" name="s" value="1" />ページ2
<input type="radio" name="s" value="2" />ページ3
</form>
http://www.example/?s=1でアクセスしてきたとき、ページ2のラジオボタンを選択済みにさせたいのですが
どのように書けばよろしいのでしょうか?
0729nobodyさん
2009/03/02(月) 15:00:03ID:???0730nobodyさん
2009/03/02(月) 15:00:07ID:???<input type="radio" name="s" value="1" <?if($_REQUEST["s"]=="1"){ echo "checked"; }?> />ページ2
<input type="radio" name="s" value="2" <?if($_REQUEST["s"]=="2"){ echo "checked"; }?> />ページ3
0731nobodyさん
2009/03/02(月) 15:02:03ID:v7Ja9zyeありがとうございます
0732nobodyさん
2009/03/02(月) 15:13:43ID:Hva8cjMKSJISに対応する文字がない時はU+XXXXという文字列に変換されますが、
このXXXXはどういう法則に従って算出されているのでしょうか?
0734nobodyさん
2009/03/02(月) 16:54:20ID:v7Ja9zyeキャッシュの作り方は以下のやり方でよろしいでしょうか?
キャッシュファイルがなかったら→キャッシュファイル作成→出力
キャッシュファイルがあったら→キャッシュファイル読み込み・出力
0735nobodyさん
2009/03/02(月) 19:33:12ID:???PDO::PARAM_STR|PDO::PARAM_INTなんて指定が仮に出来たとして
どんなSQL文になるのが望みなんだ
>>734
ok
後はキャッシュの有効期限やキャッシュの保存手段を設定できるようにしたりと
使いやすいようご自由に
0736nobodyさん
2009/03/03(火) 00:38:28ID:ttnGHap+サンプルを真似しながら、何とか自分なりに扱えるようにはなったのですが、
見たことの無い記述法に戸惑ってます。
$DB = NewADOConnection($sql_type);
$DB->PConnect($server, $user, $password, $dbname);
$result = $DB->Execute('SELECT * FROM blog_articles');
echo "<pre>";
print_r($result->GetArray());
echo "</pre>";
↑このコードの中の、
$result->GetArray();
の部分です。
メソッド(変数);
とかだったら普通に見慣れた形なのですが、
変数->メソッド();
となっているようで、よくわかりません。
これはどういう記述なのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています