【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カテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0041nobodyさん
2006/11/07(火) 10:30:30ID:???バージョンの問題やら、連鯖のphp仕様の問題で。
0042nobodyさん
2006/11/07(火) 10:32:51ID:???PHP関連の書籍 第3版
http://pc8.2ch.net/test/read.cgi/php/1150558685/
複数立ち読みしてバランスを取るしかないかも
0043nobodyさん
2006/11/07(火) 10:35:38ID:???session_start()の前の行にこれ入れてどこでヘッダーが出力されてるか確認。
headers_sent($file, $line);
echo "$fileの$line行目でヘッダ送信済み";
exit;
004540
2006/11/07(火) 11:06:10ID:oogNIDZJ参考にさせていただきます。
0046nobodyさん
2006/11/07(火) 11:59:54ID:???DBに書き出すのとどっちが早いのかな?やっぱファイル?
0047nobodyさん
2006/11/07(火) 12:02:55ID:???0049nobodyさん
2006/11/07(火) 13:24:06ID:oogNIDZJどのようにしてページをわけていいのかわかりません。
こんな感じで↓自動的にリンクを作りたいのですがご教授お願いいたします
index.php?page=1&a=5
index.php?page=2&a=10
index.php?page=3&a=15
0050nobodyさん
2006/11/07(火) 13:25:46ID:???0051nobodyさん
2006/11/07(火) 13:34:21ID:???index.php?page=2&a=15
ってしたとき、何が表示されるんだろ。
aいらないんじゃ
0052nobodyさん
2006/11/07(火) 14:05:32ID:???pageかaだけでいいんじゃないの?
で、index.phpの中で
$data = range(1,100); //表示データ全体
$len = 5; //1ページ5件
$page = (isset($_GET['page']))? intval($_GET['page']): 1; //ページNo.取得
$viewdata = array_slice($data, ($page - 1 ) * $len, $len); //表示データの抽出
foreach($viewdata as $line) {
echo "<li>$line\n";
}
0053nobodyさん
2006/11/07(火) 14:14:52ID:???$total_page = ceil(count($data) / $len);
for ($i=1; $total_page >= $i; $i++) {
echo "index.php?page=$i \n";
}
みたいな感じだな
ポインヨは、ページの総数は、全アイテム数を一ページあたりの表示件数で割ったものを
切り上げて出すってのと、ページに表示するアイテムの開始インデクスは (ページ数 -1) * 表示件数 で
求まるってことじゃないかな
Pagerとか呼ばれてる
0054nobodyさん
2006/11/07(火) 14:35:07ID:???//ポインヨかわいんよ。
for($i=0;$i<5;$i++){
echo 1+@$_GET['page']*5+$i.'<br>';
}
?>
0055nobodyさん
2006/11/07(火) 15:34:01ID:xXnFQ4+N$html="http://thesaurus.weblio.jp/content/IP";
$html2=file_get_contents($html);
このようにして、txtファイルに書き出すと、きちんと出力されているの
ですが、
$mozi="ルータ";
$html="http://thesaurus.weblio.jp/content/$mozi"; or /contents/ルータ
$html2=file_get_contents($html);
とすると、urlに格納した全角の文字をうまく解釈せず、「???[?^に該当
するページが見つかりませんでした」とテキストに出力されてしまいます。
ブラウザ上で直にurlに全角文字を入れたときは、きちんとした結果が
返ってきたのですが。。。
PHPファイルでurlに全角文字を格納した変数を使用するにはどうすれば
よいでしょうか?
0056nobodyさん
2006/11/07(火) 16:15:03ID:???よくしらんけど、urlencode関数とか? 文字コードとかどうなるのかよくわからんけど。
0057nobodyさん
2006/11/07(火) 16:16:36ID:???http://thesaurus.weblio.jp/content/%E3%81%82
こんなふうになるように、Unicodeをurlencodeすればいいのかな? たぶん。
0058nobodyさん
2006/11/07(火) 16:29:36ID:bLjeWEKolistテーブルのTEXT型のレコード「image」の基本値を「default.jpg」
にして、特に「image」が指定されていない場合「default.jpg」が入るようにしたいのですが
基本値のところにdefault.jpgと入力してレコード追加を行うと
#1101 - BLOB column 'image' can't have a default value
と出ます。
解決できる方法はあるのでしょうか?
基本値を何か設定できればソースのほうで変換して対応できるのですがどうもうまくいきません・・・・
基本値の設定の方法など特にやるべきことがありましたらよろしくお願いします。
005955
2006/11/07(火) 16:31:43ID:xXnFQ4+N006058
2006/11/07(火) 16:34:03ID:bLjeWEKoimageフィールドのフィールドタイプがTEXTだと脳内変換していただければ・・・・
0061nobodyさん
2006/11/07(火) 17:48:16ID:???0062nobodyさん
2006/11/07(火) 17:55:27ID:6NR/KJfFcurl関数を使用したいのですが、標準だと使用できるようになっていないと
調べたところわかりました。実際、作成したスクリプトもcurl関数の
ところでエラーが出てしまいます。
そこで、PHPマニュアルなど、curl関数の使用方法を調べたのですが、
どれも分かりにくくて、設定をすることができませんでした。
どなたか、わかり易く教えていただけませんでしょうか?
よろしくお願いします。
0063nobodyさん
2006/11/07(火) 17:58:00ID:???0064nobodyさん
2006/11/07(火) 18:11:00ID:KW9fbgwt・配列に特定の数が入っている(配列の数は、10個だったり100個だったりする)
・10桁の数字をユーザに選んでもらう。
・その10桁の数字を元に、配列の中からランダムに5個の組み合わせが生成される
(組み合わせの5個はダブってはいけない)
・数字が変わらない限りは、毎回同じ組み合わせがはき出される
毎回ランダムにはき出すパターンは、わかるのですが、逆に同じ物を毎回はき出すという
方法が思いつきません。
どなたかご教授願います。
0066nobodyさん
2006/11/07(火) 18:20:36ID:???$array = range(1,100);
$seed = 8594037143;
srand($seed);
shuffle($array);
$array = array_slice($array,0,5);
var_dump($array);
?>
こんな感じ?
ちなみに単なる興味から聞くけどそれどんなシステムなの?
0067nobodyさん
2006/11/07(火) 18:38:45ID:KW9fbgwtありがとうございました。
ちなみに、この方法で配列の数が変わった場合もはき出す数は
ものは同じになりますか?
使い方は、言葉遊びのプログラムです
006855
2006/11/07(火) 18:42:31ID:xXnFQ4+N今度は
$mozi="ルータ";
$QUERY_STRING =urlencode($mozi);
$html=htmlentities($QUERY_STRING);
$html2="http://thesaurus.weblio.jp/content/$html";
$html3=file_get_contents($html2);
このようにし、$html2の内容(変換されたURL)を見ると、
http://thesaurus.weblio.jp/content/%83%8B%81%5B%83%5E と変換
されました。しかし、ブラウザでこのURLにアクセスしても、
"???[?^に該当するページが見つかりませんでした" と表示されて
しまいます。
きちんとアクセスできるようにURLをエンコードするにはどのように
すればよいのでしょうか?
0069nobodyさん
2006/11/07(火) 18:43:49ID:???ん〜ならないねぇ。
どんな条件が求められてるのか分からないから何とも言えないけど
そうしたいならsrandやrandを駆使すれば何とかなるんじゃないかなぁ
007155
2006/11/07(火) 19:04:03ID:xXnFQ4+Nもし、変なことやってたらすいません。
$mozi="ルータ";
$mozi2=mb_convert_encoding($mozi,'UTF-8',auto);
$QUERY_STRING =urlencode($mozi2);
$html2="http://thesaurus.weblio.jp/content/$html";
$html3=file_get_contents($html2);
としたのですが、同じような結果(???[?^に該当するページ・・)
となってしまいました。
そうじゃないということでしたら、ご指摘いただきたいのですが。。。
0072nobodyさん
2006/11/07(火) 19:06:07ID:???特定の条件で同じ内容を出したいんならそれはランダムって言わないだろう。
条件から計算なりして抽出すればいいんじゃないの?
007455
2006/11/07(火) 19:09:21ID:xXnFQ4+N正しくは
mozi="ルータ";
$mozi2=mb_convert_encoding($mozi,'UTF-8',auto);
$QUERY_STRING =urlencode($mozi2);
$html=htmlentities($QUERY_STRING);
$html2="http://thesaurus.weblio.jp/content/$html";
$html3=file_get_contents($html2);
です。
0075nobodyさん
2006/11/07(火) 19:09:29ID:???> $html=htmlentities($QUERY_STRING);
これは余分。urlencodeだけで十分なはずだよ。
0076nobodyさん
2006/11/07(火) 19:11:54ID:???mozi="ルータ";
$html =urlencode($mozi);
$html2="http://thesaurus.weblio.jp/content/$html";
$html3=file_get_contents($html2);
で、ソースをUTF-8で保存すればOK
007855(74)
2006/11/07(火) 19:19:38ID:xXnFQ4+Nshift-jis です。
0079nobodyさん
2006/11/07(火) 19:34:02ID:???php.iniの設定が間違っててautoではShift_JISを検出できないんだろ。
>>76でいいんじゃねーの
0080nobodyさん
2006/11/07(火) 19:36:10ID:???0081nobodyさん
2006/11/07(火) 19:40:15ID:???文字コードの知識もないやつがソースにShift_JISを使ったらいかん。PHPでは本来使えないぞ。
ま、文字コードの知識が無いからこそそんな真似しちゃうんだろうけど。
008255(74)
2006/11/07(火) 19:59:31ID:xXnFQ4+N本当にありがとうございました。
0083nobodyさん
2006/11/07(火) 20:14:04ID:???探した限りマニュアルには見当たらなかったので。
よろしくお願いします。
0084nobodyさん
2006/11/07(火) 20:38:22ID:???<?php
print($hoge);
?>
というスクリプトに
hoge.php?hoge=foobar
とリクエストしても「foobar」が返ってこなくなってしまいました。
print($_GET['hoge']);
に直せば動くことは分かったのですが、$hogeの書式で書いた
スクリプトが多く、POSTなのかGETなのかを調べて書き直すのに
時間がかかりそうです。
php側の設定を変えて従来の方法で変数を参照させるようにする
方法はないでしょうか?
0085nobodyさん
2006/11/07(火) 20:45:27ID:???register_globals = Off
を
register_globals = On
にすればいいということで、自己解決しました。
0086nobodyさん
2006/11/07(火) 20:46:48ID:???大昔にPHP側で変更されたんだお
0087nobodyさん
2006/11/07(火) 20:57:13ID:???どうやらphp4系でバイナリだけバージョンアップを続けてきたのが、
php5に入れ替わった拍子に設定ファイルまで飛んでしまったようです。
これからphpの仕様にあわせていくように作業します。。
009082
2006/11/07(火) 21:54:07ID:xXnFQ4+N76と80のどちらでもできました。ありがたいことです。
0091nobodyさん
2006/11/07(火) 22:49:06ID:???最初のPHPは「HTMLをちょっとだけ拡張した、簡単・お手軽・お手抜き言語」からスタートしてるから。
そもそもローカル関数なにそれ?くらいのレベルで。
<input>でname=hogeって書いてるんだから$hogeでアクセスできて当然!っていう。
それがいつの間にやら人気が出ちゃって、変に規模の大きなまともなプログラムを書くやつが増えたから
便利な機能も消さなきゃいけなくなっちゃったんだよ。
0092nobodyさん
2006/11/07(火) 22:51:40ID:???0093nobodyさん
2006/11/07(火) 23:50:04ID:???PHP = パーソナル・ホームページ
だったしな
0094nobodyさん
2006/11/08(水) 00:02:40ID:???センセイ、PHP4以降しか知りません
0095nobodyさん
2006/11/08(水) 00:53:08ID:EFItiHArそのファイルの1行目で出力されています。
session_start();1を一行目にいれても同じように
1行目で出力されていますとでるのですが
includeを消してもエラーがでてしまいます。
0097nobodyさん
2006/11/08(水) 02:04:51ID:EFItiHArUTF-8で保存しています。
それじゃだめなのでしょうか?
0098nobodyさん
2006/11/08(水) 02:22:13ID:???>>24ですでに指摘されてるけどBOMだろう。
テキストエディタにBOMをつけずに保存する設定が無いか確認。
0099nobodyさん
2006/11/08(水) 05:57:27ID:j+v5xEVZ010199
2006/11/08(水) 06:27:03ID:j+v5xEVZWebサーバ上でPHPを動かします。
linuxとwinとで違う動作、動かない動作を教えてください。
一ヶ月調べてわかったことはシムリンクがlinuxしか使えないことです。
0102nobodyさん
2006/11/08(水) 07:46:00ID:???ごく一般的な手法でのWeb構築の観点から言えば、ほとんどの場合両方の環境で動く。
symlinkのようにファイルシステムに関係するものや、片方のOSでしかAPIが提供されていないものも少数ながらあるけど、どちらかでしか動かないものはマニュアルに明記されているから1つ1つ確認しろ。
0103nobodyさん
2006/11/08(水) 08:04:42ID:???どこかに一覧表ありませんか?
0104nobodyさん
2006/11/08(水) 09:50:21ID:???効率悪すぎ
0105nobodyさん
2006/11/08(水) 09:51:38ID:???一ヶ月もかけたら、かなり頭の悪い奴でも一覧ピョウが出来てるはずだよ
0107nobodyさん
2006/11/08(水) 10:04:47ID:???自分の書くコードに含まれる関数は全て、一度はマニュアルに目を通していて当然。
面倒とかそれ以前の問題だな。
たとえwin/linuxの違い云々が記憶から薄れていても、環境に依存するかどうかくらいはOSの仕組みが大雑把にでもわかっていればすぐに気付くはずなので、必要に応じてマニュアルを読み返せばいいだけ。
0110nobodyさん
2006/11/08(水) 13:20:15ID:???0111nobodyさん
2006/11/08(水) 13:22:37ID:???動作に影響を及ぼす事はあんまないんじゃないかな
0112110
2006/11/08(水) 13:29:12ID:???そろそろ仕事も5ベースにやろうかと思います。
0114nobodyさん
2006/11/08(水) 14:17:54ID:???その場で適当に決めると後でわかりにくくなるのである程度決めたほうが良い感じはするけど
なかなかルール化が難しい。参考までに「俺はこうしてるぞ」ってのがあれば教えてください。
0115nobodyさん
2006/11/08(水) 14:24:26ID:???0116nobodyさん
2006/11/08(水) 14:26:59ID:???0117nobodyさん
2006/11/08(水) 14:50:21ID:???HTMLファイルからコピペするときなんか\"やら\nを挿入するのめんどい。
0118nobodyさん
2006/11/08(水) 15:14:23ID:???0119nobodyさん
2006/11/08(水) 15:20:51ID:???ポリシーってほどのポリシーはないなぁ。
HTML、FORM、TEXTのどれかを種類別に選択してる程度。
別に全部一緒でも構わないんじゃないかって思うけど。
>>116-117
単にHTMLを書きたいだけなら?>〜<?phpでHTMLモードに入っちゃうけど
それを変数に入れたい場合はヒアドキュメント使うことが多いかな。
やっぱ " をエスケープとかって読みにくくなるし後で修正しづらいしで、
HTMLモードかヒアドキュメントのどっちか以外ではHTMLは書かない。
まぁ大抵はHTMLモードだけでこと足りてるけど。
コードの途中にHTML書くこと自体が滅多にないし。
0120nobodyさん
2006/11/08(水) 15:22:52ID:???<?xml version="1.0" encoding="Shift_JIS"?>
とかの類も、あるんよ。
0121nobodyさん
2006/11/08(水) 15:24:48ID:???0123nobodyさん
2006/11/08(水) 15:51:17ID:???というプログラムがあるのですが、文字のみを入力すると正常に表示されますが、
タグを入れるとおかしくなります。
例:<a href="index.html">別ページ</a> を入力フォームに入れて送信すると
http://localhost/"index.html/" というURLになる
storngなどの装飾タグでは問題ありませんでした。何が原因でしょうか?
0125nobodyさん
2006/11/08(水) 16:12:33ID:???なんかよく分からんが表示ページのとこを
<?=$form_date?>から<?=htmlspecialchars($form_date)?>
にすればいいだけの話なんじゃないの?多分。
0126125
2006/11/08(水) 16:17:20ID:???でもリンクタグを書くと "index.html" と左右に " がくっついたURLになっちゃう、
って話なら、<?=stripslashes($form_date)?> かなと思う。
クロスサイトスクリプティング問題バリバリだから表のサイトで公開するなよ、と思うが。
0127nobodyさん
2006/11/08(水) 16:40:35ID:X5fG3I/H今、「超極める!PHP」という本を読んでいるのですが、
098ページのところに
session.cache_limiter設定を利用するには
セッション管理を開始しなければなりません。
セッションが必要な場合でもキャッシュ制御を
行いたい場合は多くあります。
このような場合はheader関数を用いてキャッシュ制御を行います。
と、書いてあるのですが、この「セッションが必要な場合」というのは
「セッションが必要ない場合」の打ち間違いでしょうか??
0131nobodyさん
2006/11/08(水) 16:55:53ID:???そこだけ切り出されてもどちらとも言える
0132nobodyさん
2006/11/08(水) 17:04:29ID:???> セッションが必要な場合「でも」キャッシュ制御を・・・
ってのは論理的におかしいわな。
おそらく筆者は、
・キャッシュ制御は基本的にsession.cache_limiterでやる
・でもセッションの必要がないならheader()でやる
っていう流れで説明したいんだろうな。
0133nobodyさん
2006/11/08(水) 17:58:29ID:???PHP作れば問題ないと思いますか?
言語が色々ありすぎて、どれから学べば良いのかわからんのです。
0134nobodyさん
2006/11/08(水) 18:06:17ID:???0137nobodyさん
2006/11/08(水) 18:08:57ID:???0138nobodyさん
2006/11/08(水) 21:00:25ID:QUV620Zg一ヶ月間、1件=5項目としてデータとして保存し、
管理者のみ管理画面から回答をみることができる仕様です。
トータル件数10000件集まると仮定したら
ファイルとMysqlどちらを使用するのが妥当ですか?
0139nobodyさん
2006/11/08(水) 21:05:08ID:???早く作れる方選べよ
0140nobodyさん
2006/11/08(水) 21:34:37ID:???アンケートの内容にもよるけど、分析に使えるデータを含むなら、
MySQLがいいと思う。
感想だけとかなら、どっちでもいいけど。
0141nobodyさん
2006/11/08(水) 22:03:58ID:???ちょっと質問がよくわからないんだが、
・一ヶ月に一度、5問で構成されるアンケートを一つ作成する
・アンケートに回答する人は1アンケートにつき10000人とする
ってことでOK?
あとそのアンケートに回答する人ってのはどういう人間だ?
自分で管理してる会員か?それともたまたまアクセスしてきたユーザか?
■ このスレッドは過去ログ倉庫に格納されています