【PHP】下らねぇ質問はここに書き込みやがれ 53
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/08/25(土) 22:11:08ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0524nobodyさん
2007/09/01(土) 22:44:58ID:VWNhFO8zソースを見て勉強したいと思っています。
0526nobodyさん
2007/09/02(日) 00:23:30ID:???global宣言した変数ってコード追ってるときに判別しづらくて
バグの元にならない?
0527グローバルは馬鹿っていってごめんなさい。とはいうものの
2007/09/02(日) 01:20:55ID:???変数名$gblABCとかって接頭文字くっつける
かもしれない。
0528nobodyさん
2007/09/02(日) 01:44:25ID:???変数名にプリフィックス付けるなんて、VBじゃないんだから止めろよバカ
お前の頭は、10年前から進歩ないのかよ
0529nobodyさん
2007/09/02(日) 02:02:17ID:???お前、まさかハンガリアン記法とプリフィックスを
ごっちゃにしてないよな?
型を示すプリフィックスのハンガリアン記法は否定されているが、
スコープを示すプリフィックスは否定されてねーよ。
Javaだってメンバ変数の前かあとに _ をつけたりしてるだろ。
0530nobodyさん
2007/09/02(日) 02:14:22ID:QvprOJVvアクセス解析をつくっているのですが、ユニークをどうやって取得・カウントすればいいか検討もつきません
つまらない素人質問で恐縮ですが、ご教示願います
0531nobodyさん
2007/09/02(日) 02:26:42ID:???0532nobodyさん
2007/09/02(日) 02:32:34ID:QvprOJVvそこまでは自力でわかりましたが、具体的にどのようにすれば良いのでしょうか?
0533nobodyさん
2007/09/02(日) 02:36:52ID:???そこまでわかってんなら書け
0534nobodyさん
2007/09/02(日) 03:05:17ID:t27ykBXAシステムユーザを作らないとユーザが作成できません。
rootユーザでapacheを動かせば作れるんですが。。。。。
一時的にrootで動かすにはやっぱりsudoを使わなければならないでしょうか?
宜しくお願いします。
0536nobodyさん
2007/09/02(日) 03:26:09ID:???0537534
2007/09/02(日) 03:27:06ID:t27ykBXA( ゚д゚)ダレニモメールシテナイヨ
0538nobodyさん
2007/09/02(日) 03:40:21ID:QvprOJVvありがとうございました
0539nobodyさん
2007/09/02(日) 03:45:09ID:???webmail とシステムユーザの作成に何の関係が?
たぶんシステムのユーザのメールボックスを使いたいのだろうが、
エイリアスで不足な理由は?
やっぱり使わなきゃダメかなぁみたいなノリでroot権限を使わない方がいいよ。
0540534
2007/09/02(日) 03:49:52ID:t27ykBXAWeb上でユーザの作成、削除をしたいんです。
formにて必要な情報を管理メールアドレスへ送ればいいのでしょうけど、
リアルタイムで作成したいと思っています。(yahooやgmailのような仕組み)
なのでやっぱりsudoとshellscript又はsystem()関数を使わなければいけないかなと思ったんですが。。。
0541nobodyさん
2007/09/02(日) 03:54:37ID:???いやいや、だからメールボックスだけが必要なら、
システムのユーザを作る必要はどこにもないんだよ?
エイリアスで十分でしょ。
postfixなどには、エイリアスをデータベースに格納する設定があるから、
まずはそいつを調べるんだ。
0542nobodyさん
2007/09/02(日) 04:06:36ID:???連番の配列を作るにはどうしたらいいですか?
0547nobodyさん
2007/09/02(日) 04:55:15ID:???0548nobodyさん
2007/09/02(日) 11:59:26ID:IAvjtU3B・HTMLのフォームに初期値を表示したい。
・初期値は別のテキストファイルからphpで呼び出したい。
・下記のソースではフォームに「$file_data[0]」,「$file_data[0]」と表示されてしまいます。
・本当に表示させたいメッセージは「名前を入力してください」,「問い合わせ内容を入力してください」です。
【data2.txtの中身】
名前を入力してください
問い合わせ内容を入力してください
【環境】
サーバーのOS:CentOS 4.5
Webサーバー:Apache 2.0.52
PHP:5.1.6
0549nobodyさん
2007/09/02(日) 12:00:44ID:IAvjtU3B【index.htmlの中身】
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>フォームに初期値を表示する</title>
</head>
<body>
<?php
$file_data = file("data2.txt");
?>
<form method="post" action="form.php">
お名前:<input type="text" name="name" value="$file_data[0]">
<br>
問合せ:<input type="text" name="contact" value="$file_data[1]">
<br>
<input type="submit" value="送信">
</form>
</body>
</html>
0550nobodyさん
2007/09/02(日) 12:09:48ID:???お名前:<input type="text" name="name" value="<?php echo $file_data[0] ?>">
問い合わせも同様
0551nobodyさん
2007/09/02(日) 12:22:39ID:IAvjtU3Bありがとうございます。
正常に動作する事を確認しました。
※補足
>>550さんの記述+index.htmlをindex.phpにする事で動作しました。
何となく過去の経験上、phpは拡張子がhtmlでも動作した気がしたのですが、htmlのままでは動きませんでした。
0553nobodyさん
2007/09/02(日) 12:44:03ID:3ZNK8eVt$file = fopen("xxx.txt","r");
while (!feof($file)) {
$line = fgets($file,1024);
if ($line == 5){
fseek($file, $get);
$line = fgets($file,1024);
echo ("$line<br>");
}
$get = ftell($file);
}
fclose( $file );
これじゃできないんです。どうすればいいでしょうか
0554nobodyさん
2007/09/02(日) 13:33:02ID:???0555nobodyさん
2007/09/02(日) 13:37:02ID:IAvjtU3Bありがとうございます。
ググッて意味が理解でき、htmlでも動作するようになりました。
0556nobodyさん
2007/09/02(日) 15:36:12ID:bbqIMTHDhttp://allabout.co.jp/internet/database/closeup/CU20050321A/index5.htm
まあ読み込むたびに手動でエンコード変えればちゃんと見れるのだが・・・
どうすりゃデフォルトでShift-JISやEUC-JPで読み込んでくれるのよ?
0557nobodyさん
2007/09/02(日) 15:50:42ID:???0559nobodyさん
2007/09/02(日) 16:06:39ID:bbqIMTHDFFxだとうまく表示されるんだがIEだとなぜか西ヨーロッパ言語(ISO)になっちまうんだよ
ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
どうすりゃいいのさ
0560nobodyさん
2007/09/02(日) 16:10:25ID:???0561nobodyさん
2007/09/02(日) 16:11:35ID:???>ちなみにFFxだとエンコードはうまくいってるのにPHP5がちゃんと動作しない
なんでPHPがブラウザに依存するんだよ
0562nobodyさん
2007/09/02(日) 16:15:54ID:???どこかに落ちてませんか?
0563nobodyさん
2007/09/02(日) 16:16:38ID:???0564nobodyさん
2007/09/02(日) 16:25:36ID:cq55lstZ$jikan = time();
$_SESSION['jikan'] = $jikan;
}
jikan();
echo $_SESSION['jikan']
jikan関数を定義して、$jikanに現在の時間を入れて、$getに$jikanを代入したのですが、
ブラウザを更新するたびに$getの値が変わってしまいます。
$getにはtime()って関数がそのまま代入されてるからでしょうか?
$getにはじめに取得した時間のまま値を変えずにするにはどうしたらいいのでしょうか?
0566nobodyさん
2007/09/02(日) 16:34:15ID:cq55lstZなんども定義関数を呼び出してました。
ありがとうございました。
0567nobodyさん
2007/09/02(日) 16:37:14ID:???高速化できますか?
0568nobodyさん
2007/09/02(日) 17:06:14ID:???0569nobodyさん
2007/09/02(日) 17:08:25ID:???1GhzのCPUは一秒間に1000000000の命令を実行できるから
改行一つ当たり0.00000001秒ぐらい。
0573nobodyさん
2007/09/02(日) 17:22:33ID:???ネットで調べろとは、また無茶なことを言うな。
ほれみろ、反論できやしない。
0575nobodyさん
2007/09/02(日) 17:25:48ID:???たかが改行を一つ飛ばすぐらい。
機械語でも、比較命令・アドレス加算、ジャンプの
数命令程度ですむわけだが?
0576nobodyさん
2007/09/02(日) 17:26:27ID:???0578nobodyさん
2007/09/02(日) 17:28:14ID:???もっとかかると言いたかったのだろうが、
改行を飛ばすコードなんて機械語でもほんの数命令でしか
ないことに気づかなかった馬鹿ということでFA?
それ以外に何を言いたいのかわからない。
0579nobodyさん
2007/09/02(日) 17:29:36ID:???0580nobodyさん
2007/09/02(日) 17:29:40ID:???お前さ、自分で反論していて、
その反論の理由をいえないなんて恥ずかしくないの?
私はあなたの意見の反論する。
その理由はお前がググレ。
これを議論の場で言ったら恥をかくだけだと思うよ。
0582nobodyさん
2007/09/02(日) 17:33:18ID:???スクリプトの解析処理がどういう仕組みになってるかによって
改行コードの有無による処理コストは変わってくるし、
そこを調べずに論議してもまるで無意味。
でも多分、改行コードは単独で判定されてるわけじゃなく、
正規表現での構文解析で他の記号とまとめて処理されてると思うので、
構文解析としては改行があっても無くても速度はまるで変わらず、
差が出るのはディスクから読み込むときにバッファが小さくて済み、
サイズが数十〜数100バイト小さい分だけディスクI/Oが早く完了する、
という点に尽きると思う。
この速度差はCPUのクロックだけじゃなく、ディスクのI/O速度にも依存する。
0583nobodyさん
2007/09/02(日) 17:36:40ID:7yTluSfaできればデファクトスタンダードになりそうなので
0585nobodyさん
2007/09/02(日) 17:37:49ID:???正規表現といっても、結局は最終的には
単純な機械語による比較とループとして実行されるわけで、
結局改行一つで増加するコードは10命令文にもならないだろうな。
0.00000001秒は妥当なんじゃね?むしろそれ以下。
0586nobodyさん
2007/09/02(日) 17:40:01ID:cq55lstZ$arrayに格納された値に含まれる1を削除したいのですが、
以下のコードよりももっと良い書き方ありませんでしょうか?
foreach($array as $k => $v) {
$hairetu[] = str_replace("1", "", $v);
}
0587nobodyさん
2007/09/02(日) 17:41:55ID:???> 今更PHP4がデファクトスタンダードになるわけないじゃん。
デファクトスタンダードになりそうな
フレームワークを聞いてるんだろ。
お前は日本語もわからんのかw
0589583
2007/09/02(日) 17:47:43ID:7yTluSfaZend FrameworkのようにPHP5のみじゃなくて
現状でPHP4が使えて今後デファクトスタンダードになりそうなフレームワークということです。
0590nobodyさん
2007/09/02(日) 17:49:19ID:???1割くらいは高速化するだろう
0591nobodyさん
2007/09/02(日) 17:50:01ID:???0592nobodyさん
2007/09/02(日) 17:50:17ID:7yTluSfaありがとうございます
試してみます
0597nobodyさん
2007/09/02(日) 18:37:55ID:SjqAaNKw初心者です 参考書を片手に勉強中なんですが
PHP mysqlでチェックボックスを使い フォームでチェックされた名前のも
のだけを取り出したいのですが 上手くいきません
チェックボックス側
<form method="GET" action="./hoge.html" >
<table width="778" border="0" cellpadding="0" cellspacing="1" bgcolor="#999999">
<tr> <td width="70" height="32" valign="top" bgcolor="#FFFFFF" class="unnamed2"><b>名前</b></td>
<td valign="top" width="229" bgcolor="#FFFFFF" class="unnamed2">
<?php
for ($si = 1; $i <=10; $i++) {
echo <input type=\"checkbox\" name=\"c1[]\" value=\"{$row['id']}\">{$row['id']};
}
?>
表示側
//データーを受け取る
$c1 = @$_POST["c1"];
$sql = "SELECT * FROM hoge";
//データーが選択されているときはWHERE以下を組み立てる
if (count($c1) > 0) {
//分割されたここのキーワードをSQLに反映
$where = "WHERE (id IN (";
for ($i = 0; $i < count($c1); $i++) {
$where .= $c1[$i];
if ($i < count($c1) - 1) {
$where .=","; }
else {
$where .= "))"; } } }
for ($i = 0; $i < count($c1); $i++) {
echo "$c1[$i]"; }
echo "<p>e".$sql.@$where;
0598nobodyさん
2007/09/02(日) 18:38:39ID:SjqAaNKw0599nobodyさん
2007/09/02(日) 18:44:42ID:???何を教えてほしいんだよ
ひどい質問だ
0600nobodyさん
2007/09/02(日) 18:46:15ID:???" 1 )); delete * from hoge; --"
とか送ってこられたら楽しいことになるぜ。へっへっへと
関係ないことを指摘しておく。
0601nobodyさん
2007/09/02(日) 18:47:16ID:???.@$where;
何言語?
0603602
2007/09/02(日) 18:50:51ID:???0605nobodyさん
2007/09/02(日) 20:57:00ID:lMwXxY/uあと、PHPでのファイル・クラスのネーミングルールとか。
0606nobodyさん
2007/09/02(日) 22:08:55ID:???として、
echo "$a ちんちん";
と
echo $a." ちんちん";
のどっちが速いっすかね?
0608nobodyさん
2007/09/02(日) 22:37:36ID:O0vZytK1http://pc11.2ch.net/test/read.cgi/php/1188731930/
これわかる人いませんか?
ぜんぜん表記されないのですが、かいてもよまれないと
言われたんですが、なんとかしたいんです。
0610nobodyさん
2007/09/02(日) 23:00:17ID:???検索するとたくさんヒットしたので試してみたけど上手くいかず
誰かセットアップ方法の解説願います
0611nobodyさん
2007/09/02(日) 23:18:10ID:pKjcWHTrなんでろだにあげなかったの?バカなの?
0612nobodyさん
2007/09/02(日) 23:38:24ID:O0vZytK1UPしました。
よろしくお願いします。
0614nobodyさん
2007/09/02(日) 23:40:52ID:???セットアップというか
Smarty.class.phpをincludeする
$smarty = new smarty;
$smarty->template_dir = "./templates/";
$smarty->template_c = "./templates_c/";
みたいに宣言する
./templates/ 内にテンプレートファイルを作成する。
./templates_c/ のパーミッションを707や777にする
PHPファイルで
$smarty->display("template.html");
のようにテンプレートを指定して表示する。
0615nobodyさん
2007/09/02(日) 23:40:55ID:pKjcWHTr本作ったトコにでも聞け
自分で作れないうちは会社で運用なんてすんな
0616nobodyさん
2007/09/02(日) 23:43:46ID:???とりあえずショートタグ「<?」は推奨されないからやめとけ。
最近のPHPのデフォルトじゃ動作しない可能性がある。
正しくは「<?php」と書く。
0617nobodyさん
2007/09/02(日) 23:48:36ID:???ちなみにこれ、最初に表示されるページはどれ?
あと ktouroku.php はPHPコードを含んでないようだけど、これも表示されないの?
0618nobodyさん
2007/09/03(月) 00:10:05ID:???> とりあえずショートタグ「<?」は推奨されないからやめとけ。
それよく聞くんだけど、この前理由を探したんだけど
よくわからなかった。なんで?
あとショートタグは<?=とは違うんだよね?
こっちは使っていいの? 単純に変数の内容を表示するだけなら
タイプ数が減っていいんだけど。
0619nobodyさん
2007/09/03(月) 00:17:29ID:KucjbbQWこれは表示されます。
それ以降が表示されません。
<?phpって
<?でいいのかな?
0620nobodyさん
2007/09/03(月) 00:17:43ID:???「<?=」もショートタグの1種。これは「<?php echo 」の省略形。
ショートタグはPHPしか使わない環境であればそれほど困らないけど、
XMLなどの他にも「<?***」形式の特殊タグを使うシステムが混在すると
「<?」だけでPHPと認識することはできなくなるので、将来性・拡張性に欠ける。
特に昨今はXMLとの混在環境も増えてきているので推奨されないというわけ。
その辺をきちんと意識して設計できる上位の人間なら好きにすれば、ってとこだが
分かってもいないのにその環境に慣れてしまうのは教育上よろしくないかと。
0621nobodyさん
2007/09/03(月) 00:25:41ID:???ktouroku2.phpを呼び出すと何も表示されない、ってこと?
ちなみにURL直打ちでktouroku2.phpを呼び出しても真っ白?
require('./include/init.inc');
の行を
//require('./include/init.inc');
とコメントアウトしてみたらどーなる?
ところで凄い気になるんだが、
<meta http-equiv=content-type content="text/html;charset=euc-jp">
とEUC-JP指定してるようだがソースはSJISで書かれてるよな。
これは本当はどっちにしたいんだ?
0622nobodyさん
2007/09/03(月) 00:36:02ID:KucjbbQWやってみました。
ktouroku2.phpが表示されました。
でも登録画面のktouroku3.phpはだめでした。
EUCでやりたいです。
このソースの書き方ではだめなの?
0623nobodyさん
2007/09/03(月) 00:38:21ID:???あー。やっぱり人間(コンピュータも?)の混乱が理由なのね。
もっと重大な、セキュリティ上の問題があるのかと思っていた。
<?=もやっぱり使っちゃだめなのだろうか?
php以外でこれ使うやつある?
まあ、phpだとわかりにくいが理由なら
その理由には納得するから、大きなプロジェクトでは
<?=も使わないけどね。
ただ、セキュリティ上の問題がないのなら、
個人的な小さなツールやテスト的になら使うけど。
■ このスレッドは過去ログ倉庫に格納されています