【PHP】下らねぇ質問はここに書き込みやがれ 32
レス数が1000を超えています。これ以上書き込みはできません。
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カテゴリ)の各スレで
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0002nobodyさん
2006/11/06(月) 22:08:21ID:???http://pc8.2ch.net/test/read.cgi/php/1153652403/
【PHP】下らねぇ質問はここに書き込みやがれ 26
http://pc8.2ch.net/test/read.cgi/php/1154923910/
【PHP】下らねぇ質問はここに書き込みやがれ 27
http://pc8.2ch.net/test/read.cgi/php/1156262092/
【PHP】下らねぇ質問はここに書き込みやがれ 28
http://pc8.2ch.net/test/read.cgi/php/1157284868/
【PHP】下らねぇ質問はここに書き込みやがれ 29
http://pc8.2ch.net/test/read.cgi/php/1158434799/
【PHP】下らねぇ質問はここに書き込みやがれ 30
http://pc8.2ch.net/test/read.cgi/php/1159979905/
0003nobodyさん
2006/11/06(月) 22:09:52ID:???■本家マニュアル http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル http://pear.php.net/manual/ja/
■メーリングリスト http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル http://framework.zend.com/manual/ja/
(以下英語)
■Smarty http://smarty.php.net/
■Zend本家 http://www.zend.com/
■Zend Framework http://framework.zend.com/
■php | architect http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
0004nobodyさん
2006/11/06(月) 22:10:58ID:???http://pc8.2ch.net/php/subback.html
PHPで検索汁!
0005nobodyさん
2006/11/06(月) 22:11:44ID:???1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
→ http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
→ Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
→ 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
→ {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
→ cronかタスクスケジューラを使え。
7.extractって危険なの?
→変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
→ URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
→ .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
0006nobodyさん
2006/11/06(月) 22:12:42ID:???→ 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
→ データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
→ ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
→ 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
→ よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
→ セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
→ strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
→ まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
→ C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
→ fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
→19.を参照
21. 画像処理一般 or GDの限界
→ ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
→ 好きにしてください
0007nobodyさん
2006/11/06(月) 22:21:11ID:???0008nobodyさん
2006/11/06(月) 22:28:41ID:GtGInv5r例えば、「バナナ(1)、りんご(2)、みかん(3)」とあったとします。()内は順番です。
これをechoすると
バナナ
りんご
みかん
と表示したいのです。どうすればいいかずっと悩んでいるのですが、
わかりません。アドバイスいただけないでしょうか
0009nobodyさん
2006/11/06(月) 22:56:06ID:???ユーザー関数で比較してソート
例文ちょっと改造して動かしてみたがこれでいけたぽいぞ
$array = array(
"みかん(3)",
"バナナ(1)",
"りんご(2)"
);
function cmp($a, $b)
{
preg_match("/\(([0-9]+)\)/", $a, $a);
preg_match("/\(([0-9]+)\)/", $b, $b);
$a = $a[1];
$b = $b[1];
if ($a == $b) {
return 0;
}
return ($a < $b) ? -1 : 1;
}
usort($array, "cmp");
0011ご伝授下さい
2006/11/07(火) 00:13:59ID:???http://example.com/hoge.php
というファイルに
<?PHP
$query = getenv ("PATH_INFO");
include("$query");
print"<img src=\"./img/hoge.jpg\">";
?>
と記載しております。
http://example.com/hoge.phpでアクセスすると
<img src=\"./img/hoge.jpg\">は通常通りブラウザで画像は表示されますが、
http://example.com/hoge.php/hogehoge/でアクセスすると
<img src=\"./img/hoge.jpg\">は画像は表示されません。
対応策としては画像等のパスを<img src=\"/img/hoge.jpg\">にするしか無いのでしょうか?
初心者ですみません><
どなたかご伝授の程、よろしくお願い致します。
0012nobodyさん
2006/11/07(火) 00:31:59ID:???サーバーはhoge.phpがファイルであることを認識できるけど、ブラウザはhoge.phpがファイルなのかディレクトリなのか判別できない。
つまり、/hogehoge/の部分がPATH_INFOであるかどうかは、ブラウザにはわからない。
だから、imgタグのsrcに相対パスを使うと、ブラウザは/hoge.php/hogehoge/img/hoge.jpgから画像を取得しようとしてしまう。
(この場合、サーバーはhoge.phpに対して/hogehoge/img/hoge.jpgをPATH_INFOとして渡していて、テキストデータを出力しているので、当然画像は表示されない)。
srcには相対パスを使わず絶対パス(/img/hoge.jpg)にするのが無難だと思う。
0013nobodyさん
2006/11/07(火) 00:33:25ID:???その発想はなかったわ
0014nobodyさん
2006/11/07(火) 00:34:33ID:???つーか、ちょっとまて。
$query = getenv ("PATH_INFO");
include("$query");
はやめとけってwww
サーバーのリソースに不正アクセスされまくるぞwww
0015ご伝授下さい
2006/11/07(火) 00:53:16ID:???ありがとうございます。無難に(/img/hoge.jpg)に変更します。
解りやすいご説明ありがとうございました。
>>14
ありがとうございます。早速修正します^^
0016nobodyさん
2006/11/07(火) 01:27:29ID:x6c5yFrE接続するときに必要な
$conn = mysql_connect('localhost','my_id','my_pass');
mysql_select_db('my_id',$conn);
これを毎回書き込むのがめんどくさいと感じているのですが
別のPHPファイルに記述しておいてincludeで呼び出す方法をとればいいですかね?
なんとなくセキュリティ的にまずいのではないかと思って質問してみました。
.htaccessを利用すれば問題なく動作させることができるのでしょうか?
0017nobodyさん
2006/11/07(火) 01:43:53ID:???ドキュメントルート下に置かないってのは当然として。
0018nobodyさん
2006/11/07(火) 03:23:36ID:???DBのアクセスクラス作って、それをincludeすればいいと思う。
オレは使ってないけど、どっかのライブラリ使うのが一番いいのか?
0019nobodyさん
2006/11/07(火) 03:47:02ID:Sqm+J9JFというエラーがとれません。どうすればいいのでしょうか
<?php
session_start();
include("mysql.php");
?>
<html>
とセッションを使うのに適している記述だと思うのですがエラーがとれません
どうすればよろしいのでしょうか?
0020nobodyさん
2006/11/07(火) 04:04:52ID:???セッションにCookieを使うならスクリプトの先頭に置く。
文字を出力する前にsession_start()しなければならない。
0021nobodyさん
2006/11/07(火) 04:04:52ID:???0022nobodyさん
2006/11/07(火) 04:38:07ID:Sqm+J9JFスペースなど一切入っていません
1行目に<?php
2行目にsession_start();
です。
0023nobodyさん
2006/11/07(火) 05:11:39ID:???0024nobodyさん
2006/11/07(火) 07:48:16ID:???Telnetかなんかで叩いて送られてきたドキュメントを確認してみたら分かるんじゃない
送信済みになってるのは間違いないんだから
0026nobodyさん
2006/11/07(火) 09:35:48ID:???0027nobodyさん
2006/11/07(火) 09:41:20ID:C4kT4pauSmartIRCってのを使おうとしたら
socket extension not loaded
なエラーが出ますがどうしたらよいでしょうか
0028nobodyさん
2006/11/07(火) 09:45:40ID:qhJadrD30029nobodyさん
2006/11/07(火) 09:46:25ID:???コンフィギャーに--enable-socketsを追加してリコンパイルしてみたらどうでしょう
すでにコンパイルされてるならphp.iniでextension=php_sockets.dllを有効にしてみるとか
0030nobodyさん
2006/11/07(火) 09:50:46ID:???0032nobodyさん
2006/11/07(火) 10:01:52ID:???ありがとん。
一応有効にして再起動したけど、駄目ですた。
sqlliteとかはロードできてるんですけど・・・。
0033nobodyさん
2006/11/07(火) 10:02:22ID:???返さない方法はありますか?
ほかのメソッドはprotectedをつければ返されないのですが、
コンストラクタはprotectedをつけるとエラーが出てしまいます。
0034nobodyさん
2006/11/07(火) 10:02:32ID:oogNIDZJgo-pear.phpからインストールしてapacheのhtdocsの中にpearがあります。
このままファイルごと削除するだけでクリーンにアンインストールできるでしょうか?
003632
2006/11/07(火) 10:16:57ID:???DL版じゃなくてpearにはいってるの使ったらだいじょぶでした。
003734
2006/11/07(火) 10:18:35ID:oogNIDZJ0039nobodyさん
2006/11/07(火) 10:27:58ID:???できること増やすしかなさそう。
0040nobodyさん
2006/11/07(火) 10:28:38ID:oogNIDZJそれをドキュメントルート下においても問題なくつかえますか?
制限のおおいレンタルサーバでもうごきますか?
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?
あとそのアンケートに回答する人ってのはどういう人間だ?
自分で管理してる会員か?それともたまたまアクセスしてきたユーザか?
0142nobodyさん
2006/11/08(水) 22:07:43ID:???DB使う利点が分からないならあえて使う必要もないかと
0143nobodyさん
2006/11/08(水) 22:10:30ID:???0144138
2006/11/08(水) 22:19:37ID:???Mysqlを使いたいと思っておりますが10万件を超えると運用に耐え難いと聞きました。
アンケート件数がたくさんあるので10万は軽く超えてしまいます。
この場合、アンケート枚にデータファイルを別々に作成、さらに時間毎にデータをわけて記録
することでMysqlでデータをすべて記録するよりも早いかと考えております。
この考えは間違っておりますでしょうか?
0145nobodyさん
2006/11/08(水) 22:26:00ID:???0146nobodyさん
2006/11/08(水) 22:26:19ID:???0152145
2006/11/08(水) 22:34:47ID:???0153nobodyさん
2006/11/08(水) 22:38:59ID:???0154nobodyさん
2006/11/08(水) 22:45:31ID:???01551
2006/11/08(水) 22:59:23ID:???|
∩___∩ |
| ノ _, ,_ ヽ (( | プラプラ
/ ● ● | (=)
| ( _●_) ミ _ (⌒) J ))
彡、 |∪| ノ
⊂⌒ヽ / ヽノ ヽ /⌒つ
\ ヽ / ヽ /
\_,,ノ |、_ノ
0156nobodyさん
2006/11/08(水) 23:27:24ID:???0157nobodyさん
2006/11/08(水) 23:32:27ID:???こっちでやれ
http://pc8.2ch.net/test/read.cgi/php/1158647441/l50
0158nobodyさん
2006/11/08(水) 23:37:37ID:???0159nobodyさん
2006/11/08(水) 23:54:09ID:???開発者の習熟度とか好みとか必要な機能で選べばヨロシ
0160nobodyさん
2006/11/08(水) 23:54:42ID:???もう寝るwっうぇw
0161nobodyさん
2006/11/09(木) 00:06:04ID:???1:PHPの書き出しを、 <?php ?> にするのと <? ?>にするのとあまり変わりないのですが、
<phpとした方が良いのでしょうか?それとも関係ないのでしょうか?
2:printとechoとともに表示されますが、どちらで書いた方がいいのでしょうか?
自分の場合は混雑しています。
3:requireとrewuire_onceって特に違いありませんよね?
リファレンスも見たのですが、実用を考えるとどうした方が良いのかな?
っと思い、質問した次第です。
0162nobodyさん
2006/11/09(木) 00:19:08ID:???10万件超えると耐え難いってのは検索速度が遅くなるから、って話。
で、その理屈で言えばファイルの場合は1万件以下ですでに遅くて耐え難いです。
ファイルで分割ができるならDBでもテーブル分けちゃえば解決するよ。
0163nobodyさん
2006/11/09(木) 00:24:43ID:???1.機能としては何も変わらないです。
問題は<?hoge ?>ってのを使う仕組みはPHP以外にもあるってことで(XMLなど)
そういう別の仕組みを併用する場合に<? ?>では誤動作して困るので<?php ?>が推奨されてます。
その辺をちゃんと踏まえて、問題ないのが分かってるんであれば<? ?>も便利だと思います。
2.一緒です。書き慣れた方を使えばいいでしょう。
それが両方あるのは、他の言語で慣れた方を使えるようにという配慮です。
3.onceが付くと多重読み込みを防止できます。何度も繰り返して読み込みたい場合以外は
誤動作防止・処理速度高速化のためにもonceの方を使うのが推奨されます。
例えば a.php と b.php でそれぞれ c.inc を読み込むようにしていた場合に、
a.php で b.php を読み込むような処理にしても c.inc が2度読み込まれるのを防げます。
0164nobodyさん
2006/11/09(木) 00:36:15ID:???デーモンでは無理みたいです。
CD−Rに焼かないと駄目みたいなのですが、普通に焼くだけでは動きませんでした。
どのように焼けば起動しますか?
ど素人ですが、ご教授宜しくお願いします。
0165nobodyさん
2006/11/09(木) 00:39:00ID:???2については下記を読めとマニュアルにあるわけだが。
http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
0168161
2006/11/09(木) 01:18:59ID:???ありがとうございます。非常に納得しました。
とりあえず、1については<?php?>で書くようにします。(少なくとも1行目は)
また、3についても意味が分かりました。
きちんとご説明いただきありがとうございました。
0169nobodyさん
2006/11/09(木) 01:23:09ID:???http://itpro.nikkeibp.co.jp/article/COLUMN/20051128/225271/
0172nobodyさん
2006/11/09(木) 04:42:44ID:???0173nobodyさん
2006/11/09(木) 05:08:44ID:???0174nobodyさん
2006/11/09(木) 05:56:01ID:???体感的に爆発的に変わるものじゃないでしょ。
PHPと他の言語を比べてもそれは言える話だけどね。
0175nobodyさん
2006/11/09(木) 06:06:59ID:???変数処理の速度とループの速度の性能差は体感レベルで分かるくらい差が出るよ。
マシン性能のおかげで違いなんて出ないとか言ってるのはちゃんとベンチ取ってないか単なる詭弁だとオモウ
0176nobodyさん
2006/11/09(木) 06:18:48ID:???説明させんじゃねえ、市ね
0177nobodyさん
2006/11/09(木) 06:20:19ID:???それに比べればゴミみたいなもんだったが、今じゃアプリの速度=体感速度だしな。
0180nobodyさん
2006/11/09(木) 07:13:06ID:???PHP5.1.4 4.3sec
PHP5.2.0 4.1sec
5.2で少し速くなってた(Win32 Apache2.0 PenD 3.0GHz)
0181180
2006/11/09(木) 07:25:50ID:???http://www.thinkit.co.jp/cert/compare/2/2/2.htm
PHP4.4.4をダウンロードしてテストしたら9.2secでした
結果
PHP5.2>PHP5.1>>PHP4.4
0183nobodyさん
2006/11/09(木) 09:35:31ID:???0184nobodyさん
2006/11/09(木) 10:25:37ID:???中身のファイルをすべて削除するスクリプトってない?
0185nobodyさん
2006/11/09(木) 10:27:48ID:???0186nobodyさん
2006/11/09(木) 11:05:58ID:???現在のページのファイルって、どのように取得したら良いのでしょうか?
$_SERVER["REQUEST_URI"]からファイルを抽出できそうですが、
index.htmlを省略された場合とかダメですよね。
0187nobodyさん
2006/11/09(木) 11:17:59ID:???0190nobodyさん
2006/11/09(木) 11:35:43ID:???態態PHPで書く理由が分からん
0191nobodyさん
2006/11/09(木) 12:17:59ID:???多分それ本人じゃないから
0192nobodyさん
2006/11/09(木) 12:19:58ID:???basename($_SERVER['SCRIPT_FILENAME']);
を使おうと思うんですがどうでしょう?
0193nobodyさん
2006/11/09(木) 12:34:34ID:???0194nobodyさん
2006/11/09(木) 14:15:41ID:???ベンチをとって、勝ったの負けたの騒いでるキモヲタは全員氏んどけ。
そんな無意味なベンチはパソコンオタクのオナニー趣味でしかない。
0195nobodyさん
2006/11/09(木) 14:20:14ID:???0198nobodyさん
2006/11/09(木) 16:05:22ID:???<ahref="profile.html">プロフィール</a>
<ahref="inquiry.html">お問い合わせ</a>
上記のタグがtemplete.phpに記述されているとします。
これを配列に代入して<?=$templete[$i]?>で表示するようにしたいのですが、
templete.phpのソース内にコードを追記せずに実現したいのです。
つまり、hyoji.phpに<?=$templete[$i]?>(forで$iを表示する)を記述して
表示出来るような。
フォームから配列に代入して表示するのは出来るのですが、
そうじゃない方法はどうすればいいかと思い、質問しました。
0201198
2006/11/09(木) 16:37:25ID:???ちょっと説明づらいのですが、1つのファイルから特定のソースを配列に
代入して表示したい、と言うことです。
例えば、>>198のタグがtemplete.phpに記述されているとします。
表示用のhyouji.phpには
<?php
for($i=0;$i<$max_array;$i++){
echo "$templete[$i]"."<br>";
}
?>
というようなソースが入っていて、これをブラウザで表示すると
トップページ
プロフィール
お問い合わせ
と表示されればいいのです。上記のコードではforで回しているので
順番に表示されますが、
<?=$temple[0]?><?=$temple[2]?><?=$temple[1]?>
こういう風に書いていくと、表示位置も入れ替えられるので、便利だと思いまして。
0202nobodyさん
2006/11/09(木) 16:47:36ID:???まあ好きにすればいいけどさぁ
0203nobodyさん
2006/11/09(木) 17:07:00ID:???0204nobodyさん
2006/11/09(木) 17:08:30ID:???templete.phpを
index.html,トップページ
profile,プロフィール
inquiry.html,お問い合わせ
として、
$template = file('templete.php'); foreach($template as $line){
$items = explode(",", $line);
echo "<a href=\"{$items[0]}\">{$items[1]}</A>";
}
とか。
0205204
2006/11/09(木) 17:09:59ID:???templete.phpは
index.html,トップページ
profile.html,プロフィール
inquiry.html,お問い合わせ
の間違え
0206198
2006/11/09(木) 17:11:55ID:???例えば別ファイルにすると、ファイル数が増えるのと
余計なタグが入っていた場合、正常に表示されなくなりますよね?
fileで読み込むと>>198のソースだけなら良いのですが、その後を考えると
反応的ではないと思ったんです。なので
$templete[]="<ahref="index.html">トップページ</a> ";
こういう風に入ってくれれば出力しやすいし、出力する場所も選べるので
便利なのですが、いまいちソースの組立が上手くいかなくて。。
0207206
2006/11/09(木) 17:12:30ID:???0209nobodyさん
2006/11/09(木) 17:25:20ID:???ヽ(・∀ ・)ノ
(( ノ( )ヽ ))
< >
0210nobodyさん
2006/11/09(木) 20:52:53ID:???他の人は逆に外に出すべきだと考えると思うぞ。
表示内容を変えるたびにコードをいじるほうが不自然。
余計なタグ云々なんて、いくらでも整形できるだろうが...。
0212nobodyさん
2006/11/09(木) 21:58:04ID:???実際に運用してみると、変わりそうで変わらないこと、結構あるよ。
先々のことをよく考えて固定で作った方がわかりやすいし、簡単だよ。
汎用的に作ればかっこいいけどさ。
ファミコン対パソコンみたいなもんだよ。
0213nobodyさん
2006/11/09(木) 22:33:03ID:???0214nobodyさん
2006/11/09(木) 22:58:24ID:W4pI1qAG0215nobodyさん
2006/11/09(木) 23:05:30ID:???PHPマニュアルのdateのところよ〜く見てみて。
答えが載ってるから(リンク先のmktimeも熟読してね)
0216nobodyさん
2006/11/09(木) 23:09:17ID:W4pI1qAG探してるけど見つからないから聞いてるのに・・・いけず・・・
0217nobodyさん
2006/11/09(木) 23:10:22ID:W4pI1qAG0219nobodyさん
2006/11/09(木) 23:23:10ID:W92sr8u2htmlのソースを書き出したテキストファイルからの特定語句の
抜き出しについてお聞きしたいことがあります。
$kensaku="[ァ-ヴー][ァ-ヴー・]+|[a-zA-Z0-9\.\-\s]*[a-zA-Z][a-zA-Z0-0\.\-\s]*";
$fp=fopen("source.txt","r");
$fr=fread($fp,filesize("source.txt"));
$str="$fr";
$word = array();
while(1){
$kensaku2 = mb_ereg("$kensaku",$str,$match);
if($kensaku2 == FALSE){
break;
}else {
$match = $match[0];
array_push($word, $match);
}
$pos = strpos($str, $match);
$str = substr($str, $pos+$kensaku2);
}
print_r($word);
fclose($fp);
とすると、ソース内のカタカナやアルファベットの語句は抜き出せるのですが・・
title="IPアドレス" class=crosslink
title="Internet Protocol Address" class=crosslink
上記のように、 ソースに含まれる title=" " class=crosslinkの" "の中
の語句のみを抽出したいのですが、うまくいきません。
どのようにすれば良いでしょうか?
0220nobodyさん
2006/11/09(木) 23:23:52ID:???0221nobodyさん
2006/11/09(木) 23:25:19ID:W4pI1qAG$date = 20060101;
echo date('Y/m/d H:i:s', strtotime($date));
echo '<hr>';
echo date('Y/m/d H:i:s', mktime(0,0,0,date('d',strtotime($date))+40,date('m',strtotime($date)),date('Y',strtotime($date))));
0222nobodyさん
2006/11/09(木) 23:25:58ID:???preg_match('/title="([^"]*)"/', $str, $match)
echo $match[1];
0223nobodyさん
2006/11/09(木) 23:30:45ID:???これで$dayには20070110が格納されるよ
dateは日付の整合性チェックをしてくれないけど
mktimeはしっかり者だからちゃんとチェックしてくれる
ちなみにPHPって感じの変数名も使えるのな
0224219
2006/11/09(木) 23:45:08ID:W92sr8u2いえ、title=" "ではなく、title=" "のあとに「class=crosslink」が
くる部分・・title=" " class=crosslink の" "の語句のみを取得した
いのです。そこでつまずいておりまして。。。
0225nobodyさん
2006/11/09(木) 23:50:14ID:???対象文字列は何で、結果何が取り出せてればいいんだ
0226nobodyさん
2006/11/10(金) 00:02:59ID:???じゃあ
preg_match('/title="([^"]*)" class=crosslink/', $str, $match)
echo $match[1];
でいいんでは。
0227219
2006/11/10(金) 00:12:09ID:0rGbXNdx状態で、" "の中身だけが欲しいのです。
0228nobodyさん
2006/11/10(金) 00:17:16ID:???0229nobodyさん
2006/11/10(金) 00:19:04ID:???0230nobodyさん
2006/11/10(金) 00:25:43ID:???0231219
2006/11/10(金) 00:26:22ID:0rGbXNdxpreg_match('/([^"]*)/', $word, $match);
みたいな感じで、さらに検索をかければ良いのでしょうか?
0232nobodyさん
2006/11/10(金) 00:28:13ID:???0233nobodyさん
2006/11/10(金) 00:29:55ID:LNYLSoFr「プライマリーキーを定義すべきです」
と編集、削除ボタンが「?」になるのですが、原因は何なんでしょうか?
0236nobodyさん
2006/11/10(金) 00:39:41ID:???4桁など桁数を指定して生成するにはどうしたらいいのでしょうか?
0238219
2006/11/10(金) 00:42:26ID:0rGbXNdx実行しましたよ。Array ( [0] => title="IPアドレス" class=crosslink[1] =>・・
しかし、こうなってしまいました。。。
0240nobodyさん
2006/11/10(金) 00:58:24ID:9aG6gw2rあ、親切な方だ。ありがとうございます!
0241219
2006/11/10(金) 01:10:33ID:0rGbXNdxわざとなんてことはないですよ。
echo $match[1]; で出力しようとすると何も表示されないのです。
それで、print_r($word); で出力しています。
0242nobodyさん
2006/11/10(金) 01:13:52ID:???なんか環境がおかしいんじゃないの?
$str = ' title="IPアドレス" class=crosslink ';
preg_match('/title="([^"]*)" class=crosslink/', $str, $match);
echo $match[1];
で結果が
IPアドレス
0243219
2006/11/10(金) 01:27:13ID:0rGbXNdxうーん・・、219のソースで
$kensaku2を preg_match('/title="([^"]*)" class=crosslink/', $str, $match);
に変更して、出力を echo $match[1]; とした場合、正しく表示される
ものでしょうか?うまく表示できないのですが・・・
0244nobodyさん
2006/11/10(金) 01:29:23ID:???元々のソースが汎用性のない腐ったソースなんだから
そこにどう組み込むかはお前が考えるべきことだ。
0245nobodyさん
2006/11/10(金) 01:33:15ID:???$str = ' title="IPアドレス" class=crosslink ';
$word = array();
while(1){
$kensaku2 = preg_match('/title="([^"]*)" class=crosslink/', $str, $match);
if($kensaku2 == FALSE){
break;
}else {
$match = $match[1];
array_push($word, $match);
}
$pos = strpos($str, $match);
$str = substr($str, $pos+$kensaku2);
}
print_r($word);
とした場合の結果
Array
(
[0] => IPアドレス
)
これで何が不満?
0246219
2006/11/10(金) 01:43:41ID:0rGbXNdxいえ、全くございません。ありがとうございます。
$match = $match[0]; だと、
Array ( [0] => title="IPアドレス" class=crosslink
となってしまったのに、
$match = $match[1]; とすると
正しく、Array ( [0] => IPアドレス と表示されました。
無知な私に[0],[1]とで、どのような違いがあるのか教えていただけると
ありがたいのですが。
0247nobodyさん
2006/11/10(金) 01:59:11ID:???データベース板には質問スレとか無くて・・・。
0248246
2006/11/10(金) 02:15:29ID:0rGbXNdx0249nobodyさん
2006/11/10(金) 02:20:14ID:???ここらへんのスレで聞いたらいいんじゃね?
MySQL 5.0
http://pc8.2ch.net/test/read.cgi/db/1081818145/
mysqlについて語ろう
http://pc8.2ch.net/test/read.cgi/db/1056947097/
PHPに依存した部分がある質問ならここでもいいけど。
0250nobodyさん
2006/11/10(金) 02:26:06ID:???複数の連番ファイルを一括してアップできるスクリプトを作ろうと思っています。
通常ファイルのアップには「参照」ボタンを押すなりして、ファイルへのパスを入力する必要がありますが、
その際に「E:\jpg\01.jpg」を指定したとして、「E:\jpg\30.jpg」までを一括してアップさせることは可能でしょうか。
fileにはvalue値の設定ができないため、そのような処理は不可能でしょうか。
ユーザがいちいち30個の欄に1.jpg、2.jpg・・・と指定する手間を省けるスクリプトを作ろうとしています。
環境 => OS:FC3 PHP:5.1.5
0251nobodyさん
2006/11/10(金) 02:34:22ID:???0254nobodyさん
2006/11/10(金) 02:43:36ID:???以前何度か聞いたのですが、板自体が過疎化しているので、回答がありませんで・・。
やりたいことは、MySQLの特定のテーブルにデータが入っていたらTRUE
入っていなかったらFALSEで分岐出来たらいいのです。
<?php
$sql = "select * from test_table";
$rst = mysql_query($sql, $con);
if(rst){
while($row = mysql_fetch_array($rst)) {
echo $col["id"];
}}else{
echo"登録がありません";
}
?>
こういうので出来ると思ったのですが、無理みたいで・・。
もしよろしければアドバイスいただけると助かります。
0255nobodyさん
2006/11/10(金) 02:54:25ID:???$sql = "select * from test_table";
$rst = mysql_query($sql, $con);
if(mysql_num_rows($rst)){
while($row = mysql_fetch_array($rst)) {
echo $col["id"];
}
}else{
echo"登録がありません";
}
かな
0258250
2006/11/10(金) 03:18:25ID:???とりあえずZIPにするよう促すようにしてみます。
実はZIPにする手間を省くのが目的だったりしてます。
サーバ側でzip圧縮すればユーザの手順は簡略されますし。
(一昔前だとZIP圧縮するだけでもPCがモタついてイライラした記憶が・・・)
0260nobodyさん
2006/11/10(金) 07:47:27ID:???ただし敷居が高いうえに、板違い。
0261nobodyさん
2006/11/10(金) 08:21:45ID:???0262nobodyさん
2006/11/10(金) 08:56:36ID:???0263nobodyさん
2006/11/10(金) 09:54:51ID:???0264nobodyさん
2006/11/10(金) 10:36:19ID:cXndf+IB0265nobodyさん
2006/11/10(金) 11:27:21ID:???0266nobodyさん
2006/11/10(金) 11:59:28ID:???<p>001</p>
<p>002</p>
<p>003</p>
</body>
上記のような分で、
<p></p>に囲まれている部分だけ取得して配列に格納したいのですが、
どのような方法があるのでしょうか?
0267nobodyさん
2006/11/10(金) 12:01:39ID:???XML_HTMLSax3
0269nobodyさん
2006/11/10(金) 15:20:56ID:yWCpYZUVArray ( [0] => Array ( [0] => A [1] => B [2] => B [3]=> C
[4] => D [6] => F)
となり、[1]と[2]の値が同じなので、array_uniqueで置換すると、
Array ( [0] => Array ( [0] => A [1] => B [3]=> C
[4] => D [6] => F)
というふうに、配列の番号が詰められず、[1]の次が[3]となってしまいます。
うまく配列の番号を詰める(連番となる)にはどうすれば良いでしょうか?
0270nobodyさん
2006/11/10(金) 15:24:50ID:???0272nobodyさん
2006/11/10(金) 15:29:33ID:yWCpYZUVarray_valuesでできました。ありがとうございます。
0273nobodyさん
2006/11/10(金) 15:31:51ID:1a5fPov5何か良い方法はあるでしょうか?
公式マニュアルは参照しましたが、カレントディレクトリの情報は
取得できるものの、ドライブ情報を取得できるものは見当たりませんでした。
最悪、a:/〜z:/をループさせつつ総当りでscandirとかすることになるのかな
と考えていますが、できれば避けたいと考えています。
環境:WinXP SP2,Apache2.2.3(SSL付き) PHP5.1.6
経験:PHPは10日間くらい。
0275nobodyさん
2006/11/10(金) 15:45:50ID:???Win32APIにGetLogicalDriveStringsってのがあるから
それをttp://www.php.net/manual/ja/ref.w32api.phpで呼べばいけるんじゃないかな。
0276nobodyさん
2006/11/10(金) 15:47:10ID:1a5fPov5これかなあ?
http://php.mirror.camelnetwork.com/manual/ja/ref.w32api.php
Win32API使うってのは盲点でした。PHPって手広いなあ。
ちょっといろいろいじってみます。
素早いお答えありがとうございました。
0277nobodyさん
2006/11/10(金) 15:49:55ID:1a5fPov5うお、追加のお答えありがとうございます。
なんか標準じゃつかない関数みたいなので勉強が必要ですが、
APIの名前教えてもらって助かりました。
0278nobodyさん
2006/11/10(金) 16:03:40ID:???if($name==""){
echo"$nameが空です";
}else{
echo $name;
}
このような入力チェックがあったとして、name以外に変数が増えた時
その分上記のソースをコピーしていました。
しかし、基本的には変数名以外の内容は同じですし、数行のコードをコピーすると
長いので、もっと良い方法が無いかと思い、質問しました。
0279nobodyさん
2006/11/10(金) 16:10:47ID:???値の整合性チェックは時と場合により結構かわるから、
これをやれば大丈夫というのはないよ
汎用的な validatator も探せばあるだろうけど、使い方が直感的でないこともしばしば
もし、本当に変数名以外に違いがないなら
配列にでも一度入れてループすれば良い
$checkArr = array('name' => $name, 'age' => $age);
foreach ($checkArr as $key => $val) {
if ($val=="") {
echo "$keyが空です";
}
else {
echo $val;
}
}
0280nobodyさん
2006/11/10(金) 16:11:36ID:???$param_list = array('name', 'hoge', 'hoge2'); //パラメータ名の一覧
foreach($param_list as $param) {
if($_GET[$param] == ""){
echo"$_GET[$param]が空です";
}else{
echo $_GET[$param];
}
}
0281nobodyさん
2006/11/10(金) 16:11:37ID:???さっさと就職しやがれ!
0282nobodyさん
2006/11/10(金) 16:11:44ID:???なんか知らんが配列をforeachすりゃいいんでね?
foreach ($_POST as $key => $value) {
if ($value === "") {
echo "$keyが空です";
} else {
echo $value;
}
}
0284sage
2006/11/10(金) 16:26:30ID:1a5fPov5実際には不正な文字列じゃないかもうちょとチェックするので
あまり同じ関数の使い回しはしないんじゃないかなあ。
Javascriptになるけど、こんなの書いたりもしてました。
画面遷移なしでも多少チェックしたいときもあるし。
※ソースは適当です。
<input type=text name=userid value="">
<input type=text name=pass value="">
<input type=submit onclick="javascript:nullcheck(this); return false;">
function nullcheck(obj)
{
obj=obj.forms[0];
for(var i in obj.elements.length)
{
if(obj.elements[i].type != "text") continue;
if(!obj.elements[i].value)
{
alert(obj.elements[i].name + "が入力されていません。");
return false;
}
}
0285nobodyさん
2006/11/10(金) 16:28:44ID:1a5fPov50286nobodyさん
2006/11/10(金) 16:50:59ID:???function err($txt) {
echo $txt;
echo "</BODY></HTML>";//この辺はスクリプトによって変える
exit;
}
if ($name == "") err("名前がない");
if ($mail == "") err("メールがない");
if (is_numeric($num)) err("NUMBERは数字で入れれ");
みたいにする。
0287nobodyさん
2006/11/10(金) 16:52:04ID:???0288286
2006/11/10(金) 16:52:24ID:???if (!is_numeric($num)) err("NUMBERは数字で入れれ");
だった。
0289278
2006/11/10(金) 17:46:15ID:???返答が遅れてすみません。
foreachを使う方法だと、表示位置が指定出来ませんよね?
テーブル(<table>)の表などで使用する場合、不適切だと
感じられるのですが、どうなのでしょうか?
0292nobodyさん
2006/11/10(金) 18:46:42ID:???なら $var[$key] = (empty($_REQUEST[$key]) ? "$key空" : $...; とでも
0293nobodyさん
2006/11/10(金) 19:06:10ID:???テーブル表示ループの中でデータのチェックやってんだよ。
典型的なコードとデザインが分離できてない素人設計。
0294278
2006/11/10(金) 19:17:03ID:???<table border="1">
<?
$param_list = array($name,$age,$sex,$address,$comment); //パラメータ名の一覧
foreach($param_list as $param) {
if($param == ""){
echo"<td>";
echo"$paramが空です";
echo"</td>";
}else{
echo"<td>";
echo $param;
echo"</td>";
}}
?>
</table>
ただこの場合、フォームから受け取ったarrayの値が空の場合は表示されなくなります。
素人設計ですが、向上心を持ってやっていきますので、再度アドバイスお願いします。
0295nobodyさん
2006/11/10(金) 19:31:32ID:???まず表示部分でそんなチェックすんな。
事前にチェックを済ませて結果を変数に格納し
自由なレイアウトで表示できるようにしろ。
0296nobodyさん
2006/11/10(金) 20:15:25ID:???> if($param == ""){
$paramは必ず中身がないんだから
> echo"$paramが空です";
$paramを表示できるわけないじゃん。
>>280でパラメータ「名」の一覧を使えって言ってるのに
なんでデータ値そのものをリスト化しようとしたりするの?
あと$nameとか$ageとか、ひょっとしてregister_globalsをONにしてんのか?
$_GETか$_POSTか$_REQUEST使えって。
0298nobodyさん
2006/11/11(土) 12:54:56ID:mWra3uS0どういうふうに組むのでしょうか?
0299nobodyさん
2006/11/11(土) 13:48:21ID:???パラレルロックってこれ?>ttp://sajiro.net/hpa/
これだとしたらこの作者が自分のプログラムに名付けた勝手な造語じゃない?
作り方は考えた本人に聞けばいいよ。
個人のオリジナルロジックなんて知らんがな。
0300298
2006/11/11(土) 13:58:29ID:mWra3uS0壊れにくいロックを作ってどんな仕組みでしょうか、奥が深いですね。
たとえばググルとよくみかける二重ロックはどうなんでしょうか?
ファイルをロックする前に、ロックファイルを別に用意して、
そのロックファイルが存在してたら別の処理にさせるという仕組みでした。
0301nobodyさん
2006/11/11(土) 14:04:13ID:???0302298
2006/11/11(土) 14:12:22ID:mWra3uS0fcloseだけで十分でしょうか?
0303nobodyさん
2006/11/11(土) 14:13:06ID:???難しい。
アクセスが多いサイトほど、いろいろ起きるし。
0304nobodyさん
2006/11/11(土) 14:24:57ID:???微妙に意味不明 >二重ロック
それって単なるロックファイル使ったプロセスロックじゃないの?
>>302
十分なわけないじゃん。
「壊れにくい」じゃ意味ないから「壊れない」ロックを使えってことじゃ?
強力なロック機構が欲しければRDBMS使うのが1番かと思うけど。
>>303
RDBMS使わないにしても、ロックディレクトリを使ったプロセスロックで
壊れた試しって俺は無いんだけど。
途中での切断・移動って一定時間過ぎたロックを強制削除、じゃダメなのか?
どっちかというと「壊れない」かつ「アクセスを漏らさず処理できる」が難しい。
単純なロックだとアクセス過多になると大量のタイムアウトを出してしまって
アクセスカウンターとかは本来の数を記録できなくなる。
そういう意味で、キューに溜めたクエリーを順次処理するRDBMSが1番。
まぁ、これも待ち受けの最大数があるんでそれ超えるとダメだけど、
そこは色々とチューニングでカバーできるし。
0305nobodyさん
2006/11/11(土) 14:59:07ID:???でも書き込んでる途中で電源が切れると壊れる。
MySQLのマニュアルにも不意に電源が切れた場合、
壊れる可能性があることは明記されている。
0306nobodyさん
2006/11/11(土) 15:08:40ID:???0307nobodyさん
2006/11/11(土) 15:18:25ID:???ロックの頑丈さをためすコードってないの?
0308nobodyさん
2006/11/11(土) 15:24:28ID:???並行で走らせたプロセスで同時アクセスさせないといけないから
単なるコードでは難しいよ。WindowsとUNIXとでやり方変わるし。
ApacheBenchとか使ってアクセスかけた方が手っ取り早い。
でもロックの頑丈さを確認するだけなら、ロックの判定やON/OFF処理に
片っ端からsleep()入れてって、アトミックじゃない処理の部分を
間隔広げてやるだけで簡単にテストできるよ。
0309nobodyさん
2006/11/11(土) 15:41:13ID:???>途中での切断や移動などを考えると
http://www.php.net/manual/ja/function.ignore-user-abort.php
考えずにすみますよ。
0310nobodyさん
2006/11/11(土) 15:51:18ID:UxXI6HSfmb_send_mailの第5引数が設定できません。
環境はレン鯖でPHP4.4.4でSafeModeがONです。
何か良い方法ありましたら宜しくお願いします。
0311nobodyさん
2006/11/11(土) 16:04:19ID:U7uBumak0312nobodyさん
2006/11/11(土) 16:08:00ID:???やんわり動作してるアプリではアルゴリズムが全て
0313nobodyさん
2006/11/11(土) 16:10:17ID:???0316310
2006/11/11(土) 16:27:02ID:UxXI6HSfmb_send_mail() [function.mb-send-mail]: SAFE MODE Restriction in effect. The fifth parameter is disabled in SAFE MODE
PHPバージョンUPやSafeModeの設定変更はレン鯖で無理なのですが、代替案はありますでしょうか?
0318nobodyさん
2006/11/11(土) 16:55:41ID:???0319nobodyさん
2006/11/11(土) 16:56:46ID:???0320310
2006/11/11(土) 17:30:37ID:UxXI6HSfありがとうございます。PEAR :: Mail_mimeDecode Mail_Mimeってのを調べてみます。
またはCGIとして動作させるか、Perlでsendmail使う方法などになりますかね・・・
0321nobodyさん
2006/11/11(土) 17:44:36ID:???毎秒二万回って凄いなあ。目がくらむ
0322nobodyさん
2006/11/11(土) 17:52:33ID:???1991,1,タイトル1,サブタイトル1
1991,2,タイトル2,サブタイトル2
1991,3,タイトル3,サブタイトル3
1992,3,タイトルA,サブタイトルA
1992,5,タイトルB,サブタイトルB
1992,7,タイトルC,サブタイトルC
1993,10,タイトル5,サブタイトル1
とあるデータをTable整形して出力させたいので、↓にしたのですが
<table border="1">
<?php
$fp = fopen("test.csv", "r");
while ($data = fgetcsv($fp, 10000)) {
print "<tr>";
foreach ($data as $d) {
print "<td>$d</td>";
}
print "</tr>\n";
}
?>
</table>
これを次のように、同じ年のところはrowspanでつなげて出力したいのですがどうやったらいけますでしょうか?
<tr><td rowspan="3">1991</td><td>1</td><td>タイトル1</td><td>サブタイトル1</td></tr>
<tr><td>2</td><td>タイトル2</td><td>サブタイトル2</td></tr>
<tr><td>3</td><td>タイトル3</td><td>サブタイトル3</td></tr>
<tr><td rowspan="3">1992</td><td>3</td><td>タイトルA</td><td>サブタイトルA</td></tr>
<tr><td>5</td><td>タイトルB</td><td>サブタイトルB</td></tr>
<tr><td>7</td><td>タイトルC</td><td>サブタイトルC</td></tr>
<tr><td>1993</td><td>10</td><td>タイトル5</td><td>サブタイトル1</td></tr>
0323nobodyさん
2006/11/11(土) 18:16:06ID:???変数のスコープはどうなるんでしょうか?
参考になるような記事などありますか?
0325nobodyさん
2006/11/11(土) 18:24:42ID:mWra3uS00326nobodyさん
2006/11/11(土) 18:24:44ID:???次に別の年が出てくるまで出力を変数にバッファリングしといて、
連ケツ不要ならそのまま出力、必要ならRowspan出力してから
バッファを持ってくる、とか。
0330nobodyさん
2006/11/11(土) 18:49:13ID:???0331nobodyさん
2006/11/11(土) 19:58:37ID:???最初はこのスレの質問の意味さえ全くわからなかったが、今では少しは理解できるようになった
あと三ヶ月まじめに勉強して模範的回答できるようになるから、おまいら待ってな
0333nobodyさん
2006/11/11(土) 21:09:32ID:mWra3uS0データが作られてから24時間後に削除することはphpだけはできないですよね?
0335nobodyさん
2006/11/11(土) 21:22:52ID:???WebアプリケーションとしてのPHPからだと24時間後に必ず削除することはできない。
アクセスごとに24時間以上経っているデータを削除させることはできるので、
この方法で十分であれば選択肢の一つにはなる。(PHPのセッションではこの方法で期限切れセッションファイルを消している)
また、CLI版限定ではあるもののPHPで作られたcronもあったりする。
0337nobodyさん
2006/11/11(土) 21:31:24ID:???接続が維持されるのは保障されるんだよね?
session.gc_maxlifetimeを過ぎた場合は指定した確立で
セッションの初期化時に削除される。
※クッキーはブラウザを閉じるまで有効とした場合
0338nobodyさん
2006/11/11(土) 22:09:52ID:???てきとーだけどこんな感じ?
<table border="1">
<?php
$fp = fopen("test.csv", "r");
$year = ""; $rows = array();
while ($data = fgetcsv($fp, 10000)) {
$next_year = array_shift($data);
if ($year != $next_year) {
print_year($year, $rows);
$year = $next_year; $rows = array();
}
$rows[] = $data;
}
print_rows($year, $rows);
function print_year($year, $rows) {
$rowspan = count($rows);
foreach ($rows as $i => $data) {
echo "<tr>\n";
if ($i == 0) print "<td rowspan=\"$rowspan\">$year</td>\n";
echo "<td>", implode("</td><td>", $data), "</td>\n";
echo "</tr>\n";
}
}
?>
</table>
0339338
2006/11/11(土) 22:15:25ID:???whileから抜けた後
× print_rows($year, $rows);
○ print_year($year, $rows);
まあコメント欄に直接書いただけで、動作確認してないから、どっちにしろ動くかどうかわからんけど。
0340322
2006/11/11(土) 22:53:29ID:???ありがとう〜〜〜
頂いたソースだと
$next_year = array_shift($data); の行に
parse error, unexpected '@' エラーがでてしまいましたが。
とっかかりが見えそうな気がしてきました
0341nobodyさん
2006/11/11(土) 23:02:33ID:qWd4Y1Xfよろしければ、お教え願えないでしょうか?
配列 $value の内容-----
Array ( [0] => ツール [1] => データベース [2] => IEEE1394 [3] => カメラ
[4] => インターフェイス [5] => アプリケーション [6] => パソコン [7] => Java)
$encode = mb_convert_encoding($value[4],"UTF-8","Shift_JIS");
$url_encode =urlencode($encode);
$html="http://thesaurus.weblio.jp/content/$url_encode";
$html2=file_get_contents($html);
$utf=mb_convert_encoding($html2,"Shift_JIS","UTF-8");
$str="$utf";
$word = array();
while(1){
$kensaku2=preg_match('/title="([^"]*)" class=crosslink/', $str, $match);
if($kensaku2 == FALSE){
break;
}else {
$match_result = $match[1];
array_push($word, $match_result);}
$pos = strpos($str, $match_result);
$str = substr($str, $pos+$kensaku2);
}
$unique=array_unique($word);
$array=array_values($unique);
print_r($array);
それで、実行結果は、$value[4]を指定して,URLに格納しているので
Array ( [0] => interface [1] => いんたーふぇいす [2] => インタフェイス
[3] => インタフェース [4] => インターフェース )となります。
そこで、なにがしたいのかと言いますと、プログラムの最初で、$value[4]として
いますが、ループさせて、$value[0]〜[7]の分の結果を得たいのです。
これがどうもうまくいかなくて。。。長くなってしまいましたが、何卒。
0342nobodyさん
2006/11/11(土) 23:20:18ID:???foreach($value as $val) {
$encode = mb_convert_encoding($val,"UTF-8","Shift_JIS");
$url_encode =urlencode($encode);
$html="http://thesaurus.weblio.jp/content/$url_encode";
$html2=file_get_contents($html);
$utf=mb_convert_encoding($html2,"Shift_JIS","UTF-8");
$str="$utf";
$word = array();
while(1){
$kensaku2=preg_match('/title="([^"]*)" class=crosslink/', $str, $match);
if($kensaku2 == FALSE){
break;
}else {
$match_result = $match[1];
array_push($word, $match_result);}
$pos = strpos($str, $match_result);
$str = substr($str, $pos+$kensaku2);
}
$unique=array_unique($word);
$array=array_values($unique);
print_r($array);
}
じゃダメ?
0344nobodyさん
2006/11/11(土) 23:42:34ID:qWd4Y1Xf全然OKです。ホントありがとうございます。
>>343
なんででしょ。色々と試したんですけどねぇ。。。
きっと検討違いなことをやってたんでしょうな。
0345nobodyさん
2006/11/11(土) 23:55:07ID:???$url_encode =urlencode($encode);
$html="http://thesaurus.weblio.jp/content/$url_encode";
$html2=file_get_contents($html);
は
$html=file_get_contents("http://thesaurus.weblio.jp/content/".urlencode(mb_convert_encoding($val,"UTF-8","Shift_JIS")));とか省略してしまえば?他にもあるけど。
0346nobodyさん
2006/11/12(日) 00:07:53ID:AeUA6O/W確かに、そのほうが簡略化して記述できますね。
でも、未熟なせいか、習慣になっているせいか、分けて記述していくほうが
見やすいんですよね。
こういうのって、熟練者は省略して書くものなんですか?それとも、人に
よりきりなんでしょうか?
0347nobodyさん
2006/11/12(日) 00:14:00ID:???個人的には
$utf=mb_convert_encoding($html2,"Shift_JIS","UTF-8");
$str="$utf";
と
$unique=array_unique($word);
$array=array_values($unique);
はいくらなんでも無駄じゃ?って思ったけど、
>>345の指摘してる場所はむしろそのままの方がいいと感じた。
基準としては読みやすさの他、
・そこに他の処理を加える可能性はあるか
・バグったときに一部を外したいと思ったとき外しやすいか
辺りも踏まえると明確にしやすいです。
その意味では>>345の修正は後で面倒なことになりやすい。
0348345(341)
2006/11/12(日) 00:23:34ID:AeUA6O/Wなるほど。アドバイスありがとうございます。
$str="$utf"; に関しては、こうしないと処理が通らなくなってしまったので、
見た目むだな感じがしますが、仕方ないかと思って。
0349nobodyさん
2006/11/12(日) 00:28:30ID:???そこでのフローがどうなってるのか読み取りづらい
ここに貼る分にはいいけど実際には、クエリを投げる部分と検索語を
チェックする部分(とエラー処理)は関数化してループをスッキリさせたほうがいい
0350nobodyさん
2006/11/12(日) 00:34:18ID:???でもループ処理も書けないような人にそれはまだムリな気はする。
0351nobodyさん
2006/11/12(日) 03:15:02ID:???フォーム処理なども、$_POST["hoge"]ではなく$hogeなどにしています。
0353nobodyさん
2006/11/12(日) 03:24:42ID:???と言うことは、フォームから値を受け取る時は常に
$_POST["hoge"]か$_GET["hoge"]にしておかなくてはいけないのでしょうか?
正直、$hogeというような書き方の方が便利なので、ほぼすべてこの書き方です。
ただ、セキュリティに問題あると言われると不安だし・・・
0354nobodyさん
2006/11/12(日) 05:09:11ID:???なんとも思わないならそのままでいいんじゃない?
0355nobodyさん
2006/11/12(日) 05:10:56ID:???> $_POST["hoge"]か$_GET["hoge"]にしておかなくてはいけないのでしょうか?
基本的にはそう。まぁ、最初に$hogeに代入しちゃえば済む話だけど。
extract()を使う手もある。
個人的には$_GETや$_POSTはスーパーグローバルなんでかえって使いやすいけどね。
$hogeの方が使いやすいって言うってことはまともに関数化もしてないんじゃないの?
入力データとシステムで生成したデータは区別することを常に意識した方がいい、ってのもある。
register_globalsは特定のバージョンのPHPでは設定をONにしちゃうだけで
プログラムが何であれ攻撃を食らうセキュリティホールがある。
けど最新のはそこまで酷くないから、グローバル変数を使うときは
ちゃんと初期化をしてから使う、という原則を守ればそれほど危険ではない。
ただ、PHP6では無くなっちゃうのは確かっぽい。
0356nobodyさん
2006/11/12(日) 06:42:49ID:???$hoge = $_GET['hoge'];
と書くだけで初期化し忘れた$fugaがへんなことになるのが防げるんなら
安いもんなんでは。
個人的には初期化し忘れた変数を参照できるのが
おかしいような気がするのでスーパーグローバルはセキュリティが・・・
ていう話はなんか変な気がするんだけど。
0357nobodyさん
2006/11/12(日) 07:01:45ID:???でも面倒くさくてregister_globalsをONにしたいって人が、全部の入力変数をissetで
チェックできるかっつーとそれもムリがある気はするけど。
0359nobodyさん
2006/11/12(日) 08:03:53ID:a0k5e3E0何を質問していいのかわからないので
質問したくなる話をふってもらえませんか?
0360nobodyさん
2006/11/12(日) 08:31:23ID:???0361nobodyさん
2006/11/12(日) 08:47:52ID:a0k5e3E0ログインしたときに「新着メールが一件届いています」って表示したいのですが
メールを開封するこの表示を消すようにしたいです。
これはPHPだけで完了できるでしょうか?
0362nobodyさん
2006/11/12(日) 10:18:38ID:???意味わからん。
0363nobodyさん
2006/11/12(日) 10:38:03ID:???だとオモワレ
0364nobodyさん
2006/11/12(日) 11:17:06ID:AtVKFDXlNot supported in multithreaded Web servers - use extension statements in your php.ini
とワーニングが出てしまいます。
php.iniはenable_dl = Onになっています。
サーバーはApache/2.0.55 (Win32)
PHPは4.4.2です。
他に何かチェックする項目はあるでしょうか?
0365nobodyさん
2006/11/12(日) 11:33:37ID:???エラーメッセージの通りだよ
マルチスレッドのwebサーバではdlはサポートされてない
win上でのapacheでdlは使えないからphp.iniに書いてねってこと
0366nobodyさん
2006/11/12(日) 12:01:39ID:???そうすると一日100件書込みがあるとファイルが100個できてしまうわけで
一ヶ月で3000ファイル作ることになります。
これはサーバ、とくにHDDに悪いでしょうか?
0367nobodyさん
2006/11/12(日) 12:09:47ID:???かなり遅くなるよ。
0368nobodyさん
2006/11/12(日) 12:59:26ID:???Unix系だとi-node数の上限が決まってるから、ファイル作りすぎると上限に達して動かなくなる。
それに>367も言ってるが、ファイル数が増えると読み込みが遅くなる。
0369nobodyさん
2006/11/12(日) 13:14:55ID:GywZkAAcMovable Typeみたいに、毎回HTMLファイルを作成してそこにアクセスするようにするのと、毎回PHPスクリプトを実行してDBからデータをひっぱってくるのどちらがいいのでしょうか?
やはりデータが増えれば増えるほど、PHP→DBからひっぱるだと効率が悪くなるんですかね。
0371369
2006/11/12(日) 13:33:19ID:GywZkAAcそうですか。 PHP→DBの方が作るのが簡単だから……と思っていたけれどやっぱり落とし穴があるんですね。
データが増えれば増えるほど書き出すHTMLが増えるからMTみたいに「再構築中です」ってなる時間が長くなってしまうんですよね……
いろいろ考えて見ます。 ありがとうございました。
0373nobodyさん
2006/11/12(日) 13:46:55ID:6O05V0pAなにかヒントをいただけませんか?
参考ネタは下記のサイトの左側のオンライン状況です。
ttp://xoopsrss.com/
0378nobodyさん
2006/11/12(日) 14:48:08ID:???3000くらいなら速度も気にするほど遅くはならないと思うが、
万超えると微妙になってくるからディレクトリ分けた方がいいだろうね。
0380nobodyさん
2006/11/12(日) 14:56:23ID:Cz0hhElV0381nobodyさん
2006/11/12(日) 15:00:27ID:???0382nobodyさん
2006/11/12(日) 15:02:06ID:???0383nobodyさん
2006/11/12(日) 15:12:04ID:ZwQu2SQpこのスクリプトで問題なくトラックバックを送信できるのですが、
プロキシを設定した状態でこのスクリプトを実行すると、
fputs($sock, "POST $path HTTP/1.1\n");この行でエラーが出てしまいます。
プロキシを設定しないと、うまくいくのでプロキシの影響だと思いました。
質問�@ プロキシを設定した状態で下記のスクリプトでトラックバックの送信が行えるか?
質問�A 行えるとしたら、どのような設定、もしくはスクリプトの改良が必要か?
よろしくお願いします!
<?php
$charset = "UTF-8";
$pingurl = "http://localhost/blogn/tb.php/1";
$urlinfo = parse_url($pingurl);
$host = $urlinfo['host'];
$path = $urlinfo['path'];
$sock = fsockopen($host, 80, $errno, $errstr, 60);
if (!$sock) die("$errstr ($errno)\n");
$data = "title=" . urlencode("test");
$data .= "&url=" . urlencode("http://yahoo.co.jp");
//その他パラメータを追加する
fputs($sock, "POST $path HTTP/1.1\n");
fputs($sock, "Host: $host \n");
fputs($sock, "Content-Type: application/x-www-form-urlencoded; charset=$charset\n");
fputs($sock, "Content-Length: " . strlen($data) . "\n");
fputs($sock, "\n");
fputs($sock, "$data");
$result = '';
while (!feof($sock)) $result .= fgets($sock, 4096);
fclose($sock);
?>
0384nobodyさん
2006/11/12(日) 15:19:25ID:???>>381-382
ど素人乙。セッションをよく理解してないバカだな、お前らは。
っていうかアクティブになってる人数を把握するのに、わざわざAJAXを使うヤツは基地害。
0385nobodyさん
2006/11/12(日) 15:32:02ID:???0386nobodyさん
2006/11/12(日) 15:41:44ID:???n分以内に更新されたセッション数を数えるだけだよね
0387nobodyさん
2006/11/12(日) 15:57:30ID:???0389nobodyさん
2006/11/12(日) 16:17:18ID:???0390nobodyさん
2006/11/12(日) 16:37:11ID:???0392nobodyさん
2006/11/12(日) 18:16:55ID:EC0Gx1izこれを解決するにはどのような処理を行ったらよいのでしょうか。
PHPでブラウザから他のPCにリモートログインできるターミナルエミュレータのようなものを作ってみたいのですが、可能でしょうか。
0393nobodyさん
2006/11/12(日) 18:23:50ID:???0394nobodyさん
2006/11/12(日) 18:24:52ID:???好きな手法でやればいいだけじゃないか。
>>375で煽られたからってムキになるよ。
スルー汁。
0397nobodyさん
2006/11/12(日) 19:51:11ID:6O05V0pAメールアドレスの長さはどれくらいにするのが無難ですか?
RFCに沿うとやたらと長くなるので実用範囲でお願いいたします。
0399nobodyさん
2006/11/12(日) 20:11:34ID:???型名はTIMESTAMPを使用したほうがいいですか?
それともINTをつかったほうがいいですか?
0400nobodyさん
2006/11/12(日) 20:15:31ID:???データとして保存するならINTでいいだろ
PHPには関係ねえべ
0401nobodyさん
2006/11/12(日) 20:18:57ID:???0402nobodyさん
2006/11/12(日) 20:19:28ID:???0403nobodyさん
2006/11/12(日) 20:36:55ID:???0404nobodyさん
2006/11/12(日) 20:38:39ID:sscQxJ2c0405nobodyさん
2006/11/12(日) 20:39:21ID:???データとロジックを一体で考えてるならintの方が効率はいいかもね。
ただ、DB自体の日付演算関数とか使えなくなるし、検索も手動で
やりづらくなったりして使い勝手は落ちるからその辺のバランスの問題。
PHPの内部でしか使うつもりのないデータなら全然困んないだろうし。
あと2038年問題があるからその何年か前にはUNIXタイム型は型のサイズ変換が
入ることが予想されるので、その際にDBのコンバートが必要になる可能性も高い。
短期間しか運用しないシステムで、データのバックアップなんかもdumpでなく
PHPなどを通すかもしくは一切バックアップしないようなやつならどうでもいいかも。
0406nobodyさん
2006/11/12(日) 20:43:19ID:???内部データは変わらん。
0407nobodyさん
2006/11/12(日) 21:20:47ID:???0408nobodyさん
2006/11/12(日) 22:12:57ID:AeUA6O/W環境はWindows XPでPHP5を使っています。
PHPのモジュールをソースからコンパイルしてインストールするということが必要
になったのですが、Windowsでどのようにソースをコンパイルして、モジュールを
インストールしたら良いのかわかりません。
よろしければ、お教えいただけないでしょうか?
0409392
2006/11/12(日) 22:37:03ID:EC0Gx1iz>>395
ありがとうございます。
自分でも少し諦めかけてますが……
>>396
本当ですか!
覚えている限りで結構ですので詳細を教えていただけないでしょうか
0410351
2006/11/12(日) 23:03:07ID:???深夜にセキュリティの質問したものですが、アドバイスいただきありがとうございます。
とりあえず現在のプログラムに追記して
if(isset($_POST["submit"])){
$name=$_POST["name"]{
$hoge=$_POST["hoge"]{
}
表示箇所は<?=$hoge?>とか (これはOKですよね)
みたいにしようと思います。まだまだセキュリティの知識が乏しいので
勉強します。皆さん、ありがとうございました。
0411351
2006/11/12(日) 23:04:53ID:???0412nobodyさん
2006/11/12(日) 23:11:11ID:???NOTICEが発生
> <?=$hoge?>
<?= htmlspecialchars( $hoge, ENT_QUOTES, 'EUC-JP' );
0413nobodyさん
2006/11/12(日) 23:12:25ID:LM10n4zrhttp://47.xmbs.jp/mackey/
0414nobodyさん
2006/11/12(日) 23:18:39ID:???412にもあるけど、入力値をそのまま出力するアプリには脆弱性がある
<>"'&は変換してから出力しないと
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02.html
0415351
2006/11/12(日) 23:39:51ID:???再度修正ありがとうございます。
手持ちのリファレンスを見ると、412さんが書いたような表示が良さそうです。
重ね重ね勉強になります。ありがとうございました。
0416nobodyさん
2006/11/13(月) 10:00:57ID:???linuxにphpをインストールする時に、コンパイル時にextensionを組み込んじゃう方法と
php.iniに設定して後から組み込む方法とあるじゃないですか
これは例えば、
前者のほうが高速に動くけど、後者の方がメモリを多く食っちゃうとかあるのでしょうか?
頻繁に使うものだけコンパイル時に組み込んで、たまにしか使わないものは後から動的?に組み込んだほうが
いいのでしょうか?それとも、ちょっとでも使うものは組み込んじゃったほうが吉?
アドバイスお願いいたします。
0417nobodyさん
2006/11/13(月) 10:20:17ID:???保存用テキストファイルでもデータベースでも保存する件数が増えると
それだけデータが莫大になってきますよね?掲示板とかWEBメールとか。
そういう場合は「○件に達したら1行目を削除」もしくは「○件に達したら別のテーブルを作成」
みたいな処理を入れて対応するのでしょうか?
それとも別の、もっと効率的な構築の仕方があるのでしょうか?
0418nobodyさん
2006/11/13(月) 11:08:46ID:fcwOcTYQ基本はそれでいいと思うよ。あとはそれの応用で過去ログ化して閲覧できるようにしたり、HTML化したりとかじゃない。
0419nobodyさん
2006/11/13(月) 14:31:16ID:???0420nobodyさん
2006/11/13(月) 14:36:17ID:???NGにしとくから。
0421nobodyさん
2006/11/13(月) 16:22:23ID:???という一般的な登録フォームで、登録完了後にブラウザの「前に戻る」で
戻ると表示がおかしくなる時がありますが、これを解消するにはどうしたら
いいのでしょうか?
0422nobodyさん
2006/11/13(月) 16:37:36ID:???0423nobodyさん
2006/11/13(月) 16:38:04ID:???一般的に起きている事ならFAQになっているはずだ。
どうおかしくなるのか不明では、解消のしようがない。
文字化けが起こるならヘッダなり何なりで漢字コードを適切に出す。
そもそも「戻る」させないようにリダイレクトする。
など。
0424nobodyさん
2006/11/13(月) 17:23:24ID:???0425nobodyさん
2006/11/13(月) 17:30:35ID:???0426nobodyさん
2006/11/13(月) 17:31:33ID:???0427nobodyさん
2006/11/13(月) 17:31:49ID:???0428nobodyさん
2006/11/13(月) 18:07:49ID:???if($_POST["mailaddress"]==""){
echo ="メールアドレスが入力されていません";
}elseif(preg_match('/^[a-zA-Z0-9_\.\-]+?@[A-Za-z0-9_\.\-]+$/',$_POST["mailaddress"])){
echo ="メールアドレスではありません";
}else{
echo "正しいメールアドレスです";
}
入力チェックは問題ないのですが、その後のメールアドレスの識別が通りません。
上記のソースのどこがおかしいかご指摘いただけないでしょうか。
0429428
2006/11/13(月) 18:09:11ID:???0434nobodyさん
2006/11/13(月) 19:29:03ID:rWUh904Q0436nobodyさん
2006/11/13(月) 20:55:36ID:???0437nobodyさん
2006/11/13(月) 21:13:03ID:???0438416
2006/11/13(月) 21:39:10ID:DOnsRJEIいろいろ自分なりに検索してみたけどなかなか見付かりません
コンパイル方法ばっかりで・・・
そういえばもう一パターンありますね。
1、頻繁に使うものだけコンパイル時に組み込んで、たまにしか使わないものは後からphp.iniで読み込む
2、ちょっとでも使うものはコンパイル時に組み込んじゃう
3、コンパイル時はなんにも組み込まないで、全部後からphp.iniで設定する。
どれがいいのでしょうか?
ご意見求む!!
0439nobodyさん
2006/11/13(月) 21:44:46ID:???Extとしてコンパイルしとけっつか頭使うのが面倒ならディストリのでいいだろ
0440nobodyさん
2006/11/13(月) 21:54:40ID:???使うのかっていう前提が謎だからだと思うよ。
Apacheの子プロセスが多くてメモリが逼迫するとか、CGIだから
起動が重要だとか・・・どういう要件にかなうようコンパイルしたいの?
0441nobodyさん
2006/11/13(月) 21:58:03ID:???スレ違いってことはない。
漠然とした一般論を求められるとみんなそこまで
正確には理解してないから回答が面倒くさくなるだけw
0442nobodyさん
2006/11/13(月) 22:12:38ID:???まあ全部削ってもRubyやPerlに比べるとバイナリでかいしメモリ喰ってて重いが
PCNTLでほとんど何もしない常駐プロセス作ったら5MBくらい消費しててワロタ
0443nobodyさん
2006/11/13(月) 22:22:58ID:???基本--disable-allでコンパイルしてアプリの用途に応じて必要なものを
extensionで追加する形をとっているらしいね
おそらく拡張によるメモリなりなんなりを節約するためだと思う
ただそんなレベルでのパフォーマンスチューニングなんて
yahoo並のコンテンツとかなら影響はあるかもしれないけど
普通のサイトで使う分には大して変わらんだろうから気にする程でもない
最初からまとめてコンパイルしてもいいし
php.iniで追加していく形でもどっちでもいいと思う
0444nobodyさん
2006/11/13(月) 22:24:52ID:DOnsRJEI>>440
>>441
レスありがとうございます。
用途は、自宅サーバーを立ち上げてapacheとphpとpostgreでサイトを作ろうと思ってます。
まだ勉強中ですが、DNSも自鯖でやろうかと思ってます。
とりあえず、マシン一台(CPU=PemD メモリ2G)で立ち上げるつもりです。
私が読んだ本は、apache関係のモジュールとmbstringはたいていコンパイル時に組み込んでいて、後は本によってそれぞれですが、
読み込んでいるのがなんなのかの説明しかなく、
後から読み込むのと、コンパイル時に組み込むのの、利点・欠点を説明しているものは皆無です。
まあ、情報が少ないので、たぶんどっちでもそんなに変わらないのかとも思いますが
ちょっと気になったもので・・・
0445nobodyさん
2006/11/13(月) 22:33:21ID:???スタティックに組み込むとメモリが無駄になることがある、が速い
ダイナミックにロードするのは遅い、がメモリ効率よし
複雑なサイトになるなら実運用で負荷をみながら試験するしかないと思う
0446nobodyさん
2006/11/13(月) 22:35:43ID:???0447nobodyさん
2006/11/13(月) 22:52:33ID:???理屈のみで言えばコンパイル時に静的に組み込む方式の方が
速度的には有利な代わりメモリを食う。
ただし無用なものまでなんでもかんでも詰め込むと、プログラムの肥大化と
使用メモリ量の増大のために起動速度が遅くなり、速度的なメリットが減る。
これはPHPに限らず様々なアプリケーションで共通の話。
ただ、PHPはApacheモジュールとして動かした場合、初期起動速度を
稼げるため、静的リンクでもあまり困らないので全部リンクした方が楽。
また、頑張って機能を外しても大して軽くならないほど元々がでかいので
実は動的リンクでのメリットはそれほどは多くない。
それでもPHPは機能が多いので全拡張を合わせるとものすごい分量に
なってしまうので、何でもかんでもくっつけてしまうのは自殺行為だと思う。
また、すでにコンパイル済みのものが用意されてる場合に
あえて再コンパイルした方がいいほど静的リンクにメリットも無い。
一般的には「インストールが楽かどうか」だけで両者を選択してる人ばかり、
というのが現実です。
両極端なことをしない限り、こだわったところでどっちも大差ない、が正直なところ。
ただしものすごく大量のPHPプロセスを起動する場合など
シビアなケースではメモリの消費がバカにならなくなったりするので、
対策を迫られる場合もあるでしょう、ってとこかと。
それはもうチューニングの話なので、現場ごとにTPOがあります。
0448nobodyさん
2006/11/13(月) 22:54:16ID:???後から動的に機能を組み込めるかどうかをiniファイルで変更出来る
RPMでバイナリ配布する時とか、共有サーバで環境を切り替える時とか
実運用に入った後でPHPをコンパイルし直したくないとか
ダイナミックリンクライブラリは一度メモリ上に読み込まれると、
同時使用するアプリがあれば同一メモリを使用する
apache自体が常駐してるし、最初のオーバヘッド程度しか差は無いんじゃないかな?
0449nobodyさん
2006/11/14(火) 06:35:28ID:???まずはチューニングとかを考えなければ困ってしまうくらいの
アクセス数を得てから悩んでも遅くないんじゃないの?
俺の予想では、キミの自宅サーバはそのままでも十分にパワーを有り余らせることになると思う。
取らぬ狸の皮算用で速度とか心配するな。
0450nobodyさん
2006/11/14(火) 09:17:09ID:???うちのセレロン2.4Gで20万PV/dayが楽勝で、能力あり余してるよ。
0452nobodyさん
2006/11/14(火) 10:18:57ID:???>サイトを作ろうと思ってます。
>立ち上げるつもりです。
>アクセスはたくさんありますけどね
これから作る予定のサイトに既にアクセスがあるとは、これいかに。
まずはID出してからモノを言えよ、似非質問者。
0455nobodyさん
2006/11/14(火) 11:57:30ID:???下らん煽りに反応するな!
おれもなー。
0456nobodyさん
2006/11/14(火) 12:05:09ID:liCu6Ubcどのようにしたら良いのか分かりません。どうかお教え願いたい
のですが。
PHPは5.05で、データベースはSQLiteを使っています。
0457nobodyさん
2006/11/14(火) 12:32:22ID:???foreach($array as $data) {
sqlite_query($conn, "insert into TABLENAME set COLNAME='$data'");
}
でいいんじゃないの?
0460456
2006/11/14(火) 13:46:39ID:liCu6Ubc配列名 $value データベース名 word テーブル名 thesaurus
で以下のようにしたのですが、レコード0のままとなってしまい
ました。間違っているのでしょうか?
$db_open=sqlite_open("word");
foreach($value as $val) {
sqlite_query($db_open, "insert into thesaurus set COLNAME='$val'");
}
sqlite_close($db_open);
0464nobodyさん
2006/11/14(火) 14:02:07ID:???つか配列をストアしたいってそういう意味であってるのか?
0465nobodyさん
2006/11/14(火) 14:06:19ID:???0466456
2006/11/14(火) 14:29:49ID:liCu6Ubcphp.ini
;extension=php_sqlite.dll しかし、;をはずすと
'C:/php/ext\php_sqlite.dll'指定されたモジュールが見つかりません と表示
されます。
php.iniでは、extension_dir = "c:/php/ext" としているのですが・・
php/ext をみると、php_sqlite.dllはありませんでした。これがないと
動きませんよね?PHP5なのにこれがないということは、インストール
のときに欠陥があったということでしょうか?
0467nobodyさん
2006/11/14(火) 14:32:39ID:???0468nobodyさん
2006/11/14(火) 14:33:12ID:???c:\windows\にphp_sqlite.dllを放り込んで再起動かな
あれ、PHP5ってデフォルトでサポートしてなかったっけ?
phpinfoで確認してみそ
0469nobodyさん
2006/11/14(火) 14:37:01ID:???システムファイル非表示じゃないだろうな
0471456
2006/11/14(火) 14:42:11ID:liCu6Ubcということですよね。
>>461
テーブルは作ってあります。
sqlite_query($db_open, "insert into thesaurus set COLNAME='$val'");
このとき、もしかして、テーブルの項目名全て指定しなきゃいけなかった
んでしょうか?
0472nobodyさん
2006/11/14(火) 14:42:25ID:???エラー抑止してたらデバッグってレベルじゃねーぞ
0473nobodyさん
2006/11/14(火) 14:44:18ID:???0474473
2006/11/14(火) 14:45:10ID:???0475nobodyさん
2006/11/14(火) 14:49:04ID:???カラムリスト+Valuesしかない
0476456
2006/11/14(火) 14:54:06ID:liCu6Ubcよいのでしょうか?
0477nobodyさん
2006/11/14(火) 14:58:21ID:???可能でしょうか?
0478nobodyさん
2006/11/14(火) 15:07:36ID:???列に追加していきたいならforeachで回しながらINSERTするだけ
行にまとめたいなら insert into table_name [(col_list, ...)] values('val', ...'); のようなSQL文字列を生成すればいい
>>477
こんなかんじで
$bar = 'myMethod';
$this->$bar();
配列なら $this->{$bar[index]}();
0480nobodyさん
2006/11/14(火) 15:27:25ID:???だからserializeだっつーの。
せっかくみんながいろいろアドバイスしてくれてるんだから、
その一つ一つについて検討したかとか実行してみたとか、
具体的な返答をしてから新たな質問をしろよボケ。
答えは既にいくつも出てんだよチンカス。
0481nobodyさん
2006/11/14(火) 15:30:14ID:???配列の内容をって言ってるからなあ。要領得ない質問だから分からんが
0483456
2006/11/14(火) 15:46:20ID:liCu6Ubc0486nobodyさん
2006/11/14(火) 22:17:10ID:CEutkM32どこかにおちてませんか?
お金払ってまでしてみたくはありません
0487nobodyさん
2006/11/14(火) 22:21:21ID:???0488nobodyさん
2006/11/14(火) 22:25:37ID:???他にも試験的にくだ質たってたけどそっちはシラネ
0489nobodyさん
2006/11/14(火) 22:29:49ID:???先日、某スレで質問したところ『ググレカス』と回答を頂きました。
初めて聞いた単語なのでググレカスのもつ動作?役割?意味?がわかりません。
ググレカスとは何ですか?
0491nobodyさん
2006/11/14(火) 23:09:07ID:???/ ,――――-ミ
/ / / \ |
| / ,(・) (・) |
(6 つ |
| ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| /__/ / < なわけねーよ!
/| /\ \____________
0492456
2006/11/14(火) 23:12:57ID:liCu6Ubc分からないので教えてください。
foreachでループしたときの配列 $value
Array ( [0] => ツール [1] => tool [2] => tools )
Array ( [0] => ユーザー [1] => user [2] => ゆーざー )
Array ( [0] => ファイル [1] => file [2] => ふぁいる )
データベース名 word テーブル名 thesaurus
$db_open=sqlite_open("SQLiteManager/word");
foreach($value as $val) {
$encode_val = mb_convert_encoding($value,"EUC-JP","Shift_JIS");
sqlite_query($db_open, "INSERT INTO thesaurus(word,dougigo1,dougigo2,dougigo3,dougigo4,dougigo5,dougigo6)
VALUES ('$encode_val[0]','$encode_val[1]','$encode_val[2]','$encode_val[3]','$encode_val[4]',
'$encode_val[5]','$encode_val[6]')");
}
sqlite_close($db_open);
このようにしたり、他にも少々変更して試してみました。一応、レコードに書き出しては
いるようなのですが、意図したとおりではなく。。。
テーブルにword,dougigo1,dougigo2,dougigo3といったフィールドを用意し
Array ( [0] => ツール [1] => tool [2] => tools )の[0]をword,[1]をdougigo
といった具合に書き出して、他の配列でも同じように処理していきたいのです。
0493nobodyさん
2006/11/14(火) 23:22:08ID:???> $encode_val = mb_convert_encoding($value,"EUC-JP","Shift_JIS");
2行目の $value は $val のタイポ?
あとmb_conv...()は配列なんか受け付けないよ
foreach ($value as $val) {
$encode_val = array();
foreach ($val as $vah) {
$encode_val[] = mb_conv...($vah, ...
sqlite_query( ...
}
}
0495493
2006/11/14(火) 23:26:38ID:???foreach ($value as $val) {
$encode_val = array();
foreach ($val as $vah) {
$encode_val[] = mb_conv...($vah, ...
}
sqlite_query( ...
}
0496nobodyさん
2006/11/14(火) 23:34:18ID:???「役不足」という語について典型的な誤用をしてるな、お前。
知ったかぶって難しい言葉使う前に、辞書で調べるクセをつけるように。
0497456
2006/11/14(火) 23:40:48ID:liCu6Ubc$encode = mb_convert_encoding($val,"UTF-8","Shift_JIS");
でした。しかし・・やはり駄目か
あと、495の方法を試させていただきましたが、全てnullになってしまいました。
>>494
ひとつのフィールドにframeと書かれるはずが、f,r,a,m,eというように
別々のフィールドに書き出されてしまいます。
0498nobodyさん
2006/11/14(火) 23:55:16ID:???Warningが出ているはずだけど? 最初から疑問なんだけど何でエラーを無視してるの?
配列をmb_convert_encoding()に渡すことは出来ない
foreachでまわして一つずつ変換する必要がある
一文字ずつ出力されるのは $encode_val が配列ではなく文字列になってる証拠
$str = 'frame'; とある場合、$str[0] は f だし、$str[1] は r
変数の内容が期待したものかどうか、適当な位置で echo や var_dump() して
確認しながら作業しなきゃだめ
0499nobodyさん
2006/11/15(水) 00:01:43ID:???foreach ($double as $single) {
}
foreach ($double as $single) {
foreach ($single as $string) {
}
}
0500nobodyさん
2006/11/15(水) 00:02:09ID:???<form method=GET action=http://www.google.com/codesearch>
<input name=q value="">
<input type=submit value="Search Code" name=btnG>
</form>
0503nobodyさん
2006/11/15(水) 00:17:09ID:ylGAVv6P$smarty -> assign("name", $name);
$smarty -> display("template.tpl");
これだと、「<, >, &」などがHTMLエンティティに変換出来ないので心配です。
マニュアルを読んでみたのですが、Smartyサイドで変換することは出来ないのでしょうか?
$smarty -> assign("name", htmlspecialchars($name));
こうすると、何も出力されないのです(エラーさえも)。
0504nobodyさん
2006/11/15(水) 00:18:16ID:???http://sunset.freespace.jp/Smarty/SmartyManual_2-6-6J_html/language.modifier.escape.html
0505nobodyさん
2006/11/15(水) 00:22:53ID:ylGAVv6Pおお! ありがとうございました。
0506nobodyさん
2006/11/15(水) 00:27:27ID:???-----
<?php return array (
...
); ?>
-----
があって、これを
<?php
$a = require('hoge.php');
?>
として$aに読み込みたいんですが、実行すると標準出力にファイルの中身が吐かれてしまいます。
何が間違ってるんでしょうか?
0507nobodyさん
2006/11/15(水) 00:33:05ID:???テーブル設計がおかしい
Array ( [0] => ツール [1] => tool [2] => tools ) とあるとき
ツールの同意語を検索するのは容易だが、tool の同意語は検索しづらい
全ての組み合わせを登録する必要がある
が、普通こういうテーブルは作らない。正規化をググるべき
0508506
2006/11/15(水) 01:01:26ID:???0509nobodyさん
2006/11/15(水) 01:03:15ID:???0510nobodyさん
2006/11/15(水) 01:14:33ID:???静的なデータを持っているウェブアプリがあって、このデータを、
他のデータベースから引っ張ってきた対応する日本語に書き換えるスクリプトを書きたいんです。
そのウェブアプリ自体は$a = require('hoge.php');の形で、そのデータを使っているんですが、
自分でやるとできないんです。
どうも、hoge.phpのサイズが小さいうちは読み込めるのですが、500KBになるとエラーを出すようで。
実のところ、phpは全然分かっていないんですが、何か設定みたいのがあるんでしょうか?
0511nobodyさん
2006/11/15(水) 01:21:16ID:???requireは読み込みしてメインルーチンに取り込みであって
実行して結果を返すようなものじゃないから
requireファイルにreturnとか書いても無駄。
requireするファイルの中で
$a = array(...);
と書くか、
変数名を固定にしたくない場合は
function hoge() {
return array(...);
}
と関数化して
require('hoge.php');
$a = hoge();
と読み込んだ後に関数実行するとか。
関数名も固定にしたくないと言われたら知らん。
>>508
requireするファイルは特にサイズの問題はないと思うが、
PHPで確保できる配列のサイズには限界があるので
requireの中身が巨大な配列だとメモリ確保できなくて
エラーになることはある。(その場合、エラーメッセージが出る)
0512511
2006/11/15(水) 01:23:42ID:???0513nobodyさん
2006/11/15(水) 01:25:09ID:???エラーメッセージは何になってる?
500KBくらいならメモリ確保できないってこともないと思ったが、
そもそもそれ以前にメモリ食いすぎのプログラムなのかもね。
0514nobodyさん
2006/11/15(水) 01:27:30ID:???ttp://www.php.net/manual/ja/function.include.php
> 値の返し方: 読み込まれたファイル内では、ファイルの実行処理を終了し呼出側の スクリプトに戻るために
> return()文を実行することが可能です。 読み込まれたファイルから値を返すことも可能です。
> 例 16-9. include()とreturn()文
> return.php
> <?php
> $var = 'PHP';
> return $var;
> ?>
>
> noreturn.php
> <?php
> $var = 'PHP';
> ?>
>
> testreturns.php
> <?php
> $foo = include 'return.php';
> echo $foo; // 'PHP'と出力されます
> $bar = include 'noreturn.php';
> echo $bar; // 1が出力されます
> ?>
0515nobodyさん
2006/11/15(水) 01:30:09ID:???「<? return array(...); ?>」となっているのが原因のようです。
「<?php」にすると、requireで読み込むことができました。
一応、http://jp2.php.net/manual/ja/function.include.phpの例16-9で似たようなことはしているようです。
ただ、皆さんのおっしゃる通りあんまり正攻法ではないようですね。
どちらにせよ、なんで「<?php」になってないのに、元アプリで読み込めているかは謎です。
0516nobodyさん
2006/11/15(水) 01:43:05ID:???ああ、そういうことか。
それはphp.iniの設定でshort_open_tagsってのがあるため。
これをONにすると<? 〜 ?>形式でのPHPコードが許可される。
(OFFだと単なるHTMLとして扱われるため、そのまま画面に表示されてしまう)
記述が楽で<?=変数?>というテンプレートモドキの書き方もできるメリットがあるが
XMLなど他の<? 〜 ?>を使う言語との相性が悪いので推奨はされていない。
0520nobodyさん
2006/11/15(水) 02:28:58ID:wkc8v1DYOKになったのか?
$str = "asdf; echo $str[2];
0522nobodyさん
2006/11/15(水) 03:34:43ID:???例えばカラム名noの値が2、nameの値にうんこ、を入れたい時、配列のキーをカラム名にして
$value['no'] = 2;
$value['name'] = "うんこ";
foreach($value as $key => $val) {
$hoge[] = $key;
$hogehoge[] = "'{$val}'";
}
$k = implode(" ,",$hoge);
$v = implode(" ,",$hogehoge);
できあがった$kと$vをクエリに使ってみてはどうか。
0523522
2006/11/15(水) 03:37:33ID:???$k = implode(", ",$hoge);
$v = implode(", ",$hogehoge);
のほうがいいか。動作に支障はないけど。
0524nobodyさん
2006/11/15(水) 03:46:46ID:???あっちでも言ってるけど
$valueをforeachした$valは配列
配列をmb_convert_encodingはできぬ
MLマルチ乙
0525nobodyさん
2006/11/15(水) 03:55:28ID:???0526nobodyさん
2006/11/15(水) 04:01:45ID:???結局は双方向リストの束かしらん
0527496
2006/11/15(水) 04:20:37ID:???>>>468=<<496乙
>論点をすりかえなくていいよ。
ハァ?? 何言ってんのお前??? 俺は468ではないけどwww
単にお前の間違った単語の使用法を指摘してやっただけだ。感謝しろ。
0528nobodyさん
2006/11/15(水) 04:49:09ID:???そんな変な使い方はなかなか見ないよね。
0529nobodyさん
2006/11/15(水) 07:13:03ID:???当方、HTML→CSS→PHPとあらかたマスターしてきたのですが、次に何を勉強しようかなと迷ってます。
PHPは力技も使えばほとんどやりたいことはできます。
サーバー関連(Apache?UNIX?よくわからんす)の勉強か、ajaxかXMLあたりをやろうと思うんですが、どれがどんな特徴があるか、私的な意見になると思いますが、聞かせてもらえるとありがたいです。
0530529
2006/11/15(水) 07:14:15ID:N4vSt0D00531nobodyさん
2006/11/15(水) 07:47:00ID:???0532nobodyさん
2006/11/15(水) 07:55:17ID:???人に聞くまでもあるまいに。
思うがままに
0533nobodyさん
2006/11/15(水) 08:01:36ID:???何がしたいのかよく読めない。
ネットワークエンジニアの勉強したいのか?プログラマの勉強したいのか?
どれがどんな特徴といっても、分野が違うから困るんだよね。
Apache,Unix,Ajax,XMLと名前を出してるということは、
この言葉に興味があるってことでしょ?
HTML→CSS→PHPときてるなら、前者2つは全く違う分野で、
覚えるべきことが多くなってややこしくなるから触れないほうがいいと思う。
残るはAjaxとXML好きなほうやればいいよ。
Ajaxやるなら、まずはJavaScript勉強すればいい。
ついでにFlashのActionScriptと類似点も多いので、Flashも同時にマスター。
XMLはいろいろ使えるけど、勉強してきた経緯からして、
XSLTと組み合わせて、XMLでWebページを作る技術でも身につければいいと思う。
0534nobodyさん
2006/11/15(水) 09:12:48ID:???0535nobodyさん
2006/11/15(水) 09:14:06ID:???0536nobodyさん
2006/11/15(水) 10:16:33ID:N4vSt0D0なるほど、参考にします。
まぁ目標みたいなものもないので(既に仕事としては考えてないので)マターリ修得してこうかなと思ってました。
JAVAという手もありましたね…とりあえずはJavaScriptをガッチリやってからAjaxを勉強してみたいと思います。レスありがとうございました。
0537nobodyさん
2006/11/15(水) 11:30:37ID:DsSvM2t5SQLiteはEUC-JPを使うはずなのに、Shift-JISから
EUC-JPに変換して・・・ mb_convert_encoding($abc, "EUC-JP", "Shift_JIS")
文字化けがあるのは何故なのでしょうか?
0539nobodyさん
2006/11/15(水) 11:36:39ID:???0540nobodyさん
2006/11/15(水) 11:41:39ID:DsSvM2t5ありがとうございました。確かにUTF-8で文字化けしなくなりました。
本にSQLiteはEUC-JPを使うと書かれていたので、ひっかかってしまいました。。。
0543nobodyさん
2006/11/15(水) 12:52:36ID:???オブジェクト指向と言えますか?
クラスとかはよく分かりません。
0544529
2006/11/15(水) 13:43:05ID:N4vSt0D0一応マジレスしときます。
鯖と2chの仕様(もしくは参考サイト)とあとお金を用意してくれれば作りますよ。DBもMySqlでよければ扱えます。
2chについてはあまり詳しくないんで(ギコナビってなんだろうと思ってググった)、正直仕様を調べる時間と手間が面倒ですね。マジな話ならその分の金をいただきます。
スレ違いに反応スマソ。
0546nobodyさん
2006/11/15(水) 13:53:07ID:???p2だっけ?Web版2chブラウザなら既にあるじゃん
0547nobodyさん
2006/11/15(水) 13:59:09ID:uyXfKD17「フォームのsubmitを押してから○秒後に送信」とかやりたいのですが、
手持ちのリファレンスには記載がありませんので、質問しました。
0552nobodyさん
2006/11/15(水) 14:17:20ID:???PHPでのWEBメール一括送信とかに利用出来ないかなって思いまして。
クッキーとか使ったら出来るかな?って思ったけど無理だったし。
JSは基礎知識しかないので、出来ればPHPでなんとかならないかと。。
とりあえずもう少し調べます
0553547
2006/11/15(水) 14:21:48ID:???すみません、レス見逃してました。
そして、550さんのいうsleepをググったら下記のような方法で出来ました!
echo date("h:i:s");
sleep(10); //10秒遅らせる
echo date("h:i:s");
アドバイスありがとうございました
0554nobodyさん
2006/11/15(水) 14:25:05ID:???これは酷い。 まぁPGかじり始めは何でも出来ると思って自分に酔う時期なんだろうね。
俺も全く同じ道のり(HTML→CSS→PHP)辿ったが、
PHP5をやる時にオブジェクト指向と言う概念がよく分からなくて調べた時は自分の未熟さを恥じた過去があったりなかったり…。
まぁPHPとSQL使えるがサーバは不明てことは金は取らん方がいいよ。
金取る以上XSSやらSQLインジェクションみたいな脆弱性が書いたコードの中に見つかったらどうなるか分かってるよね?
と偉そうな事言ってる俺もPHP→Linux弄り(FC、CentOS、BSD)までの半人前だからアレなんだけど。
0555nobodyさん
2006/11/15(水) 14:29:13ID:???$config = parse_ini_file('config.ini', true);
$config = $config['hoge'];
0556nobodyさん
2006/11/15(水) 14:30:22ID:???0557nobodyさん
2006/11/15(水) 14:31:38ID:???まともなもの作れなくて投げ出されたわw
0558542
2006/11/15(水) 14:33:05ID:???お金取るのかよ(`ω´)
取るとして、要求定義書〜テスト仕様書までのドキュメントはもちろん付いてくるんだよね?
(でも、お金払うぐらいなら自分で作るよ Javaでw)
>>546
2ch以外にも使いたい掲示板があるので・・・あと右上のアニメーションが欲しい
0559nobodyさん
2006/11/15(水) 14:35:04ID:???ばっくれられた事あるよ
最初銀行振り込みで話付いてたのに、書留で送ってくれとか言い出して
ちょうど、イーバンクの振込み入金口座が廃止された時期だったから
身元明らかにしないで金振り込ませてバックレようとしたみたい
0560nobodyさん
2006/11/15(水) 14:38:47ID:???0561nobodyさん
2006/11/15(水) 14:43:19ID:???みたいな自作自演メールが来るよ
きょうつけて!
0563nobodyさん
2006/11/15(水) 15:06:44ID:DsSvM2t5ですが。
if ($db = sqlite_open("SQLiteManager/word", 0666, $sqliteerror))
{
$value2 = array(array( 'ツール', 'tool', 'tools' ),
array( 'ユーザー', 'user', 'ゆーざー' ),
array( 'ファイル', 'file', 'ふぁいる' ));
foreach($value2 as $nkey => $arrValue)
{
foreach($arrValue as $nkey2 => $strValue)
{
$arrValue[$nkey2] = mb_convert_encoding($strValue, "UTF-8", "Shift_JIS"); //EUC-JPでなくUTF-8
}
$sql = <<< EOM
INSERT INTO thesaurus(word, dougigo1, dougigo2, dougigo3) VALUES
('{$arrValue[0]}', '{$arrValue[1]}', '{$arrValue[2]}', '{$arrValue[3]}');
EOM;
sqlite_query($db, $sql);
}
}
sqlite_close($db);
上記のように、配列の内容を直に書くと、レコードに書き出せるのですが、
配列が格納された変数($value)を指定するとうまくレコードに書き出されません。
どのようにすればよろしいでしょうか?
0564nobodyさん
2006/11/15(水) 15:08:36ID:???0565nobodyさん
2006/11/15(水) 15:18:55ID:???まず、どの不具合の発生箇所を特定しなよ。
特定できたら、その箇所に対して別のコーディングが出来ないか試してみるとかすれば?
スレタイに見合った素晴らしい下らない質問だけど、
回答する度に、新たな、しかも大して進歩の無い質問を繰り返されるといい加減だれも相手しなくなるよ
0566nobodyさん
2006/11/15(水) 15:22:06ID:DsSvM2t50567nobodyさん
2006/11/15(水) 15:26:01ID:???そして氏ね
0568nobodyさん
2006/11/15(水) 15:32:36ID:DsSvM2t5障害箇所はわかってます。別のコーディングができないかどうかも
試しました。しかし、うまくいかないんです。
0569nobodyさん
2006/11/15(水) 15:38:30ID:???0571nobodyさん
2006/11/15(水) 15:45:17ID:???SQLliteは知らないけど
>>567が言うように、エコーバックしたSQLステートメントを
クライアント通して直接DBに対して実行してみた?
その場合、SQLLiteからはどんな反応(メッセージ)が帰ってきた?
「わかんない、わかんない」じゃマジで誰も相手しなくなるよ
0572nobodyさん
2006/11/15(水) 15:48:57ID:???0574563
2006/11/15(水) 15:50:26ID:DsSvM2t5ありがとう。
0575DsSvM2t5
2006/11/15(水) 15:51:41ID:???0576nobodyさん
2006/11/15(水) 15:53:17ID:???なぜエラーをスルーするんだとかいうレベルじゃない
0577nobodyさん
2006/11/15(水) 15:54:02ID:???0578nobodyさん
2006/11/15(水) 16:00:53ID:???0579nobodyさん
2006/11/15(水) 16:08:57ID:???3年に一人の逸材だ
0581544
2006/11/15(水) 16:14:31ID:N4vSt0D0>>558
当たり前でしょ、別に依頼を受けてるわけでもないのに、知らん奴に匿名でいきなり依頼されて、自分の時間裂いてまでタダで作る奴は普通はいないでしょ。
これは釣られてるのだろうかw
どうせまた煽りレスがつくんでしょうね。いい回答者さんもたくさんいるのに少数の煽りでスレが荒れる(しかも自分のレスで)のは嫌な気分ですね。
0582nobodyさん
2006/11/15(水) 16:19:16ID:???0583563
2006/11/15(水) 16:19:17ID:DsSvM2t5データベースを初めて使う素人に上手なデータベースの作り方を
お教えください。
0584nobodyさん
2006/11/15(水) 16:24:29ID:???0586nobodyさん
2006/11/15(水) 16:26:50ID:???お前もついでに氏ね。厨房が来るような板じゃないですよ
>>583
自分で調べてから出直して来い。
大体日本語が可笑しい時点でDBが何か把握できてないんじゃないの?
>上手なデータベースの作り方
何これ?料理教室にでも通うつもりか?
0590nobodyさん
2006/11/15(水) 16:35:26ID:???0591nobodyさん
2006/11/15(水) 16:38:43ID:???0592nobodyさん
2006/11/15(水) 16:40:51ID:???0593nobodyさん
2006/11/15(水) 16:41:17ID:???をする奴が多いな。そんな暗いことやってて楽しいのか?
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が返るだろうし
0695nobodyさん
2006/11/17(金) 03:29:26ID:???プログラムを
<?php
echo "error=".$_FILES['userfile']['error']."\n";
?>
だけにしたらどうなるの?やっぱ接続リセット?
0697nobodyさん
2006/11/17(金) 03:35:24ID:???レスポンスコードはどうなのかしら
0698680
2006/11/17(金) 03:37:33ID:???httpd.confのTimeoutは300だったので、1000にしてみましたがやはりダメでした。
>694
実はリモートで両方ともBフレ経由のインターネット環境です。
今引っかかってるのは1MB強のラインでテストデータは
「test」を羅列したテキストです。
(横に168文字縦に7行まではOKなんですが8行になるとダメです。)
>695
試してみます。
0699680
2006/11/17(金) 03:38:35ID:???書き間違い。1MBじゃなくて1KBです。
0700680
2006/11/17(金) 04:00:28ID:???マジですみません。m(_ _)m
自宅のLAN環境が原因でした。
この前までNEC製のADSLルータ(Web Caster 610M)+コレガの無線ルータで有線LANと無線LANを隔離して
無線経由でインターネットは見れるけどNASやプリンタはいじれないように設定していたのを、
Bフレに変えた時にADSLルータ(NEC製)をOKI製の光電話ルータ(RT-200KI)に変えられたせいで、
無線LAN環境からFTPでファイルをアップ出来ない等の不具合が出てたんでしたorz
普段HTTPでは特に問題は発生しなかったんでFTP固有の問題だと思っていたんですが・・・。
有線LANに繋いで見たら、とりあえずテスト用のテキストファイルも56KBのバイナリもアップ出来ました。
やっぱ116にTELしてNEC製のルータ(RT-200NE)に変えてもらおうかな・・・。
0701nobodyさん
2006/11/17(金) 08:14:15ID:???0702nobodyさん
2006/11/17(金) 08:33:50ID:???これってなんですかね・・・・?設定は9997MまでOKなんですが・・・こんな数字に設定してないし
0703nobodyさん
2006/11/17(金) 08:58:15ID:???0704nobodyさん
2006/11/17(金) 10:27:17ID:???でしょうか? JAVASCRIPTを使うかコマンドライン命令をshellで投げるか程度しか思いつかなかった
のですが、前者はユーザ環境次第、後者はサーバー環境次第で使えないのであまり気に
いりません。
0706nobodyさん
2006/11/17(金) 11:20:37ID:???この時点で考えていることがおかしいと思う
0709nobodyさん
2006/11/17(金) 12:28:15ID:Kg6mrgCwログファイルに書き込むときのデータごとの区切り文字と、
データ中に同じ文字があった場合のときってどうしたらいいんでしょうか?
例えば 区切り文字が","(コンマ)の場合で、
データが aiueo,kakikukeko といった場合は
データの中の","で、aiueoとkakikukekoとに分かれてしまうんです。
0710nobodyさん
2006/11/17(金) 12:37:46ID:???0711nobodyさん
2006/11/17(金) 12:39:34ID:???データにありえない文字を区切りに使えばいいのでは。
区切りにはTAB文字とかのコントロールコードを使って、データからはきちんと除去しとくとかね。
HTMLタグをhtmlspecialcharsかけた上で<>を区切りに使う人も(古いCGIからの人とかに)多い。
データをXMLで記録する、という手もある。
いっそRDBMS使ってもいいと思う。というか推奨。
カンマ区切りデータでの一般的エスケープ方法(Excel方式)ってのもあるにはあるけど
データの生成とパースが無駄に遅くなるだけだから、
CSVファイルで外部とやり取りしたいわけでなければ
内部データでCSVを使うのはナンセンスだと思う。
0712nobodyさん
2006/11/17(金) 12:48:55ID:wH2IZbEghttp://jp.php.net/fgetcsv
これ楽じゃね?
0713nobodyさん
2006/11/17(金) 12:51:41ID:???0714709
2006/11/17(金) 12:57:29ID:Kg6mrgCwどのサーバでも動作するシステムを作りたいと思っているので、
データベースを使うと、設定とかでめんどくさくなってしまうのではないかと思うのです。
CSVにこだわりがあるわけではないので、いくつか教えていただいた方法で試していってみたいと思います。
0715nobodyさん
2006/11/17(金) 13:54:39ID:iYTLwrM4に変換する(&は半角)
0717nobodyさん
2006/11/17(金) 14:32:36ID:P7ghOTn+>>707
リミットがそこでないはずなので悩んだのですが
phpの限界ですか?
ちゃんと設定読んでくれるCMSで見たのにー
0718nobodyさん
2006/11/17(金) 14:38:49ID:???0719nobodyさん
2006/11/17(金) 15:32:19ID:/mn+LtBq0721nobodyさん
2006/11/17(金) 16:06:37ID:???0722nobodyさん
2006/11/17(金) 16:22:43ID:P7ghOTn+スワップしないでそのまま書けばまあ動くかなぁーと思ってました
ちなみにスワップはいつもmaxだよ。
0723nobodyさん
2006/11/17(金) 16:59:46ID:xFjRjRSMこれで何とか動くには動くのですがセキュリティ的に何か問題があるでしょうか?
またもっと簡単にコードが書けるのなら教えてほしいです。
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" accept-charset="EUC-JP">
id<input type="text" name="id" value="<?php echo htmlspecialchars($_POST['id']);?>"><br>
<font size="2">パスワード<input type="password" name="pass" value=""><br></font>
<input type="submit" name="foo" value="送信">
</form>
<?php
include "/virtual/nyahi/db_connect.php";//DBに接続
if($_POST['id']){
$post_id= $_POST['id'];
$post_pass= $_POST['pass'];
if(ereg("'",$hoge) ){//シングルクオーテーションはDBに接続させない
die("'←これは嫌い。");
}
if(ereg("'",$_pass) ){//シングルクオーテーションはDBに接続させない
die("'←これは嫌い。");}
$sql = "SELECT *";
$sql.= "FROM user ";
$sql.= "WHERE id='$post_id' and pass='$post_pass'";
$rs = mysql_query($sql,$conn);
if($rs == FALSE){
die ("エラーですよ");}
while($rec = mysql_fetch_array($rs,MYSQL_ASSOC) ){
$ok = 1;//whileループに入ったことで取得を確認
$id = $rec['id'];
$pass = $rec['pass'];}
if(!isset($ok) ){
echo "IDまたはログインパスワードが誤っています。ご確認のうえ、再度ご入力ください。";
}else{echo "ようこそ${id}さん。";}}
?>
0724nobodyさん
2006/11/17(金) 17:13:44ID:???> include "/virtual/nyahi/db_connect.php";//DBに接続
DBへの接続は入力値があった場合だけでいいのでは。
> if(ereg("'",$hoge) ){//シングルクオーテーションはDBに接続させない
> die("'←これは嫌い。");
> }
普通、mysql_escape_string等でエスケープした上でそのままSQL文に渡すとこだと思う。
まぁ、IDとパスでそんな文字はありえない、ってことならいきなり終了でもいいけど。
あと変数名の間違いについてはスルーでいいんだよね?
> while($rec = mysql_fetch_array($rs,MYSQL_ASSOC) ){
> $ok = 1;//whileループに入ったことで取得を確認
1回しか取得する必要がないものをあえてwhileで回す必要はないんでは。
if($rec = mysql〜) でいいんじゃないの?
まぁ、大して変わんないけど。
> if(!isset($ok) ){
issetじゃなくif($ok)で真か偽か見るようにして、最初に$okは$ok=0;で初期化するようにした方がいい。
register_globalsがOFFだから汚染されるはずがない、という思い込みはミスしたときが危険。
つか、fetchをwhileでなくifにしちゃえば、こんなフラグ判定は要らないと思うけど。
0725nobodyさん
2006/11/17(金) 17:20:45ID:???カウントが遅いんですがなぜですか?
$a = array_fill(0, 100000, 0);
$b = & $a;
count($a);
0726nobodyさん
2006/11/17(金) 17:28:00ID:???eregよりstrposの方が数倍早いよ。
if (strpos($hoge, "/") !== FALSE) { echo "$hogeに/が含まれる"; }
>>725
でかいからでは?
0727nobodyさん
2006/11/17(金) 17:31:37ID:???でもエイリアスじゃなくするとreset($a)が遅くなるし・・。なんで?
0728nobodyさん
2006/11/17(金) 17:33:48ID:???1バイト文字列の正規表現ならpreg系でいいし、正規表現使わないならstrposでいいし、マルチバイトならmb_ereg使うよね?
違うのかな?
0729nobodyさん
2006/11/17(金) 17:39:50ID:???その認識でほとんど問題ないよ。
Perl系正規表現を使うのに抵抗が無いならそれ使うのがいい。
ただ、ereg系ってのは伝統的な正規表現なので、
昔からのUNIX使いにはそっちの方が馴染みがある人も少なくない。
pregはあくまでPerlで勝手に拡張した方言なので。
慣れた方法を使えるよう複数のI/Fを提供するのがPHP流だよね。
それにpregとmb_eregを混在して使うと正規表現の記法がバラバラで
混乱を招きやすいって問題も出るね。
0730nobodyさん
2006/11/17(金) 17:42:03ID:???どの辺がどう影響してるのかはPHPのソース読まないとちと即答しかねるが、
PHPのリファレンス機能は基本的に劇遅です。
0733nobodyさん
2006/11/17(金) 18:27:40ID:???作ろうと思うんですが、
ディレクトリ情報ってどんな感じでデータベースに格納すれば
いいでしょうか?
固定ならかんがえやすいのですが、あとから
特定のリンクを別ディレクトリへ、と考えると
何かよい定義方法があるとおもうのですが。
0734nobodyさん
2006/11/17(金) 18:29:53ID:???やや抽象的な書き方になるけど、一般的に
$a = 大きな文字列or配列;
$b = & $a; // $a、$b、共に「自分のエイリアスが1つ以上存在する」というフラグみたいなのが立つ。
$x = $a; // エイリアスさえなければ働くはずの参照カウントが働かなくなり、コピーし始める。
$x = $b; // この場合も同様にコピーし始める。
って感じで、別の変数($x)への代入が遅くなる。
count($a);という呼び出し前には「$countの引数 = $a;」という内部動作が加わるから遅くなるんじゃないかな。
余談だけど、この応用で、
function hogehoge(& $b) {
という関数があると、この関数内での$hensuu = $b;は全て、&なしの場合より遅くなる。
0735nobodyさん
2006/11/17(金) 18:45:17ID:???/ /,.- 、 ヽヽヽ `゙''‐、;:;:;:;:;:;:;:;:|
_rー、ヽヽ ー 、_ ブ;:;:;:;:;:}
ミヽ● ! | | `ー‐ 、ヽ、 /;:;:;:;:;:;/
`ー' V , -──一ミ、 l/:;:;:;:;:/
___ / r'´,二二`ヽ | |/;:;:;:;:;/
,',',',' ( / 〈 ● 〉l l/ /;:;:;∠
,','il',',',ヽ ヽ ヽ二 /'´ ノ
,','ヾ、',','`ー'ー^! / _r-'´
, ' , ' `ヽ、__, ' !、 //
' , ' , ' `ー, ' , '! `ー'/ ̄
ヽ、, ' , ' , ' , ', -' ,'/
` ̄ ̄フT ´
-----一'´ |
::::::::::::::::::::::::/
::::::::::::::::::::::/
0736723
2006/11/17(金) 19:34:07ID:xFjRjRSM2chに張るとソースが見にくいのでほかのところにうpしました。
http://onegaisiamsu.ojaru.jp/php.txt
それとDBのパスワードの認証はcrypt関数で暗号化したほうが良いのでしょうか?
まだ何かあったらよろしくお願いします。
0737nobodyさん
2006/11/17(金) 21:07:29ID:???とりあえず$b使い終わったらcountなりresetする前にunset($b)しとけ
>>734
このへんが参考になると思われ
>References Explained (by Derick Rethans)
>http://derickrethans.nl/php_references_article.php
0738nobodyさん
2006/11/17(金) 23:52:52ID:???2行目の
if($_POST['subcheck']){
を
if(isset($_POST['subcheck'])){
に書き直すのがよろしいかと。
07392ちゃん工作員
2006/11/18(土) 00:22:40ID:???0740nobodyさん
2006/11/18(土) 02:55:41ID:???ttp://www.google.co.jp/search?hl=ja&q=php+%E3%82%AF%E3%83%A9%E3%82%B9&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=lang_ja
0741nobodyさん
2006/11/18(土) 03:10:04ID:+NG79cWWどのようにしたらいいでしょうか?
0742nobodyさん
2006/11/18(土) 03:16:19ID:???0743nobodyさん
2006/11/18(土) 03:25:49ID:???$image = file_get_contents("http://server/image.jpg");
でいけねー?
0745nobodyさん
2006/11/18(土) 03:33:42ID:???アクティベーションサービスを利用できる
ASPサービスってないですか?
自分のメアドを登録すると、そこにメールが
送られてきて、メールを開くとURLが書いてあって、
それをクリックすると、
「登録が完了しました」
って出る、例のアレのことです。
そこのアクティベーションの部分だけお借りしたいのです。無料で。
0749nobodyさん
2006/11/18(土) 05:25:27ID:???0750nobodyさん
2006/11/18(土) 05:37:33ID:???0751nobodyさん
2006/11/18(土) 05:42:33ID:???変な質問してすいませんでした
0752nobodyさん
2006/11/18(土) 10:28:28ID:Ta87IDDVレンタルサーバーなのでphp.inはいじれません。
そこで.htaccessを使って何とかしようとしているのですがうまくいきません。
php_flag session.auto_start On
php_value session.auto_start 1
検索したところこれらを書けばいいとのことでしたが変化ありません(phpinfo()で確認)。
よろしくお願いします。
0754nobodyさん
2006/11/18(土) 10:34:13ID:Ta87IDDV.htaccsessは使えます。
0755nobodyさん
2006/11/18(土) 10:37:16ID:???require'/rl.php';
$vi rl.php
echo 1;
とした場合にrl.phpがhttp://localhost/abc.php で呼び出されたのかhttp://localhost/rl.phpで
呼び出されたのか調べる方法はないでしょうか?
0756755
2006/11/18(土) 10:51:55ID:???自己レス
0757nobodyさん
2006/11/18(土) 11:04:35ID:???.htaccessではどこまでの設定が許可されてるの?
httpd.confのAllowOverrideは何に設定されてるんだろ。
0758nobodyさん
2006/11/18(土) 11:04:41ID:???htaccessに関しては
アクセス制限に関しての設定しかできないようにサーバ側で規制してるかもしれないよ。
もっかいサーバのマニュアル読んでこい。
0760nobodyさん
2006/11/18(土) 11:12:46ID:???rl.phpってのが実行されたとき、それが直接呼び出されたのか
あるいは他のファイルにincludeされたのかを知りたい、ってことでしょ。
>>756や$_SERVER['PHP_SELF']見てファイル名違ったら後者、でいんでないの。
0761nobodyさん
2006/11/18(土) 11:13:58ID:???$ vi abc.php
$GLOBALS['require_id'] = 'abc';
require'/rl.php';
とかしないと無理じゃね
0762755
2006/11/18(土) 11:27:58ID:???としたけどPHP_SELFの方が良いのでしょうか?
なんかSCRIPT_FILENAMEってdllとかで動かすと環境変数なかったような・・・
0763nobodyさん
2006/11/18(土) 11:40:30ID:???自分の結果がでるのがphp_selfならそれ使えばいいじゃん。
0764nobodyさん
2006/11/18(土) 12:59:56ID:???メンバ変数を指定することは出来ないんでしょうか?
var $table= 'テーブル';
function test($table_name = 'this->table') {
echo $$table_name; //テーブルを出力させたい
}
これだと何も出力されません。
0765nobodyさん
2006/11/18(土) 13:03:24ID:???0767nobodyさん
2006/11/18(土) 13:11:31ID:???ごめんなさい。
Parse error: parse error, unexpected $end in と出てしまいます・・・
0768nobodyさん
2006/11/18(土) 13:24:04ID:???0769nobodyさん
2006/11/18(土) 13:29:02ID:???俺ならこうする
function test($table_name = NULL) {
if(! isset($table_name)) $table_name = $this->table;
echo $table_name;
}
0770nobodyさん
2006/11/18(土) 13:29:21ID:8ao0Px63フォルダの中にある画像を001〜100.jpgまでナンバリングしています。
それらを「次へ」をクリックしたときに
001>002>003と順番に表示させたい場合はどうしたらいいでしょうか?
ググってみたのですが、さっぱりわかりません…
0771nobodyさん
2006/11/18(土) 13:33:32ID:???<?php $no = (isset($_GET['no']))? intval($_GET['no']): 1; ?>
<html><body>
<img src="<?php echo sprintf("%03d", $no); ?>.jpg">
<a href="<?php echo sprintf("%03d", $no + 1); ?>.jpg">次へ</.a>
</body></html>
0772771
2006/11/18(土) 13:34:53ID:???<?php $no = (isset($_GET['no']))? intval($_GET['no']): 1; ?>
<html><body>
<img src="<?php echo sprintf("%03d", $no); ?>.jpg">
<a href="<?php echo $_SERVER['PHP_SELF']?>?no=<?php echo $no + 1; ?>">次へ</.a>
</body></html>
0773770
2006/11/18(土) 13:48:03ID:8ao0Px63成功しました!!
先ほど書けばよかったのですが…
100枚を超えたときに「index.html」に戻したい場合はどうしたらいいでしょうか?
何度もすみません…
0774nobodyさん
2006/11/18(土) 13:55:38ID:???100枚を超えたらindex.htmlへ戻るように条件分岐させれば良いんじゃないすか?
0775nobodyさん
2006/11/18(土) 14:09:06ID:???同じような宿題やってるんだが、同じゼミ生か貴様w
0776770
2006/11/18(土) 14:11:41ID:8ao0Px63同人誌のサイトを作りたくて・・
0777nobodyさん
2006/11/18(土) 14:15:37ID:???0778770
2006/11/18(土) 14:19:40ID:8ao0Px63<a href="<?php echo $_SERVER['PHP_SELF']?>?no=<?php echo $no - 1; ?>">
<br />
戻る</a> ・ <a href="<?php echo $_SERVER['PHP_SELF']?>?no=<?php echo $no + 1; if($no == 100 or $no == 0) { ?>">
次へ</a>
条件分岐ってこんな感じでいいのでしょうか?
if 100 or 0 だったときにindex.htmlへの飛ばし方がわかりません・・
0779nobodyさん
2006/11/18(土) 14:28:00ID:???header('Location: http://example.com/index.html');
exit;
}
クラナドでもやろっか
0780nobodyさん
2006/11/18(土) 15:09:04ID:???$noに変な文字列がくるかもしれんので
「if(!($no>0 AND $no <=100)){」の方がいいかも新米。
# 小数点な数がきたりして
0782nobodyさん
2006/11/18(土) 15:32:32ID:???ゼミ担当教官、同人誌サイト鋭意開発中ワロス
サイトの品質はゼミ生の出来に
掛かってるんだから超ガンガレ
0783nobodyさん
2006/11/18(土) 17:23:16ID:???print('<meta http-equiv="Content-Type" content="text/html; charset={$charset}">');
という感じのソースなんですが、
{$charset}の部分がそのまま出てしまいます。
""で囲んで、"をエスケープ処理orヒアドキュメントでもできるのはわかりますが、
この''で囲んだ場合、どのようにしたら思い通りになるか教えていただけませんか?
0784nobodyさん
2006/11/18(土) 17:29:28ID:???print('<meta http-equiv="Content-Type" content="text/html; charset=' . $charset . '">');
クオート範囲の外に出して文字列連結。
0785nobodyさん
2006/11/18(土) 17:31:19ID:???おぉ!お早いレスどうもありがとうございます!
なるほど、一回出して連結すればいいのですね。
大変助かりました。どうもありがとうございます。
0786nobodyさん
2006/11/18(土) 17:36:24ID:lFfXscZqどなたかnotepad++でPHP書いてる方いませんか?
コメントの部分に日本語を使うと文字化けするのですが、
私だけでしょうか・・・?
0788nobodyさん
2006/11/18(土) 19:59:10ID:???個別に指定しないとだめなんですね。
PHPのコメントのところのフォントを変えたらできました。
どうもお騒がせしました。
0789nobodyさん
2006/11/18(土) 20:21:15ID:???フォントの指定を1番上の空っぽのにしてしまえばデフォルトのを使うようになる。
元々の設定がコード部分とコメント部分とで異なるフォントにしてあるだけ。
0790nobodyさん
2006/11/18(土) 20:38:38ID:IiQLRyMsうまくいきません。。。
DBにぶち込むソースは既に動作確認できている部分かたとってきたので
動かないことはないかと思うんですが、SQL文の中に特定の文字が入っちゃいけないだとか
動かないときの常套手段なんかありましたらお願いします。
0791nobodyさん
2006/11/18(土) 20:43:32ID:???SQLのエラーメッセージ表示。
例えばmysqlなら
$result = mysql_query($conn, $sql);
echo mysql_error();
みたいな感じ。
0792nobodyさん
2006/11/18(土) 20:43:43ID:???範囲広すぎ、エスパー居ませんか?となるわけだ
0793nobodyさん
2006/11/18(土) 21:23:00ID:PIy0ZcR3彼女にインサート権限がありません。どうしたらいいですか?
0794nobodyさん
2006/11/18(土) 21:46:13ID:???/ /,.- 、 ヽヽヽ `゙''‐、;:;:;:;:;:;:;:;:|
_rー、ヽヽ ー 、_ ブ;:;:;:;:;:}
ミヽ● ! | | `ー‐ 、ヽ、 /;:;:;:;:;:;/
`ー' V , -──一ミ、 l/:;:;:;:;:/
___ / r'´,二二`ヽ | |/;:;:;:;:;/
,',',',' ( / 〈 ● 〉l l/ /;:;:;∠
,','il',',',ヽ ヽ ヽ二 /'´ ノ
,','ヾ、',','`ー'ー^! / _r-'´
, ' , ' `ヽ、__, ' !、 //
' , ' , ' `ー, ' , '! `ー'/ ̄
ヽ、, ' , ' , ' , ', -' ,'/
` ̄ ̄フT ´
-----一'´ |
::::::::::::::::::::::::/
::::::::::::::::::::::/
0795nobodyさん
2006/11/18(土) 23:31:58ID:???されないそうですが、その場合、実行するファイルは小さい方が高速なのでしょうか?
例えば、たくさんの関数を定義してあるcommon_func.phpというファイル1つを作って毎回include
するのと、関数毎に細かくfunc1.php, func2.php, func3.phpとファイルを分けて必要な場合だけ、
必要なファイルをincludeするのでは、後者の方が高速なのでしょうか?
0796nobodyさん
2006/11/18(土) 23:42:24ID:???tp://bbslabo.breeze.jp/c001_spam_lib_php_letsphp_ibbs.html
のスパム耐性 PHP-I-BOARDをお借りしてローカルで動かしたのですが、
通常の書き込みはできるものの、返信をしようとするとなぜか関係ないページに飛ばされます。
(YouTubeだったり)
phpのソースをみて youtubeのアドレスを探してもみつからず、なぜそうなるのかがわかりません。
なお、強制移動させられたあと戻るとちゃんと書き込みはできています
すいませんがどこをいじったらこの現象が直るかおしえていただけないでしょうか?
0797nobodyさん
2006/11/18(土) 23:54:54ID:???板違いです、コチラへどうぞ
【彼女にINSERT権限がありません】
http://pc8.2ch.net/test/read.cgi/db/1057289721/
0799798
2006/11/19(日) 00:02:58ID:???0801nobodyさん
2006/11/19(日) 00:17:53ID:???> Zend社等の製品を使用しない限り、PHPは実行時に毎回コンパイルされ、キャッシュは
> されないそうですが、
zend社以外でもキャッシュは可能。
eacceleratorとか。
残りの質問は実際に作って試してみれば?
PHPでクリティカルだったりリアルタイムな処理はしないだろうし、
性能向上はハードに任せてメンテナンス性を重視して設計するのも
ありでは?
あ、実験したら結果を発表してね。
つ ttp://pear.php.net/package/Benchmark
これ使うと便利だよ。
0802nobodyさん
2006/11/19(日) 02:13:59ID:qt8hCJ5UPHPでメタ検索のようなものをつくって居るのですが
検索サイト側がPOST形式の場合はどのように組み合わせばいいのでしょうか
get形式では
$data = 2ch
$url="http://www.google.com/search?hl=ja&q=";
で
$url$dataでhttp://www.google.com/search?hl=ja&q=2chというようにできるのですが
postの場合はどのようにすればよろしいですうか?
0804nobodyさん
2006/11/19(日) 02:19:29ID:???キャッシュならAPCとかもあるね。
関数定義に関しては、1つにまとめるのも分けるのも
どっちも速度低下の可能性があります。
まず無駄な関数定義は速度低下の元です。
それから読み込むファイルの数が増えるのも速度低下になります。
ってことでバランスの問題でしょう。
0805nobodyさん
2006/11/19(日) 02:30:16ID:qt8hCJ5Uなるほど、そんな感じの事になってしまうのですね
ありがとうございました
0806nobodyさん
2006/11/19(日) 03:51:16ID:Zd3ixGQKodbc:Driver={Microsoft Access Driver (*.mdb)};
な接続を行う場合、エンコードは指定可能でしょうか?
デフォルトで CP932 (Shift_JIS) のようですが、
Unicode文字 (UTF-8) を扱えずに困っています。
Windows Server 2003 / IIS / PHP 5.2.0
0807nobodyさん
2006/11/19(日) 04:38:56ID:???make: *** [sapi/apache/sapi_apache.lo] Error 1
configureで--with-apxs=/usr/local/apache/bin/apxsを付けています。
何が問題なんでしょう?
Solaris10 x86です。
以下エラーあたりのログです。
In file included from /usr/local/apache/include/buff.h:32,
from /usr/local/apache/include/httpd.h:36,
from /var/spool/pkg/php-5.2.0/sapi/apache/php_apache_http.h:47,
from /var/spool/pkg/php-5.2.0/sapi/apache/sapi_apache.c:24:
/usr/local/include/openssl/ssl.h:747: error: syntax error before "X509_VERIFY_PA
RAM"
/usr/local/include/openssl/ssl.h:755: error: syntax error before '}' token
/usr/local/include/openssl/ssl.h:896: error: syntax error before "X509_VERIFY_PA
RAM"
/usr/local/include/openssl/ssl.h:976: error: syntax error before '}' token
In file included from /usr/local/include/openssl/ssl.h:983,
from /usr/local/apache/include/buff.h:32,
0808nobodyさん
2006/11/19(日) 04:41:23ID:???from /usr/local/apache/include/httpd.h:36,
from /var/spool/pkg/php-5.2.0/sapi/apache/php_apache_http.h:47,
from /var/spool/pkg/php-5.2.0/sapi/apache/sapi_apache.c:24:
/usr/local/include/openssl/ssl3.h:414: error: syntax error before "EC_KEY"
/usr/local/include/openssl/ssl3.h:441: error: syntax error before '}' token
/usr/local/include/openssl/ssl3.h:443: error: syntax error before '}' token
In file included from /usr/local/apache/include/buff.h:32,
from /usr/local/apache/include/httpd.h:36,
from /var/spool/pkg/php-5.2.0/sapi/apache/php_apache_http.h:47,
from /var/spool/pkg/php-5.2.0/sapi/apache/sapi_apache.c:24:
/usr/local/include/openssl/ssl.h:1520: error: syntax error before "EC_KEY"
/usr/local/include/openssl/ssl.h:1521: error: syntax error before ')' token
/usr/local/include/openssl/ssl.h:1523: error: syntax error before "EC_KEY"
/usr/local/include/openssl/ssl.h:1524: error: syntax error before ')' token
make: *** [sapi/apache/sapi_apache.lo] Error 1
ご教授お願いします。
0809nobodyさん
2006/11/19(日) 05:46:39ID:???スレ違いとはいわないが、その手の話題なら、
http://pc8.2ch.net/unix/
こっちにいったほうがいい答えもらえるんじゃないかね。
0810nobodyさん
2006/11/19(日) 11:07:15ID:EVuH/Yur特に質問というわけではないのですが
また少し改良したのでうpします。何か問題があればご指摘お願いします。
http://onegaisiamsu.ojaru.jp/php2.txt
0811nobodyさん
2006/11/19(日) 11:07:41ID:???> 性能向上はハードに任せてメンテナンス性を重視して設計するのも
> ありでは?
それはひょっとしてメンテナがタコだったりろくに設計能力が無いと永久に救われないという事を言っているのか?
0813nobodyさん
2006/11/19(日) 12:30:46ID:Zd3ixGQKUNIX で適当なスレが見当たらなくて…
あんまし、こんな構成で組んでいる人っていないんですかね。
私自身も、インターネットじゃ絶対にこんな構成では組まないのですが、
イントラ用に検討しているので。
0814nobodyさん
2006/11/19(日) 13:06:44ID:???opensslのヘッダファイルでエラーが出てるんだから
openssl周りじゃね?--with-opensslはつけてるのか?
0815nobodyさん
2006/11/19(日) 13:36:52ID:???素直に素人でも使えるパッケージ系を使った方が良いと思う
0816nobodyさん
2006/11/19(日) 13:39:36ID:???のでしょうか?例えば、
if($flag == 1) {
include("a.php");
} else {
include("b.php");
}
のようなプログラムの場合$flagが1の場合はb.phpは読み込まれないって
考えでいいでしょうか?それとも、初回のコンパイル時に全てのincludeファイル
は読み込まれて、実行はされないってことでしょうか?
0818nobodyさん
2006/11/19(日) 13:49:07ID:???>>816ではないが便乗質問。
ということは、APCやeacceleratorでキャッシュされる場合は条件が
変わるごとに書き換えられるのかな?
0819nobodyさん
2006/11/19(日) 13:55:50ID:???APCやeacceleratorのキャッシュの仕組みを
ちゃんと把握してるわけじゃないから確信はもてないが
書き換えというか一度includeされた時点でそのスクリプトの
キャッシュが作成されるっていう感じじゃないかな
0820nobodyさん
2006/11/19(日) 14:32:29ID:???いろんなところで使いまわすより、関数を細かくファイルに分けておいて、
使う場合のみ、適宜includeした方のが、高速ということになりそうだね。
0821nobodyさん
2006/11/19(日) 14:54:22ID:???何処かの記事で見たけど良くはしらね
0822nobodyさん
2006/11/19(日) 15:33:25ID:???0823nobodyさん
2006/11/19(日) 15:36:11ID:???0824nobodyさん
2006/11/19(日) 15:57:45ID:EVuH/Yur自分の考えている流れとしては、
1, 登録ページでIDとメールアドレスとパスワードの3点を入力してもらう
2, 登録されたメールアドレスにsession(?)とIDを後ろにつけた登録URLを送る
http://example.com/register.php?session=hogehoge&id=piyopiyo見たいな感じで。
3, 上記URLのアクセスがあった時点で会員登録完了
ただし24時間以内にアクセスがない場合無効。
という感じにしようと思います。(この時点で間違っているようでしたらご指摘ください)
そこで、今2の仮登録の情報をどこに保管するかで困っています。
自分の考えられる方法としては
1, 2の時点でMySQLに挿入してしまう(自分はMySQLを使っています)
2, どこかに一時ファイルとして作成して保管する
この二つです。
1はSQLの操作なのでなんとなくわかるのですが、24時間で消す方法がわかりません(クローン?使えばできる?)。
2はファイル操作をしたことがないので良くわからないです。
このような処理を行う場合どのようにすればいいでしょうか?
1,2のどちらのほうが良いか、また、それ以外に良い方法があるのなら教えていただきたいです。
よろしくお願いします。
0825nobodyさん
2006/11/19(日) 16:17:43ID:???仮登録した日時を取得しておいて本登録されるタイミングで
24時間過ぎていたら無効、んでその時とかに24時間過ぎてる情報は破棄
0826796
2006/11/19(日) 17:00:23ID:???よろしくお願いします
他のCGIではならないのでどっかソースをいじるのだとは思うのですが
こんな症状になるのは自分だけでしょうか?
0828nobodyさん
2006/11/19(日) 17:07:50ID:???するする。設定によるかもしらんが。
うちでAPC使ってて、rsyncのミスでincludeファイルを
タイムスタンプを過去のもので上書きしちゃったら
思いっきり誤動作したもの。
includeファイルはそれぞれ個別にキャッシュを生成してる。
0829nobodyさん
2006/11/19(日) 17:09:55ID:???そのせいだろ。
0830nobodyさん
2006/11/19(日) 17:12:34ID:???うちはDBに記録してる。
で、毎日1回のメンテナンスをcronで動かして
24時間以上経過してるのは削除してる。
0831796
2006/11/19(日) 17:34:07ID:???PCがおかしいのですかね?
IEでやるとページが表示できませんってなって更新すると書き込みできてます。
戻る時のアドレスも ibbs.php 本体のままなのです
他の人がならないということがわかっただけでも助かりました。
0832nobodyさん
2006/11/19(日) 18:56:56ID:???0833nobodyさん
2006/11/19(日) 20:28:13ID:???別にcron使わんでも、register.phpにアクセスされたときに、
ついでにその仮登録情報のチアムスタンプが24時間以内のものかどうか確認して、
期限を過ぎてたらDBから削除、過ぎてなかったら本登録処理、ってやればいいでしょ。
0834nobodyさん
2006/11/19(日) 23:12:50ID:afBb4Sje0835nobodyさん
2006/11/19(日) 23:13:23ID:???0836nobodyさん
2006/11/19(日) 23:13:35ID:???0837nobodyさん
2006/11/19(日) 23:15:54ID:???thisは自身のオブジェクト、オブジェクトの中からじゃないと使えない
selfは単なる自分のクラス名、スタティックコール内からでも使える
0839834
2006/11/19(日) 23:26:24ID:afBb4Sjenewしたときに実行される関数というふうにとらえて間違いないでしょうか?
0840nobodyさん
2006/11/19(日) 23:28:28ID:???0841nobodyさん
2006/11/19(日) 23:55:33ID:QPerEU0+0843nobodyさん
2006/11/20(月) 00:04:20ID:zRxNwc2j答えてくれた方々ありがとうございました。
>>833のチアムスタンプがググってもわからなかったのですが何のことでしょうか?
今のところDBに入れてcronで削除していこうと考えています。
0846nobodyさん
2006/11/20(月) 00:07:42ID:???で、833+ゴミ掃除ってことで、「誰か」が本登録処理にアクセスしたときに
SQLで「delete from 登録 where 仮登録日付 < 24時間前」流せば一発で全部掃除できない?
最後の1人が放置したまま誰もアクセスしてこなくなったら掃除できないけど
そこまで気にするほどのものじゃあるまい。
0847nobodyさん
2006/11/20(月) 00:16:51ID:zRxNwc2jなるほど、ありがとうございます。
>>846
これならクローン使わずにもできますね。
こっちの方がよさそうです。
ありがとうございます。
0848nobodyさん
2006/11/20(月) 00:26:33ID:???この辺はユーザの登録数と登録アクセス頻度次第だよ。
ファイルでもDBでも数が多いところに削除の検索処理を入れると重くなる
(特にSQLのdeleteはロックがかかってその間のselectが停止する)ので、
全体のレスポンスに問題が出るケースもある。
そういう場合はcronでアクセス頻度の低い時間帯にメンテした方がいい。
その辺のTPOは踏まえた上で設計すべし。
0849nobodyさん
2006/11/20(月) 00:38:19ID:zRxNwc2j将来のことを見据えて(どうなるかわかりませんがw)
cronを使ってみます。
わからないことばかりですいませんでした。
いろいろとありがとうございました。
0850nobodyさん
2006/11/20(月) 01:13:15ID:???0851nobodyさん
2006/11/20(月) 02:38:25ID:fzLhPh+i今、例えば、トップページがあって、そこからログイン→mypageでmixiみたいに
自分のページが表示されるような感じで、写真を投稿できるようになってます。
トップページには検索ができて、それは誰でもできるようになってるのですが、
ログインしたユーザー(セッションを持っている)は、その検索結果(写真)を
自分のページに保存できるような感じになってます。
これは、セッションを持つなら登録ボタン表示、持たないならボタンを非表示みたいな
感じにしています。
ここで、質問なんですが、このようにセッションを持つユーザーと持たないユーザーが
同じページを見れるのは危険でしょうか?
セッションを持つユーザーが、セッションが必要なページと必要じゃないページを行ったり来たり
できるのは、危険でしょうか?
どうかアドバイスお願いします。
0852nobodyさん
2006/11/20(月) 06:53:32ID:???http://gigazine.net/index.php?/news/comments/20061103_php_accelerator/
このページで、
「ほかにはZend Optimizer、Zend Platform、ionCube PHP Acceleratorなどがありますが、
どれも最初の3つと比べるとあまり「おすすめできない」レベルとのこと。」
って書いてあるけど、その根拠が何も書かれてないのが謎。
要するに「有料のやつは最初から論外」というニート特有の考え方なのかな??
0853nobodyさん
2006/11/20(月) 07:43:01ID:???根拠は上の方に書いてあるこれ。
> で、この「PHPアクセラレータ」の種類がいろいろあるということはそれぞれ一長一短なワケですが、
> とりあえずあっちこっちのネット上における各種試用レポートなどを総合すると
> 「APC (Alternative PHP Cache)、eAccelerator、XCacheのうちのどれか」が無難なようです。
本人の考えってより、この人が発見できたネット上の試用レポートってのがどれなのか、が問題みたいね。
でもアクセラレータの試用レポートの類で「有料だから無視」とか言ってるのはほとんど無いと思うけど?
0855nobodyさん
2006/11/20(月) 09:01:52ID:???自分でちゃんと調べてどれがいいのか決めた方がいい
0857nobodyさん
2006/11/20(月) 09:26:38ID:???0858nobodyさん
2006/11/20(月) 09:57:32ID:???>>181 の5000までの素数ベンチプログラムで
平均3.20-3.25 位
環境は
Athlon2800
M PC3200-512 x 2
OS WinXP
Apache 2.0.59
PHP 5.2
Zend Optimizer
eAccelerator
参考までに
0859nobodyさん
2006/11/20(月) 10:20:38ID:???順番データを保持させようとしています。
指定行の「一個上に上がる」をクリックしたら、
そのデータのsortを-1して、
そのままだと同じ値になってしまう行データのsortを+1したいと考えています。
ところが一意性を持たせてあるので、
「そのsortを-1して、」という時点で、
一意性がないぜゴルァというエラーが出てしまいます。
指定行の-1と
別指定行の+1を同時に処理させる方法はないでしょうか?
0860nobodyさん
2006/11/20(月) 10:48:14ID:a1LEez8m一回削除しといて再度INSORTするとか
0861nobodyさん
2006/11/20(月) 11:40:49ID:???その戻り値の最初の要素の値を取り出したいのですが、
$result = return_array($array)[0];
と書くとParseErrorになります。
どう書けばよいのでしょうか?
0863861
2006/11/20(月) 12:04:17ID:???ありがとうございます。
0864nobodyさん
2006/11/20(月) 12:04:47ID:???実際のWebシステムでは、スクリプト本体よりもむしろ
サーバやDB入出力の部分がボトルネックになるので、
素数ベンチなんてほとんど意味がないけどな。
0867nobodyさん
2006/11/20(月) 13:31:12ID:???0871nobodyさん
2006/11/20(月) 15:33:46ID:???そういう関数作ったけど俺は。
0872nobodyさん
2006/11/20(月) 15:53:05ID:???一意性はスクリプト側で担保しろ。
別に難しいことじゃない。
任意のsortの値をINSERTかUPDATEする前に、
事前にSELECTしてみて存在するか否かを確認すればいいだけだ。
0873nobodyさん
2006/11/20(月) 16:08:58ID:???前後でのテーブルのLOCKを忘れるなよ。
0874nobodyさん
2006/11/20(月) 16:34:42ID:???肝心のオブジェクト指向がよくわからない・・・
従来のプログラムを、適当に部分部分でパーツ化して、
それをメソッドにすればいいんでしょうか?
オブジェクトにするメリットがわからない状態なので、
とりあえず適当にやってればそのうちわかるだろう程度に
考えているのですが、やっぱちゃんとした本買って勉強するべきですか?
0875nobodyさん
2006/11/20(月) 16:59:23ID:???とりあえず、この辺読んどけ
ttp://itpro.nikkeibp.co.jp/article/Watcher/20061117/254159/
0876nobodyさん
2006/11/20(月) 17:25:55ID:???0877nobodyさん
2006/11/20(月) 20:11:41ID:???設計はそれじゃいつまでもできるようにならんよ。
せめて他人が書いた(腐ってない)ソースを読むくらいしないと。
0878nobodyさん
2006/11/20(月) 20:35:36ID:???0879nobodyさん
2006/11/20(月) 20:38:05ID:???それが出来るくらいの能力がある人なら既に設計能力も高いと思う。
0880nobodyさん
2006/11/20(月) 20:47:59ID:???0881nobodyさん
2006/11/20(月) 20:50:02ID:???0882nobodyさん
2006/11/20(月) 20:57:28ID:zRxNwc2j1,の部分を今作っています。
入力が正しいか確認するだけのプログラムですが作りました。
腐ったソースの話題の中で公開するのもあれですが
添削してほしいです。
よろしくお願いします。
http://onegaisiamsu.ojaru.jp/php3.txt
0883nobodyさん
2006/11/20(月) 21:00:31ID:???アスペクト指向だっけか?
アスペクトPHPとかそのうちくるんだろうか・・・
0884nobodyさん
2006/11/20(月) 21:19:15ID:???0885nobodyさん
2006/11/20(月) 21:20:30ID:???0886nobodyさん
2006/11/20(月) 21:28:37ID:???0887nobodyさん
2006/11/20(月) 21:30:15ID:BPin2pz1実際やってみたらマッチしませんでした。
で、オプションでmを指定したらマッチするようになりました。
サンプルコード:
echo mb_ereg_replace("^.", "", "123\n123") . "\n\n";
echo mb_ereg_replace(".$", "", "123\n123") . "\n\n";
echo mb_ereg_replace("^.", "", "123\n123", "m") . "\n\n";
echo mb_ereg_replace(".$", "", "123\n123", "m") . "\n\n";
結果:
23
123
123
12
23
23
12
12
バージョン: 5.0.5
でもマニュアルには
> m を指定した場合、マルチラインモードとなり、 改行文字も "." に含まれるようになります。
(http://www.php.net/manual/ja/function.mb-ereg-replace.php)
としか書かれてません。
結局、デフォルトで^$が改行直後直前にマッチせず、mを指定するとマッチするようになるのが正しい挙動なんでしょうか。
それともこれはバグなのでしょうか。
0888nobodyさん
2006/11/20(月) 21:48:35ID:???0889nobodyさん
2006/11/20(月) 22:30:16ID:efSEaAzMですよね?
それで、PHPマニュアルに「もし phpize コマンドが見つからない場合は、
適切な devel 版の PHP パッケージをインストールしましょう。 PHP や拡張
モジュールをビルドするために必要なヘッダファイルや phpize コマンドは、この
パッケージに含まれます。」
と書かれていたので、PHP-5.2.1-devをインストールしたのですが、phpizeコマンド
が認識されません。phpizeコマンドを使うためには他に何が必要なのでしょうか?
0891889
2006/11/20(月) 22:55:01ID:efSEaAzM確かに、パスを通す必要があったようです。
しかし、WindowsでPHPを使っているのですが、パスを通すといっても
phpizeを使うためにはどこを指定すれば良いのか分かりません。
よろしければ、教えていただきたいのですが。
0892nobodyさん
2006/11/20(月) 22:57:30ID:???0893nobodyさん
2006/11/20(月) 22:59:03ID:???具体的に何を入れたいんだよ
0894889
2006/11/20(月) 23:04:45ID:efSEaAzMPHPでNamazuを呼び出すためのモジュールです。
phpizeコマンドを使えるようにして、configure,makeはcygwinでやろうと
思ったんですが。
>phpizeってwinなら関係ないかと・・・windowsでは必要ないんですか?
0895nobodyさん
2006/11/20(月) 23:09:42ID:???ソースに付いてるREADME.WIN32-BUILD-SYSTEMは読んだのか?
0896nobodyさん
2006/11/20(月) 23:11:56ID:???でもcygwinでphp入れたならbinにphpize入ってないか?
0898889
2006/11/20(月) 23:20:34ID:efSEaAzMそ、そうだったんですか。。。
じゃあ、PHP自体もcygwinを使ってWindows用のではないPHPを入れなければ
いけないんですね?
0900889
2006/11/20(月) 23:33:46ID:efSEaAzM整っていなかったようですね。
0901nobodyさん
2006/11/20(月) 23:56:43ID:???PHPをCronで実行する方法が判らなくて困っています。
どなたかご教授下さい。Fedora5です。
0903nobodyさん
2006/11/21(火) 00:02:57ID:???0904nobodyさん
2006/11/21(火) 00:20:54ID:???#!/usr/local/bin/php
<?php
:
?>
みたいなスタイルで書いたスクリプト。
1行目でCLI(コマンドラインインターフェース)版としてインストールしたPHPのフルパスを書く。
0905nobodyさん
2006/11/21(火) 00:39:44ID:???/usr/local/bin/php スクリプトファイルのフルパス
って指定をするのもアリ。
これならスクリプトファイルのパーミッションを実行可にしなくてもOK
0906nobodyさん
2006/11/21(火) 00:43:56ID:+Nuu4hvhふと気付いたら鯖(Xserver)のスペックが以下の通りでした。
PHPバージョン 4.3.9 ( セキュリティパッチ適用済 )
MySQLバージョン 4.0.26
これって、自宅鯖や他の鯖を使わずにあくまでも今使ってるXserverでDBを利用するなら、
インストールし直してPHP4.3.9・MySQL4.0.26の環境でDBを作成しないと駄目なのでしょうか?(´・ω・`)
0907nobodyさん
2006/11/21(火) 00:59:00ID:???駄目ってことはないけど、どこが違うのか常に意識しとく必要はある。
初心者ならインストールし直して揃えといた方が無難。
0908nobodyさん
2006/11/21(火) 01:07:51ID:???何度もすみません;
#whereis phpとやったら
php: /usr/bin/php /etc/php.ini~ /etc/php.ini /etc/php.d /usr/lib/php
となったのでcrontabに
0,10,20,30,40,50 * * * * /usr/bin/php [対応スクリプトへのフルパス]
とやったものの10分経過しても更新されずでした・・・
service crond restartもやったのですが駄目でした('A`)
0909nobodyさん
2006/11/21(火) 01:16:42ID:???0910nobodyさん
2006/11/21(火) 01:18:54ID:+Nuu4hvh有難う御座います、インストールし直してチャレンジしてみます!
0911nobodyさん
2006/11/21(火) 01:29:05ID:???まずスクリプトが実行されたのかどうかを確認してみては?
スクリプトの先頭にファイルへのログ出力を入れてみるとか。
ちなみにコマンドラインで
/usr/bin/php [対応スクリプトへのフルパス]
を実行したらそれはちゃんと動くんだろうね?
特にカレントディレクトリには気をつけた方がいいよ。
試しにrootディレクトリ上で実行してみるといい。
0912nobodyさん
2006/11/21(火) 12:25:05ID:???$array = $this->$method();
}
こんな感じで因数内の文字列を使い、
メソッドを呼び出すと、エラーが出てしまいます。
Fatal error: Method name must be a string in
これはあきらめるしかないんでしょうか・・・
0913nobodyさん
2006/11/21(火) 13:04:27ID:???0914nobodyさん
2006/11/21(火) 13:06:16ID:???call_user_func()使えば。
あと因数でなく引数な。
0917nobodyさん
2006/11/21(火) 16:00:58ID:???0918nobodyさん
2006/11/21(火) 16:25:26ID:bLvv9/Lnfunction A() { }
function B() {
function C() { }
}
}
上記の場合、
B ( )の中からA ( ) を呼び出すには
$this->A()
ですが、
B ( )の中からC ( ) を呼び出すには
どう記述すればいいんでしょう???
0919nobodyさん
2006/11/21(火) 16:30:48ID:???B()をコールした時に普通にグローバル関数としてC()が定義されるはず
0921nobodyさん
2006/11/21(火) 17:28:27ID:???function dt ($method = 'select') {
$array = call_user_func(array($this, $method));
}
試してないから動かないかもしれないけど...
0923921
2006/11/21(火) 17:40:18ID:???シングルトンパターンで、クラス内でオブジェクトを生成するときなんかは
$class = __CLASS__;
return new $class();
みたいにすると楽チンだよな。
0924nobodyさん
2006/11/21(火) 17:46:22ID:???0925nobodyさん
2006/11/21(火) 18:02:58ID:???0926921
2006/11/21(火) 18:02:59ID:9jzN//PMとりあえず、$methodにnullぶちこんでも警告が出るだけでエラーにはならなくなる。
0928nobodyさん
2006/11/21(火) 18:41:14ID:???謎の不具合現象が発生し意図した動作をしない!どこだ、何だ!と
悩むことになるでしょう...。
0929nobodyさん
2006/11/21(火) 18:48:12ID:???プログラムを車にたとえば、
クラスはタイヤ、と表現してる本とかありますが、
それは関数も同じでは・・・?
単一関数で片付けられないようなものは
クラス、という認識を持ってるのですが間違ってますよね?
0930nobodyさん
2006/11/21(火) 18:53:51ID:???タイヤだとどちらでも良いイメージだな
0931nobodyさん
2006/11/21(火) 19:00:10ID:???0932nobodyさん
2006/11/21(火) 19:00:11ID:???0933nobodyさん
2006/11/21(火) 21:31:39ID:PV0heR9Q0934nobodyさん
2006/11/21(火) 21:33:20ID:???0935nobodyさん
2006/11/21(火) 21:43:54ID:???って書いてるんじゃないか?
0936nobodyさん
2006/11/21(火) 21:53:55ID:???0937nobodyさん
2006/11/21(火) 21:56:00ID:???jpgraphとかpearのimage_graphとかsparklineとか
0938nobodyさん
2006/11/21(火) 22:42:42ID:d5GN+nTA初期設定の段階なんですが<?php phpinfo(); ?>
がブラウザでそのまま表示されます。
どこが悪いんですか?
0939nobodyさん
2006/11/21(火) 22:44:12ID:???0940nobodyさん
2006/11/21(火) 22:54:35ID:???0942983
2006/11/21(火) 23:02:05ID:d5GN+nTAAddType application/x-httpd-php .php入ってます
0943nobodyさん
2006/11/21(火) 23:03:04ID:???0944983
2006/11/21(火) 23:06:58ID:d5GN+nTA0945nobodyさん
2006/11/21(火) 23:16:57ID:???0946nobodyさん
2006/11/21(火) 23:22:26ID:???format c:
0948nobodyさん
2006/11/21(火) 23:40:46ID:???0949nobodyさん
2006/11/22(水) 00:31:40ID:???うちはWindows使えない時だけだけど。。。
0950nobodyさん
2006/11/22(水) 00:37:30ID:???0951nobodyさん
2006/11/22(水) 02:16:11ID:3AXcb0+rセキュリティ上の不安があります。
たとえば、値が未入力であったり不正な場合
TOPページに飛ばしたいのですがどうすればよいでしょうか
0952nobodyさん
2006/11/22(水) 02:20:40ID:???header("Location: http://www.orenopage.com/top.html");
exit();
}
とか?
最近はこんなんもあるけど http://jp2.php.net/filter
0953nobodyさん
2006/11/22(水) 02:26:10ID:???0954nobodyさん
2006/11/22(水) 02:27:21ID:aJWjKYEf0956nobodyさん
2006/11/22(水) 02:34:50ID:3AXcb0+rわお ありがとうございます。未入力の場合はこれで解決しそうです。
あと、値にタグを入力された場合、表示が少しおかしくなるのですが
タグの無効化的なものはありますでしょうか
0957nobodyさん
2006/11/22(水) 02:45:46ID:???0958nobodyさん
2006/11/22(水) 05:40:34ID:???XSSとかわからないなら配布済みのスクリプト使えば
strip_tags()かhtmlspecialchars()もわからないのなら致命的だとおもうよ
0959nobodyさん
2006/11/22(水) 10:05:40ID:???WindowsXP/Apache2.0.58/PHP5.2.0 を自PCに入れ、Webアプリをぽちぽち作っているんですが
・php.ini側で"session.use_trans_sid = 0"にして、URLにもSIDを埋め込まず
・かつ、クライアント側で 全てのCookieを拒否、念のため全てのゾーンのセキュリティを'高'にしても
Cookie受け入れ拒否&URLに差し込んでもいないのに、セッションが成立してしまっています。
(ただセッション変数が引き継がれているからってセッションが成立してない、とか?あるんかなそんな事…)
これって何故なのでしょうか?
------------------以下テスト.phpソース------------------
<?
session_start();
if (!isset($_SESSION['count'])) { $_SESSION['count'] = 0 ;}
$_SESSION['count']++;
?>
<html>
<body>
あなたは <?= $_SESSION['count'] ?> 回目の訪問です。
<a href="<?php echo $PHP_SELF ?>">カウントを増やす</a>
<?php
echo '<BR><BR>TEST<BR><BR>' . $PHPSESSID ;
?>
------------------以上テスト.phpソース------------------
.phpへのアクセスは ttp://localhost/***.php で行っています。
0960nobodyさん
2006/11/22(水) 10:09:16ID:???複数ブラウザを立ち上げて同時に前述の.phpにアクセスした時に
$PHPSESSIDは毎回違う値になってます。
%USERPROFILE%\Cookies\ 配下には(当然ながら)当該Cookieが存在しない…様に見えます。
ボスケテ。
0961nobodyさん
2006/11/22(水) 11:42:15ID:???0962nobodyさん
2006/11/22(水) 11:45:49ID:???アカウントか何かを発行しているサイトであればアカウントから割り当てるが
宜しいかと。
0963nobodyさん
2006/11/22(水) 11:46:57ID:???どうなってるのかみてみたら
ブラウザのURL入れるところに javascript:alert(document.cookie) と入れるとか
0964959
2006/11/22(水) 12:11:38ID:???ご教授ありがとうございます。
恥ずかしながら普通のクッキーとは別物の"セッションクッキー"なんてのがあるなんて知りませんでした。
確かに >>963 の scriptで見てみたら見事に $PHPSESSID=*********** が入ってました。
# これって単一のCookieファイルに保存されてるんじゃ無いですね。
また、Cookie関連設定全て拒否にしても >>959で書いた.phpにてカウンタが回っていたのは
.phpにアクセスする際に ttp://localhost/ にしていたからでした。
hostsに "(自IP) testtest.net" と記述、 ttp://testtest.net/***.php でアクセスしたらば
期待通りカウンタが常に1になる結果となりました。
お騒がせしてすみません…
セッションクッキーにSIDが入ってる即ちそれを読みとればハイジャック出来てしまうので
何かCookieにtokenでも入れて正当性を確保するロジックでも作ってきます。
>>961,962,963 、ありがとうございました。
0967nobodyさん
2006/11/22(水) 13:26:13ID:???__,,/ _, ----`ヽ :.
:. / _ ___ 、\
/ / i \ \\ :.
:. ,'./ i ヽ:. ヽ:.:.. ヽ.ヽ
,'/ / .ハ ヽ ヽ:.:.:.:. ヽ::.. ヽヽ :.
:. |i .i i .i / ヽ ト 、 \、:.:.:. ',:.',:.:.lヽ}
|i .i l :N_, -弋 \弌弋ナ:}:.:}
:. |i∧ ', :{ ,ィjモト \ イjミトイイV :. な…
.| :メヽ.', `ozZ} izN。ハ::{ なんなんですか?
:. | :ヾ_! ゝ "゙゙ ' `゙ ハ.:', :. ここ、どこですか?
| :.:_イ .:.ヽ. (二フ , イ :.:.:!:.ヽ なんであたし
:. / rィイ | :.:.ヽ: >r/`<ノ .:.::.}ヽ、\:. 貼られたんですか?
/ ∧l;l ! :.:.:.://{二 ̄ .} ..:..::リ//ハ.:\
:. / .{. ',ヾ、ヽi .:.:.{ /(^` |.:.:.:.//: : :.}: . ヽ.:.
/ / ) ヽ ヾ、ヽ:.ハ ヤ{ ∧/.-‐'": : |:.:. i ',
./ .,イ .:..} : :\ヾレ'ハ ∧__ノノハヾ、 : : : l:.:.: .ハ ',
{ /| .:.:ハ : : :i Y {ヾ`Yヽニン'ノ}: : } : : : :/:.:.:/ }:.}
V | .:.:/:.:|_,ィ' ̄ ヽ三{ `ー-ノ : イ : : :/:.:i.:{ リ
ヽ:.:{、.:.V : : ヘ : : {: : :/:.::∧|
0968nobodyさん
2006/11/22(水) 13:47:29ID:???0969nobodyさん
2006/11/22(水) 14:16:54ID:???># これって単一のCookieファイルに保存されてるんじゃ無い
ん?
>.phpにアクセスする際に ttp://localhost/ にしていたから
んん??
>Cookieにtokenでも入れて正当性を確保する
んんん???
0970nobodyさん
2006/11/22(水) 15:08:02ID:???セッションクッキーは普通のクッキーだ
ワンセッション限りのクッキーはファイルには保存されない(オンメモリ)
0971nobodyさん
2006/11/22(水) 15:22:33ID:???この「ワンセッション限りの」の「セッション」(ブラウザのセッション)と
PHPの「セッション」の区別が付いてないやつは意味がわからないだろうね
0972nobodyさん
2006/11/22(水) 15:28:55ID:???0973nobodyさん
2006/11/22(水) 17:31:21ID:???> year
> 年。2 桁または 4 桁の値を指定可能で、 0-69 の間の値は 2000-2069 に、
> 70-100 は 1970-2000 にマップされます。 今日最も一般的なシステム、
> すなわち time_t が 32 ビットの符号付き整数である システムでは year
> として有効な範囲は 1901 から 2038 の間ですが、この制限は
> PHP 5.1.0 以降なくなりました。
ttp://jp.php.net/manual/ja/function.mktime.php
と書いてあるけど、
% uname -a
FreeBSD xxx.yyy.zzz 6.2-PRERELEASE FreeBSD 6.2-PRERELEASE #0: Fri Oct 6 13:59:46 JST 2006 [email protected]:/usr/src/sys/i386/compile/GENERIC i386
% php -v
PHP 5.2.0 (cli) (built: Nov 16 2006 17:47:45)
の環境で、
% php -r "echo mktime(0, 0, 0, 2, 1, 2038);"
としても値が返ってこないのですが・・・。
上記の引用部分はどういう意味ですか?
2038年1月19日までは値が返ってきます。
0974nobodyさん
2006/11/22(水) 17:33:24ID:???2005|bbbbbbbb|12345
2005|cccccccc|12345
2006|aaaaaaaa|12345
2007|aaaaaaaa|12345
みたいな感じのテキストファイルから、
2005の部分だけを取り出して表示するスクリプトを作りたいのですが、
(結果が下のようになるように)
2005|aaaaaaaa|12345
2005|bbbbbbbb|12345
2005|cccccccc|12345
fopenでこのテキストファイルを開いた後、
どういう処理を書けばいいのかわかりません。
どなたか使うべき関数とか手法などヒントいただけませんでしょうか?
0975nobodyさん
2006/11/22(水) 17:33:29ID:???そんなに怖いんなら、SSLにすべきだろう。
0976nobodyさん
2006/11/22(水) 17:43:01ID:???問題あるだろうけど、そうじゃないなら心配する必要ないわな。
>>975の言うとおり。
0977nobodyさん
2006/11/22(水) 17:58:30ID:???「値が返ってこない」ってのがどういう状態かよくわからんけど。
英語のマニュアル見ると、
the valid range for year is somewhere
between 1901 and 2038, although this limitation is overcome
as of PHP 5.1.0.
と、かいてあって、俺の読解力だと、
5.1.0以降、PHPでの制限はないんだけど、それにもかかわらず、
システム(OS?)によっては(システムの制限があって)2038年までしか
使えないんだよ、って書いてあるようにも読めますけど。
(5.1.0の前は、OSが対応しててもPHPがヘッポコで2038年までに
なっていたんでは)
ちなみにうちのLinuxだとこうなる。
$ php -r "echo mktime(0, 0, 0, 2, 1, 2038);"
-14462
$ php -v
PHP 4.3.10-16 (cli) (built: Aug 24 2005 20:25:01)
ここらへん、全然知らないんだけど、2038年以降は時間はマイナスになる、、、のでは? 違うん?
0978nobodyさん
2006/11/22(水) 18:01:34ID:???0981nobodyさん
2006/11/22(水) 18:05:51ID:???0982nobodyさん
2006/11/22(水) 19:05:54ID:Dl80shfxどなたか情報をお持ちで無いでしょうか?
0983nobodyさん
2006/11/22(水) 19:21:31ID:???値が返ってこないというのはそのままの意味で、何も表示されずにプロンプト(%)が
返ってきます。
システムに依存するのはいいんだけど、日本語マニュアルの書きっぷりでは
システムに関係なく2038年以降のタイムスタンプも取得できそうな気がしたので・・・
0984nobodyさん
2006/11/22(水) 19:29:30ID:???そもそも他の関数は返って来るの?
configureの問題もあるきがするしエラー表示しないようになっているオチでは??
0986nobodyさん
2006/11/22(水) 19:49:24ID:9Mp292iZwindowsでPHPを使用しているのですが、
ローカル環境で
<? include("../home/httpd/html/template/top.html"); ?>
の相対パスを
<? include("/home/httpd/html/template/top.html"); ?>
に変えて表示する事ってできるのでしょうか?
0987nobodyさん
2006/11/22(水) 19:50:24ID:???値が帰って来ないってフィルタアプリじゃねーんだからよ
0988nobodyさん
2006/11/22(水) 20:03:35ID:???何も表示されないのは改行コードが入ってないから
\nつけるかvar_dumpしたらfalseが返ってるはず
0990nobodyさん
2006/11/22(水) 20:36:46ID:???<?php
$directory = realpath("../home/httpd/html/template/top.html");
include($directory);
てこと?
0991nobodyさん
2006/11/22(水) 20:51:58ID:???Googleで "vodafone 絵文字コード" と検索しる。
0993nobodyさん
2006/11/23(木) 00:01:01ID:???0994nobodyさん
2006/11/23(木) 00:13:11ID:???0995994
2006/11/23(木) 00:14:22ID:???0996nobodyさん
2006/11/23(木) 00:20:00ID:???0997996
2006/11/23(木) 00:31:34ID:???【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
0999nobodyさん
2006/11/23(木) 01:10:51ID:???1000nobodyさん
2006/11/23(木) 01:12:19ID:???【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。