【PHP】下らねぇ質問はここに書き込みやがれ 32
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/11/06(月) 22:07:16ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しない)
・ サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0594nobodyさん
2006/11/15(水) 16:42:00ID:???0598nobodyさん
2006/11/15(水) 16:55:02ID:???こういう奴に限って四六時中パソコンにべったりで、他人の非難や中傷しかしない暗い奴なんだよな。
こんな事やってて楽しいか?
0600nobodyさん
2006/11/15(水) 16:59:35ID:???人間はいる、というか自分がそうなんだから、楽しいか?なんて聞く必要は
ないと思うけど?
0601nobodyさん
2006/11/15(水) 17:02:33ID:???0602nobodyさん
2006/11/15(水) 17:04:34ID:???お前さ、何がしたいの?
真面目に回答をしようとしている奴だっているのに、そんな人に対して失礼じゃないのか?
0603nobodyさん
2006/11/15(水) 17:05:19ID:???0604nobodyさん
2006/11/15(水) 17:07:29ID:???多くないけど?
同類とか言ってることから、お前が「四六時中パソコンにべったりで、他人の非難や中傷
をする奴」だってことは真であるとして、それがどうしたの?
0605nobodyさん
2006/11/15(水) 17:08:12ID:???0607nobodyさん
2006/11/15(水) 17:11:06ID:???0608nobodyさん
2006/11/15(水) 17:11:17ID:???0609nobodyさん
2006/11/15(水) 17:12:48ID:???>>608が一方的にわけのわからないことを喚いてて
まわりは理解に苦しむという展開だが
0610nobodyさん
2006/11/15(水) 17:16:10ID:???0613nobodyさん
2006/11/15(水) 17:19:10ID:???0615nobodyさん
2006/11/15(水) 17:32:36ID:N4vSt0D00616nobodyさん
2006/11/15(水) 17:41:02ID:???この流れでそんな主張が飛び出したのか?
質問スレで「非難・中傷」を否定するということは、その逆のことを要求している、
つまり「丁寧に回答するのが当然だ、煽りなど許せない」と思っているということになる
期待する回答がえられず、逆切れして荒らしたり捨て台詞吐いたりする質問者の類と
見るのが合理的だろう。わざわざIDを隠す必要があったのもそのためだ
0618nobodyさん
2006/11/15(水) 17:44:35ID:???0619nobodyさん
2006/11/15(水) 17:46:13ID:???「みんな」は必死だが、自分はそうではないよ、とアピールしなきゃいけないものかね
書き込みは状況と照らすと意外に多くのことが分かるものだ
0620nobodyさん
2006/11/15(水) 20:28:41ID:???俺は>>593ではないんだけどさ、
よく分からんが、あんた見たいにネチネチ相手がいかにダメなやつか
説明するやつに、普通なやつはいないってことは確か
韓国ではもっと深刻的な問題になってるぞ
所詮2chだからな、まともか、能力ある人間は毎日チェックして
人を中傷するようなこといわないだろうな
0621nobodyさん
2006/11/15(水) 21:09:54ID:???0622nobodyさん
2006/11/15(水) 21:12:24ID:???だがw
0623nobodyさん
2006/11/15(水) 21:13:08ID:???ここにいる連中は四六時中パソコンにべったりで、他人の非難や中傷
をする奴が多いな。そんな暗いことやってて楽しいのか?
0624nobodyさん
2006/11/15(水) 21:14:55ID:???0625nobodyさん
2006/11/15(水) 21:48:28ID:???つもりになって全部読み飛ばした
0626nobodyさん
2006/11/15(水) 22:06:05ID:???IE7も無料でデバッグしてたらさらに偉いよ(笑)
0627nobodyさん
2006/11/15(水) 22:49:38ID:kZ4689iH0628nobodyさん
2006/11/15(水) 23:01:53ID:???0629nobodyさん
2006/11/15(水) 23:03:50ID:???ない。
反例
http://www.php.net/manual/ja/ref.ncurses.php
http://www.php.net/manual/ja/ref.printer.php
0631nobodyさん
2006/11/15(水) 23:12:28ID:kZ4689iH0632nobodyさん
2006/11/15(水) 23:13:23ID:???Ncurses 端末画面制御関数を使ったWebアプリがあるというなら、
どういうものなのかぜひとも聞きたい。
0633nobodyさん
2006/11/15(水) 23:33:57ID:???0634nobodyさん
2006/11/15(水) 23:39:58ID:???そう偏屈じーさんになる理由もないんじゃないの
0635nobodyさん
2006/11/15(水) 23:44:39ID:???管理ツールだからhttpd.confの編集をするCUIツール(curses使用)をWebアプリと呼ぶ、みたいな喩えのほう適当だな
0636nobodyさん
2006/11/16(木) 00:05:25ID:???いいんじゃないかなあ
文字列処理や配列関数なんかは皆一通り知ってると思う
実際全体の何割くらい使ってるんだろうね
0637nobodyさん
2006/11/16(木) 00:37:28ID:???EXCELのデータを取り込みたいんですが、検索したところEXCELにODBCで
接続して云々・・というページを見たのでPHPのODBC関数で接続を
試みています。
EXCELが入っているマシンだとドライバも一緒に入るので、以下のような
スクリプトを書いてみるとエラーは返りませんでした。
<?php
$conn = odbc_connect( "DRIVER={Microsoft Excel Driver (*.xls)}; DBQ=hoge.xls;", "", "");
if (odbc_error()) {
echo odbc_errormsg($conn);
}
?>
ktkrと思い、以下のコードを加えて見ましたが、エラーが発生してしまいます。
$sql = "select count(*) from Sheet1"; // Sheet1のデータ件数が取れるかな?
$rst = odbc_exec($conn, $sql);
if (odbc_error()) {
echo odbc_errormsg($rst);
}
恐らくシートの指定方法が間違っていると思うのですが。
そもそもこのようなことはできるのか?
できる場合は簡単なサンプルを見せていただけませんでしょうか。
よろしくお願いします。
0638nobodyさん
2006/11/16(木) 00:48:39ID:???mb_language(); を呼ぶと Fatal error: Call to undefined function mb_language() in ...
となってしまいます。
mb_string.dll はパッケージ内には見当たりません。
追加でコンポーネントをインストールしなければいけないのでしょうか?
それとも設定でしょうか?
0639nobodyさん
2006/11/16(木) 00:55:37ID:???http://pc8.2ch.net/test/read.cgi/php/1150088761/928
0640nobodyさん
2006/11/16(木) 01:03:29ID:???0641nobodyさん
2006/11/16(木) 01:07:15ID:???入ってるはずだけどねえ
まあ普通にオフィシャルから落としてきてextフォルダに放り込んでphp.iniの該当個所を
コメントアウトすれば動くんじゃないかしら
0642637
2006/11/16(木) 01:09:34ID:???すみません。
今手元に再現できる環境が無いので。
明日ちゃんとしたエラーメッセージを張ります。
>>640
うーん。よく分かりません。
EXCEL側でテーブル名としてSheet1を登録する必要があるのですか?
ちょっと調べてみます。
0643nobodyさん
2006/11/16(木) 01:12:41ID:???0644nobodyさん
2006/11/16(木) 01:28:09ID:???ADOだとワーキングシートは[sheet1$:]?だっけ?
ODBCはしらんけどPHPよりM$のマニュアルに相談したほうがいいかもよ。
0645nobodyさん
2006/11/16(木) 01:30:33ID:???0646637
2006/11/16(木) 01:38:25ID:???そうなんです。
まさにM$のVBとかC#での作法が分かっていないための質問でした。
AccessのサンプルはPHPのマニュアルにもあるのですが・・・。
明日もうちょっと気合を入れてググッてみます。
0647nobodyさん
2006/11/16(木) 04:08:47ID:???欧州大人気の超高機能CMS TYPO3はついに日本に公開
TYPO3はPHP、MySQLによって実装されているLAMPアプリケーションです。
大規模サイトを構築することを想定した高機能CMSで、リッチテキストエディタに
よるコンテンツのWISIWYG編集、キャッシング、サイト内検索、静的HTMLの
出力など対応です。
# 2000個以上の自由に使える機能拡張モジュール
# 文書・プロジェクト管理・オンラインショップなど他多数
# サイト分析、アドミンツール、ワークフロー
0648nobodyさん
2006/11/16(木) 06:49:55ID:???0649nobodyさん
2006/11/16(木) 09:28:38ID:???ってのがいいなw
0650nobodyさん
2006/11/16(木) 12:39:04ID:GG+ftSx9ファイルを読み込んだ順に表示しているのですが、
foreach($allfile as $temp){
print "$temp -";
echo date("m/d H:i:s",filemtime($temp));
}
これを更新日時が新しい順に表示するようにするには
どのようにしたらよいのでしょうか?
PHP4です。
0651nobodyさん
2006/11/16(木) 12:43:01ID:73q/908c$arr[] = filemtime($temp);
に入れてソートしてからforeachすればいいのでは?
0652nobodyさん
2006/11/16(木) 12:45:03ID:???0653nobodyさん
2006/11/16(木) 12:46:16ID:???sort($allfile);
foreach($allfile as $temp){
print "$temp -";
echo date("m/d H:i:s",filemtime($temp));
}
0654nobodyさん
2006/11/16(木) 12:59:03ID:73q/908cしてるからファイル名じゃね?
0655nobodyさん
2006/11/16(木) 13:03:45ID:???0656650
2006/11/16(木) 13:15:24ID:GG+ftSx9まだてこずってます・・・
みなさんありがとうございます
0657nobodyさん
2006/11/16(木) 13:19:17ID:???foreach($allfile as $temp){
$t = filemtime($temp);
$in[$t.$temp] = "$temp -".date("m/d H:i:s",$t);
}
sort($in);
とでもしといたら
0658650
2006/11/16(木) 13:22:12ID:GG+ftSx9結局usortを使い
function new_sort($xx , $yy){
$xx1 = date("mdHis",filemtime($xx));
$yy2 = date("mdHis",filemtime($yy));
if($xx1 > $yy2){ return -1;}
elseif($xx1 == $yy2){ return 0;}
else{ return 1;}
}
usort($allfile ,"new_sort");
foreachでまわす前に
としてみたのですが、効率わるいですかね?
0659nobodyさん
2006/11/16(木) 13:45:14ID:73q/908c$arr[$key] = filemtime($temp);
}
$arrを値でソート
foreach($arr as $k => $v){
$arr2[] = $allfile[$key];
}
print_r($arr2);
とか?適当に書いたから間違ってるかも。
0660nobodyさん
2006/11/16(木) 13:57:57ID:0z6MBXcS現在テキストファイルに出力したテーブルをCOPYコマンドでテーブルに入れるという処理をやっているのですが、
その方法は、VBからOBDCを使用してADODB.ConnectionのExecuteコマンドで
テーブルを更新するという方法です。
コマンドは、
COPY TABLE FROM '/apache/...../test.txt';
です。
この方法でとあるテキストファイルをDBに落とし込もうとしたところ、
ERROR: invalid byte sequence for encoding "UTF8" : 0x95
という文字コードに関するエラーが出て失敗してしまいます。
しかし、psqlから手動でCOPYコマンドを打つと普通にコピーに成功してしまいます。
両方失敗するのなら分かるのですが、何故VBからの処理が失敗するのでしょうか?
何が原因として考えられますか?
ちなみに開発環境はWin2k+PostgreSQL8.1(Windows)+VB6.0SP5です。
0661nobodyさん
2006/11/16(木) 14:00:02ID:0z6MBXcS0662nobodyさん
2006/11/16(木) 14:33:40ID:7s9N5dRH例えば、
https://example.com/index.php/hoge
こんなURLで呼び出された場合に、このURL自身を取得したいんですが。
もしかして、こいつら↓使って自分で組み立てるしかない?
$_SERVER['HTTPS']
$_SERVER["HTTP_HOST"]
$_SERVER["REQUEST_URI"]
エクセレントな方法ってある?
0663nobodyさん
2006/11/16(木) 14:49:18ID:???echo `ls -tr`;
>>662
http://jp2.php.net/manual/ja/reserved.variables.php
それだと要求されたURLで、呼び出されたスクリプトのURLじゃないね
0664nobodyさん
2006/11/16(木) 14:53:57ID:???`ls -t`
どうでもいいけど
0665662
2006/11/16(木) 15:06:02ID:???あ、ブラウザのURLに表示されてるのと同じものを取得したいのです。
こんな感じでいいのかな。
$url = (isset($_SERVER['HTTPS']) ? "https" : "http") . "://{$_SERVER['HTTP_HOST']}{$_SERVER["REQUEST_URI"]}";
他に良い方法ないですか?
一度別ページに飛ばして
$_SERVER["HTTP_REFERER"]
だと値なんてあてにならないし。
0667660
2006/11/16(木) 15:57:58ID:???COPYコマンド自体止めて、テキストファイル直読みしてINSERT文にしたら
あっさりコマンド通りました。
何故にCOPYコマンドでは駄目なんだ?よく分からん・・・。
0668nobodyさん
2006/11/16(木) 16:01:51ID:???0669nobodyさん
2006/11/16(木) 16:15:48ID:???0671nobodyさん
2006/11/16(木) 16:37:58ID:???0672nobodyさん
2006/11/16(木) 16:50:26ID:OjN5tFoyポストファイルサイズ
アップロードファイルサイズとか実行時間も十分にしたのですが・・・・
スワップ領域以上はできないんですか?
1ギガなんですがそれより上ができません
perlならできるんですがアップロード速度がだいぶ違うので
0674nobodyさん
2006/11/16(木) 17:23:21ID:???0675nobodyさん
2006/11/16(木) 17:43:22ID:???0676nobodyさん
2006/11/16(木) 22:18:24ID:???それになんて出たんよ。
0677nobodyさん
2006/11/17(金) 00:49:47ID:RSjPLNDu$hairetu['A'][1] $hairetu['A'][5] $hairetu['A'][7] $hairetu['A'][9]
$hairetu['B'][3] $hairetu['B'][4] $hairetu['A'][6] $hairetu['A'][12]
このような多次元配列(キーは一つ目が文字列で、二つ目が数字)が仮にあったとして、
数字が入ったキー「だけ」に注目してソートして、若いキーから順にn個を取得したいです。
この例で言うと、数値キーで昇順ソートして3つだけ取り出す場合、
$hairetu['A'][1]、$hairetu['B'][3]、$hairetu['B'][4]・・・の要素を取得したいです。
このようなことをやるにはどういう手法を使ったら良いのでしょうか?
0678nobodyさん
2006/11/17(金) 01:05:48ID:???$hairetu['A'][1] = 'A1';
$hairetu['A'][5] = 'A5';
$hairetu['A'][7] = 'A7';
$hairetu['A'][9] = 'A9';
$hairetu['B'][3] = 'B3';
$hairetu['B'][4] = 'B4';
$hairetu['A'][6] = 'A6';
$hairetu['A'][12]= 'A12';
$list = array();
foreach($hairetu as $dat) {
foreach($dat as $k => $v) {
$list[$k] = $v;
}
}
ksort($list);
$list = array_slice($list, 0, 3);
var_dump($list);
とか
0680nobodyさん
2006/11/17(金) 01:52:49ID:???http://www.php.net/manual/ja/features.file-upload.php
の 例38-1,例38-2を試したところ、極めて小さいファイルはアップ出来るのですが、
1196byte以上のファイルだとタイムアウトを起こすのか、まともに動きません。
(FireFoxだと「接続がリセットされました」が出ます。)
メモリは free -mt で見た範囲で200MB以上空いています。
最終的には120MB程度のファイルがアップ出来るような仕組みを作りたいのですが
1MB程度で躓いてしまっています。(´・ω・`)ショボーン
「陥りやすい落とし穴」に書いてある
memory_limitには150M post_max_sizeには128M upload_max_filesizeには120Mを
設定し、phpinfo()でちゃんと適用されているか確認しました。
他に何か確認すべき所はあるでしょうか?
0681nobodyさん
2006/11/17(金) 02:00:14ID:???30秒で停止する設定になってるとか?
0683680
2006/11/17(金) 02:29:47ID:gKQvCF/I>681
30秒というと、どこの設定の事でしょうか?
>682
ブラウザ上では
FireFoxだと>680に書いたとおりブラウザが出すエラー画面で「接続がリセットされました」
IE6だと「ページを表示できません。」「サーバーが見つからないか、DNS エラーです。」
が出ます。
Apacheのエラーログには関係ありそうなエラーは見当たりません。
0685nobodyさん
2006/11/17(金) 02:35:28ID:???ttp://www.php.net/manual/ja/ref.info.php#ini.max-execution-time
0686680
2006/11/17(金) 02:41:12ID:???動きを見ていると、
OKの時
例38-1からPOST → Apache PHP → 例38-2で処理&結果表示
NGの時
例38-1からPOST → Apache? PHP? → 行方不明・無反応 → ブラウザがエラー表示
になっているようです。
ソースの中でなおした部分は、
例38-1の__URL__を例38-2を保存したphpのファイル名に変更
例38-1を<html><head></head><body>〜</body></html>の〜部分に記述
例38-2の$uploaddir =を実態にあったパスに変更
です。
0687nobodyさん
2006/11/17(金) 02:41:34ID:???デバグには向かないよ
0688nobodyさん
2006/11/17(金) 02:48:07ID:???foreach($hairetu as $dat) {
・・・
}
この外側のforeachって意味あるか? 不要じゃネ??
0689680
2006/11/17(金) 02:51:44ID:???max_execution_timeを120に、 max_input_timeを120にしてもダメでした。
>687
実はPerlベースでデータをアップする仕組みを実装してあるんですが、
段々データ容量が増えて来たせいでエラーに遭遇する事が多くなったんです。
そこで、色々調べたところ、
http://xxx.upken.jp/report/foradmin/
>Perl CGIは受信サイズの3倍強の空きメモリを使用します。
- 略 -
>なお、PHPの場合は、ファイルの1.1倍程度ですのでPerlよりも効率が良いのですが、仕様上2GB以上のファイルを受信できません。
という記述を見つけ、急遽PHPを学びがてら実装しているところなので、
デバグ向きの環境がどういうものなのかとか、PHPがどんなものなのかとか
まだよくわかっていない状態なのです。
0690nobodyさん
2006/11/17(金) 03:07:20ID:???処理の頭に
echo "error=".$_FILES['userfile']['error']."\n";
flush();
ob_flush();
って入れて画面上にerror=○って出てくるか確認。
途中で強制終了されてると>>683みたいなエラーになる。
0692680
2006/11/17(金) 03:17:48ID:???やってみましたが、同じ現象です。
ソースを載せます。
-------
<?php
echo "error=".$_FILES['userfile']['error']."\n";
flush();
ob_flush();
$uploaddir = '/home/foo/data/upload/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
-------
Apacheの設定が悪いのでしょうか・・・orz
0693nobodyさん
2006/11/17(金) 03:21:23ID:???プログラム先頭でflushしても何も出力できないんなら
リクエスト時点でApacheがタイムアウト起こしてる可能性は高いな。
httpd.confまたは.htaccessのTimeout設定をいじってみては?
0694nobodyさん
2006/11/17(金) 03:25:24ID:???Apacehからなら408が返るだろうし
■ このスレッドは過去ログ倉庫に格納されています