【PHP】下らねぇ質問はここに書き込みやがれ 46
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2007/05/12(土) 16:43:57ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0818nobodyさん
2007/05/22(火) 19:29:07ID:???# .swf -> fugo.cgi
Action application/x-shockwave-flash /hoge/fugo.php
↑のような.htaccessを置くと、配下の.swf(正確にはMIMEタイプがswf)のファイルへの
リクエストが全てfugo.phpへ転送されます。そしてfugo.phpに環境変数PATH_INFOとして、
たとえば/fugo/hoge.swfが渡されます。
ttp://mikeneko.creator.club.ne.jp/~lab/web/htaccess/mime.html
0819nobodyさん
2007/05/22(火) 19:54:48ID:y22J0WYH静的メソッド内においてインスタンス変数は使えないのですか?
使い方が間違ってるとかおかしいとか言われるかもしれませんが、
技術的にどう書けば使えるのかなーと思って聞いてみました。
クラスは最近始めたので、実はよくわかってませんので、
意味不明なこと言ってるかもしれませんがお許しをorz
ソースはこんなかんじです。
class Test {
private $hoge;
public static function hoge($hoge) {
$hoge = $this->hoge;
return $this->hoge;
}
}
echo Test::hoge("aho"); //Fetal Error
$obj = new Test();
echo $obj->hoge("aho"); //こちらも同じFatal error
0821nobodyさん
2007/05/22(火) 20:10:39ID:???> クラスにおいてstaticとインスタンスは正反対みたいですが
この時点で理解不足
結城浩のJavaの本でも買って一字一句嫁
0822nobodyさん
2007/05/22(火) 20:18:40ID:???突っ込みどころが満載だが静的アクセスするにはself::を使う。
self::$hoge
メンバ変数も静的じゃないといかんが。
0823nobodyさん
2007/05/22(火) 20:32:15ID:???>$hoge = $this->hoge;
これはなんですか?
0824nobodyさん
2007/05/22(火) 20:49:17ID:F6/h/Ppdまた元の文字に戻したいのですが思ったとおりの結果にならず悩んでおります。
どなたかご指摘お願いいたします。
$a = bin2hex("い");
$b = ord($a);
echo sprintf("%c", $b);
0826nobodyさん
2007/05/22(火) 21:34:44ID:F6/h/Ppdpackの使い方について勉強不足でした。
おかげさまで解決できました。
ありがとうございました。
0827nobodyさん
2007/05/23(水) 00:02:35ID:???もうCでCGI作ろうかと思う。やってらんねphp
0828nobodyさん
2007/05/23(水) 00:19:40ID:???0829nobodyさん
2007/05/23(水) 00:34:58ID:???0831nobodyさん
2007/05/23(水) 00:38:19ID:gBlhHgMKどうすればいいですか?
0832nobodyさん
2007/05/23(水) 00:39:30ID:???俺とC#やろうぜ!
CはIDE使うよりviでゴリゴリ開発→gccでコンパイル
この一連の流れが痺れるびびびびびびびびびび
0835nobodyさん
2007/05/23(水) 01:58:10ID:NI0qIs2dセッションのファイルを数えるといいと以前ここで読んだのですが
レンタルサーバでファイルの保存場所にアクセスできない場合はどうすればいいでしょうか?
0836nobodyさん
2007/05/23(水) 01:59:05ID:gBlhHgMKfatal errorが記録されません
fatal errorはどうすればハンドリング出来ますか?
0837nobodyさん
2007/05/23(水) 01:59:12ID:4AGNtahW自宅のサーバーだとPHPでフォルダ作成ができません。
何が原因でしょうか?
0838816
2007/05/23(水) 01:59:54ID:???XPはクライアント側でした。
>>818
いろいろ調べてみたところ.htaccesssで制限やリクエストを制御するのがよさそうですね。
レスありがとうでした。
0839nobodyさん
2007/05/23(水) 02:01:33ID:???共有サーバでセッション使ったスクリプトなんてやめたほうがいい
0841nobodyさん
2007/05/23(水) 02:52:32ID:???PHPのアホさ加減で結局ソースを読む羽目になる事の方が大きいと思うぞ。
0842nobodyさん
2007/05/23(水) 03:09:44ID:4AGNtahWレスありがとうございます
自宅のサーバーはLINUXで、パーミッションは755です。
php.iniのsafe_modeとかの関係でしょうか?
0844nobodyさん
2007/05/23(水) 04:06:01ID:???確かセーフモードの設定で書き込み可否を制御できたはず
0845819
2007/05/23(水) 06:28:20ID:???>>821
理解不足でしたか・・・
お金ないのでWebで頑張りますorz
>>822
ありがとうございます。
両方とも静的じゃないとだめなのですね。
教えていただいたとおりやったところ表示されました。
>>823
反対でしたね・・・すみません。
class Test {
private static $hoge;
public static function hoge($hoge) {
self::$hoge = $hoge;
return self::$hoge;
}
}
echo Test::hoge("aho");
0847nobodyさん
2007/05/23(水) 10:20:24ID:Jt45AIDDデータベースに入ってる項目の並びかえってどうしてますか?
ユーザーが任意の順番に並び変えられるように作りたいのですが、
私が見かけたシステムでは、sort_orderというFLOATのカラムを持たせて
アプリ側では、各項目に↑↓の矢印があって一回変えるたびにその行の
sort_orderをDB登録してあげたり下げたりしていました。
新しい場所の上と下のsort_orderの間に入れるので2で割って、sort_orderが1000.5みたいに
FLOATにしてるみたいでした。
で、作りたいものは、ドラッグアンドドロップで並び替えられるようにしたいんです。
aculo.usを使って画面側はなんとなくできてるんですけど、今の仕様だと
並び替えたもののsort_orderが上から順番に通し番号が振られる感じなんです。
つまり並び替えた対象のほとんどの行のsort_orderを更新することになります。
これをこのまま、DBに登録するとなると、UPDATE対象が上記の方法より格段に増えるじゃないですか?
といっても、一番多い並び替えは5〜10件くらいのUPDATEで済みそうで、最高でも100件はないと思うんですよ。
並び替えの回数自体はユーザーしだいなのでなんともいませんが
、1ユーザー毎日2・3回、予想ユーザーは1000人くらいでしょうか。
sort_orderにはINDEXもはっていないし、サーバーも専用で結構パワーがあって、メモリも4G積んでるので
問題ないかなって気もするですけど、この設計ってまずいでしょうか?
他に思いつくのは、受け取った並び順をPHP側で、更新前のsort_orderと見比べて前者のFLOATを使っていた
時と同じような、パターンのsort_orderに変換して、更新のあったものを登録するとか・・・めんどい><
javascript側でその様な機能を実装するとか・・・あんまりjsは得意じゃないんですよね。
何か意見ありましたらお願いします。
わかりづらい長文をだらだら書いてごめんなさい。
0848nobodyさん
2007/05/23(水) 10:31:51ID:???0850nobodyさん
2007/05/23(水) 10:34:43ID:???略
>javascript側でその様な機能を実装するとか・・・あんまりjsは得意じゃないんですよね。
おととい来なさい。自分で使っているものがなにかをわからないで、設計も糞もないだろ。
0851nobodyさん
2007/05/23(水) 10:40:00ID:???1質問でひとつ答えを頂いて1つ解決できるような書き方を心がけるべきです。
多くの読み手に自分の質問を読んでもらいための知恵を使ってください。
わたしはスルーします。
0852nobodyさん
2007/05/23(水) 10:52:43ID:???D&Dってことは、そんなにたくさん表示されてないんだろ? そこの範囲を全部書き換えろ。
もしくは、sort_orderを10刻みにして、隙間がなくなったところでsort_orderをふり直せ。
0853nobodyさん
2007/05/23(水) 11:29:38ID:???0854nobodyさん
2007/05/23(水) 12:24:12ID:???あれー、くるくるくるぅう
みたいな?
0855nobodyさん
2007/05/23(水) 12:35:12ID:???0856nobodyさん
2007/05/23(水) 13:16:49ID:VINgQQ+Wfloatのやり方すら知らなかったから
いちいち全行updateしてたよ
こういうsqlのtipsみたいのがまとめられてる本ある?
0858847
2007/05/23(水) 13:22:20ID:Jt45AIDDjavascriptで最小限のものだけsort_orderを書き換えるように作ってみました。
で、Ajaxで毎回リクエスト投げて、保存しようかとも思ったんですけど
負荷的にも、ユーザビリティ的にも、確実性を考えても、並び替えは
クライアント側で完全に決まってから
submitで>>852さんの言うとおり変えた範囲を全部更新にしようかと思います。
sort_orderをFLOATにして、前後と比べて、割って、とかしても2・3個並び変えると結局全部更新になっちゃうんですよね。
稼動してみて、負荷を見て考えればいいのかもしれません。
みなさんレスありがとうございました。
0859nobodyさん
2007/05/23(水) 13:56:36ID:AZyDs042test1.php test2.php test3.php と3つファイルがあって
test1.php で test2.php と test3.php をincludeします。
test2.phpは処理が早いのですがtest3.phpが処理がとても大きくて遅くなってしまいます。
test1.phpに先に出た処理test2.phpを先に表示することはできますか?
0860nobodyさん
2007/05/23(水) 13:58:19ID:???0861nobodyさん
2007/05/23(水) 14:12:05ID:???str_pad、flush使えばできる
0862nobodyさん
2007/05/23(水) 14:28:10ID:???test2実行 > 表示 bodyタグでonload > Ajaxで通信しtest3実行 >
> データ送受信 > HTMLを書き換える
でどうだろう??
0863nobodyさん
2007/05/23(水) 16:15:18ID:AZyDs042返事遅れてスイマセン
>>862の方法でやってみようと思ってます。
ありがとうございました。
0864nobodyさん
2007/05/23(水) 17:27:43ID:G3BjkUek具体的に教えてください
0865nobodyさん
2007/05/23(水) 18:23:26ID:???0866nobodyさん
2007/05/23(水) 19:16:01ID:g5YZ+s6c<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=shift_jis"></HEAD>
<BODY></BODY></HTML>
と出力していないDOCTYPE宣言などなどがブラウザに送信されて
きます。なぜでしょう? phpinfo()は見れるのですが・・・。
環境は
WindowsXP SP2
PHP5.2.1
Apache2.0.59
です。httpd.confの設定がおかしいのでしょうか?
0867nobodyさん
2007/05/23(水) 20:59:31ID:???0868nobodyさん
2007/05/23(水) 21:47:36ID:???0869nobodyさん
2007/05/23(水) 21:47:40ID:p2WOZVTN僕は、大学生ですが、PHPを最近真剣にやっていて、3ヶ月くらいたち
SmartyとPEARの入門的な部分までやりました。SmartyやPearをつかわなかったら
色々作れる自信はあるんですが。
今の状態でPHPのバイトは勤まりますか?
0871nobodyさん
2007/05/23(水) 22:30:41ID:???実力があるかどうかだ
0872nobodyさん
2007/05/23(水) 22:54:55ID:???0873nobodyさん
2007/05/23(水) 23:46:32ID:???javascript以外でカレンダーを作りたいのですが
作ったカレンダーをダイヤログのように親画面から開き
選択した日付を親画面に返すと言った事はできますか?
又、参考になるHPを御存知でしたら教えて頂けませんか?
以上、宜しくお願いします。
0875873
2007/05/24(木) 00:08:33ID:D8XE6M0OID忘れました。
さらに言えば、スレタイに「PHP」って書いてあるのも見逃していました。
特にPHPって言うわけではないのですが、
技術的にできるのか疑問に思ったので・・・
できれば宜しくお願い致します。
0878nobodyさん
2007/05/24(木) 00:42:29ID:???0879873
2007/05/24(木) 00:42:33ID:D8XE6M0Oどうもありがとうございます。
さっそくググってみたいと思います。
>>876
「下らねぇ質問」って言うのが目に入ったので。
0881nobodyさん
2007/05/24(木) 01:02:39ID:???確かOpenLaszloも新しいバージョン出たよな?
まぁ、PHPは関係ないけどこれからはオープン
なFlashで構築ってな案件どんどん増えそう。
で、DB接続部分とか細かいとこはJavaとか
PHPで。
0882nobodyさん
2007/05/24(木) 01:05:22ID:???0883nobodyさん
2007/05/24(木) 01:18:04ID:???@fileで呼び出したtxtファイルから画像のサイズが取得できません。
中身はexplodeで区切ってあります ($filename,$comment)
list($width,$height) = @getimagesize($filename); こんな感じでごく普通に記述してるんですけど…
どうしてうまくいかないのかさっぱりわからないのでどなたか御教授お願いします
鯖のバージョンは5.2.0でした。
0885883
2007/05/24(木) 01:31:24ID:+SGQ/Lly0886nobodyさん
2007/05/24(木) 01:33:42ID:???0888nobodyさん
2007/05/24(木) 01:38:51ID:???@file('foo')
@getimagesize($bar);
のようにエラー出力を抑制してワカリマセンっていうのをまずなんとかすべきじゃないの。
fileでホントに呼び出せてるのか、$filenameが正しいパスにあるかどうか自体を確かめてないと
しか思えないような質問だ。
if(file_exists($filename)) {
var_dump(getimagesize($filename));
} else {
exit('no exist');
}
ぐらい確かめてから、質問しにきてください。
0889nobodyさん
2007/05/24(木) 03:00:55ID:pCKisbgl<html lang="ja">
<head>
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
<title>test</title></head>
<body>
文字を入れて送信を押す<b>
<form method="post" action="gc.php">
<input type="text" name="data" size="30">
<input type="submit" value="送信">
</form>
<?php
$data = $_POST['data'];
// echo "<hr> $data";
$file = fopen("log.txt","a+");
fputs($file,$data);
fclose($file);
$filepointer = fopen('log.txt',r);
while(!feof($filepointer)){
$fileline = fgets($filepointer);
echo " <hr> $fileline";
}
?>
</body>
</html>
こうすると、リロードするたびに書いた文字が追加されてしまうんですが、どうしたらよいでしょう?
たぶん、一度別ページに飛ばせば楽なんだろうけど、1ファイルで済ませたいので。
0890nobodyさん
2007/05/24(木) 03:21:46ID:???0892nobodyさん
2007/05/24(木) 03:37:00ID:???0894nobodyさん
2007/05/24(木) 04:36:24ID:???0895nobodyさん
2007/05/24(木) 05:49:05ID:???0896nobodyさん
2007/05/24(木) 09:35:00ID:???オレモ
個人はどーでもいいとして、Flash無いと読めない企業の
クソトップだけは何とか改善を願いたい。
PC関連は特にな。PC-Depotの知能が知れる。
ttp://www.pcdepot.co.jp/
0897nobodyさん
2007/05/24(木) 09:40:55ID:FJNwm9Bz早い話、Fetal ErrorやWarning等のメッセージが出る所を、
他のエラーメッセージに変えたり、
エラーが出た箇所でログをとったりする機能のことをさすんですよね?
PHPでいい解説サイトが見つからなかったので、(説明がわかりにくかったので)
Javaのわかりやすそうなサイトで勉強しているのですが、
ttp://www.javaroad.jp/java_exception1.htm
この例題2の任意の例外処理を行った例を、PHPで再現したいのですがうまくいきません。
try {
$x = 10 / 0;
} catch (Exception $e) {
echo "0で除算はできません。";
}
マニュアルを見る限りだと、
PHPの場合はもっと細かい設定みたいなことをしないといけないのでしょうか?
0898nobodyさん
2007/05/24(木) 09:57:37ID:???0899nobodyさん
2007/05/24(木) 10:06:32ID:FJNwm9Bzぱっと見ましたが例外処理とは関係ありませんよね?
0900nobodyさん
2007/05/24(木) 10:14:55ID:???分かっているじゃないか
そのjavaの例の例外処理と、Fetal ErrorやWarningが
出るところは関係ない
0901nobodyさん
2007/05/24(木) 10:29:23ID:FJNwm9Bzなるほど・・・
Javaと混同してたのが原因ですね。
もうすこし考えなおしてみます。
0902nobodyさん
2007/05/24(木) 10:37:43ID:???0903nobodyさん
2007/05/24(木) 11:22:07ID:???returnが返り値で、戻り値は・・・・
0904nobodyさん
2007/05/24(木) 11:44:30ID:???Java用語辞書ではあるが
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000157.html
0905nobodyさん
2007/05/24(木) 12:36:09ID:???もうそろそろだよな?
0907nobodyさん
2007/05/24(木) 14:41:50ID:???PHPを基準に考えてはいけない。
例外処理構文は通常処理と例外処理を分離して、
例外が発生した場合、tryブロックのそれ以降をすっ飛ばして
例外処理を一括して行ったり、例外の種類によって処理を変えたりするもの。
本来本格的なオブジェクト指向言語だと全てのエラーはExceptionクラスから派生してる。
ところがPHPはなんちゃってオブジェクト指向なのでほとんどただのエラーが返ってくる。
PDOクラスなんかでは例外を投げるように出来るんだけども。
だから例外処理構文としてはそれで間違ってはいない。
ただcatch(Exception)なんかでまとめて受け取るときは
echo $e->getMessage();
とした方がいいかな。
でまぁ結局、PHPのゼロ除算では例外を投げずにただのエラーを吐くだけなので使えないんだけど。
0908nobodyさん
2007/05/24(木) 15:10:53ID:Ultn4Y5Qよろしくお願いします
アップされるファイルの元々のファイル名がhoge.jpgだったとします
これをそのままの名前で保存した場合、すでに保存してあるファイル名と被る可能性があるわけで、
絶対に被らないような名前にする(私の場合は、登録するレコードのIDをファイル名につけています)が、
ダウンロードする場合、当然ですが、変更された味気ないファイル名、1.jpgになります
元々のファイル名でダウンロードさせるいい方法はありますか?
ちなみにテーブルはこうなっています
Tbl_file
【id】 【ファイル名(リネームされたやつ)】 【元々のファイル名】
1 1.jpg hoge.jpg
2 2.txt test.txt
3 3.jpg nantoka.jpg
0909908
2007/05/24(木) 15:14:52ID:Ultn4Y5Q【id】【ファイル名】【元々のファイル名】
1 1.jpg hoge.jpg
2 2.txt test.txt
3 3.jpg nantoka.jpg
0910nobodyさん
2007/05/24(木) 15:22:13ID:???header('Content-Disposition: attachment; filename="hoge.jpg")
0911908
2007/05/24(木) 15:29:24ID:Ultn4Y5Q素早い回答ありがとうございます
本当に助かりました
ありがとうございました
0912nobodyさん
2007/05/24(木) 15:34:49ID:IzNiejk0馬鹿の見本
0913nobodyさん
2007/05/24(木) 16:01:36ID:FJNwm9Bzどうもありがとうございます。
その説明で納得しました。
JavaのエラーとPHPのエラーは意味あいが違うのですね。
PHPにあわせた書き方ができるように精進します。
0914nobodyさん
2007/05/24(木) 16:05:55ID:o0IpBJnIif($_POST['name'] == "") { 該当処理 }
0915nobodyさん
2007/05/24(木) 16:10:49ID:c6PcIOvM0916914
2007/05/24(木) 16:17:00ID:o0IpBJnIありがとうございます。
0917nobodyさん
2007/05/24(木) 19:20:00ID:???$a = array(0=>"ゼロ",1=>"イチ");
$b = array(9=>"キュー");
array_merge や array_unshift を使うとキーが初期化されてしまいます
そこで $array = $a+$b; としたら思い通りの答えを取得できたのですが
マニュアルを見る限り上記のような方法を書いていないようなので
もっとちゃんとしたやり方があるなら教えてもらえませんか?
レス数が900を超えています。1000を超えると表示できなくなるよ。