【PHP】質問スレッドpart31【php】
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2005/11/27(日) 00:07:12ID:eBvjdczp【基本ルール】
・新規質問の方は上げてください。age進行でお願いします。
・質問者は2回目以降、最初のレス番号を名前欄に入れてください。
・回答者は質問者に対して>>(アンカー)をつけてください。
・煽り・荒らしは放置。荒らしに反応した香具師も荒(ry
・解決しなくてもこたえてもらったら礼を。
【質問テンプレ】
・マニュアルを調べたか、google検索したか(調べたキーワード)
・タイトル(禁:教えてください!etc) 例:requireとinclude
・内容 例:requireとincludeはどう違うのですか?
・質問する際には環境も明記。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
【PHP マニュアル】
http://www.php.net/manual/ja/
※マニュアル上部の「search for」から検索を活用すべし(便利)。
過去スレ、関連リンク、FAQ等>>2-10辺り
0808nobodyさん
2005/12/27(火) 01:23:40ID:???何があったんだw
0812nobodyさん
2005/12/27(火) 01:50:52ID:???0813807
2005/12/27(火) 01:50:57ID:???0814nobodyさん
2005/12/27(火) 02:02:31ID:???<?php
$start = microtime(true);
$pn = array(2);
for ($i = 3; $i < 5000; $i +=2) {
foreach ($pn as $n) {
if ($i % $n == 0) {
continue 2;
}
}
$pn[] = $i;
}
$end = microtime(true);
echo implode("\n", $pn), "\n";
printf("%d prime numbers found.\n", count($pn));
printf("%0.6fsec.\n", $end - $start);
?>
microtime(true) は PHP5 限定な。
0815807
2005/12/27(火) 02:18:44ID:???WEBから何も考えずパクッただけだったので申し訳ない。
>>814のロジックにしたらPHPでも0.4秒まで短縮できた。
あぁ情けない俺。ロジックで躓くなんて。。
0818nobodyさん
2005/12/27(火) 10:50:07ID:hzIZknsD利用しているサーバーはGDライブラリでJPEGをサポートしていないようです。
gd
GD Support enabled
GD Version bundled (2.0.28 compatible)
GIF Read Support enabled
GIF Create Support enabled
PNG Support enabled
WBMP Support enabled
XBM Support enabled
これをJPEGも使えるように自分でGDライブラリをインストールする事は出来ますか?
やはりサーバー管理者にお願いするしかないのでしょうか
0820nobodyさん
2005/12/27(火) 10:53:36ID:???http://sugachan.dip.jp/
これ使え
0821nobodyさん
2005/12/27(火) 12:39:05ID:???0823818
2005/12/27(火) 13:44:39ID:???ダメみたいですね。対応検討中とか言われた。
お騒がせしまして申し訳ありませんでした。
0824nobodyさん
2005/12/27(火) 18:52:39ID:???利点しかないだろうに
0827nobodyさん
2005/12/28(水) 00:08:12ID:???あと訴訟対策も有るんじゃね?
0828nobodyさん
2005/12/28(水) 00:34:59ID:???0829nobodyさん
2005/12/28(水) 00:53:05ID:???PHPでタグのセレクトボックスから選んだものを変数に格納して
それを使用したいのですが,選択した瞬間,そのセレクトボックスのフレームを読み込んで
してしまい,選んだものを初期化してしまいます。
選択したものの値を保持したいのですがどうしたらいいでしょうか?
ヒントなり頂ければ幸いです。
0830nobodyさん
2005/12/28(水) 00:56:01ID:??????
セレクトボックスのプルダウンから何か選んだ瞬間に読み込みが起きる?
HTMLの書き方そのものが間違ってない?
0831nobodyさん
2005/12/28(水) 02:15:39ID:???とりあえずヒント
<?
$no = $_REQUEST["selbox"];
?>
<html><body>
<form action="<?=$_SERVER["PHP_SELF"]?>">
<select name="selbox">
<option value="1"<?=($no==1)?" selected":""?>>1</option>
<option value="2"<?=($no==2)?" selected":""?>>2</option>
<option value="3"<?=($no==3)?" selected":""?>>3</option>
</select>
<input type=submit value="送信">
</form>
</body></html>
0832nobodyさん
2005/12/28(水) 07:26:24ID:???0833829
2005/12/28(水) 08:26:53ID:???曖昧で小出しな聞き方でスマソ。
PHPからのHTMLタグでセレクトボックスの中身を指定しているのでおっしゃるとうりだと思います。
やってみます。
0834nobodyさん
2005/12/28(水) 09:50:13ID:OPhVlmGDのdiscover_tbのように対象urlからtrackback:pingを抜き出す関数を
提供しているライブラリをご存知の方いらっしゃいませんか?
blog提供側の問題で
変な方言や提供方法がありそうで在りものが在れば使いたいのですが・・・
0835nobodyさん
2005/12/28(水) 09:54:29ID:???0836nobodyさん
2005/12/28(水) 10:21:40ID:OPhVlmGDどっちでも良いんですが(て自分で作るならどっちでもよくないか・・・)
0839nobodyさん
2005/12/28(水) 12:59:29ID:???FTP経由でファイルを削除したいのですが、
グッドなアイデアはないでしょうか?
ftp_exec()使うしかないですかね・・・
0841839
2005/12/28(水) 13:01:02ID:???0844840
2005/12/28(水) 13:13:30ID:???0845nobodyさん
2005/12/28(水) 14:02:22ID:???http://jp2.php.net/manual/ja/function.ftp-fput.php
で不満なのか?
0846nobodyさん
2005/12/28(水) 18:10:36ID:jQi1GXdbHTMLから生成するスクリプトとかってないですか?
0847nobodyさん
2005/12/28(水) 18:17:03ID:???実行させるグッドアイデアないでしょうか?
0849nobodyさん
2005/12/28(水) 18:31:13ID:???質問の意図を勘違いしてる希ガス
suexec使えば指定ユーザ権限でのコマンド実行ができるのは分かってるが、
それ以外の方法で同様の状態にする方法は無いのか?と問うてるんじゃないの?
0851nobodyさん
2005/12/28(水) 18:44:28ID:???0853nobodyさん
2005/12/28(水) 20:51:30ID:???0856nobodyさん
2005/12/29(木) 00:21:52ID:???0857nobodyさん
2005/12/29(木) 02:10:23ID:???0858nobodyさん
2005/12/29(木) 09:09:32ID:???0859nobodyさん
2005/12/29(木) 10:04:20ID:???PHP 側でその apache2 の機能の利用はまだオススメできないって
話だったはず。
諦めて cgi にして fastcgi とか使ったらいいんじゃねーのと思うけど、
自分で試したことない。
0860nobodyさん
2005/12/29(木) 11:35:54ID:???0861nobodyさん
2005/12/29(木) 12:18:37ID:???ユーザの数だけphpのfastcgiインスタンスを走らせておくというのも
なんだかかっこわるいなぁ。
しかもsetuidされたラッパプログラムを自前で用意する羽目になるし、
なんかやだ。
0862nobodyさん
2005/12/29(木) 12:53:42ID:???0863nobodyさん
2005/12/29(木) 18:08:20ID:???apacheは独自modでスルーさせるだけ。
0864nobodyさん
2005/12/29(木) 19:20:49ID:???0865nobodyさん
2005/12/29(木) 19:23:06ID:???0866nobodyさん
2005/12/29(木) 19:32:53ID:???0867nobodyさん
2005/12/29(木) 21:49:56ID:???必要なやつは金使ってるってだけの話じゃないのか?
0868nobodyさん
2005/12/29(木) 21:59:06ID:???私も前にそれ考えた事あるし
0869nobodyさん
2005/12/29(木) 23:11:14ID:???0870nobodyさん
2005/12/29(木) 23:15:25ID:???個人で使うのみってこと?仕事では使用しないって事なのかね。
仕事だったら、小中規模案件だと圧倒的にPHP、Perlが占めるけど、Java案件以外の中規模案件なんか受注しないポリシーとか?
Java覚えられるなら、PHPなんか結構すぐに覚えられると思うけど、わざわざ捨てる理由が見つからない。
0871nobodyさん
2005/12/29(木) 23:26:04ID:???わざわざ捨ててるって言うか、java使って満足な人が
他の言語に手を出す理由が無いってだけの話でしょ。
逆もそうだし。
0872nobodyさん
2005/12/29(木) 23:45:46ID:???動的にページ生成したければ、占有鯖か自前鯖で弄りたい放題でしょ。
0875nobodyさん
2005/12/30(金) 04:45:27ID:???0876nobodyさん
2005/12/30(金) 05:08:43ID:???毛が生えた素人を大量に安く使い潰せる依頼主だから。
0877nobodyさん
2005/12/30(金) 05:13:54ID:???0878nobodyさん
2005/12/30(金) 10:33:25ID:???0879nobodyさん
2005/12/30(金) 10:44:59ID:???0880nobodyさん
2005/12/30(金) 11:19:27ID:???0882nobodyさん
2005/12/30(金) 11:55:09ID:???0883nobodyさん
2005/12/30(金) 13:24:42ID:0FfWwbS6一応希望通りの動作はしてますが、かなり変ですよね?(;´Д`)
こうしろよみたいなのありましたらご教示よろしくお願いします。
$today = getdate();
if ( $today[year] > $input_year ) { error(); } // 過去はエラー
elseif ( $today[year] < $input_year ) {} // 未来はOK
// 以下同年
elseif ( $today[mon] > $input_month ) { error(); } // 過去はエラー
elseif ( $today[mon] < $input_month ) {} // 未来はOK
// 以下同月
elseif ( $today[mday] > $input_day ) { error(); } // 過去はエラー
// 存在しない日はエラー
if ( !checkdate($input_month, $input_day, $input_year) ) { error(); }
0884nobodyさん
2005/12/30(金) 13:51:27ID:???epoc値(1970/1/1からの秒数)に直して比較すれば一発。
その前に書式はチェックしないといけないけど。
0885nobodyさん
2005/12/30(金) 13:57:28ID:???年/月/日ごとに異なるエラーを出すのでないなら、
まとめてタイムスタンプの大小で現在より過去を判定した方が良いんじゃないか。
タイムスタンプの性質とmktimeの動作を確認して、自分の仕様に適うかどうかだな。
0886nobodyさん
2005/12/30(金) 16:58:33ID:???あと関係ないが連想配列[]内はクォーテーションで囲みましょう。["hoge"]
0887nobodyさん
2005/12/30(金) 18:12:49ID:???それ以外の方法でもあれこれ組み合わせれば結構セキュア
(他の人のスクリプトやデータに干渉しないよう)に
できると思うんだが。
0888nobodyさん
2005/12/30(金) 18:52:17ID:???0889nobodyさん
2005/12/30(金) 20:53:24ID:5CV6IiV6認証部分はどうすればよいのでしょうか?
googleで5時間探したけどわかんね。。
0890nobodyさん
2005/12/30(金) 20:59:33ID:???別に難しく考える必要はなし。
if(date("Ymd") < "{$input_year}{$input_month}{$input_day}"){
echo 'Error!';
exit();
}
※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0891nobodyさん
2005/12/30(金) 21:05:51ID:???$input_year.$input_month.$input_day){
0893nobodyさん
2005/12/30(金) 21:47:34ID:???$input_monthや$input_dayが一桁だった場合におかしなことになるからsprintf("%04d%02d%02d",ってやらないとまずくない?
>>889
ページってことはHTTPってこと?だったらfsockopenでクッキーとかも送ってやればいいだけ。
HTTPSに関してはOpenSSLを導入する方法があったようななかったような。
あとPearにもHTTPクライアントあるし。もしくはcurl使うとか。
つーかメールだったらIMAP系の関数使ったほうが早いかもね。
0895893
2005/12/30(金) 21:54:30ID:???すまん。ここ読んでなかった。
> ※$input_yearは4桁西暦、$input_month $input_dayはあらかじめ2桁に整形済みのこと
0896nobodyさん
2005/12/30(金) 21:54:46ID:???「あらかじめ整形しておく」などの事前前提は意外とバグを産み易い。
速度的にシビアな場面じゃないのなら安全策を取った方が不慮の事故を防げるかと。
if(date("Ymd") < sprintf("%04d%02d%02d", $input_year, $input_month, $input_day)){
0897nobodyさん
2005/12/30(金) 21:55:17ID:???0898nobodyさん
2005/12/31(土) 00:25:14ID:NCoXT252ttp://www.netmania.jp/cgi/blog/ の#001 を動かそうと思い入れたんですけど
PHPがERRORばかり吐いて動きません。
試しに、無料のレンタル鯖にうpして動かしてみるとすんなり動きました。
鯖の設定がだめなのかPHPのスクリプトがおかしいのか・・・
宜しくお願いします。
レンタル鯖に設置したやつ[未改造]
ttp://freshgreens.jp.land.to/blog/index.php
自鯖のやつ[多少弄った]
ttp://aozoraxp.dip.jp/blog/index.php
PHPのinfo
ttp://aozoraxp.dip.jp/phpinfo.php
0899nobodyさん
2005/12/31(土) 00:33:08ID:???レン鯖においてOKならおまいのローカル環境がおかしいとしか思えないが、
エラー見るに根本的に何かが間違ってるっぽいし改造って何したのとか
わからんから何とも言いようがありません。
0900nobodyさん
2005/12/31(土) 00:36:57ID:???php.iniのerror_reportingの値がでかすぎるかも。
E_NOTICEまで有効にされちゃってる気がする。
0901898
2005/12/31(土) 00:38:53ID:???例えばif ($_SERVER[REQUEST_METHOD] == 'POST') だとエラーでるので
’’を付け加えてif ($_SERVER['REQUEST_METHOD'] == 'POST')にしたとかです。
それ以外は特になにもしてません
0902900
2005/12/31(土) 00:39:58ID:???一般的なデフォルト値はE_ALL & ~E_NOTICEのはずなのでこれで設定してみて。
0904898
2005/12/31(土) 00:44:58ID:???error_reporting = E_ALL; display all errors, warnings and notices
この行をコメントアウト(;)してみました。
するとだいぶblogらしくなってきました。
コメントアウトじゃまずいですかね?
ほかにphp.iniの設定方法あったらご教授ください
0905nobodyさん
2005/12/31(土) 00:48:01ID:???0906898
2005/12/31(土) 00:48:37ID:???error_reporting = E_ALL & ~E_NOTICE の;を外しておきました。
これで一般的なデフォルト値になりましたでしょうか?
0907900
2005/12/31(土) 00:54:41ID:???2039になったからいーんじゃないのかな。
Windows用のphp.iniってE_ALLがデフォルトなんだろうか。
それとも4.4.0以降はE_ALLに変更されたとか?
あとなんか上に1個出てるエラーは設定項目不足みたいね。
csslistの設定が入ってないとエラーになるようだ。
なんかエラーチェックがいいかげんなプログラムだなぁ。
レス数が900を超えています。1000を超えると表示できなくなるよ。