【PHP】下らねぇ質問はここに書き込みやがれ 33
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/11/23(木) 00:27:02ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
【前スレ】
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0002nobodyさん
2006/11/23(木) 00:28:11ID:???【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/
【PHP】下らねぇ質問はここに書き込みやがれ 31
http://pc8.2ch.net/test/read.cgi/php/1161733546/
0003nobodyさん
2006/11/23(木) 00:28:48ID:???■本家マニュアル 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/23(木) 00:29:36ID:???http://pc8.2ch.net/php/subback.html
この中でブラウザのCTRL+F等で「PHP」を検索!
0005nobodyさん
2006/11/23(木) 00:30:35ID:???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/23(木) 00:31:06ID:???→ 確認すべきは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/23(木) 00:49:42ID:???phpを使ってHTMLソースに残さずに画像を呼び出す事はできますか?
ページビューを計る目的で、表示されてるのも格好悪いので、、
0008nobodyさん
2006/11/23(木) 00:55:38ID:???つまりタグを使わないって事でしょ?
JavaScriptを上手く使うといけると思う
単純にイメージ出力ならヘッダを指定して出力すればおk
0009nobodyさん
2006/11/23(木) 00:58:42ID:???お前のサイトにくるやつはみんなエスパーか!
0011nobodyさん
2006/11/23(木) 01:13:19ID:???00127
2006/11/23(木) 01:15:49ID:???となると完全に手詰まりですが
0013nobodyさん
2006/11/23(木) 01:17:44ID:???0014nobodyさん
2006/11/23(木) 01:22:13ID:???0015nobodyさん
2006/11/23(木) 01:22:42ID:???フレームではサイト作成に不利ということで、PHPを使おうと思ったのですが、
(include)
いくつか疑問点が浮上しました、。
・調べてみると、PHPをWindowsに導入するだとかがでてきますが、
これはそもそもなんでしょうか?普通にPHPのページを見ることができるはずなのに…
・今までのhtml拡張子を、.php.htmlと改変すれば、とりあえずphp命令を読む準備はOKですか?
・PHPとHTMLは基本、共存なのでしょうか?
・エディタでおすすめがあれば…
お願いします。
0016nobodyさん
2006/11/23(木) 01:23:04ID:???ページビュー計測が目的なら別に画像を呼び出さなくてもいいんじゃないの?
そのHTML自身の表示をPHP経由にしてカウントすればいいじゃない。
0019nobodyさん
2006/11/23(木) 01:30:36ID:???> フレームではサイト作成に不利ということで、PHPを使おうと思ったのですが、
SEO的な話?一部の検索エンジンはフレーム内ページの検索も対応しつつあって
近いうちにフレーム=不利という理屈は過去のものになりそうだけど。
> ・調べてみると、PHPをWindowsに導入するだとかがでてきますが、
> これはそもそもなんでしょうか?普通にPHPのページを見ることができるはずなのに…
言ってる意味が分かりません。
WEBサーバーの仕事とWEBクライアント(ブラウザ)の仕事を混同してません?
PHPのインストールが必要なのはサーバー側であって、ページを見るのに使ってるブラウザは関係ない。
> ・今までのhtml拡張子を、.php.htmlと改変すれば、とりあえずphp命令を読む準備はOKですか?
そんな変な拡張子は無いよ。>.php.html
拡張子の設定はPHPインストール後のWEBサーバーの設定によります。
.phpで動かすのが普通だけど、.htmlのままPHPを動かすことも簡単にできます。
> ・PHPとHTMLは基本、共存なのでしょうか?
共存です。HTMLのタグの中に拡張でPHP用のタグが含まれる形になります。
> ・エディタでおすすめがあれば…
君のレベルならどれでもあんまり変わらないのでは…
00207
2006/11/23(木) 01:31:13ID:???キャッシュ対策でheaderを使っているので、他にformなどからデータを取得してから戻ろうとすると
有効期限が切れてしまうため、画像カウントにしようかと。サーバはアクセスログを公開してくれません。
>>15
php動作のデフォルト拡張子が.phpだったらそれではダメかと。
.htaccessでAddType application/x-httpd-php .htmlとか指定すれば.htmlでphpを読めます。
00217
2006/11/23(木) 01:34:27ID:???ちなみに、phpをサーバが動かして、その結果をブラウザが読んで表示〜って事になるので、
見る側には勿論、作る側も「phpがOK」とうたっているレンタルサーバなら気にする事はないですね。
ループとか、複雑なのをテストで動かすならいきなり上げるのはどうかと思いますが。
002215
2006/11/23(木) 01:41:38ID:???わかりやすいです。
勉強になりました。
鯖側の設定を今までやってたのか…
(゚∀゚)アヒャヒャヒャヒャ
鯖はPHP対応しています。
ということは、拡張子は.phpですか?
しかしフレームの弊害が過去のものになろうとは…
0023nobodyさん
2006/11/23(木) 01:43:08ID:???そのHTMLを表示するサーバーでPHPは使えるの?
単に
<?php include "PVカウント用PHPプログラム"; ?>
ってHTMLに1行挿入して終わりの気がするんだが。
これなら別にブラウザ上のHTMLソースでは何も無かったように見える。
0025nobodyさん
2006/11/23(木) 01:48:12ID:???ありがとうございます。
自分の付け焼刃の勉強だと、
例えば左側にメニュー、右側にコンテンツを、
フレームではなくPHPでやりたいとき、
まずテーブルタグをつくり、<Td>ここにPHP命令を入れる</Td>
と理解しているのですが、ウンコですか?
>>24
あ…ごめんなさい。
ありがとうございます。
そのままでおkか…
00267
2006/11/23(木) 01:48:48ID:???それだと、ブラウザがキャッシュから読み込んだ時にカウントされません
それでヘッダを送信しているわけですが、>>20みたいに有効期限が切れてしまう訳です。
>>22
拡張できる拡張子です。.phpだろうと.htmlだろうと何もついてなかろうと動きますよw
SEO的にはフレームで問題がなくなってもHTML的にフレームはイマイチだから、
余程大量の情報を詰め込むのでなければ1ページにまとめる事をお勧めします。
0027nobodyさん
2006/11/23(木) 01:52:39ID:???ネットで調べて拾ったタグです。
これをテーブルタグに埋める、でいいのでしょうか?
しかし、menu.html側のPHP記述はなにもないのですが、大丈夫なのでしょう(;゚ァ.... k?
00287
2006/11/23(木) 01:53:47ID:???2.「<p>hogehoge</p>とか書いてtest.htmlでアップ」
3.「<td><?php include("./test.html"); ?></td>とか書いてアップ」
4.「<td><p>hogehoge</p></td> で完成」
って感じです。サーバの設定にもよるけど一般的なのならうまくいくはず。
簡単にまとめたつもりですが、どうでしょう?>>15
00297
2006/11/23(木) 01:55:14ID:???CSSを使っていないサイトのindex.htmlをincludeすれば、丸ごとぱくる事も可能です。
無論、やってはいけません。
0030nobodyさん
2006/11/23(木) 01:56:57ID:???PHPでやらずに最初からそういうレイアウトでHTML書けば?
DreamWeaverとかの高機能HTMLエディタ使えばフレーム部分を
テンプレート化して全ページで取り込むのも簡単にできるよ。
0031nobodyさん
2006/11/23(木) 02:03:25ID:???CS間のキャッシュバリデーションとブラウザの戻るは関係ないんだし
0032nobodyさん
2006/11/23(木) 02:04:17ID:???ありがとうございます。
この場合、私の考えるところのMENUがtest.htmlですよね?
で、3のファイルにそれが埋め込まれると。
しかし4でつまずきました。どこにどう4を適用させるのか…
>>30
ありがとうございます。
その場合、フレームによる弊害は解消されるでしょうか?
00337
2006/11/23(木) 02:11:40ID:???むー、関係ないんでしょうか?
私の解釈に最初から間違いがあったのかもしれません、サーバが返しているのかと思っていました。
結局この点への対策はありませんか?
>>32
そうですー。
3を表示すると、サーバ側が4を返してきて、ブラウザが4を読み込む事になると思うのですが。
3を表示するとどうなるんでしょ?
0035nobodyさん
2006/11/23(木) 02:17:46ID:???そもそも1がもう怪しいです。
メモ帳に、AddType application/x-httpd-php .phpを動かす拡張子
と書いた後、XXX.htaccessとリネームして鯖にアップ…ですよね?
0036nobodyさん
2006/11/23(木) 02:22:11ID:???違う。.htaccessってのは拡張子じゃなくてそういう名前のファイル。
ちなみにWindows上では作れない。(いや、裏技はあるけど)
サーバー上で直接作るか、「htaccess.txt」とかの名前のファイルを
アップロード後に.htaccessという名前にリネームするとかでできる。
0037nobodyさん
2006/11/23(木) 02:24:27ID:???orzorzorz
なんか本当みなさん丁寧に私のようなバカを相手にありがとうございます。
試してみます!
003830
2006/11/23(木) 02:24:51ID:???フレーム使わないHTMLを書けばいいじゃん、って話なんだから
フレームの弊害なんてあるわけないじゃん。
困ってるのはフレームを使わないと同じメニューを全ページに貼り付ける手間が大変、ってだけなんだろ?
そのくらいのことはDWとかのエディタが肩代わりしてくれるよ。
しかしその程度の知識とスキルの人がSEOなんて気にしても始まらないと思うぞ。
0040nobodyさん
2006/11/23(木) 02:30:01ID:???00417
2006/11/23(木) 02:30:20ID:???これからの(X)HTMLでフレームを排除した方が良いのは確かなんですけどねぇ。
0042nobodyさん
2006/11/23(木) 03:49:15ID:???個別に「これは良くないらしい」でやってても単なるバカですよ。
0043QQQ
2006/11/23(木) 07:13:00ID:vr3qLXu2検索させたいんですが、HTMLファイルで入力した文字をPHPファイルに
うまく渡せてません。
「HTMLファイルの概要」
<FORM ACTION="http://○○○/ABC.php" METHOD=POST>
<INPUT TYPE="text" NAME="var" SIZE="20">
<INPUT TYPE="submit" VALUE="検索実行">
</FORM>
「PHPファイルの概要」
<?
$fp = fopen("http://○○○/XYZ.txt","r");
if($fp == true){
for($i=1;$i<=5;$i++){
$str = fgets($fp);
if(!(strpos($str,$var) === false)){
print $str;
}
}
}
fclose($fp);
?>
何かおかしなところ、要領・センスの悪いところなど教えてください。
PHPファイルは単体でテストしてみましたが、問題なさそうでした。
なので、おそらくHTMLファイルから変数varがPHPに反映されていないよう
なのですが、どうしたら直るのかジェンジェン分かりません(--;)
環境はWindowsXP、Apache2.0.59、PHP4.4.4です。
0044nobodyさん
2006/11/23(木) 07:16:49ID:???0045QQQ
2006/11/23(木) 07:43:24ID:vr3qLXu2それはどこについてなのでしょうか??
0046nobodyさん
2006/11/23(木) 07:49:38ID:???name=varで指定したinputがデフォで$varで取得できたのは昔の話。
今は$varではなく$_GET['var'](GET時)や$_POST['var'](POST時)や
$_REQUEST['var'](どっちでも使える版)という書き方をする。
0047nobodyさん
2006/11/23(木) 08:07:53ID:???$var = $REQUEST['var'];
と、一番先頭の行に書いておけばよいということ
0048QQQ
2006/11/23(木) 08:16:53ID:vr3qLXu2どーもありがとーございます!
0049nobodyさん
2006/11/23(木) 10:09:00ID:???0050nobodyさん
2006/11/23(木) 10:15:18ID:???面倒がらずに、GETとPOSTをしっかり区別しる。
0051nobodyさん
2006/11/23(木) 12:14:12ID:3T4ybzoephp4とphp5、どっちがオヌヌメなんでせうか?
XREA+だと選べるようなんで迷ってまつ……
0054nobodyさん
2006/11/23(木) 12:59:15ID:???0055nobodyさん
2006/11/23(木) 13:06:36ID:???0056nobodyさん
2006/11/23(木) 14:37:44ID:Ja3fMNWU<?include "1.html";?>って感じで。
自分で試したら表示されたけど、特に問題ないよね?
0059nobodyさん
2006/11/23(木) 14:50:16ID:6gP1lOLG0060nobodyさん
2006/11/23(木) 14:51:28ID:KbYHTiqi$test = 'abc';
abc.txtを$testをつかって指定したいんですが・・
0061nobodyさん
2006/11/23(木) 14:55:29ID:???>>60
file_get_contents("{$test}.txt");
php4ならfopenで開くしかないのでは?
0063nobodyさん
2006/11/23(木) 15:27:48ID:???Windows2003 Server + Apache + SQL-Server + php でやる羽目に
なってしまった。
で、移植しててはたと困ったのが、新規のレコードを挿入した時に
挿入したばかりのレコードが特定できない。
PostgreSQL の時は、pg_last_oid で挿入しレコードを特定できた
のだけど、SQL-Server には該当の機能がなさげ。
登録画面で登録された情報を元に、こんな風に登録されましたと
表示するなんてことはありがちだと思うけど、SQL-Server + php
の人はどうやってるんでしょうか?
0064nobodyさん
2006/11/23(木) 15:36:43ID:J3FVLRFgありがとうございました
あともうひとつ
テキストファイルに10つの数字が入っているのですが
それらの数字を配列にひとつづつ格納するにはどうすれば?
このようにやったらarray[9]にしか格納されていませんでした・・
$file = fopen(abc.txt','r');
for($i=0;$i<10;$i++){
$number = fgetc($file);
$array = array($i =>$number);
}
print_r($array);
0065nobodyさん
2006/11/23(木) 15:39:37ID:???0066nobodyさん
2006/11/23(木) 15:41:35ID:???$array = array();
for($i=0;$i<10;$i++){
$number = fgetc($file);
$array[] = $number;
}
print_r($array);
0067nobodyさん
2006/11/23(木) 15:43:22ID:I5R9DF47として、
テーブルにレコードを新たに加える際に、
1・既に格納されているレコードと1つでも共通項があった場合、既に格納されて
いるレコードに統合したい。
2.レコードを統合する際に、共通項のあったレコードに差分をプラスする。
共通項があれば統合、なければ新たに格納ということで、PHPも必要だと思いまして。
しかし、これをどのように記述すれば良いのか分からなくて。。。
どうかお教え願えないでしょうか?
0068nobodyさん
2006/11/23(木) 15:48:34ID:???データベースの話だと思うけどphrase1にプライマリを設定しておいてインサートで失敗したら
アップグレードすれば良いんじゃね?
0069nobodyさん
2006/11/23(木) 15:55:41ID:rtAYuH71ありがとうございました
あともうひとつ
テキストファイルに10つの数字が入っているのですが
それらの数字を配列にひとつづつ格納するにはどうすれば?
このようにやったらarray[9]にしか格納されていませんでした・・
$file = fopen(abc.txt','r');
for($i=0;$i<10;$i++){
$number = fgetc($file);
$array = array($i =>$number);
}
print_r($array);
0070nobodyさん
2006/11/23(木) 16:09:41ID:YEDH6+Ubabc.txtの内容は1231231231
と数字並べてあるだけです
66さんありがとう
007167
2006/11/23(木) 16:12:59ID:I5R9DF47>>68
フィールドでなく、テーブルの全ての要素が一意のものでなければ
いけないので。。。
0073nobodyさん
2006/11/23(木) 17:57:15ID:???0074nobodyさん
2006/11/23(木) 18:52:04ID:???0075nobodyさん
2006/11/23(木) 19:23:21ID:???0076nobodyさん
2006/11/23(木) 19:25:28ID:???0077nobodyさん
2006/11/23(木) 19:28:02ID:jopFxTUo読み込んだ全部の配列を単語として出すにはどうすればいいですか?
0079nobodyさん
2006/11/23(木) 19:37:54ID:???0080nobodyさん
2006/11/23(木) 19:44:52ID:jopFxTUoみたいなのありませんか?
0081nobodyさん
2006/11/23(木) 19:47:05ID:???0082nobodyさん
2006/11/23(木) 19:54:57ID:???>>79
>>81
レスありがとうございます。
implode 使ってみたんですが、たとえば、文字列をエンコードする場合
個別に切り取ってからじゃないと出来ないみたいなんですがなんでですか
0083nobodyさん
2006/11/23(木) 19:57:22ID:???>implode 使ってみたんですが、たとえば、文字列をエンコードする場合
>個別に切り取ってからじゃないと出来ないみたいなんですがなんでですか
何のエンコードかな?。文字コードなら長い文章のままエンコできますよ。
0084nobodyさん
2006/11/23(木) 20:41:33ID:???2006-11-23 19:46:06
こういう時間形式に変換したいのですが、できますでしょうか?
$jikan = "2006-11-23 19:46:06";$TimeStamp = strtotime("$jikan");
これはうまくいくのですが、
$jikan = "20061123194606";$TimeStamp = strtotime("$jikan");
こうなるとうまくいかないもので、、
わかる方がいましたらよろしくお願いします。
0085nobodyさん
2006/11/23(木) 20:46:57ID:???$date = "20061123194606";
$yyyy = substr($date, 0, 4);
$mm = substr($date, 4, 2);
$dd = substr($date, 6, 2);
$hh = substr($date, 8, 2);
$ii = substr($date, 10, 2);
$ss = substr($date, 12, 2);
$date = "$yyyy/$mm/$dd $hh:$ii:$ss";
0087nobodyさん
2006/11/23(木) 20:54:46ID:6gP1lOLG例えかもしれんが変数名の始めに数字は使えないんじゃなかった?配列はいいんだっけ?
0089nobodyさん
2006/11/23(木) 21:05:50ID:???うまくいきました。ありがとうございました。
>86
sscanfも調べてみます。
どうもでした。
0091nobodyさん
2006/11/23(木) 21:29:59ID:???0092nobodyさん
2006/11/23(木) 22:21:16ID:???石器人だ。
0093nobodyさん
2006/11/23(木) 22:22:39ID:???echo preg_replace('/(....)(..)(..)(..)(..)(..)/', '\1-\2-\3 \4:\5:\6', $t);
こういうのはどう
0094nobodyさん
2006/11/23(木) 22:50:15ID:???Smarty使っていたら、便利な修正子が沢山用意されていると思っていたんですYo!
そしたらSo!!
自分で関数を定義してやらなきゃならないんですねぇ……。
</ひとりごと>
0096nobodyさん
2006/11/24(金) 00:17:41ID:???日本語ファイル名を扱えるやつを教えてください。
できれば AutoIndex みたいなのが希望っす。
0097nobodyさん
2006/11/24(金) 00:24:12ID:???0098nobodyさん
2006/11/24(金) 00:26:46ID:???その上でそのアップローダはどのOS上で動かすつもりなのか、
が重要なんじゃあるまいか?
009996
2006/11/24(金) 00:46:58ID:???スキルないっす。
アップロードした時点で、フォルダを除くと文字化けしているんで
move_uploaded_file のところで mb_convert_encoding をしてみたん
うまくいきませんでした。
(ファイル保存時は文字化けしなくなりましたが)
>>98
そうですね。環境を晒していませんでした。
アップローダ&サーバ(Apache)共に Win2000 です。のでファイル名は
SJIS になるかと。。
0100nobodyさん
2006/11/24(金) 00:52:22ID:???0101nobodyさん
2006/11/24(金) 00:53:56ID:???http://pc8.2ch.net/test/read.cgi/hp/1154177468/
まあポログラミングしないとなると板違いなんで向こうでどうぞ
010296
2006/11/24(金) 00:58:22ID:???情報ありがとうございます。
0104nobodyさん
2006/11/24(金) 02:14:25ID:yAUAJcwDPHPUnit2を使いユニットテストを組みながら開発しています。
Singletonなクラスを作成したのですが、そのユニットテストを行おうとしたところ、
インスタンスが共有されているため独立したテストが行えずテストが上手く行えません。
そこで、インスタンスを記録しているprivateなstatic変数をTestCaseからtearDownで
初期化したいのですが、アクセス権を無視して書き換える手段はありますでしょうか。
クラス/オブジェクト辺りの関数やリフレクションを漁っては見たのですが、特にリフレクションには
> 注意: privateまたはprotectedクラスプロパティの値の取得または設定を 行うと、例外がスローされます。
とまで書かれてしまっており...
複数人で開発しているわけでもありませんので、publicにしてしまうなり、
テストを行う際だけ書き換えるなりしてもさほど問題はありませんが、
何か良い方法をご存知でしたらよろしくお願いします。
0105nobodyさん
2006/11/24(金) 02:17:41ID:3W6tCrEf↓こんなかんじでやってみたのですがエラーでます
$data = array("あ","い","う","え","お");
$data = mb_convert_encoding($data,"SJIS", "ASCII,JIS,UTF-8,EUC-JP,SJIS");
echo implode("#",$data);
間違ってますか?
0106nobodyさん
2006/11/24(金) 02:25:35ID:???Runkitでテスト時のみのイニシャライザをくっつけるとか?
なんか他にいい方法がありそうな気もするけどよくわかんねっす
>>105
mb_conv...の第一引数は文字列 http://jp2.php.net/mb_convert_encoding
0107nobodyさん
2006/11/24(金) 02:36:42ID:C3XLERtZというようにnewを参照で受け取ることの意味や有用性って、
どんなことがありますか?
0108nobodyさん
2006/11/24(金) 02:55:57ID:3W6tCrEfどうもありがとうございます。
連想配列とかいうのでやってみたらエンコできました。
0109前スレ982
2006/11/24(金) 03:05:01ID:???前板982で質問した者です。
■質問した内容↓
質問します!
windowsでPHPを使用しているのですが、
ローカル環境で
<? include("../home/httpd/html/template/top.html"); ?>
の相対パスを
<? include("/home/httpd/html/template/top.html"); ?>
に変えて表示する事ってできるのでしょうか?
windows環境で、includeするファイル指定を相対パスを絶対パスに
変えて表示する事はできるのでしょうか?という質問でした。
意味不明ですません;;
0111nobodyさん
2006/11/24(金) 03:10:05ID:???どういうフォルダ構成になってるか分からないので何とも言えないが、
普通に考えたら
../home/httpd/html/template/top.html
と
/home/httpd/html/template/top.html
は絶対に同じ場所を指さないと思うんだが…となれば別のファイルが表示されるだけかと。
それは相対パスを絶対パスにしたとは言わないだろう。別の場所を指定してるんだから。
そもそも相対パスと絶対パスってどういうものなのか分かってて言ってる?
そもそも何でそんなことしたくなったのか分からないと回答は難しいよ。
「別のファイルを表示しても同じように表示されますか?」という質問にしか聞こえない。
0112nobodyさん
2006/11/24(金) 03:14:26ID:???カレントが第二階層にあるなら ../ と / は同じになるじゃないかな
とするとWindowsでドライブレターを省略した絶対パスが有効かという質問かなあと思うけど
わざわざ聞くようなことでもないしなあ謎だわ
0113104
2006/11/24(金) 03:15:15ID:yAUAJcwDおお、素晴らしい。
__autoload('SingletonClass');
echo runkit_method_add('SingletonClass', 'initializesingleton', '',
'self::$instance = null;',
RUNKIT_ACC_PUBLIC
);
...
protected function tearDown()
{
SingletonClass::getInstance()->initializeSingleton();
}
といった感じでテスト対象のファイルを弄ることなく初期化することが出来ました。
# 作成するメソッド名に大文字を混ぜてしまって一時嵌りましたが
どうもありがとうございました。
0114前スレ982
2006/11/24(金) 03:36:06ID:???その後に続くのがそのディレクトリなんです。
なのでimgを読み込む時は、
/img/aaa.gif
で読み込めるのですが、(../img/aaa.gifでも読み込めます。)
includeで同じように指定してもできません。
includeだと分けが違うんでしょうか。
最近学んだ者であまり分かってません。
もうしわけないですorz
E:\abc\main\
の中にincludeを指定してるファイルがありまして、
E:\abc\home\httpd\html\template\top.html
を、絶対パスで読み込みたいんです。
なぜ、
<? include="/home/httpd/html/template/top.html" ?>
で読み込みたいかというと、本サーバーの環境がこの指定で
読み込まれるのに対して、 ローカル環境でできない状態でいるんです。
なので、htmlファイルをそのまま上げる事ができなく、
ローカル環境でコーディングをコピペして、
それを本サーバーにあげるという
めんどくさいことをしています。
ローカル環境と本サーバー環境を限りなく近づけて
作業を簡素化したかったのです。
現状では、本サーバーの環境を変える事は、
できない状態でして、ローカル環境を本サーバーの環境に
合わせる事になります。
申し訳ないですが、もう少しご教授のほうをお願いいたします。
0115nobodyさん
2006/11/24(金) 03:42:23ID:???0116nobodyさん
2006/11/24(金) 03:52:42ID:???ハードコーディングせず、パスは定数にしておけば多少楽になるだろう
プラットフォームはPHP_OSで取得できるから自動でパスを切り替えるようなこともできるし
0117439
2006/11/24(金) 04:00:22ID:???以下のファンクションでサニタイズしているんですが
普通に「htmlspecialchars」したほうがいいでしょうか?
function outhtml($str) {
$str = htmlspecialchars($str);
return $str;
}
0118nobodyさん
2006/11/24(金) 04:02:46ID:???0119nobodyさん
2006/11/24(金) 04:07:07ID:???0120439
2006/11/24(金) 04:12:46ID:???分かりにくくってすみません。
スピード的にはあまり大差なかった(私の感覚で)のですが
保守やこの業界の普通というか常識ではあまりやらない手法だ等お教えいただけたらと思っております
0121nobodyさん
2006/11/24(金) 04:13:14ID:???0122nobodyさん
2006/11/24(金) 04:41:21ID:???Zendコーディング規約では、メソッドの引数で値の参照渡しができないようなのですが、
滅多にしないとはいえ、これって結構な制限になりませんか?
0123nobodyさん
2006/11/24(金) 04:45:09ID:???0124nobodyさん
2006/11/24(金) 04:55:46ID:???0125nobodyさん
2006/11/24(金) 04:57:13ID:???ユーザー定義関数でなんて絶対使いたくないっす。
値を複数返すなら配列で返してlistで受け取るっす。
0127nobodyさん
2006/11/24(金) 04:59:47ID:???はいはい、君は早とちりしているようだ。
Zendコーディング規約では、メソッドの引数で値の参照渡しを禁じているわけではない。
値の参照渡しは、"関数宣言"においてのみ可能です。
class Foo
{
public function bar(&$baz) ←関数宣言
{}
}
注意:"実行時"の参照渡しは禁止されています。
0128nobodyさん
2006/11/24(金) 05:17:27ID:???あー。仮想のパスと実際のパスの違いが理解できてない上に
サーバー環境とローカル環境を違う状態にして開発してるんだ。
そりゃー面倒だわ。
画像とかHTMLとかのリンクのパスはサーバーの外に対しての指定で
ブラウザが解釈するもの。そしてブラウザの要求をWEBサーバーが
仮想パス→DOCUMENT_ROOTを基準にした実際のパスに変換して
内部では正しいフルパスで扱われる。
それに対してPHPで使われるincludeのパスってのはPHP自身が
サーバー内部の仕組みであるため、「最初から実際のパス」で扱われる。
対処方法としては、よくやる手法ではPHP内部でのディレクトリ指定を
DEFINEまたは変数での定義にしてしまって、定義ファイルの差し替えで
簡単に切り替え可能にしてしまう方法。これは汎用性が高い。
ただ、目的が画像みたいにDOCUMENT_ROOT基準にしたいだけなら、
include "$_SERVER[DOCUMENT_ROOT]/template/top.html";
みたいにして、DOCUMENT_ROOTの値を使ってパスを補完しちゃうのもアリだよ。
0130nobodyさん
2006/11/24(金) 05:22:05ID:???なるほど、それなら全く平気です。
http://phpspot.org/blog/archives/2006/05/zend_framework_2.html
↑最初にここの22を見て誤解しちゃいました。
0131nobodyさん
2006/11/24(金) 05:24:55ID:???前に同じようなことしてるらしい書き込みをここか旧本スレの過去スレで見たよ。
でもhtmlspecialcharsは画面によっては使用頻度が激しくなるから
俺の感覚では速度的に受け入れがたい手法かなぁ…Cのマクロならともかく。
俺はその手のはエディタの補完機能で入力を楽にしてる。
困るほど使用頻度が激しいならクリップボードツールの類で定型ワード化すれば?とか思う。
0132nobodyさん
2006/11/24(金) 05:28:50ID:???htmlspecialchars() は見た目で長いのも視認性が悪くてよくない。
よく使う関数にこんな長い関数名をつけたのはバカだよ。
0133nobodyさん
2006/11/24(金) 05:38:48ID:???$h = 'htmlspecialchars';
echo $h('<hoge></hoge>');
0134nobodyさん
2006/11/24(金) 07:42:42ID:???0135nobodyさん
2006/11/24(金) 08:18:37ID:???0136nobodyさん
2006/11/24(金) 09:01:37ID:???0137nobodyさん
2006/11/24(金) 09:37:56ID:???Zend_APIのリファレンスってロハじゃ手に入らんだろ?
0138nobodyさん
2006/11/24(金) 10:32:34ID:???0139nobodyさん
2006/11/24(金) 10:59:39ID:???function h($str) {
$str = htmlspecialchars($str, ENT_QUOTES, 'EUC-JP');
return $str;
}
// http://blog.ohgaki.net/index.php/yohgaki/2006/03/ を参照のこと
0140nobodyさん
2006/11/24(金) 11:20:54ID:???return htmlspecialchars($str, ENT_QUOTES, 'EUC-JP');
でいいような希ガス。
0141nobodyさん
2006/11/24(金) 11:54:47ID:???基本的にインターフェース部分だけ、マニュアルを参照しながら作法通りに書くだけで、あとは普通にCで書くだけだしな。
win上(cygwin)でトライしたときは、コンパイルがうまくいかなくて投げ出した記憶があるが、linux上なら無問題。
0142NAME IS NULL
2006/11/24(金) 12:35:14ID:LYtHrh60[6] => データベース [7] => ユーザー [8] => アプリケーション [9] => アプリケーション [10] =>データベース
[11] => パソコン [12] => カメラ [13] => Java [14] => API)
このように文書中の語句を抜き出し、配列に格納しております。
そして、同じ要素の語句の個数をカウントして、降順に並び替えて
表示したいのですが、どのようにすれば良いでしょうか?
例えば、カメラ 4,ユーザー 2,データベース 2 といった感じにしたいの
ですが。。。
0145142
2006/11/24(金) 13:04:34ID:LYtHrh600147nobodyさん
2006/11/24(金) 14:14:35ID:bDJYivQE画像アップロードが出来る掲示板を作ろうと思っているのですが、
登録→確認→完了
という3つの手順を踏まえるとして、確認画面で画像を表示させたい場合、
一旦サーバに画像を登録しないと駄目ですよね?
しかし、登録しなかったり前に戻ったりする場合、その画像がサーバに蓄積
されていって無駄になります。
どういう構成の方が効率よくできるのでしょうか?
それともPHPの組み方にもよるのでしょうか?アドバイスお願いします。
0148nobodyさん
2006/11/24(金) 14:17:37ID:???「登録」の時に、確認画面用にテンポラリでサーバに保存してるファイルの
タイムスタンプ見ていって古いファイルを削除すればいい
0149nobodyさん
2006/11/24(金) 14:23:37ID:???a,b,c,d,e,f,g
上の例だとfを表示。
どのようにソースを書けばいいのか検討がつきません。
正規表現で置き換えをしようと思いましたが、どのように書けばいいかわかりません。
どなたかわかる方教えていただけませんでしょうか?
0150147
2006/11/24(金) 14:25:35ID:???すみません、いまいち構造の意味が分からないのですが、、、
確認 → クッキーを発行してファイルのパスを保存
登録 → そのクッキーを読んで現在の時間より古ければファイル削除
と言うことですか?
0151nobodyさん
2006/11/24(金) 14:31:40ID:1uBVtpeJなぜか日本語が文字化けして・・・
0152nobodyさん
2006/11/24(金) 14:33:35ID:???$str = "a,b,c,d,e,f,g";
$data = explode(",", $data);
echo $data[5];
0155nobodyさん
2006/11/24(金) 14:39:10ID:???クッキーとかいらね
要は確認までいったらテンポラリディレクトリにファイルを上げる
正常に完了までいった場合はテンポラリから正ディレクトリへ移す
確認でやっぱやめたってなったファイルはテンポラリに残っていく
テンポラリの中で現在より24時間前とかのファイルだったら
明らかに確認途中であきらめて残ったゴミファイルでしょ
その掃除作業を登録→確認→完了のどこかでやればよいということ
0156nobodyさん
2006/11/24(金) 14:41:50ID:???0157147
2006/11/24(金) 14:50:33ID:???「テンポラリディレクトリ」というのは、画像をアップロードするディレクトリと
別のディレクトリを作って、そこにアップするということですよね?
次に確認画面で下のようなソースを書きました。
$time_stmp=mktime();
echo tempnam($file_name,"$time_stmp");
出力画面には
C:\WINDOWS\TEMP\116207.tmp と出ます。(ローカル上でテストしてるので)
あとはTEMP(テンポラリディレクトリ)の中のタイムスタンプ付きファイルを
調べて、IFで指定時刻のタイムスタンプと比較して古いファイルなら
unlinkする処理を組み込めば、OKということでいいでしょうか?
0159147
2006/11/24(金) 16:03:04ID:???0161nobodyさん
2006/11/24(金) 20:49:40ID:???↓
いくつのファイルをアップロードして送信したかを調べる
$max_num=count($test);
echo $max_num;
としても、ファイルが1つでも2つでもフォームを用意した分だけMAX値が求められます。
例えば、<input type="file" name="test[]">を3つ設置したら
かならずMAX値は3になるような。
どうやったら選択したフォームのみの計算が出来るのでしょうか?
0162nobodyさん
2006/11/24(金) 21:56:58ID:???想像で答えるなら、
foreach ($_FILES['test']['error'] as $e) {
if ($e == UPLOAD_ERR_OK) {
$max_num++;
}
}
ってことがしたいってことかな。「フォームの選択」ってとこの意味がよくわからんな
0164nobodyさん
2006/11/24(金) 22:32:33ID:???ロハってなんすか?
>>141
マニュアルがまだ未整備って感じで、結局PHPのソースを見るって感じ・・・
マクロとか、どっちを使えばいいのかわからないものも多いし・・・
まあがんばってみます
0165nobodyさん
2006/11/24(金) 22:44:58ID:???0166nobodyさん
2006/11/25(土) 05:37:25ID:???感じで指摘したら読み間違いは直らないんじゃ、と今更思った
0167nobodyさん
2006/11/25(土) 06:08:17ID:uP/mQvTw0169nobodyさん
2006/11/25(土) 08:04:58ID:???0170スレ専属の回答者
2006/11/25(土) 09:03:10ID:???0172nobodyさん
2006/11/25(土) 12:15:23ID:???出来ないのでしょうか?
class test{
static $a = array();
function add($val = 'aaa'){
$this->a += array('test'=>$val);
print_r($a->layout);
}
}
$test = new test();
$test->add();
$test = new test();
$test->add(5);
0173nobodyさん
2006/11/25(土) 12:22:01ID:???0175nobodyさん
2006/11/25(土) 12:38:54ID:???0176nobodyさん
2006/11/25(土) 12:39:49ID:???0178nobodyさん
2006/11/25(土) 13:08:30ID:???買い物カゴという「モノ」に商品を追加する「手続き」や、追加する個数という「データ」のように
オブジェクト設計としてはどういう扱いなんでしょうか?
0179nobodyさん
2006/11/25(土) 13:10:36ID:???0180nobodyさん
2006/11/25(土) 13:33:04ID:???0181nobodyさん
2006/11/25(土) 13:53:53ID:???<IfModule mod_php4.c>
php_flag display_errors On
</IfModule>
htaccess自体は効いていて、PHPに関する部分だけ無視される…。
サーバにSSHで入ったら、mod_php4.cがなくて、代わりに libphp4.so がある…。
どうしたらいいんでしょうか?
0182nobodyさん
2006/11/25(土) 13:55:38ID:???汎用的で簡単な関数や定数を放り込んでおくのに使うくらいだな。
0183nobodyさん
2006/11/25(土) 14:05:55ID:???0184nobodyさん
2006/11/25(土) 14:08:47ID:???0185181
2006/11/25(土) 14:08:56ID:???<IfModule sapi_apache2.c>でした…。
0187nobodyさん
2006/11/25(土) 14:18:28ID:???クラス内では共有する値が必要な場合にstaticなプロパティを使えばいい
要はグローバル変数でもいいんだけどクラス内でしか使わないから
クラスに押し込んでしまいたいものに使えばいい
0188nobodyさん
2006/11/25(土) 14:36:37ID:NunClOiBYSTとgoogleは、そのままのHTMLを返してくれるので、splitとeregで何とかなりましたが
MSNは中身の無いものを返してくるので、困っています
スレ違いぽいですが、作ったことある方いらっしゃいませんでしょうか
0190nobodyさん
2006/11/25(土) 15:17:37ID:???いいのでしょうか?
for($i=0; i<=29; i++)
{
sqlite_query($db,"INSERT INTO document_word (word{$i+1}) VALUES('{$Value[$i]}');");
}
0191188
2006/11/25(土) 15:17:48ID:???お騒がせしました
0193nobodyさん
2006/11/25(土) 15:26:54ID:???すいません。for($i=0; $i<=29; $i++) でしたか?
しかし、なおしても通らないのですが。。。
ほかに原因はあるでしょうか?
0195nobodyさん
2006/11/25(土) 15:33:29ID:???0199nobodyさん
2006/11/25(土) 16:01:23ID:???(word{$i+1})
って何したいのさ?
・根本的にやりたいに対して処理が間違ってる
・SQL文が間違ってる
ソースから読み取れる情報だとこの程度しか答えられんだろ
0200193
2006/11/25(土) 16:06:09ID:???0201nobodyさん
2006/11/25(土) 16:07:31ID:???0202エスパー
2006/11/25(土) 16:09:44ID:???0204nobodyさん
2006/11/25(土) 16:37:06ID:???/ '´, 、 、 `ヽ、
r´ / l ヽ \ 、ヽ
/ / /l. l、 \ ヽ ', lヽ
/, l. / /´ヽ lヽ ヽ. ! ヽ. ト ヽ、
'´| V '__ヽ. ト\、_',| ',|
| l. ,| | __ \゙、ヽ.__ヽl. ト.|
lハlヘ|´ ` ヽ´ ``〉,^! | !
l\l| | //ィ N 呼びましたか?
| ハ ヽ __ /ハ/ ` _
'′lハn\ `ニ´/! ! ,イ |
_,.-' /ヽ ` - ´ ,ハ\ | |ヽ
_, - ' / | ヽェ、 ' | ヽー、 _ | ト. ヽ
,.、-‐ ´ / | / 〉 | ヽ `⌒.l ヽ',ヽヽヽ
/ ヽ 〈 ,.-|ヽ/ ヽ-/ ヽ/|、 ,〉 | l_! ヽ ゙l
0206nobodyさん
2006/11/25(土) 20:29:47ID:???for($i=0; $i<=29; $i++)
{
sqlite_query($db,"INSERT INTO document_word (word) VALUES('{$Value[$i]}');");
}
これでいいんでない?
(word{$i+1}) ってのは次の行に挿入したいってことと予想。
挿入する場合は、自動的に次の行にはいるので (word{$i+1}) の$i+1はいらない。
0207nobodyさん
2006/11/25(土) 20:32:01ID:???0208nobodyさん
2006/11/25(土) 21:51:05ID:???佐藤,サ行,22歳,サラリーマン
木村,カ行,31歳,自営業
工藤,カ行,18歳自営業
増田,マ行,25歳,サラリーマン
鈴木,サ行,20歳,サラリーマン
須藤,サ行,22歳,自営業
サ行という項目を選択orクリックすると 「佐藤:22歳」、「鈴木:20歳」、「須藤:22歳」
サラリーマンという項目を選択orクリックすると「佐藤」、「増田」、「須藤」
というように条件によって選択的にデータを一部取り出したいのですが、
<?php
$fp = fopen("data.csv", "r");
while ($data = fgetcsv($fp, 10000)) {
foreach ($data as $d) {
print $d . "<br>\n";
}
}
?>
とやったら全部表示されるとこまではいったんですがなかなかやりたいところまでたどり着けません。
ご助言お願いします。
0209nobodyさん
2006/11/25(土) 21:54:15ID:???0210nobodyさん
2006/11/25(土) 21:58:31ID:???0211nobodyさん
2006/11/25(土) 23:34:41ID:GT4xD1Nx全てを読みきるのに10秒程度もかかってしまいます。ブラウザからの同内容のPOST
だとすぐに結果が返ってくるのですが、この違いは何によるものでしょうか。
HTTPのトレースを見る限りでは、ブラウザが特別なことをやっているようには見え
ないのですが...
ちなみにfreadで読んでいるのは本体?のhtmlだけで、そのhtmlから張られている
画像などのリンクは読みません。ブラウザは平行に?それらも読んでいるようなの
になぜPHPよりも格段に速いのでしょうか。
0212nobodyさん
2006/11/25(土) 23:39:22ID:???表紙以外見れ無くないですか?
0214211
2006/11/25(土) 23:57:11ID:GT4xD1Nxfreadのループの開始、終了時の時間差が10秒程度なのです。
PHPのfread関数の作りの問題(=改善不可)でしょうか...
0215nobodyさん
2006/11/26(日) 00:01:48ID:???PHP疑う前に自分の環境とコードを疑え
あとその部分のコード貼れ
0216nobodyさん
2006/11/26(日) 00:04:06ID:???定かではないが、昔のバージョンでは遅かった記憶がある。
0217nobodyさん
2006/11/26(日) 00:05:23ID:???0218211
2006/11/26(日) 00:13:22ID:pPg02glY>>215
該当コードは↓です。正直、参考書からのパクリです(^^;
$socket = fsockopen(
$host
, 80 //port
, $errno
, $errmsg
, 10 //timeout
);
if ($socket == FALSE) {
return '';
}
fwrite($socket, $request);
$response = '';
while (! feof($socket)) {
$response .= fread($socket, 1024*100);
}
>>216
php-5.0.4-win32.zip
のを使ってます。「10日でおぼえるPHP5入門教室」という本に
ついてたCD-ROMに入ってたやつです。OSはXP+SP1です。
CGI、PHPの初心者です。Webサービスとやらに興味を持って
始めました。
0219nobodyさん
2006/11/26(日) 00:16:45ID:???バッファ小さくしてみたら
0220nobodyさん
2006/11/26(日) 00:18:16ID:???何したいのかよくわからんが、web鯖が返すレスポンスを取得するんだったら
GETリクエスト投げないとだめだと思うが。
$request にまともなリクエストヘッダ入ってるか?
0221nobodyさん
2006/11/26(日) 00:19:28ID:???0222211
2006/11/26(日) 00:23:22ID:pPg02glYバッファを小さく?それは考えてなかったので試してみます。
>>220
>>221
取得したいページ(html)は全て読めているのですが、
単にループで時間がかかっているのです。ループの前後で
time()の結果を取得して表示してみらたら10秒弱かかって
ました。
0223nobodyさん
2006/11/26(日) 00:25:20ID:???レスポンスの途中で引っかかってるのか
データ受信後に止まってるのかわからんじゃまいか
0224211
2006/11/26(日) 00:31:45ID:pPg02glYprint strval(time());
while (! feof($socket)) {
$response .= fread($socket, 1024*100);
print strval(time());
}
print strval(time());
とした結果です↓
1164468445
1164468445
1164468445
1164468445
1164468446
1164468446
1164468446
1164468446
1164468446
1164468452
1164468452
6秒かかっていっきに読んでるようです。
じつはfsockopenのタイミングで接続していない?
なわけないですねその前にfwriteしてるし...
0225nobodyさん
2006/11/26(日) 00:41:47ID:???だからそれじゃ分からないんだってばよ
各ループでデータは読み出せてるの?
9回から10回で突然6秒停止してるのが非常に気になるけど
0226nobodyさん
2006/11/26(日) 00:43:47ID:???キャッシュが効いてるとか、よほどでかいテキストでDeflateのメリットが出てるとか、
IEが早いケースはありうるけど超考えにくいね。情報不足で何ともいえないけど。
0227nobodyさん
2006/11/26(日) 00:48:24ID:???5.0.4だとそれっぽいのが見当たらないな。
こういうケースはあるみたいだけど。
http://bugs.php.net/bug.php?id=32688
0228nobodyさん
2006/11/26(日) 00:49:01ID:???これのせいで遅くなっているってことはないか?
$response .= fread($socket, 1024*100);
文字列をどんどん連結していくタイプは、文字列が長くなるにつれて劇的に遅くなる。
配列にプッシュしていく方がはるかに高速なので、試してみては?
$chunks = array();
while (! feof($socket)) {
$chunks[] = fread($socket, 1024*100);
}
$response = implode($chunks);
0229211
2006/11/26(日) 00:53:05ID:pPg02glYループ内のprintで、その時点での全受信データ長も出力してみました。
1164469801
1164469802-->556
1164469802-->4703
1164469802-->8818
1164469802-->12578
1164469802-->16963
1164469802-->20723
1164469802-->28859
1164469808-->28859
1164469808
6秒かかってるのにデータ長が変ってない???
0231nobodyさん
2006/11/26(日) 00:59:53ID:???HTTP1.1でリクエストしてるのに、Closeしてないときとか。
0232nobodyさん
2006/11/26(日) 01:03:02ID:???0233nobodyさん
2006/11/26(日) 01:03:12ID:???content-lengthを返しているなら、適切な分読み込んだ時点で処理を打ち切るように改良してみたら?
0235211,229
2006/11/26(日) 01:12:01ID:pPg02glYなるほど!
試して見ましたが解決しませんでした。
でも書き換えます(リアロケートのロスはあるので)。
アドバイスありがとうございました。
>>233
なるほど!
最後に時間がかかるなら最後までいかなければ良い、と。
柔らか頭ですねぇ(古い表現ですが(^^;)
その線で対応できるかもしれないので色々試してみます。
0236nobodyさん
2006/11/26(日) 01:22:32ID:???相手の出したデータ全部読み終わってるのに
さらに次を読もうとして待ってる典型例に見えるな。
>>233で正解だろう。
0237nobodyさん
2006/11/26(日) 01:24:47ID:???なかなか便利な関数ですよ。
0238nobodyさん
2006/11/26(日) 01:27:43ID:???あるサービスパッケージを使いたくて入れてみたら
エラーでまくりでそれをたどり永田、ファイル名検索して
ダウンロードしてきてを5回ぐらい繰り返して
デレクトリとか湧け分からなくなりながら
死ぬ思いしてやっと動作したのですが、みなさんどうやられてるのですか
簡単な方法教えてください
0239nobodyさん
2006/11/26(日) 01:28:07ID:???0242俺様
2006/11/26(日) 02:42:31ID:???0245nobodyさん
2006/11/26(日) 03:08:41ID:???print_rで配列の中身を出力。
第二引数で出力内容を変数に取り込む。
nl2brで改行コードを書き換えてブラウザ上でも改行して表示する。
0247nobodyさん
2006/11/26(日) 03:19:41ID:???簡単な条件文でも覚えれ。
それができれば、ほとんどなんでもできるようになる。
繰り返し処理を楽にするためにループ関数でも覚えればなおよし。
0249nobodyさん
2006/11/26(日) 03:49:08ID:HPxv5p71<?xml version="1.0" encoding="UTF-8"?>
なんて出力をするんですがこれにPHPが反応してエラーを出してしまいます。
サーバ全体で.htmlもphpとして見るようにしてあるので.htaccessか何かで
特定のディレクトリのみただのhtmlとして見るようにさせる事は可能でしょうか?
0250nobodyさん
2006/11/26(日) 04:44:20ID:???0251nobodyさん
2006/11/26(日) 06:00:46ID:???file_get_contents("sample-1.php?data=ABC");
という風に引数を渡したいのですが、エラーになってしまいます。
エラー内容→「failed to open stream: Invalid argument in C:\Program Files〜」
ちなみに
file_get_contents("sample-1.php");
のようにファイル名だけの場合はエラーは起きませんでした。
どうしたらいいですか?
0252nobodyさん
2006/11/26(日) 06:20:36ID:???file_get_contents("sample-1.php?data=ABC"); ファイル名ではない
file_get_contents("sample-1.php"); 読み込まれるのはsample-1.phpのコード
実行結果を取得したいのであれば
file_get_contents("http://example.com/sample-1.php?data=ABC");
(fopen_wrappersが有効であれば、ファイル名として"URL"を指定する事ができる。)
ただしパフォーマンス的には推奨されない。可能な限りincludeで処理すべき
0254nobodyさん
2006/11/26(日) 09:33:58ID:JtN58Jtpと
'うんこ野郎'
って何が違うんですか?
たまに"が書き変わってて
動かない場合とかあるんですが
0255nobodyさん
2006/11/26(日) 09:38:03ID:???$unko = 'まんこ';
echo "$unko野郎"; //まんこ野郎
echo '$unko野郎'; //$unko野郎
http://www.php.net/manual/ja/language.types.string.php
ここに引用符と二重引用符の違いが載ってる
0258nobodyさん
2006/11/26(日) 11:22:10ID:???str_ireplaceよりパワーアップしたやつありませんか?
0259nobodyさん
2006/11/26(日) 11:28:16ID:???0260nobodyさん
2006/11/26(日) 12:03:47ID:???0261nobodyさん
2006/11/26(日) 12:07:06ID:???実験もせずに聞いてみる
0262nobodyさん
2006/11/26(日) 12:20:32ID:???0263nobodyさん
2006/11/26(日) 14:22:23ID:???で Web アプリを作っています。諸般の事情により Windows で
動いている SQL Server 2005 内のデータを対象にしたいのですが、
PHP は SQL Server 2005 に接続できますか?その際は ODBC 経由
ということになるのでしょうか?
最悪、SQL Server 2005 内の DB を MySQL に全部吸い出す
覚悟はしているんですが、できれば直接 SQL Server 2005 に
PHP から接続したいと思っています。
0266nobodyさん
2006/11/26(日) 15:10:20ID:3LCl7xig0267208
2006/11/26(日) 15:12:28ID:???data.csvファイルを開いて$lineに入れるために
$Data=file("data.csv");
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",", $Data[$i]);
?>
とかいたのですが、
excelからCSVに変換すると 行の最後の「,」が消えてしまいます。
これってなにか防ぐ方法があるのでしょうか?
置換すればいいのですが、変更するたびに消えてしまって困ります。
0268nobodyさん
2006/11/26(日) 15:22:16ID:???0269nobodyさん
2006/11/26(日) 15:24:13ID:???0270nobodyさん
2006/11/26(日) 15:28:11ID:???0271nobodyさん
2006/11/26(日) 15:37:47ID:p7DfmUHL↑の、name="*[]"の
[]にはどういった意味が含まれているのでしょうか?
0272nobodyさん
2006/11/26(日) 15:42:48ID:???してみて。
0273nobodyさん
2006/11/26(日) 16:08:39ID:???0274nobodyさん
2006/11/26(日) 17:35:08ID:???$hoge['aiueo'][$i] を
$hoge[$i]['aiueo']に簡単に変更する方法ってあるでしょうか?
0275nobodyさん
2006/11/26(日) 17:36:30ID:Ej5RlNz7それ以外は2というようにしたいのですが
未入力若しくは空白を表現するにはどうすれば?
0276nobodyさん
2006/11/26(日) 17:37:13ID:ege7fIyd他人が作ったhtmlファイルの解析をしてるんですが、
フォーム中のPOST情報をわかりやすくみたいんです。
具体的に言うと
=========ここから他人が作ったhtml=========
<form method=post action="hoge.php">
<input type なんちゃら> ←これが多数
</form>
=========ここまで他人が作ったhtml=========
こんなのがあって、
action="hoge.php"を自分が自作のphpファイルへ、action="2ch.php"とかに変更して
2ch.phpをブラウザで見ると
POST['a'] = 1
POST['g'] = "test"
:
:
とか見いにわかりやすく表示させたいのです。
なにかいいモノはないでしょうか。
以上よろしくお願いします。
0277nobodyさん
2006/11/26(日) 17:41:29ID:???> $aという値が未入力ならば1
> それ以外は2というようにしたいのですが
if($a == NULL || $a == ""){
$a = 1;
}else{
$a = 2;
}
でいいかな?
やべ、なんか誤作動起こす気がする。
> 未入力若しくは空白を表現するにはどうすれば?
これは意味が分かりません。
0280nobodyさん
2006/11/26(日) 18:17:12ID:???for($i=0;$i<=10;$i++) {$hoge[$i]['aiueo'] = $hoge['aiueo'][$i];}
0281nobodyさん
2006/11/26(日) 18:55:04ID:ZiWUMCPrSystem : Darwin Kernel Version 8.8.1
Apache Version : Apache/1.3.33 (Darwin) PHP/4.4.1
【質問】
シングルクォートとダブルクォートを両方含む文字列を作成する方法をおしえてください。。orz
例えば以下は>>255のリンク先の例文。
<?php
$pattern = 'Arnold once said: "I¥'ll be back"';
?>
これを実行しようとすると、Parse Errorになります。。
ちなみに、" ' "; か ' " '; であればエラーになりませんが、これらに
エスケープした¥" や ¥' を混ぜるとエラーになってしまうのです。。
よろしくおながいします。m(__)m
0282nobodyさん
2006/11/26(日) 19:00:23ID:???echo $pattern;
うちのPHPではエラーにならないが??
0283nobodyさん
2006/11/26(日) 19:33:26ID:???0284nobodyさん
2006/11/26(日) 20:08:02ID:???0285nobodyさん
2006/11/26(日) 20:10:28ID:???0286nobodyさん
2006/11/26(日) 20:13:51ID:???0287nobodyさん
2006/11/26(日) 20:41:44ID:???0288nobodyさん
2006/11/26(日) 20:48:50ID:httKlQJsdata_02.txt
・・・
for ($a = 0; $a<100; $a++ ){
$data = file("./data_"○○".txt");
・
・
・
}
2桁連番のファイルを読み込みたいのですが
どうすればいいのでしょうか?
どうかよろしくお願いします。
0289nobodyさん
2006/11/26(日) 20:50:25ID:???0290nobodyさん
2006/11/26(日) 21:01:27ID:???0291nobodyさん
2006/11/26(日) 21:02:07ID:???0292nobodyさん
2006/11/26(日) 21:02:29ID:???0294nobodyさん
2006/11/26(日) 21:45:21ID:httKlQJsありがとうございます
おかげさまで解決できました
$data = file("data_"printf(%02d,$a)".txt");
今までずっとこんなことを試行錯誤してました・・・(;´Д`)
0298nobodyさん
2006/11/27(月) 01:13:27ID:???たとえば、
$var2 = 0;
$var[0] = 1;
$hoge[1] == $hoge[$var[$var2]]
で正式な記述方法なのでしょうか?
0300nobodyさん
2006/11/27(月) 01:17:12ID:???文法上は問題ないけど、そのコードはつまり $hoge[1] = $hoge[1] だから無意味だね
0301288
2006/11/27(月) 05:28:35ID:???使ってみました!
すごい!ただただ感動です!
やる事例があまり無く、いつまで経っても初心者なのですが
今回のお二方のレスには感動するばかりです。
本当にありがとうございました。
0302nobodyさん
2006/11/27(月) 13:10:49ID:???空にすることならできるのですが・・・。
わけあって、fopenから極力処理したいと考えています。
0303nobodyさん
2006/11/27(月) 13:11:04ID:???ソースはUTF-8で
mb_send_mail("[email protected]", mb_convert_encoding("(そ)そさしすせそたちつてと","ISO-2022-JP","UTF-8"), "あいうえお");
上記を使ってメールを出しているのですが、
Thunderbirdで受信すると件名が「(そ)そさしす$;$=$?$A$D$F$H」と文字化けしてしまいます。
Outlookなどでは化けないのですが、どのように対処すれば宜しいのでしょうか?
0304nobodyさん
2006/11/27(月) 13:11:59ID:kpHSAXGLforeach ( $result as $aaa ) {
$aaa = mb_convert_encoding($aaa[0],"SJIS", "auto");
$aaa1 = urlencode("$aaa");
print ("<a href=\"$aaa1\">$aaa</a>\n");
}
?>
$aaaに何も無ければ→print ("ねーよwwww\n");
それ以外は→print ("<a href=\"$aaa1\">$aaa</a>\n");
というようにやりたいです。
こんな感じだと思うのですが↓動きません
foreach ( $result as $aaa ) {
$aaa = mb_convert_encoding($aaa[0],"SJIS", "auto");
$aaa1 = urlencode("$aaa");
if (empty($aaa)) {
print("ねーよwwwwwww");
} else {
print ("ありました。<a href=\"$aaa1\">$aaa1</a>\n");
}
?>
NULLでもだめでした。書き方間違ってますか?
0306nobodyさん
2006/11/27(月) 13:16:38ID:???内部エンコードがJISじゃないのにJISが渡されたからじゃないの
>>304
フラグ変数が変だと思ったらvar_dump()
0307nobodyさん
2006/11/27(月) 13:20:56ID:???内部的には(たとえそれが UTF-8 文字列だとしても)
単純にバイト列として扱われているのでしょうか?
0308nobodyさん
2006/11/27(月) 13:24:32ID:???データタイプが何であれバイト列として扱われたら文字列でないことは自明なわけだが。
0309303
2006/11/27(月) 13:35:45ID:???mb_send_mailの前で
mb_internal_encoding("ISO-2022-JP");
をすると、「(])]UWY[]たちつてと」となりました。
「(そ)そさしすせそたちつてと」という文字列にはばらばらな文字コードが含まれているということですか?
0311nobodyさん
2006/11/27(月) 13:36:57ID:???PHPの文字列は基本的にただのバイト列と考えていいと思う。
ただし、あたかもマルチバイトでエンコードされた文字列であるかのように処理してくれる関数がたくさんある。
画像や音声などのようなバイナリデータも、文字列としてそのまま扱える。
ワイド文字型のような中途半端な型を余分に導入されるより、ずっと統一的かつ単純かつ柔軟でわかりやすい。
0313302
2006/11/27(月) 13:41:41ID:???FTPで接続し処理したいからです。
ftp_connectウンタラは長くなってしまうため極力使いたくありません。
>>310
php5以降ならそれでいけたようですね・・・
php4では無理でしょうか?
0315304
2006/11/27(月) 13:49:24ID:???ありがとうございます
なにもないときはstring(0) "" という返りすが
>>304のようにするにはどうすれば良いですか
0316nobodyさん
2006/11/27(月) 13:55:11ID:???0317304
2006/11/27(月) 13:58:17ID:???0318303
2006/11/27(月) 13:58:56ID:???mbstring.detect_order auto
mbstring.encoding_translation Off
mbstring.func_overload 0
mbstring.http_input auto
mbstring.http_output UTF-8
mbstring.internal_encoding UTF-8
mbstring.language Japanese
mbstring.substitute_character no value
こんな設定なのですが、やっぱり問題ありです?
0319303
2006/11/27(月) 14:01:05ID:???0320303
2006/11/27(月) 14:58:05ID:???$title = mb_convert_encoding($title,"ISO-2022-JP","UTF-8");
mb_internal_encoding("ISO-2022-JP");
mb_send_mail("[email protected]", $title, "");
でも、
$title = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん";
mb_send_mail("[email protected]", $title, "");
でも、Outlook,Thunderbird関わらず、
結局は「BDFHJKMOQSUWY[ ]たちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん」になってしまう。
これを直すためにmb_convert_encoding($title,"ISO-2022-JP","UTF-8");すると、Outlookでは正常になっていたので正しいものと思ってたら、
内部的には上記のソースであるべきだったんですね。。。
ただ、何ゆえひらがなのそまでがアルファベットに置き換わるのかがわからない。
たの前に半角スペース入れて送るとヘッダには「Subject: BDFHJKMOQSUWY[] =?ISO-2022-JP?B?GyRCJD8bKEI=?=」
完全に半角文字と認識してる…。
0321302
2006/11/27(月) 14:58:07ID:???いまさら気づいたのですが、
urlラッパーってphp5にならないとほとんどサポートしてないんですね、
うわーめんどくせー
0322nobodyさん
2006/11/27(月) 15:33:23ID:???全部置きかえられたら楽しそうなのにねー
0323302
2006/11/27(月) 17:54:57ID:???接続先のファイルの内容を書き換える方法ってないでしょうか?
urlラッパーが使えれば、実現できるのですが・・・。
0324nobodyさん
2006/11/27(月) 18:10:05ID:???0325nobodyさん
2006/11/27(月) 18:42:47ID:???0326nobodyさん
2006/11/27(月) 22:19:33ID:???http://aucfan.com/category/sy-t.html
ってどうやって出品情報得てるの?
一日あたり100万商品あると思うんだけど、これ一個一個url指定して
情報取得してるのかな?(コメント情報も検索可能だから)
誰か教えて
0327nobodyさん
2006/11/27(月) 22:41:44ID:???まあ落札だけでも全部スクレイプして情報取ってきてるならそれはそれで凄いけど
ヤフオクってAPIないよね
0328nobodyさん
2006/11/27(月) 22:57:33ID:???mixiみたいにログイン時に
クッキーが有効になっていないユーザに対して警告文を出したいのですが
それってphpだけだと難しいですかね?
0329nobodyさん
2006/11/27(月) 23:01:42ID:???0330nobodyさん
2006/11/27(月) 23:25:05ID:???置くのですが、一つのディレクトリに大量のdatファイルを貯める方法に比べて
処理が遅くなることがございますか?
ご教授お願いいたします。
0331nobodyさん
2006/11/27(月) 23:26:35ID:???http://aucfan.com/know-how/help_4_2.htm
↑ここ見ると、Yahooのデータは、検索される都度Yahooにクエリ投げて結果を受け取ってるだけのようだ。
出品データをいちいち毎日オークファンのDBに取り込んでるわけじゃない。
そりゃそうだわな。そんなことしてたらYahoo側からアク禁食らうだろうし。
0333nobodyさん
2006/11/27(月) 23:47:28ID:???「とりあえず10000個ディレクトリ作って、lsやってみろ」と、
うちのひいばあちゃんが言ってたよ。
0334nobodyさん
2006/11/28(火) 00:29:51ID:???とも言ってたな。
0336nobodyさん
2006/11/28(火) 00:35:48ID:???なんて、言ってる奴にはどうせろくなサイトはできないから
無視していいんじゃね。
0337nobodyさん
2006/11/28(火) 00:36:04ID:???lsのコストなんてどうでもいい
0338nobodyさん
2006/11/28(火) 01:11:22ID:???0339nobodyさん
2006/11/28(火) 02:04:37ID:???0340nobodyさん
2006/11/28(火) 03:13:34ID:???なんでlsのコストの話してるんだ?と思うが、どうしてもWinでls使いたいなら
っ GnuWin32 Gygwin VMware coLinux ...etc
まぁあれだ、ディレクトリ10000個作ったりするような設計をやった事がないから、どの程度遅くなるのか分からん。
実稼働環境に近い条件を用意して、実際に動作テストやるべきだな。
0341nobodyさん
2006/11/28(火) 07:25:30ID:???そりゃどっちも同じくらい遅い。
ファイルシステムのindexデータにとっては
ディレクトリも特殊な属性を持ったファイル相当なので、
ディレクトリ+ファイルの合計で数が多くなると遅いです。
ディレクトリを階層構造にはできないの?
0342nobodyさん
2006/11/28(火) 07:29:57ID:???0343nobodyさん
2006/11/28(火) 07:37:57ID:???ファイルの持ち方を参考にするとか、簡単なAPで検討してみるしかない。
>>337
おまえ何もわかっていない
0344nobodyさん
2006/11/28(火) 08:50:39ID:???求人サイトなどでよくあるのですが、1つの項目に複数個入れる時、
配列を使って「AAA BBB CCC」とするのがいいのでしょうか?
それとも「AAA,BBB,CCC」っと1つずつカンマ区切りの方がいいのでしょうか?
データーベースやテキストでログを保存する場合も
1つのフィールドに対して1つの配列内のデータを入れるのか、
それとも配列にせずに、3つなら3つのフィールドを用意して入れた方が良いのか
どちらの方が汎用性・効率化の面で優位なのか悩んでいます。
0346344
2006/11/28(火) 09:07:48ID:???例えば以下のような登録フォームがあるとします
趣味は?:[]パソコン[]野球[]サッカー
※[]はチェックボックスとします。
こういうフォームの場合、ログとしてテキスト、もしくはDBに保存する場合
どのような形で保存する方が汎用性が高いのかな?と思いまして。
質問が「趣味は?」だけならいいのですが、「その趣味に使う時間は?」
など追加した場合も、チェックを入れた項目毎の時間を入力出来るような。
0348nobodyさん
2006/11/28(火) 09:22:49ID:???手早く作るにはこれ
処理の早さならDB・テキストに関わらずビットフラグ
汎用性ならDBだが、>>344の場合テーブル設計つーかリレーションについて
勉強が必要だと思われ
データ構造はどういう操作を楽にしたいか、という観点から設計されるので
漠然とどういうのが効率的か、汎用性が高いか、というのはない
要求をしぼったほうがいいと思う
0350344
2006/11/28(火) 09:41:27ID:???おっしゃる通りです。まさに悩んでいるのはその点です。
テーブル設計やリレーションについて、いまいちまとまらないんです。
だから設問が追加した場合、汎用性が聞かなくなることが多く、
結局、フォームを追加したり、作り直すことが多いんです。
ただ、勉強するにも何をどう学べばいいか悩みます。
参考書に書いているような事でもないし・・。
0352nobodyさん
2006/11/28(火) 10:39:26ID:ms9bthGt変数に入れた文字列を、先頭から1文字ずつ順に取り出したい場合、どのような関数
がありましたでしょうか?
ファイルに書き出さない方法がありましたら、教えてください。
よろしくおねがいします。
0353nobodyさん
2006/11/28(火) 10:46:25ID:???substrとか。
String系の関数を眺めてみればもっといいのがあるかもね。
ttp://jp.php.net/manual/ja/ref.strings.php
よくできた日本語マニュアルがあるんだから読んでみては。
0354nobodyさん
2006/11/28(火) 10:50:38ID:???utf8にしてpreg_splitつー手もある
0355nobodyさん
2006/11/28(火) 10:51:44ID:???windowsを前提で話す。
1.変数が記述されたphpファイルをメモ帳で開く。
2.変数の行にカーソルを持っていく。
3.変数に格納された文字列をコピー。
4.コピーした文字列を別のファイルにペースト。
5.あとはお好きなように
0356nobodyさん
2006/11/28(火) 11:11:15ID:???↑こういうURLがあるんですけど、?Helloはどうやって取得したらいいのでしょうか?
$_GETじゃ取得できませんでした。
0357nobodyさん
2006/11/28(火) 11:11:35ID:MVyDbxlOsubstrの存在を忘れてました…
助かりました!ありがとうございます。
>>354
今回は半角英数字しか使う予定はないので、その問題は大丈夫っぽいです。
マルチバイト使うときは、気をつけます。
ありがとうございます。
0358nobodyさん
2006/11/28(火) 11:12:40ID:???$s = "hogehogebar";
$l = strlen($s);
for ($i=0; $i<$l; $i++) {
echo $s{$i};
}
でええやん
0359nobodyさん
2006/11/28(火) 11:12:53ID:XGgokU8Xそういう方法もありますね、今回は直接入力された変数から行うので、残念ながら使えませんが、
その方法も覚えておきます。
ありがとうございます。
0360358
2006/11/28(火) 11:16:05ID:???echo $s[$i]; でアクセス
0361nobodyさん
2006/11/28(火) 11:22:10ID:???array_keys($_GET);でhelloだけ取れると思うけどキーだけとってどうすんの?
フラグにしたいなら isset($_GET['hello']) で判定可能
0362QQQ
2006/11/28(火) 11:33:10ID:trk6Ybn1それぞれのボタンで入力に対して異なる処理をさせたいんですが、
どうやったらできますか?
現状ソースは以下
<INPUT TYPE="text" NAME="var" SIZE="20">
<FORM ACTION="http://localhost/search1.php" METHOD=POST>
<INPUT TYPE="submit" VALUE="実行1">
</FORM>
<FORM ACTION="http://localhost/search2.php" METHOD=POST>
<INPUT TYPE="submit" VALUE="実行2">
</FORM>
元々、一行目の文を<form>の中に入れてました。ボタンを二つに
したかったので外に出しちゃいましたwこれでは値が渡されません。
あ、これPHPファイルをコールする直前のHTML内の処理ですね。
でもできれば回答お願いします。
0363nobodyさん
2006/11/28(火) 11:38:35ID:XGgokU8Xそんな方法があったんですね…
勉強不足でした。
早速試してみます。
ありがとうございます
0365nobodyさん
2006/11/28(火) 12:38:18ID:???0367nobodyさん
2006/11/28(火) 13:40:05ID:???0368nobodyさん
2006/11/28(火) 14:46:43ID:9CSKXruBif($_SERVER['REQUEST_METHOD']=="POST"){
if(get_magic_quotes_gpc()){
$_POST["name"] = stripslashes($_POST["name"]); //フォームの数だけ用意
}
//改行を<br>にする
$_POST["comment"] = str_replace("\n", "<br>", stripslashes($_POST["comment"]));
//POSTを変数にする
$name=$_POST["name"]; //フォームの数だけ用意
}
上記のような記述を書いているのですが、やはり必ず書くようにした方がいいですよね?
フォームの数が多いとかなり長くなり、めんどくさいのですが、、
それでもセキュリティ的に必要だと思うし…みなさんはどうしているのでしょうか?
0369nobodyさん
2006/11/28(火) 14:50:10ID:???0372nobodyさん
2006/11/28(火) 14:56:26ID:???どんだけ馬鹿なんだよw
0376nobodyさん
2006/11/28(火) 15:18:35ID:???0377nobodyさん
2006/11/28(火) 15:25:47ID:???とりあえずここ熟読してから来て
0378nobodyさん
2006/11/28(火) 15:53:05ID:q3z6QRVX取り出すには何を使えば良いのか
0379nobodyさん
2006/11/28(火) 16:06:02ID:AFqLXmTZphpが自動でURLデコードをしていてそれが失敗しているために
日本語文字列が化けてしまうのですが、
(インプットアウトプット内部全部EUC-JPでまとめてるからconvert要らないはずなのに・・・)
自動デコードをさせない設定等があれば教えて下さい。
0381nobodyさん
2006/11/28(火) 16:19:05ID:q3z6QRVX便利な方法おお願いします
0384nobodyさん
2006/11/28(火) 16:37:15ID:???0386nobodyさん
2006/11/28(火) 17:09:32ID:???function get_array_by_len(array $array, $len = 10)
{
$result = array();
$array = new ArrayIterator($array);
for ($array->rewind(); $array->valid(); $array->next())
{
if ((mb_strlen($array->current()) >= $len))
{
$result[] = $array->current();
}
}
return $result;
}
0387nobodyさん
2006/11/28(火) 18:12:01ID:???何も定義していなのにPragma: no-cacheと過去を指定したExpiresがhttpヘッダに
送信されているようです。
Expiresは未来の日時へ上書きするとしてPragma: no-cacheを出力させないようにするには
どのようにすればよいのでしょうか。
header
headers_ list
headers_ sent
のリファレンスは見ましたが解決に至りませんでした。
0388nobodyさん
2006/11/28(火) 18:35:15ID:???ヘッダは、PHPのじゃなくてWebサーバーが出力してる に一票。
出力させない方法は俺は知らないが、Expiresを上書きできるなら
Pragmaも適当な意味のない値で上書きすれば良いのでは。
//ちなみにレスポンスの Pragma: no-cache はHTTP/1.0の規格外
0390nobodyさん
2006/11/28(火) 18:46:40ID:???0391378
2006/11/28(火) 18:59:03ID:lLFQbN4A$str = <<<EOM
俺の親父はガッツ石松だぜ。getsじゃ無いよGUTSだよ。
EOM;
mb_internal_encoding("SJIS");
mb_regex_encoding("SJIS");
$token = array();
while(1){
$bytes = mb_ereg("[一-龠]+|[ァ-ヴー]+|[a-zA-Z]+", $str, $match);
if ($bytes == FALSE) {
break;
} else {
$match = $match[0];
array_push($token, $match);
}
$pos = strpos($str, $match);
$str = substr($str, $pos+$bytes);
}
print_r($token);
↑これを
2文字以上のものだけ取り出したいのです。
ようは俺とか無とかの1文字のものは
表示させないようにしたい
0392387
2006/11/28(火) 19:01:35ID:???出力する文字列の<head>〜</head>から読み取って勝手にapacheが
HTTPヘッダを出力してしまうことがありますね。
試しに「<?php phpinfo(); ?>」と書いたスクリプトから出力されている
ヘッダを確認したところPragma: no-cacheは出力されていませんでした。
PHPで出力されるヘッダを確認するheaders_list関数があるのですが
PHP5からの実装で開発環境はPHP4のため利用することが出来ませんでした。
Pragmaを空文字にしたりcacheにしたけどキャッシュされませんでした。
0393nobodyさん
2006/11/28(火) 19:08:39ID:???0394nobodyさん
2006/11/28(火) 19:19:03ID:???linux でサーバ動かしてますけど、コマンドラインからもphpを動かして簡単な処理をさせたいと思います。
どうすれば良いのでしょうか?
よろしくです。m( _ _;)m
0395nobodyさん
2006/11/28(火) 19:20:05ID:???0399394
2006/11/28(火) 20:06:26ID:???php4.3.10なので標準で--enable-cliになるはずですが・・・(phpinfo()を見ても無い・・・)
ちなみにwindows機ではphpのフォルダの下にcliフォルダがあり、ここにphp.exeが入っていますのでコマンドラインから可能です。
debianでapt-getでphp4を入れるとcli版が入らないのでしょうか???
0400nobodyさん
2006/11/28(火) 20:07:40ID:???0401394
2006/11/28(火) 20:08:42ID:???0402nobodyさん
2006/11/28(火) 20:11:13ID:???$ php -v
PHP 5.2.0 with Suhosin-Patch 0.9.6.2 (cli) (built: Nov 27 2006 01:55:31)
Copyright (c) 1997-2006 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2006 Zend Technologies
with eAccelerator v0.9.5, Copyright (c) 2004-2006 eAccelerator, by eAccelerator
0403nobodyさん
2006/11/28(火) 20:14:02ID:???bash: php: command not found
になっちゃいますが・・・
0404nobodyさん
2006/11/28(火) 20:26:02ID:???KURO-BOX login: tmp-kun
Password:ないしょ
Last login: Tue Nov 28 20:13:09 2006 from 192.168.1.2 on pts/0
Linux KURO-BOX 2.6.16-kuroboxHG #1 Sun Oct 29 21:27:07 JST 2006 ppc GNU/Linux
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
tmp-kun@KURO-BOX:~$ php -v
-bash: php: command not found
tmp-kun@KURO-BOX:~$ su root
Password:ないしょ
KURO-BOX:/home/tmp-kun# php -v
bash: php: command not found
です。
やっぱ、cli版は別にインスコするんでしょうか?
0405nobodyさん
2006/11/28(火) 20:51:33ID:???0406nobodyさん
2006/11/28(火) 20:54:35ID:???バイナリがあるならパス通したり
0407394
2006/11/28(火) 20:56:14ID:???これかなぁ・・・やっぱ、cli版は別にインストールするみたいですね。
いきなり実行するのも怖いので、HDD丸ごとバックアップ取ってからやってみます。
どうもでした。
http://qoon.jp/2006/06/php.html
PHPのCLI版のインストール(Debianの場合)
$su root
#apt-get update
#apt-get upgrade
#apt-get install php-cli
そのまま通常のphp.iniをコピー(念のためバックアップ)
#cp /etc/php4/cli/php.ini /etc/php4/cli/php.ini.back
#cp /etc/php4/apache/php.ini /etc/php4/cli/php.ini
0408nobodyさん
2006/11/28(火) 21:22:24ID:???どうもです。
そうだったんですか・・・
窓の方では何もしなくてもphp.exe.が入っていましたし、「php4.3.0以降は
自動的に設定される」ようなことをどこかで目にしていたものですから・・・
なんで動かないのか、半日悩んでおりました。(苦笑
お騒がせしました。。。m( _ _;)m
0409nobodyさん
2006/11/28(火) 21:23:29ID:???文字コードでのエンコードをした方がいんですか?
0410387
2006/11/28(火) 21:52:06ID:???php.iniやheader_cache_flag(1)みたいな関数があるのか探していたのですが
>>395さんの仰るとおりsession.cache_limiterが原因であることが判明しました。
ありがとうございました。
0411nobodyさん
2006/11/28(火) 22:34:12ID:???おみやげにこれあげるんで
//URLからドメイン名を取得する
$pattern = "/^(http:\/\/)([^\/]+)(\/.*$)/i";
preg_match ( $pattern, $url, $match );
$domain = $match[2]; //ドメイン
$path = $match[3]; //パス
0412sage
2006/11/28(火) 22:41:38ID:TqHCzfuA変数を受け渡す際にPATH_INFOを使用してスラッシュ区切りで渡しているのですが、
変数を何も渡さない時に
Notice: Undefined index: PATH_INFO
というエラーが出てしまいます。
URLが
http://localhost/index.php
の場合にエラーとなり
http://localhost/index.php/
のように、最後にスラッシュをつけるとエラーが出ません。
お知恵を拝借できればと思います。よろしくお願いします。
0413nobodyさん
2006/11/28(火) 22:47:26ID:???php の セッションIDは、マイクロ秒単位の現在時刻 + ユーザーのリモートアドレス + combined-LCG(線形合同法自体は、疑似乱数生成方法としてはセキュアな方法ではない。) が種となっている。
セキュリティの専門家の高木浩光氏も 「phpらしい駄目っぷりだ。」 と批判している。
Unix 系 の OS ならば php.ini などで /dev/urandom を乱数の種に使うように設定しよう。
次のように記述すれば良い。
| session.entropy_file = /dev/urandom
| session.entropy_length = 16
/dev/urandom では、周囲で発生するノイズ等の攻撃者に推測されない値をデバイスドライバや他の情報源から収集して、乱数の種として使用する。
これは、特殊なハードウェアが無い普通のPCでも使えて大変便利。
HDDの回転数、CPUの温度、ハードウェアの温度、マウスの動き、HDDの寿命、ハードウェアのエラーセクタ、HDDのSMART情報、周囲のノイズによる
ハードウェア内部エラーなど、PCにはセキュアな擬似乱数としての使用に耐える攻撃者に推測されない値がいっぱいそなわっているのだ。
参考:
http://tdiary.ishinao.net/20061120.html#p01
http://www.linux.or.jp/JF/JFdocs/Secure-Programs-HOWTO/random-numbers.html
0414nobodyさん
2006/11/28(火) 22:59:18ID:???391は見る気しないけどURLからドメインを抜く関数ってありますよ
>>412
issetで調べてね
>>413
前から知ってたけど作るもののレベルによるのではないかと限りなく唯一無二なら問題なし
0415nobodyさん
2006/11/28(火) 23:24:20ID:???ブラウザにキャッシュさせたくない時に
cache-control, pragma, expire
のヘッダ発行したら出来たと思うのですが・・・・。
IE6とFirefoxで動作確認したところキャッシュされまくりでした!!
IE6で何か変ったんでしょうか?IE6でもキャッシュ無効出来てる人いますか?
0416nobodyさん
2006/11/28(火) 23:26:47ID:???それともキャッシュされちゃ困るほどセキュアな情報なの?
Webアプリ屋も少しはHTTPを勉強して欲しい。
0417nobodyさん
2006/11/28(火) 23:29:21ID:QkZ3aa/DMySQL(MySQL - 5.1.11-beta) の文字セットがUTF-8 Unicode (utf8) ということで
データベースに入れたものをEUC-JPで表示しようとすると文字化けしてしまうようです。
他のサーバーでEUC-JPにて構築したサイトでして
これからUTF-8に移行するには非常に手間がかかります
どうにか簡単に解決する方法はありませんでしょうか?
よろしくお願いいたします
0418nobodyさん
2006/11/28(火) 23:33:39ID:???0419nobodyさん
2006/11/28(火) 23:35:03ID:???データベースに入ってるのがUTF-8で、表示するときEUC-JPにしたいなら
表示するときに変換すればいいのでは?
そのサーバーのPHPスクリプトの表示する部分だけちょちょいと書き換えればOK。
0420nobodyさん
2006/11/28(火) 23:43:19ID:QkZ3aa/D了解しましたー
どうでもです。
しかし、mb関数が使えないとかなるとおそらく面倒なんでしょうかね?
0422nobodyさん
2006/11/29(水) 00:58:36ID:???PEARのソースって綺麗ですか?
適当なものをダウンロードしてソースを見たら、
思っていたのとだいぶ違っていました。
見た感じ手続き型でしたし、
文法的にも動作的にも問題はないですがちょっと違和感がある、
書き方をしている箇所があったりと。(自分本位の視点なので自分がおかしいのかも)
とりあえずPEARのソースは参考になると思いますか?
それとも国産フレームワークのソースでも見たほうがいいでしょうか?
0425nobodyさん
2006/11/29(水) 01:51:50ID:???PHP以外の言語だったら>>387のような問題が発生することは無い。
0426nobodyさん
2006/11/29(水) 01:52:49ID:???HTTPの意味はわかるが、何を勉強すればいいんだ?
0427nobodyさん
2006/11/29(水) 01:57:53ID:???>PHP以外の言語だったら>>387のような問題が発生することは無い。
んなことねぇよボケ。
Cやっててネットワークの知識がないヤツだってたくさんいる。
0428nobodyさん
2006/11/29(水) 02:02:11ID:???そんなことを気にしてるほうがダメ人間だと思う。
PHPのセッションID生成方法について、ヲタ的には乱数がどうのこうので
ケチをつけたくなるのかもしれんが、現実的には十分に推測不可能だろ、それで。
0429nobodyさん
2006/11/29(水) 02:22:55ID:???ログの読み取り方について質問です。
file()でログを読み込んで、
それをリクエストがあるたびに毎回読み込んでhtmlに反映してるのですが、
当然ログが長くなるとレスポンスが悪くなりますよね?
そこでログに変更があった後、
htmlを更新し出力しなおすみたいなことをしたいのですが、
技術的に難しいでしょうか?
0430429
2006/11/29(水) 02:38:45ID:???言ってることがよくわかりませんね。
自分でもわからなくなってしまいましたorz
色々と試行錯誤してみることにします。
お騒がせしてすみません。
0431nobodyさん
2006/11/29(水) 03:41:49ID:???そりゃそうなんだけどCでやる事になった場合は
content-type出力して\r\n\r\nを出力してと一連の流れを把握するでしょ。
PHP使ってるとheader関数やcookie関数のおかげで内部で何やってるか
分からない奴がいっぱいいる。
0432nobodyさん
2006/11/29(水) 03:57:11ID:???C じゃなくても Perl でもprint "Content-Type: text/html\n\n"; とかは普通やるよね。
use CGI; すると重くなるし。
0433nobodyさん
2006/11/29(水) 04:07:10ID:???よくあるのは、書き込まれた時に、HTMLファイルを作っちゃう方法。
つまりその(PHPの)掲示板に最初にアクセスした時の画面と同じ見た目のHTMLを作っておくわけだ。
訪問者は、そのHTMLにアクセスする(最初の画面だけ)。
0434nobodyさん
2006/11/29(水) 04:43:05ID:???$b = $a + 50; //String + Integer
echo $b; //100
このソースに関して質問なんですが、
$b = $a + 50;の$aの部分は、
自動的にintにキャストされてるということなのでしょうか?
0435nobodyさん
2006/11/29(水) 04:46:09ID:???> PHP の自動型変換の例の一つは、加算演算子 '+' です。 オペランドのどれかが float の
> 場合、全てのオペランドは float として評価され、結果は float になります。
> その他の場合、オペランドは整数として解釈され、結果も整数になります。
0436nobodyさん
2006/11/29(水) 04:56:34ID:???オペレーターとオペランドをみて型が自動変換されるんですね。
結構ややこしいなぁ。
お答えどうもありがとうございました。
0437nobodyさん
2006/11/29(水) 05:11:36ID:???本当にそうだろうか。
例えば、俺がサイトAを作ってサイトBに対してセッションハイジャック攻撃を仕掛けるとしよう。
俺のサイトAからサイトBへリンクを貼り、被害者Cがそれをクリックする。
そうすると、俺はそのユーザのIPアドレス と クリック日時 を取得できるよね。
クリックしてから実際にブラウザがサイトBにリクエストを出すまでのラグがあるから、
取得した日時には 100ミリ秒の誤差があるとするかな。
ここで、php が combined-LCG を種として使っていないなら、100,000回 サイトBにリクエストを送るだけで
セッションハイジャックが成功することになる。ちなみに、10万アクセスは30分もあれば余裕で可能だ。(相手が標準的なスペックの鯖の場合)
php が使っている combined-LCG は、線形合同法と呼ばれる。
http://ja.wikipedia.org/wiki/%E7%B7%9A%E5%BD%A2%E5%90%88%E5%90%8C%E6%B3%95
つまり、被害者Cのアクセス前に自分も大量にアクセスして生産されたセッションIDを取得すればいい。
例えば、被害者Cが攻撃用のリンクをクリックした時点で、攻撃者がサイトBに大量にアクセスしてセッションIDを取得しまくる。
必要量の取得がおわったら、被害者Cに対してサイトBに対するリダイレクトを行わせる。
そして、その後、セッションの有効期限が切れるまでの間に、攻撃者が取得した大量のセッションIDをもとに、
逆関数を利用して combined-LCG によって生産された乱数をもとめ、さらに線形合同法の周期性を利用して
被害者Cがアクセスしたときに、combined-LCG によって発生された乱数を求める。
それと IPアドレスと日時を組み合わせた回数のリクエストをセッションの有効期限が終わる前におくれば、セッションハイジャック成功だ。
0438nobodyさん
2006/11/29(水) 05:23:34ID:???要するに . を使えば文字として扱われるし、+ を使えば数として扱われますよということ。
数として扱えない場合は 0 扱い。
0440nobodyさん
2006/11/29(水) 05:40:07ID:jv+ZvP9Y実験したものを見せろ
0441nobodyさん
2006/11/29(水) 06:01:58ID:???個人が実験してセッションハイジャックが成功するレベルなわけないじゃん
これは共通鍵・公開鍵方式の暗号で、個人のPCでは解読に1000年かかっても、
日本一のスパコン(東工大のスパコン)を使って1ヶ月で解読できるなら、脆弱な暗号方式って呼ばれる。
じゃあ、実際にハイジャックを成功させることを考えようか。
まず、相手のサーバがボルトネックになってくるよね。
だから、相手のサーバは日本一、いや、世界一の性能を持つスパコンということにしなくては。
あと、php のセッション維持期間はデフォルトでは 24分 だけど短時間で解読するのはむずかしいから
とりあえずセッション有効期間は 1年ぐらいにしよう。
session.cookie_lifetime 31536000 っと。
あと、インターネット網はラグがあるから、LANでスパコンと直結だな。
ついでに暗号の解読の演算用に世界一のサーバ・・・、はもうないから、世界二のサーバを用意。
あとは、暗号解読に秀でている研究者を10人ぐらいやとって半年ぐらいかけて解析用プログラムを作ってもらって実行。
そうすりゃ、たぶんセッションハイジャックが成功すると思うけどなー。
0442nobodyさん
2006/11/29(水) 06:07:02ID:???0443nobodyさん
2006/11/29(水) 06:15:58ID:???通信自体が盗み取れたときが問題なんでしょ?
それよりも、session_idをリジェネレートしたときに、
改めてCOOKIEを送りなおすのは止めれないのか?
2回同じ値のCOOKIEがhttpヘッダに書かれているのは気持ち悪いんだが。
0444nobodyさん
2006/11/29(水) 06:16:44ID:???session.entropy_file = /dev/urandom
session.entropy_length = 16
になってたよ
と思ったら↓に沿って設定したらそうなるのか(´・ω・`)
http://wiki.ohgaki.net/index.php?PHP%2Ftips%2F%BF%E4%BE%A9php.ini%C0%DF%C4%EA
0445nobodyさん
2006/11/29(水) 06:18:24ID:???0448nobodyさん
2006/11/29(水) 10:09:18ID:???0449nobodyさん
2006/11/29(水) 11:04:23ID:???SSLとは関係無いセッションハイジャックの話をしているわけだが
もっと分かりやすく言えば、SSLを使うことは大前提で、それより高度なセキュリティ確保の話をしているわけだ
0450nobodyさん
2006/11/29(水) 11:27:38ID:???>>437よ、君の仮定には大きな誤算がある。
それは、「被害者Cが君の計算通りに行動する確率はものすごく低い」ということだ。
時間の誤差とか何とか、それらとの掛け算で、君の仮定が成功する確率は現実的には極めて低い。
>>441は、そんなアホな>>437に向けた皮肉だと俺は読んだ。
要するに「現実的じゃないぜ」ってことを遠まわしに皮肉ってるんでしょ?w > >>441
0451nobodyさん
2006/11/29(水) 11:50:20ID:???何で他人が作った物を批判したがるかな。そういう奴に限って決まって能力ないからな。
0452nobodyさん
2006/11/29(水) 12:10:39ID:1l/WuAMq.qmailを使用し、メール受信と同時にPHPスクリプトを起動しようと思っているのですが
うまくいきません。
.qmail-***には以下の様に記述いたしました。
| /usr/local/bin/php /path/to/script.php
で、実際に動作テストをしてみるとスクリプトが動いていない模様なので
メールログを見てみると
Nov 29 11:58:50 IICL002 qmail: delivery 39: deferral: /usr/local/bin/php:_error_while_loading_shared_libraries:_libmysqlclient.so.14:_cannot_open_shared_object_file:_No_such_file_or_directory/
上記のエラーが出ています。
/usr/local/bin/php /path/to/script.php
上記コマンドをコマンドライン上から入力するとプログラムは実行出来ます。
念のためlddで確認してみると
ldd /usr/local/bin/php
libmysqlclient.so.14 => /usr/local/mysql//lib/mysql/libmysqlclient.so.14
/2個が気になりますが一応セットされています。
パーミッションかな?と思いましたが違うようです。
どなたかご教授宜しくお願いいたします。
0453nobodyさん
2006/11/29(水) 12:14:54ID:???>俺のサイトAからサイトBへリンクを貼り、被害者Cがそれをクリックする。
フィッシングサイトに引っかかるやつの面倒まで見なくてもいいだろ
0454nobodyさん
2006/11/29(水) 12:16:58ID:???0455452
2006/11/29(水) 12:36:03ID:???/usr/local/mysqlのパーミッションが足りなくファイルまで到達できなかったようです。
お手数おかけ致しました。
0456nobodyさん
2006/11/29(水) 12:38:31ID:???0457Mrセキュア
2006/11/29(水) 12:40:55ID:???お 外 に で る と 事 故 に あ う か も し れ な い の で 怖 く て 出 れ ま せ ん (笑)
0459nobodyさん
2006/11/29(水) 13:03:47ID:uckTTJrX0460nobodyさん
2006/11/29(水) 13:05:56ID:???::インスタンス化してなくても使えるメソッド
0461nobodyさん
2006/11/29(水) 13:09:57ID:???0463nobodyさん
2006/11/29(水) 14:02:32ID:+Stuj4pW0464nobodyさん
2006/11/29(水) 14:06:26ID:???http://pc8.2ch.net/php/
0465nobodyさん
2006/11/29(水) 15:40:27ID:???GDライブラリで写真ギャラリーのサムネイルを自動で作るのを作ってみたのですが
これって結構負荷高いのでしょうか?
作った画像を保存するようにして、まずファイルがあるか調べ、
ない時だけ作るようにすれば、作るのは一回だけなのでたいしたことないと思いますが、
サムネイルにとる場所をランダムでちょっと動かすようにしてみたのですが
そのためには、保存しないで、毎回作らないとだめじゃないですか?
具体的には
mt_rand ( 0, 1);
で乱数発生させて、0か1かで座標に代入する数を変えて
imagecopyresampled
で画像を作り
imagejpeg($thumb,null, 100);
で表示させてます。
例えば、サムネイルが100枚くらいあるページで、毎日1000〜2000くらいPVがあるとしたら
結構やばめでしょうか?
CPUとかメモリとかにもよるんでしょうけど、
スペックは管理先に問い合わせないとはっきり分かりません。
専用サーバーで、業務用に借りていて結構お金出してるはずなんで、
そんなにしょぼくはないはずです。多分…。
ちょっと微妙な質問かもしれませんが、たいしたことないよ〜とか、あれは結構重いよ〜とか
意見があればお願いします。
0466nobodyさん
2006/11/29(水) 15:40:32ID:gqW8eidGそれをもとにHTMLファイル作成して
そこに飛ぶようにしたいんですけど
作成したHTMLページにはどうやればとばすことできますか?
0468nobodyさん
2006/11/29(水) 15:56:16ID:???0472466
2006/11/29(水) 16:34:07ID:gqW8eidGごめんなさい、よくやり方がわからないです。
今はフォームのactionでhtmlファイル作成するページに飛ばして
るんです。そこでまた作成したページに飛ぶ感じにしようと思ったんですけど
かなり無駄なことしてますよね・・
なにかいい方法は?
0473468
2006/11/29(水) 16:40:40ID:???ないんですかー
どうもありがとうございます。
tcpの知識がないので勉強してきます。
>>471
80番が開いてたら書き込み不可能とかにするつもりなので、
そういったことはしたくないのです。
0474nobodyさん
2006/11/29(水) 16:49:05ID:???0475nobodyさん
2006/11/29(水) 16:51:54ID:???0476468
2006/11/29(水) 16:52:44ID:???深読みしすぎですよ。そういう意図じゃないんですよね。
プロキシ弾くだけならおとなしくライブラリ入れますし。
書き込んだ人のIPを表示しているので、
アクセスされる可能性を視野にいれた措置です。
0477nobodyさん
2006/11/29(水) 17:00:36ID:???接続を試行して成功したらポートが開いてる、失敗したら閉じてる
ただそれだけだ がんばれ
0478nobodyさん
2006/11/29(水) 17:24:06ID:???まぁいいや、レッツPHPからソース盗んで改造しろ
0479nobodyさん
2006/11/29(水) 17:25:52ID:???何がわからんのかいまいち理解できないが。
1.フォームを表示
2.番号を入力させてサブミット
3.サブミットした値を元にHTML作成
4.結果を表示(作ったHTMLへ飛ぶってこういうことか?)
なら、HTMLの基本中の基本だろ?
で、3の部分でPHPを使いたいわけだ。
んで何が分からないの?
0480466
2006/11/29(水) 17:32:34ID:gqW8eidGで4で作ったHTMLに飛びたいんです
その4の部分がわからなくて・・
アホでごめんなさい
0481468
2006/11/29(水) 17:39:43ID:???なるほど。HTTP系の関数の何かが使えそうですね。
もう少し色々と調べてやってみます。
>>478
>ポート番号80で調べるということは、自宅鯖持ちのやつを全部弾くつもりか
そうですね。
ただ、コメントを禁止するだけで、閲覧はできるようにします。
2chのような掲示板ではないですし、所詮個人サイトなので、
用件があればメールも用意してるし大丈夫だと勝手に判断しました。
それよりも鯖を運営してるIPで、ネットサーフは危険じゃないですかね。
0482nobodyさん
2006/11/29(水) 17:40:25ID:???いやだからさ、2のサブミット先をphpファイルにすれば、
そこで出力した結果がブラウザに表示されるだろ?
それが4なんじゃないのか?
0483466
2006/11/29(水) 17:49:05ID:gqW8eidG2で、飛んだPHPファイルでhtmlファイルを作って
4でさらにそのhtmlファイルに飛ぶかんじです
やり方がおかしいですかね?
やりたいこととしては、フォームで番号入力させて
その番号のhtmlファイルを作って、そこに飛ばす
って感じです
0484nobodyさん
2006/11/29(水) 18:03:40ID:???2.番号を入力させてサブミット(ここも前からあるhtmlファイル)
3.サブミットした値を元にHTML作成 (hoge.phpの処理)
4.作成したHTMLへリダイレクト(ここもhoge.phpの処理)
5.作成したHTMLが表示(さっき出来たhtmlファイル)
======hoge.phpここから======
・前からあるhtmlから来たPOSTを受け取ってファイル作成の処理
・作成したファイルへリダイレクトの処理
======hoge.phpここまで======
つまりhoge.phpはブラウザに何かを表示する処理はないのよん
0485nobodyさん
2006/11/29(水) 18:05:31ID:???0486nobodyさん
2006/11/29(水) 18:11:08ID:???今は$_SESSIONを調べているのですが気になった
0487nobodyさん
2006/11/29(水) 18:47:24ID:J9ZOlswS<html><head><body><?
echo "<table border='1'><tr><td>";
echo "<form action='tuika.php method='post'>";
echo "<input type='text' name='data_1'><br>";
echo "<input type='text' name='data_2'><br>";
echo "<input type='submit'value='データの追加'>";
echo "</form></td></tr></table>";
?></body><html>
kakunin.phpソース
<html><head><body><?
echo $_POST['data_1'];
echo $_POST['data_2'];
?></body><html>
上のような感じで、tuika.phpで文字を打ち込んで、それがdata_1、
data_2としてkakunin.phpにポストされて、kakunin.phpでその内容が
表示されるというプログラムを作ったんですけど、kakunin.phpのソースを
<html><head><body><?
$p = 1;
$q = 2;
echo $_POST['data_$p'];
echo $_POST['data_$q'];
?></body><html>
という風に、data_以下の数字の部分を変更すると、ポストされた内容が
表示されなくなってしまいます。data_以下の数字の部分を記号で表すように
したいのですが、一体どうすればいいでしょうか。誰か教えてください。
0488487
2006/11/29(水) 18:50:57ID:J9ZOlswSecho "<form action='kakunin.php method='post'>";
でした。
0489nobodyさん
2006/11/29(水) 19:03:23ID:???だから>>467で回答してあるんだからマニュアルでheader()関数ぐらい調べろよ
http://jp.php.net/header
の「2番目の特別なヘッダは、」あたりに書いてあるだろ
やりかたわからないです
とかいう前にわかろうと努力すらしない
おまえはいつまでたっても進歩しないだめ人間だ
プログラミングとか向いてないからさっさとやめたほうがいいよ
0490nobodyさん
2006/11/29(水) 19:31:43ID:OZta3BjGシングルクオートの中では変数は展開されない。
echo $_POST['data_'.$p];
echo $_POST['data_'.$q];
とか
echo $_POST["data_{$p}"];
echo $_POST["data_{$q}"];
とか書くべし。
あと4行目、>>488でもおかしくない?kakunin.phpの後ろにシングルクオート要るでしょ。
0491466
2006/11/29(水) 19:34:15ID:gqW8eidGheader("Location:$text.'.html'"); で飛ばないんですがなぜ?
0492nobodyさん
2006/11/29(水) 19:43:30ID:???0493487
2006/11/29(水) 19:55:47ID:J9ZOlswSできました! ありがとうございます!
0494nobodyさん
2006/11/29(水) 20:02:17ID:???表示(echo時)に自動的に<img src="test.gif">のように
することってできるのでしょうか?
0495nobodyさん
2006/11/29(水) 20:09:27ID:???0498415
2006/11/29(水) 20:41:58ID:???多分、直近レスのせいでキャッシュリミッタに固定観念が入っちまったんだとは思うが、俺が聞いてるのはブラウザの挙動の話
ヘッダ情報は正しく送られているのは確認済で挙動が昔と違うわけな
ずっとwebやってた奴なら何か変化があったか情報を持ってるか?聞いた方が早いと思うわけ
ヘッダ情報を処理するのはあくまでブラウザだからな、ブラウザの実装によって動きが変って当然なのな、分かる?
結局、vmに残ってたwin98のie5と比較したら、やっぱり挙動が変ってたな
0500nobodyさん
2006/11/29(水) 21:00:05ID:Ob2oQ/dq「ー」が文字化けするとかなんかあるんですけど、ファイルの文字コードはEUCですよね?
0501nobodyさん
2006/11/29(水) 21:10:06ID:???>>494
$text = 'screenshot.gif';
$ext_pattern = 'jpg|gif';
$text = preg_replace('/(([a-zA-Z0-9-_]+)\.(?:'.$ext_pattern.'))/', '<img src="$1" alt="$2" />', $text);
echo $text;
0502軟式PHP
2006/11/29(水) 21:14:32ID:???0503nobodyさん
2006/11/29(水) 21:22:36ID:???0504nobodyさん
2006/11/29(水) 21:47:07ID:???0507nobodyさん
2006/11/29(水) 22:07:20ID:???>例えば変数内に”test.gif”などとファイル名があったら
>表示(echo時)に自動的に<img src="test.gif">のように
if (strpos($a, "test.gif") !== false) { echo "<img src=\"test.gif\">; }
0508nobodyさん
2006/11/29(水) 22:19:23ID:Ob2oQ/dq0514nobodyさん
2006/11/29(水) 22:47:14ID:1R8/2qI8今日から始めたばかりの初心者です。
テキストボックスに文字が入った時のみ表示させるプログラムを作ろうとおもって
書いてみたのですが123とかの数字だけ表示されてABCなどの文字を入れるとelseになってしまいます
数字も文字も表示させる方法を教えてください。
$post = $_POST["post"];
if(strlen($post>0)){
print($post);
}
else{
print("エラー");
0515nobodyさん
2006/11/29(水) 22:53:28ID:???0516nobodyさん
2006/11/29(水) 22:53:40ID:???○ if(strlen($post)>0){
0517nobodyさん
2006/11/29(水) 22:56:14ID:???0518nobodyさん
2006/11/29(水) 22:56:48ID:1R8/2qI8ありがとうございました。助かりました。
0519nobodyさん
2006/11/29(水) 22:57:01ID:???0520nobodyさん
2006/11/29(水) 23:01:05ID:???0521nobodyさん
2006/11/30(木) 00:25:39ID:???フィッシングサイトからリンクされている正規のサイトを見た人の面倒は見る必要あるだろうが。
その理論でいったら、2chから三井住友銀行(正規サイト)のリンクを踏んだ人が被害にあっても無視できるのか?
勿論その被害者は、
・ドメイン名が正規の三井住友銀行であることを確認した。
・SSLサーバ証明書が正規のものであることを確認した。
という条件な。
0522nobodyさん
2006/11/30(木) 01:38:26ID:???自分の知恵の自慢の続きはこちらへどうぞ
http://pc8.2ch.net/test/read.cgi/php/1064399467/l50
0523nobodyさん
2006/11/30(木) 05:12:14ID:sNmjvtK7数百行x4列のcsvファイル(10KB強)を同一プログラム上で複数回読み出すのと
1回読んでそれを全部2次元配列に入れて、その後は配列からデータをひろうのでは
どちらが負担が軽いでしょうか?
どちらも同じくらい、もしくは配列に入れちゃう方が負担が軽いならばそうしたいのでですが。
0524nobodyさん
2006/11/30(木) 05:56:57ID:???と言いたいが、
10kb程度なら体感あまり変わらないでしょ。
0525nobodyさん
2006/11/30(木) 06:45:48ID:???と言いたいが、
10kg程度なら体感あまり変わらないでしょ。
って見えた。
0526nobodyさん
2006/11/30(木) 06:56:21ID:???10KBくらいならメモリ食ったうちにも入らないから配列に入れちゃった方がいいんでない?
CSVファイルが単純なカンマ区切りならどっちでもそんなに変わらないけど、
ちゃんとエスケープ処理されてるExcel互換CSVファイルなら
展開が少し重くなるから、何度も展開しない方が多少は早い。
まー、でも1000行にも満たないレベルじゃたかが知れてそうだけど。
0527nobodyさん
2006/11/30(木) 10:03:48ID:???0528nobodyさん
2006/11/30(木) 11:22:03ID:???urldecode() や mb_convert_kana() ではないみたいですし。
0529nobodyさん
2006/11/30(木) 11:57:24ID:???ここ参考になる?
http://module.jp/blog/regex_unicode_prop.html
0530nobodyさん
2006/11/30(木) 12:00:07ID:???http://jp2.php.net/urldecode
ユーザーノートにそれっぽいのあるけど
0531523
2006/11/30(木) 12:12:40ID:sNmjvtK7あ、そんなもんなんですね、
いや、最近始めたものでその辺の感覚がよく分からなかったので。
ありがとうございます。勉強になりました。
0532nobodyさん
2006/11/30(木) 12:51:57ID:???ありがとうございます。
ユーザーノートにある unicode_urldecode() を
ベースにうまくいきました。
0533nobodyさん
2006/11/30(木) 13:04:26ID:???0534nobodyさん
2006/11/30(木) 13:49:07ID:???例えば
$a=array("テスト"=>"$test");
$b=array("ホゲ"=>"$hoge");
↑上記二つを合体して↓
$c=array("テスト"=>"$test","ホゲ"=>"$hoge");
みたいに出来たらいいのですが、可能でしょうか?
意図は$aと$bの配列の値がフォームの入力値によってことなるからです。
0535nobodyさん
2006/11/30(木) 13:58:51ID:???0536nobodyさん
2006/11/30(木) 13:59:47ID:???こうですね。
0537nobodyさん
2006/11/30(木) 14:23:37ID:???0538nobodyさん
2006/11/30(木) 14:39:16ID:sFslmVclhtmlspecialchars
ENT_QUOTES
mb_SubStr
mb_convert_kana
などを使って一応意識してるつもりなのですが、
フォームから「あああああああああ」と入力された場合は大丈夫なのですが、
URLから直接↓このように入力されるとちょっと無理的な現状なのですが
index.php?q=あああああああああ
なにか良い対策はありませんか?
0539nobodyさん
2006/11/30(木) 14:45:29ID:???0540nobodyさん
2006/11/30(木) 14:53:04ID:???Debian GNU/Linux 3.1
apache2.0.54-5sarge1 (aptでインストール)
php-5.2.0 (ソースからインストール)
上記のような環境で、*.php にブラウザからアクセスするとメモ帳などが開いて
生ソースが表示されます。
以前 php-4.4.3 を使用していたときは正常に動作していたのですが、
なぜか挙動不審になってしまいます。
/etc/apache2/httpd.conf には
LoadModule php5_module /usr/lib/apache2/modules/libphp5.so
の行もありますし、/etc/apache2/apache2.conf では
AddType application/x-httpd-php .php
の記述もあります。
なにか原因として思い当たることはありますでしょうか。
ちなみに、apache2 の動作が不審だったため、apt-get remove apache2
を行い、設定ファイルのいくつかがデフォルトに戻ってしまったのも
原因のうちかもしれません。
0544nobodyさん
2006/11/30(木) 15:38:08ID:???0545nobodyさん
2006/11/30(木) 15:48:30ID:G4M0iaJfどんな感じだったでしょうか
0546nobodyさん
2006/11/30(木) 16:10:33ID:HTGu5qKm例えば
mysql_query("insert into table_1(ID_C)values
while ($a < 4){
('999'),
$a++;
}
('999')");
こんな感じで、$aの値が4になるまでテーブルのID_Cというカラムの中に999という
データを入れるプログラムを作りたいんですけど上手く行きません。誰か教えてください
0547nobodyさん
2006/11/30(木) 16:13:05ID:???0549nobodyさん
2006/11/30(木) 16:19:43ID:HTGu5qKmわかりました!
0550nobodyさん
2006/11/30(木) 16:35:17ID:???for($a = 0; $a < 4; $a ++) {
mysql_query("insert into table_1(ID_C)values('999')"),
}
でいいんじゃないのか?
0551nobodyさん
2006/11/30(木) 16:42:03ID:tD1Wqo8l0553487
2006/11/30(木) 17:11:32ID:HTGu5qKmできました! ありがとうございます!
0554nobodyさん
2006/11/30(木) 19:51:55ID:???と言うのをやろうとしているのですが、コピー出来ません。
どこがおかしいのでしょうか?
$dir_name="./moto";
$dh = opendir($dir_name);
while($file = readdir($dh)){
if ($file != "." && $file != "..") {
copy("$file","to/$file");
}
0555nobodyさん
2006/11/30(木) 19:52:53ID:???0556nobodyさん
2006/11/30(木) 19:56:12ID:???コーディング中にエラー抑止とかありえないっす
0557554
2006/11/30(木) 20:04:28ID:???と出るのですが、コピー先のディレクトリはあります。
0558nobodyさん
2006/11/30(木) 20:10:45ID:???0559nobodyさん
2006/11/30(木) 20:11:20ID:???0560nobodyさん
2006/11/30(木) 21:56:38ID:???マジレス希望です
0561nobodyさん
2006/11/30(木) 22:15:45ID:???0563nobodyさん
2006/11/30(木) 23:29:33ID:???質問させてください。。
$str = $_POST["atai"];
if(strlen($str>0)){
print($str);
}
else{
print("エラーです");
この場合textに書き込みがあれば表示し、書き込みがない場合エラーですを
表示したいのですが最初から「エラーです」が出てしまいます
どのようにすればよいのでしょうか。。
0565nobodyさん
2006/12/01(金) 00:10:10ID:???0566nobodyさん
2006/12/01(金) 00:13:53ID:???0567563
2006/12/01(金) 00:19:28ID:???ありがとうございます。
なおしましたがやはり最初の時点で「エラーです」が表示されてしまいます。。、
どこがいけないのでしょうか。
送信ボタンを押したら出力させたいのですが。。
申し訳ありませんがどなたか教えてください
0568nobodyさん
2006/12/01(金) 00:34:11ID:???0569563
2006/12/01(金) 00:43:50ID:???if(strlen($str)>0){
print($str);
}
else{
print("エラーです");
ありがとうございます。これでやったところ
string(0) "" エラーです
と出力されてしまいます。すみません引き続きおねがいします。。
0570nobodyさん
2006/12/01(金) 00:55:55ID:???$str = var_dump($_POST["atai"]);
?>
だけで試してみたら?
0571nobodyさん
2006/12/01(金) 01:01:45ID:???var_dumpでstring(0) "" が出力されることは
$_POST["atai"]が空ってこと
だからstrlenでも 0 が返る
NULLじゃないから一応定義されてるみたいだけど
0572563
2006/12/01(金) 01:08:56ID:???さきほどので試したところNULLのみ表示されました。
最初は無表示でボタンを押すと空の場合エラーですという出力にその関数が必要なのですか?
0573nobodyさん
2006/12/01(金) 01:20:18ID:???0574nobodyさん
2006/12/01(金) 04:36:07ID:???そもそもボタンを押す前はそのプログラムを動かさなきゃいい。
フォームを表示するプログラムと、そのデータを受け取るプログラムを分けれ。
0575nobodyさん
2006/12/01(金) 05:48:50ID:???0576nobodyさん
2006/12/01(金) 08:34:57ID:???0579nobodyさん
2006/12/01(金) 11:32:09ID:pNXMUOFK$test = "test";
?>
<?=$test?>
ってやると$testの中身がprintされるんですが、これはマニュアル等にあるきちんとした仕様ですか?
基本的な文法からするとすごい意外だったんですが・・。
0580nobodyさん
2006/12/01(金) 11:33:53ID:???確か <?= は <?print と等しかったと思う。
ただ、それ、ショートタグを有効にしてないと使えないよね。
<?php= $test ?>
とかやってもできないしorz
ショートタグ関係の機能なんじゃないかな。
0581nobodyさん
2006/12/01(金) 11:47:43ID:???0583580
2006/12/01(金) 11:50:48ID:???サンクスです
http://jp2.php.net/manual/ja/ini.core.php#ini.short-open-tag
やはり、short_open_tag を on にしていないと使えなかったんですね。
<? と ?> のショートタグは無効にしたい (XML宣言とかで邪魔になるし美しくないので) のですが、
<?php= みたいな方法で <?php echo を使いたいんです(´・ω・`)
やはりこれは無理なんですかね…。
0585nobodyさん
2006/12/01(金) 11:56:14ID:pNXMUOFK横着はいけないなと・・。
ショートタグを活用したことが無かったので意外だったんですよね。
構文エラーじゃないのかと思った次第です。
<?=$test?>
0586nobodyさん
2006/12/01(金) 14:56:38ID:???0587nobodyさん
2006/12/01(金) 15:04:13ID:???0588nobodyさん
2006/12/01(金) 15:06:35ID:???0589nobodyさん
2006/12/01(金) 15:19:11ID:???まぁ、単純な置換でショートタグから普通の構文にできるんで、好みでやればいいかと
0590nobodyさん
2006/12/01(金) 15:44:49ID:mT/4eJy6FORMに数字しか入力させないようにしたいのですが
なんの関数を使えば良いでしょうか
0591nobodyさん
2006/12/01(金) 15:47:39ID:???0593nobodyさん
2006/12/01(金) 16:02:12ID:NWvcMdwA0594nobodyさん
2006/12/01(金) 16:05:26ID:mT/4eJy6どうもでしたー
0596nobodyさん
2006/12/01(金) 17:17:14ID:???FPDFを使ってPDFファイルを作成しました。
index.html→ex.php(IE上でPDFが表示される)
は問題ないのですが、ブラウザで表示するのではなく、
ファイルとしてダウンロードさせようと思います。
それで、ex.phpの上部に
header('Content-type: application/pdf');
header('Content-Disposition: attachment; filename="ex.pdf"');
と記述したのですが、ファイルのダウンロードが出来ません。
もしご存じの方は、どうすればいいか教えていただけないでしょうか。
0597nobodyさん
2006/12/01(金) 17:32:40ID:???$path_file="c:/httproot/hogehoge.pdf";
$content_length=filesize($path_file);
header("Content-Type: application/octet-stream");
header("Content-Disposition: attachment ; filename=aaa.pdf");
header("Content-Length: ".$content_length);
readfile($path_file);
?>
0598nobodyさん
2006/12/01(金) 17:33:53ID:???と回答もしないであげ足とるなよおまえらw
0599nobodyさん
2006/12/01(金) 17:34:34ID:???Content-Typeを application/octet-stream に変えてやればいい
0600nobodyさん
2006/12/01(金) 17:36:41ID:???0601nobodyさん
2006/12/01(金) 17:49:43ID:???0602nobodyさん
2006/12/01(金) 18:11:28ID:???本スレとくだスレという、互いを意識しあう二つのスレが存在した。
本スレに住む住人は、「くだスレいらなくね?」と思い、くだスレに住む住人は、「本スレいらなくね?」と思っていた…
そんな拮抗した時代はもろくも崩れ去った…
本スレ住人とくだスレ住人の戦争が勃発したのである。
続く↓
0603596
2006/12/01(金) 20:25:17ID:???ありがとうございます。
試しに597さんのソースをex.phpの上部に貼り付けて
$path_fileをプログラムがある場所を指定したのですが、
ダウンロードはされるものの、作成されたファイルを開けません。
(なので、作成失敗していると思います)
0604nobodyさん
2006/12/01(金) 20:27:32ID:ZL9qk5lmあるユーザ(例えばID=10)がログインしてるとき、IP等だけでなく、
IDもapacheのログに追加出力するにはどうしたら良いのでしょうか??
IDの内容は$_SESSIONで持ちまわっています。
apacheのログ出力設定の何かをいじるのだろうと思いますが、
ググってもいまいち望みの結果が検索できませんでした。。。
0605nobodyさん
2006/12/01(金) 21:11:34ID:???IDを付け加えた別のログを吐くしかないのでは?
0606nobodyさん
2006/12/01(金) 21:17:25ID:???0607nobodyさん
2006/12/01(金) 21:21:04ID:???phpはinput.htmlのsubmitボタンからhoge.phpを呼んでいます。
ブラウザーからはうまく行きます。
input.html
<form action="hoge.php" method=POST>
<input type="text" name="name">
<input type="submit" value="submit">
</form>
hoge.php
<?php
$fh = @fopen("piyo.txt","a");
fputs($fh,"$_POST[name] ああ\n");
fclose($fh);
?>
<a href="input.html">
telnetでの入力
telnet localhost 80
POST hoge.php HTTP/1.0
Content-Length: 6
name=1
と入力してます。しかしpiyo.txtには何も入力されずああが増えるだけです。
どなたか原因を教えてもらえないでしょうか?
0609nobodyさん
2006/12/01(金) 21:58:33ID:???0610607
2006/12/01(金) 22:18:29ID:???Content-type: application/x-www-form-urlencoded
を入れるとうまく動いた。
0611607
2006/12/01(金) 22:21:35ID:???Content-type: application/x-www-form-urlencoded
を入れるとうまく動いた。
0612607
2006/12/01(金) 22:22:13ID:???Content-type: application/x-www-form-urlencoded
を入れるとうまく動いた。
0614nobodyさん
2006/12/02(土) 00:33:11ID:???function entry($val){
$con = mysql_connect(localhost, root, test);
$selectdb = mysql_select_db($DBNAME, $con);
$sql = "select * from datatable";
$rst=mysql_query($sql,$con);
echo "<select name=\"datalist$val\">";
echo "<option></option>\n";
while($row=mysql_fetch_array($rst)){
echo "<option value=\"$row[name]\">$row[name]</option>\n";
}
echo "</select>";
}
表示側は <? entry(1);?>などとしています。
<select name="datalist1"><option></option></select>は表示されるのですが、
whileの中が表示されません。どこがおかしいのでしょうか?
0615nobodyさん
2006/12/02(土) 00:44:02ID:???大して読んでないが
whileの中を
echo "<option value={$row['name']}>{$row['name']}</option>\n";
でテストして味噌
0617nobodyさん
2006/12/02(土) 01:29:25ID:C/1Qwb+bzip関数を有効にするにはどのようにしたらよいでしょうか。
どなたかご教授頂けると恐縮です。
0618nobodyさん
2006/12/02(土) 01:35:51ID:???print_r($row);
するとちゃんと値出る?
0620614
2006/12/02(土) 01:42:30ID:???いえ、出ません。そしてソースを見ると以下のようなエラーが出てます。
<b>Warning</b>: mysql_fetch_array(): supplied argument is not a valid MySQL
result resource in <b>C:\Program Files\Apache Group\Apache2\htdocs</b> on line <b>10</b><br />
たぶんwhile内のmysql_fech_arrayが読み込めないっぽいです。。
0621nobodyさん
2006/12/02(土) 01:51:46ID:???0622nobodyさん
2006/12/02(土) 01:55:11ID:???・Added RFC1867 fileupload processing hook. (Stefan E.)
これ実装した拡張モジュールってありませんか?
あと「PHPの本スレ」みたいなものはないんですか?
0623nobodyさん
2006/12/02(土) 03:30:08ID:???おいおい、先にエラー出てるって言えよ・・
そのエラー内容と出てる行があらば考えるか検索できると思うよ。
でmysql_fetch_array()でエラー出てるから、$conが問題なんじゃね。
DBにコネクト出来て無いとか
ttp://www.php.net/manual/ja/function.mysql-connect.php
の例を見てコネクトをチェックしなさい。
何で俺今日はこんな面倒見がいいんだろw
0624nobodyさん
2006/12/02(土) 04:53:53ID:???一旦mysql関数で現在値データ拾ってきて、それにphpで+1して
UPDATEするしか無理でしょうか?
直接MySQLへのクエリーのみで+1することは不可能でしょうか?
0626nobodyさん
2006/12/02(土) 06:24:15ID:???同時にリクエストきたらプログラム対応じゃ面倒だろうがw
0627nobodyさん
2006/12/02(土) 06:24:50ID:???こんな感じだったっけ?
0628nobodyさん
2006/12/02(土) 07:38:24ID:???sqlのマニュアルくらい読めよ
0629nobodyさん
2006/12/02(土) 08:00:44ID:???MySQLでorderというフィールドを作成して、
順番データを入れたいと思います。
それを参考に、phpで表示させる、という流れです。
今やってる苦肉の策は
指定データ(行)のorderの値だけ1加算する、というかたちです。
これだとorderが10のデータと順番を変えようと思ったら、
10回動作させなければいけません。
orderデータに一意性を持たせて、、、
みたいなことも考えましたが、いかんせんかなり面倒な感じになりそうです。
どんなロジックでいけばいいのかわからないのですが、
何かよい方法はないでしょうか。
0630nobodyさん
2006/12/02(土) 09:23:47ID:???orderが今10のやつを3に変更しようとしたら、元々3のやつを4に、4のやつを5に…と
全部ずらしていかないといけないって話?
update table set order = order + 1 where order >= 3 and oeder < 10;
update table set order = 10 where id = '元がorder=10のレコードのID';
の2回updateで終了の気がするけど。
0632nobodyさん
2006/12/02(土) 09:47:53ID:???>ロック中に flock()でブロックを行いたくない場 合は、operation に LOCK_NB を加えます。
LOCK_NBとは、これは具体的にどういう意味ですか?
マニュアルの説明文ではどうもよくわかりません。
0633nobodyさん
2006/12/02(土) 09:48:57ID:???0634nobodyさん
2006/12/02(土) 09:56:35ID:???他のプロセスがflockしてるときにさ、
(1)LOCK_NB無しでflockしようとする時(通常)
他のプロセスがflockが終わるまで待機する。
(2)LOCK_NB有りでflockしようとする時
flockはあきらめて先に進む。
0636nobodyさん
2006/12/02(土) 10:02:40ID:???0637nobodyさん
2006/12/02(土) 10:04:34ID:???flockは成功するとTRUE、失敗するとFALSEだから
LOCK_NBありのときは返り値を見て処理を変更するとか、
結構使いどころはあるよ。
0638nobodyさん
2006/12/02(土) 10:06:43ID:???0640nobodyさん
2006/12/02(土) 10:12:35ID:???WindowsのPHP4.4.2でfopenでURIを読み込もうとすると、apacheがエラーになります。
(WindowsXPで一般保護エラーのダイアログ?が出る。ご不便をおかけして申し訳ありません。のやつ)
何かモジュールを組み込む必要がありますか?
0641nobodyさん
2006/12/02(土) 10:25:15ID:???Apacheをアップデートしてみたら?
0642nobodyさん
2006/12/02(土) 10:56:39ID:h5X/zZpVallow_url_fopen = On
になってます。
0643nobodyさん
2006/12/02(土) 10:57:19ID:h5X/zZpVありがとうございます。試してみます!
0644614
2006/12/02(土) 11:31:04ID:???だいぶレスが遅れてすみません。。$conの問題ではないです。
function内ではなくrequireで読み込むと表示されますし、
function内でもwhileの箇所を$row=mysql_fetch_array($rst);
にすると1行出力されます。
だからfunction内でwhileを使えないのか?もしくは何か設定があるのか?
っと思い、質問した次第です。リファレンスとか見まくったのですが、解決しません。。
0645nobodyさん
2006/12/02(土) 11:38:22ID:???0646nobodyさん
2006/12/02(土) 11:40:20ID:???そんなん無い。whileくらい使えて当たり前。
>>623はconnectに問題とか行ってるがqueryの可能性も高い。
まずはconnectとselect_dbとqueryのそれぞれ直後に print mysql_error(); を入れること。
そもそもconnectとselect_dbとqueryとで戻り値チェックもしてない時点で君は大バカ。
ちなみに予想は「select_dbに失敗していてその後のqueryが実行できてない」だ。
1行だけ成功したパターンってその関数の実行前にすでにconnectとselect_dbを実行してて
改めて実行しなくても動く状況にすでになってたんではないかな。
(connectは同じパラメータで再connectかけると前のconnectをそのまま使う)
当ったら10回お礼を言うように!
0647nobodyさん
2006/12/02(土) 11:41:55ID:???どうしてそういう遠回りで無意味なデバッグ方法を示唆すんの?
それともお前は普段そんな変なデバッグ方法をとってるのか?
0648629
2006/12/02(土) 11:42:19ID:???そのやり方の場合、
orderの値を全て把握していないと厳しくないでしょうか?
例えば、
a(order=100)
b(order=50)
c(order=3)
と並んでいて、
cを上に上げるためにはbのorder値と、
bをaの上に上げるためにはaのorder値と比較しなければいけないですよね?
MySQLでorderの直近の上の値をチェックできれば楽かと思いますが、
phpで実現しようと思うとかなり面倒なコーディングになるような気がするのですが・・。
0652614
2006/12/02(土) 11:52:35ID:???おっしゃる通りでした・・。
この掲示板ではわかりやすいように>>614と書いたのですが、
実際は$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)と
変数にしていました。
これを変数ではないサーバの設定に変えたところ、問題なく表示されました。
デバッグの方法も頭から抜けていました。大変勉強になりました。
昨日からご迷惑おかけしました。ありがとうございました。
0654nobodyさん
2006/12/02(土) 12:22:46ID:h5X/zZpVapacheを2.0.59にアップデートしてみましたが、やっぱりエラーが表示されました。
2.2系にアップデートしないといけないかもしれませんね?
0655nobodyさん
2006/12/02(土) 13:35:25ID:???ごめん。過去ログ確認したら間違ってた。
それ、Apache側じゃなくWin版PHP4.4.2のバグ。4.4.3以降で修正済み。
0656nobodyさん
2006/12/02(土) 14:03:50ID:???・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
0657nobodyさん
2006/12/02(土) 14:14:39ID:???select order from table where order > 3 order by order limit 1で
一発で直近のorderの値くらい取得できると思うんですが。
0658nobodyさん
2006/12/02(土) 17:01:10ID:uxBQAy5h以下のようにして、見つかったら true なければ falese で条件判断をして
処理を行うということをしたいのですが・・・
$query=mysql_query($db_open,"SELECT * FROM abcd WHERE A='table'");
if($query==true){
}
または、
if($query==falese){
}
これって正しいのでしょうか?違っていましたら、正しい記述の
仕方を教えていただけませんか?
0659nobodyさん
2006/12/02(土) 17:03:23ID:???0660nobodyさん
2006/12/02(土) 17:04:20ID:???0662658
2006/12/02(土) 17:38:00ID:2AsRSHi/ご回答ありがとうございます。
マニュアルを見たのですが、先ほどの例の場合、どう記述するかが
掴めません。よろしければ、お教え願えないでしょうか?
0663nobodyさん
2006/12/02(土) 17:56:03ID:???0664nobodyさん
2006/12/02(土) 18:01:33ID:???クエリーだけで+1できるよ。
UPDATE テーブル名 SET `hoge`=`hoge`+1 WHERE 〜
っていうか、使い方にもよるけど、
MySQLのオートインクリメントを使えばいいと思うが。
0665nobodyさん
2006/12/02(土) 18:15:12ID:???オートインクリメントで+1できるのはinsertであって
updateしたい要望とは全然噛み合ってない気がするが。
つーか>>627
0666nobodyさん
2006/12/02(土) 18:16:43ID:???正しくない。mysql_queryの戻り値はSQL実行でエラーが出たかどうかであって
データが見つかったかどうかではない。
データの有無は取得されたデータを見ないとダメ。
0667nobodyさん
2006/12/02(土) 18:22:19ID:???正しいかどうかは動かしてみればわかるだろ。
0668nobodyさん
2006/12/02(土) 18:32:10ID:???0669nobodyさん
2006/12/02(土) 18:33:53ID:???0671nobodyさん
2006/12/02(土) 18:47:09ID:???マニュアルを見ないなら見ることを教えるほうがずっといい
ごく単純なことだと思うが
0672nobodyさん
2006/12/02(土) 18:49:28ID:???0673nobodyさん
2006/12/02(土) 18:58:02ID:???0674nobodyさん
2006/12/02(土) 19:00:22ID:???お前のほうがよっぽど馬鹿と言われるに相応しいねえ
0675nobodyさん
2006/12/02(土) 19:03:48ID:???0676nobodyさん
2006/12/02(土) 19:07:48ID:???0677nobodyさん
2006/12/02(土) 19:08:30ID:???それで納得できるのは馬鹿であるお前だけだよ
常識ないなあ
0678nobodyさん
2006/12/02(土) 19:10:14ID:???0681nobodyさん
2006/12/02(土) 19:13:54ID:???0682nobodyさん
2006/12/02(土) 19:18:38ID:???0683nobodyさん
2006/12/02(土) 19:26:11ID:???だいたいくだ質のパートスレとしか書いてないのに誰に伝わると思ったんだろ。
0684nobodyさん
2006/12/02(土) 19:27:35ID:???0685nobodyさん
2006/12/02(土) 19:38:51ID:???0686nobodyさん
2006/12/02(土) 19:42:01ID:???(( (0^〜^∩ (^▽^ ∩ (‘ д ‘ ∩ ))
⊂ 中退 丿 ⊂中卒 丿 ⊂専門卒丿 ♪
+ ( ( ( ( ( ( ( ( ( ∧_∧ +
ノハヽヽ (_(_) (_(_) (_(_) /ハ)ヽヽ +
( ´__ `) ♪ ♪ (´ー ` ●)
( あなたつ 差別をなくして明るい社会 ⊂修士終了 )
) ) ) 同じ人間同士仲良くしましょう ( ( (
(_(__) ♪ (__)_)
ノノノハヽヽ ∂/ハ)ヽ ノノノハヽ ♪
川^ v ^ 从 (〜^◇^) 川 ゚ ___ ^ ノ||
( 高専卒 つ、( 大卒 つ、(博士終了つ、 +
) )ヽ_ノ ) )ヽ_ノ ) )ヽ_ノ +
(__) (__) (__)
0687nobodyさん
2006/12/02(土) 19:42:04ID:???0688nobodyさん
2006/12/02(土) 19:59:16ID:???君のような事を言う人間を何人も見てきた。
さぁ、現状を見たまえ。
そして、その主張が全くの無駄だという事に気付け。
精神衛生上、二度とこのスレに近寄らない事を強く推奨する。
0689nobodyさん
2006/12/02(土) 20:03:26ID:???去年も同じフレームやってただろお前w
馬鹿にはそう見えるのかも知れんが、マニュアル読ませず手取り足取り教えるだけのスレか?
判例が上に山ほどあるぞバーカ
0690nobodyさん
2006/12/02(土) 20:09:08ID:???とくに問題を感じたことはないんだけど?
0691nobodyさん
2006/12/02(土) 20:14:58ID:???0692nobodyさん
2006/12/02(土) 20:22:46ID:???そんで、動画が見られそうだから動画見ようとしたら、音声しか出ないもんで、
なんかダウンロードしなきゃいけないんかと思いつつ、動画の下の方の英語見てたら、
Click hereだったかな?そこを押したら動画が見れると思ってそこをクリックした。
そしたら、とりあえず動画は見られたわけだが、翌日、ネットやってるとアダルトサイトのポップアップみたいなんが出てきた。
放っておいたら勝手に出てきやがる・・。。。
いくらスキャンしても解決しない。。
これはどうすればいいのだろうか。。orz
クレジットカードが心配だ。。まぢで教えてくれ。たのむ。
参考までに、そのアダルトサイトのURL載せとく。
ttp://kampamba.banchitos.com/index.html
このエロサイトの画像何でもイイからクリックして、
そんでまた画像あるからそこの画像をクリックしたら動画が見られる。
頼む!本当に助けてくれ。。。
0693nobodyさん
2006/12/02(土) 20:23:23ID:???0694nobodyさん
2006/12/02(土) 20:27:31ID:???0695nobodyさん
2006/12/02(土) 20:28:04ID:???0696nobodyさん
2006/12/02(土) 20:28:31ID:???いくら消しても、時間がたつと出てくるのだが。。
これは家族のパソコンだからマヂヤバイんだが。。
0698nobodyさん
2006/12/02(土) 20:35:43ID:???一回それでやってみるぽ。
0700nobodyさん
2006/12/02(土) 20:38:51ID:4l/VpbTLforとwhile
eregとpreg_match
どちらを使うようにすればいいのでしょう?
0701nobodyさん
2006/12/02(土) 20:41:25ID:???いまエロトロイでそれどころじゃない!
0704nobodyさん
2006/12/02(土) 20:51:57ID:???個人的な趣向を交えて言えば、
・printとecho
通常はechoだけど、printは値を返すらしいので、たとえば
kansu() or print("kansu失敗");
とかできるみたいだ。一度もやりたいと思ったことないけど。
・forとwhile
何かを順次処理するときはできるかぎりfor。それ以外はwhile。
あとは、while ($row = DBからfetch系())のようなイディオム次第。
・eregとpreg_match
pregのほうが強力なので、pregを常用。
ついつい長々回答してしまったorz
0705700
2006/12/02(土) 20:53:47ID:4l/VpbTLありがとうございます。
ふだんはforを使ってるので、whileの文法を忘れてしまう事が…
入門書にはeregの事が書いてあって、pregが一切なし。 人のソース見るとeregではなくpregを使ってる方が多いような気がしたので、どうなのかと思っていました。
0707nobodyさん
2006/12/02(土) 20:56:49ID:???0708nobodyさん
2006/12/02(土) 21:10:30ID:???なんていうか$i++とか$j--とか$iter->next()みたいな、「次のステップに行くための処理」が別個に必要なときは、できるかぎりforを使いたいかな。
whileのブロックの終わりのほうに$i++等を書くのは、極力避けたい。
0709nobodyさん
2006/12/02(土) 21:14:16ID:???pregはPerlの独自拡張で複雑だから、入門書は基本的なPOSIX仕様のeregにしたのかもね
pregでマルチバイトを処理するには、文字列をutf-8にしてuオプションつけなきゃいかんことあるし
ていうかエロトロイに礼なんか言うなw
0710nobodyさん
2006/12/02(土) 21:19:30ID:dk8eu7iU>700氏ではありませんが…。
「printとecho」は何となく。「eregとpreg_match」は UTF-8 で処理をする癖が付いているので大体解りました。
ですが、「forとwhile」の順次処理の部分が今ひとつ掴めません。
while でも for でも書けるロジック。つまり、
for ($i=0; $i < $max; $i++){
...
}
のようなアルゴリズムを順次処理と呼称しているのでしょうか?
Google検索にて、順次処理とは「順番に処理をすること」ではないか、と解釈しました。(自信なし)
つまり、while ($row = DBからfetch系()) は順次処理とは呼べず、上記のようなロジックは順次処理である。
この理解であっているでしょうか?
0711nobodyさん
2006/12/02(土) 21:20:03ID:???エラーダイアログが出たw。そのままインストールが進んだけどPHPinfoで
インストールが正常に完了したのか確認できるんでしょうか?。
php.iniには追加されてたしapacheをリスタートしても平気みたいだから大丈夫かな。
0712nobodyさん
2006/12/02(土) 21:21:33ID:???0713nobodyさん
2006/12/02(土) 21:21:35ID:???0714nobodyさん
2006/12/02(土) 21:21:58ID:???while→DBからの取得やファイルからの読み込みなど読込先に依存するとき
って感じかな。
0716nobodyさん
2006/12/02(土) 21:24:01ID:???0717700
2006/12/02(土) 21:30:06ID:4l/VpbTLprintは奥が深いですね… 今はecho使ってるのでそのまま使っていく事にします。
forとwhileについては713,714を見てたらだんだん混乱してきました。
ゆっくり理解してみます。
マルチバイトの文字コードは苦手分野で、EUC-JPで書いてるときはpreg_matchする場合は毎回エンコードする必要があるのですかね。
そのあたりは実際にやってみて調べてみようと思います。
0718658
2006/12/02(土) 21:30:53ID:2AsRSHi/ありがとうございました。mysql_num_rows を教えていただいおかげで
ここのところ行き詰っていた部分が一挙に解決しました。
0719nobodyさん
2006/12/02(土) 21:54:59ID:???で,phpの側で自分の実行環境を自動認識させたいんだけど,どんな方法が良いのやら.
$_SERVER[SERVER_SOFTWARE]から分けるとかしか思い浮かばないんだけど,何か良い手があったら是非・・・
0720719
2006/12/02(土) 21:55:34ID:pNytI5640721nobodyさん
2006/12/02(土) 21:57:13ID:???0722nobodyさん
2006/12/02(土) 22:03:01ID:???0723nobodyさん
2006/12/02(土) 22:22:58ID:???開発環境にVMware入れて本番環境を構築。
Document rootをsambaでローカルマウントすると
開発も確認も楽だし、環境の違いも考えなくて済むよ。
メモリがたくさん欲しくなるけど。
0724nobodyさん
2006/12/02(土) 22:28:01ID:???0725nobodyさん
2006/12/02(土) 23:48:58ID:???0726nobodyさん
2006/12/03(日) 01:11:00ID:WgFKbMzxmkdir()使ったらエラーが出てうまくいきません。
いろいろ調べるとどうもsafe_modeが原因のようなので、offにしました。
そしたら上手くいきました。
サーバはVPSでして、よく考えたらアカウントを持ってるユーザは自分だけ(つまりrootしかいない)なので
safe_modeをonにする必要なんて無い・・・ですよね?
だからsafe_modeはこのままoffにしようと思いますが、何かセキュリティ的にまずい点ってありますか?
0727nobodyさん
2006/12/03(日) 01:14:13ID:???0728nobodyさん
2006/12/03(日) 01:41:31ID:???レン鯖業でも始めるのならsafe_modeは絶対にOnにすべきだが、
鯖をいじるユーザが自分だけならOffでいいと思う。
(もちろんサイトにアクセスしてくるユーザは不特定多数が存在しても良い)
あと細かい点は詳しい人ドゾー
0729nobodyさん
2006/12/03(日) 01:42:02ID:???買ってきた本ではPEAR::DBを解説してるけど、
他にもあるよと紹介されてる中ではPDOが将来性ありそうに感じる。
ちなみにPHP5.1.6、DBはMySQL5.0.24aを使ってます。
0730nobodyさん
2006/12/03(日) 02:13:28ID:???自分は使っているフレームワークの関係で未だにPEAR::DBを使っているけど、
今ならMDBかMDB2じゃなかろうか?
0732nobodyさん
2006/12/03(日) 02:36:32ID:ONXLMhLT貴重な情報サンクスです!わざわざ調べていただいて感謝感激です!
0733729
2006/12/03(日) 03:24:18ID:???ご意見ありがとうございます。
自分は「PEAR入門」片手に触り始めたばかりで
フレームワークとかサブクラス自作とかの域に達してないのですが、
参考にさせて頂きます。感謝。
0734nobodyさん
2006/12/03(日) 05:59:41ID:JsSZU6FP以下のページで多用されている、演算子の「=&」って、どういう意味があるのでしょうか?
ググッたのですが、特殊文字のため弾かれてしまいました。
こんな感じで使われています。
$this->request =& $request;
ttp://www.stackasterisk.jp/tech/php/phpMvc01_02.jsp
もし、ご存知の方いらっしゃいましたら、教えてください<(_ _)>
0735nobodyさん
2006/12/03(日) 06:56:16ID:???http://jp.php.net/manual/ja/language.variables.php#language.variables.basics
0736719
2006/12/03(日) 07:30:46ID:LdRYMBElレスありがとうございました.
とりあえず一番簡単そうな実装として>>723を確認したところ,
WindowsXPでPHP_OS==WINNT,Linux環境ではLinuxとなることを確認しました.
当面はこれでOKです.多謝.
0737734
2006/12/03(日) 07:49:42ID:JsSZU6FPあ、参照代入でしたか。 はずかしい。
ありがとうございました。
0738726
2006/12/03(日) 09:46:41ID:WgFKbMzxスクリプトを使って、動的に画像ファイルを読み込み、
適切なContent-TypeとContent-Lengthを吐き出しているとします。
このとき、あるA.htmに画像が100個(毎回変わらない)含まれているとして、
A.htmに毎回アクセスされるたびに同じ画像をサーバから再度送信し続けています。
(レスポンスヘッダを見るとHTTP/1.1 200 OKとなっています)
これだと帯域の無駄遣いなので、画像が更新されてなければブラウザにキャッシュされてる(?)画像を
使ってもらうようにして、サーバから配信しないようにさせたいのですが、
どうすればいいのでしょうか??
0739nobodyさん
2006/12/03(日) 09:46:46ID:???どうやったら通常のメールとして認識されるようになるんでしょうか?
メール送信元アドレスや、内容、題名など通常のメールとして届いたものを真似て送信しましたが
どれも迷惑メールになってしまいました。
0744726
2006/12/03(日) 16:49:48ID:WgFKbMzxありがとうございます。今から調べてみます。
>>742
そうなんですか! それは画像が多い場合に困っちゃいますね。
仮に静的な画像だとしてもそうなんですか?? でも、IEとかのデフォルトではそういう設定じゃない・・・のかな?
>>743
いえ、変動するパラメータは一切渡しておりません。
クエリストリングとして渡してるのは、毎回固定のファイル名だけです。
0745726
2006/12/03(日) 16:52:52ID:WgFKbMzx「固定のファイル名」と書きましたが、
より丁寧に言いますと「各ファイルごとに固有のファイル名」を、
img srcとして指定している画像呼び出しスクリプトにパラメータとして渡している・・・という感じです。
0746nobodyさん
2006/12/03(日) 16:53:39ID:U5thVNJ+Fatal error: Out of memory (allocated -600571904) (tried to allocate 10448508 bytes) in .../Documents/main.php on line 210
というエラーがでてしまいました。
でphp.ini の memory_limit を40Mにしたのですが、同じエラーがでてしまいます。
(php.iniを変更した後でもtried to allocate10448508 bytesと同じ数値がでます。)
どなたか対処法をお教えいただければと思うのですが。
よろしくお願いいたします。
0747nobodyさん
2006/12/03(日) 17:04:33ID:???つかAlloc600MBって強力だな
0748nobodyさん
2006/12/03(日) 17:05:11ID:???phpinfo()で実際の設定が反映されているかを確認。
違うphp.iniを見ているかも知れないので、同様にphpinfo()でphp.iniの場所も確認。
0749nobodyさん
2006/12/03(日) 17:08:19ID:???メモリの使用制限は関係ないんじゃないかと
0750nobodyさん
2006/12/03(日) 17:42:58ID:???mySQLにテーブルつくりたいんですが、DBコネクトエラーでできません・・・
詳しい導入方法が載ってるサイトあれば教えてください
0751nobodyさん
2006/12/03(日) 17:47:51ID:???0752nobodyさん
2006/12/03(日) 18:00:41ID:???> nySQL
なんだかすごくセキュリティに問題がありそうなDBだなww
格納したデータを次々バラまくとかww
0753nobodyさん
2006/12/03(日) 18:02:28ID:???0754753
2006/12/03(日) 19:02:58ID:???preg_split とか駆使して。
汚い。
で、UTF-8 がらみのところは解決したのですが、
punycode がらみのところをやってくれるライブラリってありませんか?
0755nobodyさん
2006/12/03(日) 19:07:09ID:U5thVNJ+ってことは、何が原因?
本体の実装メモリが足りないのかな?
0756753
2006/12/03(日) 23:07:56ID:???http://pecl.php.net/package-info.php?package=idn
でできるようです。
Debian GNU/Linux Etch で
apt-get install libidn11-dev
pecl install --force idn
あとは php.ini か conf.d/ あたりに extension = idn.so
と書いて、読み込まれていることを php -m で確認。
自分はロケールを LANG = ja_JP.UTF-8 にしてて PHP
のソースも utf-8 で書いているのでコードはこんな感じ。
$utf8="総務省";
$puny=idn_to_ascii($utf8);
$utf8=idn_to_utf8($puny);
0757nobodyさん
2006/12/04(月) 01:51:50ID:UgsNdO+/HTTPヘッダでキャッシュ・コントロールをすればいいかと思ったのですが、それを無視しちゃうプロキシもあるそうですね。
たとえば会員限定の秘密コンテンツなどはどうやったら安全確実に会員「だけ」に配信できるのでしょうか…
通信をすべてSSL化しちゃえばいいのかなとも思いましたが、
SSLって画像とかも暗号化されるのでしょうか…。
もし暗号化されるなら、キャッシュされても大丈夫ですよね??
0758nobodyさん
2006/12/04(月) 02:25:35ID:???パラメータ付けてるとブラウザはキャッシュ使わなくなるよ。
PATH_INFOとか使って普通のURLに見せかけるとかの処置が必要なんじゃないかな、多分。
0760745
2006/12/04(月) 02:55:34ID:???ttp://ml.php.gr.jp/pipermail/php-users/2006-June/029861.html
の記述を参考にして、
<img src=image.php?filename=xxxx.jpg>
などとしていたのを
<img src=image.php/xxxx.jpg>
に変えてみたのですが、それでもやはりブラウザ(IE、Firefox)はキャッシュしてくれませんでした。
したがって、同じ画像に二度目以降にアクセスするときに「If-Modified-Since」を送信してくれないため、
アクセスがあるたびに、毎回サーバは画像を送信し続けるハメになっています。
(つまり、応答コードは 304でなく、毎回200です)
0761745
2006/12/04(月) 03:27:21ID:???たとえば、ある画像のURLが
http://〜/abc.php?zzzz
だとキャッシュされませんが、
http://〜/abc?zzzz
だとキャッシュされてるみたいです。
ttp://ml.php.gr.jp/pipermail/php-users/2006-June/029861.html によると
「?」を使わなければ大丈夫・・・と書いてありますが、
実はそうではなくて、拡張子を使わなければ大丈夫・・・なんだと思います。たぶん。
となると、mod_rewriteですかね?
0762nobodyさん
2006/12/04(月) 04:17:47ID:???だから ユーザーがブラウザのキャッシュを使わない設定なら鯖側の意図は無意味
どうしても304吐きたいなら
#==================================
# HTTP Header 出力関数。
#==================================
function http_header($last_modified_logfile){
global $code,$siteurl;
$unixtime = filemtime("$last_modified_logfile");
$gmtime = gmdate( "D, d M Y H:i:s \G\M\T", $unixtime );
$etag = '"'.md5($gmtime).'"';
if (
( isset( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) && strtotime( $_SERVER['HTTP_IF_MODIFIED_SINCE'] ) >= $gmtime ) ||
( isset( $_SERVER['HTTP_IF_NONE_MATCH'] ) && stripcslashes( $_SERVER['HTTP_IF_NONE_MATCH'] ) == $etag )
) {
header("HTTP/1.1 304 Not Modified");
exit();
}else{
header("Content-Type: text/html; charset=$code");
header("Last-Modified: $gmtime");
header("ETag: $etag");
header("X-Powered-By: PHP/5.2.x");
header("X-Generator-Script: $siteurl");
header("X-2ch: http://pc8.2ch.net/php/ , http://pc8.2ch.net/mysv/");
}
}
0763745
2006/12/04(月) 10:41:23ID:???いえいえ、当方のIEはキャッシュを使う設定になってます。
あくまでもキャッシュを使う設定になってる場合の話をしております。
それと、提示してくださったソースは、http://blog.drry.jp/2005/01/26/2357のを参考にされてますよね?
僕もそれはググって見つけましたので。
ですが、Last-ModifiedとETagを付加しても、URLがhttp://〜/abc.php?zzzz のような形式の場合、
少なくともIEはキャッシュしませんでしたよ。したがって、次回のアクセスでIf-Modified-Sinceも送信されません。
0766nobodyさん
2006/12/04(月) 12:34:16ID:nyh8nms1ためしに、現在時刻を出すだけのスクリプトで試してみたら?
0767nobodyさん
2006/12/04(月) 14:01:52ID:???IE・FireFox・Opera、いずれの場合もキャッシュされず。
?を/や_などに変えてみてもダメだった。→>>765
ETag・Last-Modifiedの有無も関係ないようだ。
>>763にも書かれてるが、そもそもブラウザがIf-Modified-Sinceを送ってくれないので
>>762の方法では絶対に304を吐けない。
つまり問題なのは304の吐き方ではなくIf-Modified-Sinceの吐かせ方。
もちろん上記環境で、apacheが配ってくれる静的な画像はキャッシュされた。
0769nobodyさん
2006/12/04(月) 14:14:39ID:???>>766の指摘通り、?があってもキャッシュされるぞ。
ためしに以下にアクセスしてみるといい。
http://services.windowsmedia.com/cover/200/drf200/f268/f26820yhodf.jpg?locale=411
この画像に二度目以降アクセスするときはキャッシュが効いて、304が返ってくる。
0770nobodyさん
2006/12/04(月) 14:21:35ID:???0771nobodyさん
2006/12/04(月) 14:31:05ID:???0773nobodyさん
2006/12/04(月) 14:39:29ID:???画像の後ろに ?更新日時 とかパラメータつけてたのに、これじゃダメってこと?
0774nobodyさん
2006/12/04(月) 14:43:23ID:???>そもそもブラウザがIf-Modified-Sinceを送ってくれないので
念のため確認したいんだけど、If-None-Match を知っててその発言をしてる?
0775nobodyさん
2006/12/04(月) 14:52:19ID:???SSL通信ならば、プロキシサーバは内容を知ることができないので、大丈夫です。
内容を知ることができるのは、配信しているサーバと、最終的なクライアントのみです。
画像も https で始まるURLならば暗号化されてます。
0776nobodyさん
2006/12/04(月) 15:34:50ID:+NWA2rgN誰かヒントでもいいから教えてください…
単位がやばいんでw
問題は
php、htmlをつかって二次方程式を解くプログラムです!!
0777nobodyさん
2006/12/04(月) 15:36:01ID:???0778nobodyさん
2006/12/04(月) 15:41:43ID:???ネタか?
phpで二次方程式ってふざけてるとしか思えないんだけど
普通はWebプログ言語でやることじゃないだろ
あと、そんなプログラムあったら漏れも欲しいぞ
Vector探しても何処探しても、二次方程式を解けるプログラム(や電卓)なんてみたことない。
当てはめでおよその小数解だすようなのはいくらでもあるけど、分数式・虚数・無理数などを使った
数学的に正しい解を出すプログラムはマジでないぞ。
0779nobodyさん
2006/12/04(月) 15:47:46ID:+NWA2rgNでもうちの先生がつくれとかぬかしてて…
当てはめでおよその小数解だすようなのはいくらでもあるけど
↑
教えてください
0781776
2006/12/04(月) 15:52:57ID:+NWA2rgN0782nobodyさん
2006/12/04(月) 16:00:08ID:???0783nobodyさん
2006/12/04(月) 16:01:21ID:???0785767
2006/12/04(月) 16:02:59ID:???>>768、>>772 拡張子は関係ない。mod_rewriteで、見かけ上「.jpg」にしてみたが、やはりダメだったので。
>>773 結論としてはそれじゃダメ。>>769に示されたURLにアクセスして、HTTP通信をキャプチャしてみるといい。
>>774 ETag付けてもキャッシュされてないんだから、If-None-Matchは関係ない。(っていうかキャッシュされない=If-None-Matchもリクエストされてこない)
0786770,774
2006/12/04(月) 16:07:07ID:???まさか If-None-Match が付いてるのに「If-Modified-Sinceが付いてない」って騒いでるのかと思ったんだよww
「条件付きGET」とか言えよ
0787767
2006/12/04(月) 16:07:19ID:???上記に追記というか補足。
.jpgにしたうえ、?も使ってない。それでもキャッシュされず。
具体的には、hogehoge.com/images/filename.jpgにアクセスすると
mod_rewriteでhogehoge.com/img.php/filename.jpg にリダイレクトするようにしたが、
これでもキャッシュされず、アクセスすると毎回200応答になっちゃう。
0788778
2006/12/04(月) 16:07:39ID:???漏れは実は 『分数式・虚数・無理数などを使った数学的に正しい解を出すプログラム』 が欲しいわけだけど
これのURLを教えてくれたら効率的で高速なphpプログラム書いてやるけど、まぁ現時点ではいい加減なので勘弁してくれ。
「当てはめでおよその小数解だすようなの」 でいいんだよね
X^2 + X = 23 を解くなら、
for ($i = -100000; $i < 100000; $i += 0.00001) {
$d = $i * $i // phpでの2条処理は異常に遅いので
if ($d + $i >= 23 ) {
$result = $i;
break;
}
}
だ。
くだらん設問つくる教師にはこれで十分だろう
0791nobodyさん
2006/12/04(月) 16:14:46ID:???mod_rewriteじゃブラウザを騙せない、ってことじゃないのかそれ。
mod_rewriteだと最終的なURLがブラウザにも通知されちゃうから。
.jpgでPHPが呼び出されるように.htaccessいじってみたらどうよ?
0792789
2006/12/04(月) 16:20:16ID:???あ、かぶったww
>>791
騙せるよ。っていうかmod_rewriteってapacheの内部的な処理だから、
クライアント(ブラウザ)はリダイレクトされたことすら分からない。
>mod_rewriteだと最終的なURLがブラウザにも通知されちゃうから。
こんな大嘘、どこで覚えたんだか・・・www
0793nobodyさん
2006/12/04(月) 16:23:52ID:???http://72.14.235.104/search?q=cache:GxIjusYf5ZAJ:blog.dawgsdk.org/weblog/archives/411011+mod_rewrite%E3%80%80%E5%86%85%E9%83%A8%E5%87%A6%E7%90%86
0794nobodyさん
2006/12/04(月) 16:26:14ID:???>.jpgでPHPが呼び出されるように
アイタタタタタ・・・・・・
お前、それがまさにmod_rewriteの機能の一つだよ。
中途半端な知識で知ったかぶって大恥をかく典型例だな。
0795776
2006/12/04(月) 16:32:20ID:HUF4lLmFまじで感謝です。
親身になってくれてあざすm(__)m
0797nobodyさん
2006/12/04(月) 16:48:12ID:???つーかお前、自分で考えなきゃ宿題の意味がないだろう。
これが「ゆとり教育の結果 & 大学生の質の低下」ってヤツか・・・
0798nobodyさん
2006/12/04(月) 16:48:22ID:???とありますが、内部文字エンコーディングって何でしょうか?
0799nobodyさん
2006/12/04(月) 16:50:43ID:???いちいち煽るなよ。
0801nobodyさん
2006/12/04(月) 17:00:45ID:???呼んだぜ
まずは「phpで二次方程式を解く」といったプログラムで何を学ばせたいのか教えてくれないか
ついでに大学名と配属教えてくれ
0803800
2006/12/04(月) 17:18:21ID:???>まずは「phpで二次方程式を解く」といったプログラムで何を学ばせたいのか教えてくれないか
変数の取り扱いと演算子だ。
何か文句あんのか?
>ついでに大学名と配属教えてくれ
○○大学×学部だ
0804nobodyさん
2006/12/04(月) 17:28:49ID:???>>778より、正解を導き出すと、
当てはめでおよその小数解だすようなのはいくらでも書けるけど、分数式・虚数・無理数などを使った数学的に正しい解を出すプログラムは書けません。
と書いて提出しる!
0805nobodyさん
2006/12/04(月) 17:32:24ID:???0807nobodyさん
2006/12/04(月) 17:51:57ID:???> 分数式・虚数・無理数などを使った数学的に正しい解を出すプログラムは書けません。
書けないこともないとおもうけどね。
二次方程式なら因数分解もいらない (解の公式にいれりゃ確実に出る) んだから
人間と同じロジックで処理すりゃいい。
0808nobodyさん
2006/12/04(月) 18:30:01ID:???0809770,774
2006/12/04(月) 18:39:52ID:???If-Modified-Sinceヘッダに使う文字列で "D, d M Y H:i:s \G\M\T" こういうの使うのやめろよ。
DATE_RFC1123 があるだろ。
0810nobodyさん
2006/12/04(月) 18:46:40ID:???あとIF_MODIFIED_SINCEは実装上はエコーなんだから文字列として==でいいんじゃ
strtotimeじゃパースできない形式返す端末の問題もあるよね
0811770,774
2006/12/04(月) 19:03:18ID:???>mtimeのみのEtagは弱いバリデータなんじゃ
ETagの中身は別にmtimeじゃなくてもいいんだけど。
中身は変化したが意味は変化していない→ 弱バリディタは変化しない 強バリディタは変化する
中身が変化した → 弱バリディタ・強バリディタともに変化
>実装上はエコー
サーバーがRFC850の日時文字列を返してもIE7はRFC1123 を If-Modified-Since に入れるぞ
0812nobodyさん
2006/12/04(月) 19:10:51ID:OBhf6ZT7今まで使っていたサーバーではMySQLの文字コードがEUC-JPで
XREAのMySQLの文字コードがUTF-8 Unicode (utf8) ということでして
フォームからPOSTすると文字化けが起こりまして非常に困っております。
phpMyAdminの文字コードもUTF-8ということでphpMyAdminから修正しても日本語部分が??となって表示されてしまいます。
ページは全てEUC-JPで作成しており、
formタグでaccept-charset="EUC-JP"と指定し、
メタタグでもcharset=EUC-JPと指定しているのですが
どこを直せば文字化けが解消されるんでしょうか?
エスパーさんよろしくお願いします。
0813nobodyさん
2006/12/04(月) 19:14:38ID:???mysqlもユーザディレクトリに設定ファイル置けるんじゃなかったっけか
0814nobodyさん
2006/12/04(月) 19:18:53ID:???0816nobodyさん
2006/12/04(月) 19:41:50ID:???$y1 = (-$b ± sqrt($b * $b - ? * $a * $c)) / ? * $a;
Pythonなら虚数も出せるとオモ
0817nobodyさん
2006/12/04(月) 19:42:10ID:???どうでもいいけど、二次方程式を解く時には平方完成の方が解の公式より早いから、
解の公式使うメリットなんて素人以外には無いぞ。
0819nobodyさん
2006/12/04(月) 19:44:53ID:???念のため漏れもmod_rewriteで同様の実験をしてみたところ
たしかにブラウザにキャッシュされてないようだ・・・なぜだろう。
0821nobodyさん
2006/12/04(月) 19:53:49ID:???昨日NHKで平方完成の使いどころやってた
0823nobodyさん
2006/12/04(月) 20:01:19ID:Tc134QUM$pastTimeString = gmdate(DATE_RFC1123, mktime(10, 10, 10, 10, 11, 2006));
$creationTimeString = date(DATE_RFC1123, mktime());
header("Last-Modified: $pastTimeString");
?>
<html><header></header>
<hr>
<table border="1">
<?php
echo "<tr><td>HTML Creation</td><td>$creationTimeString</td></tr>";
echo "<tr><td>Random</td><td>".mt_rand()."</td></tr>";
?>
</table>
<hr>
</body></html>
mod_rewriteなんて使わなくてもこれでキャッシュされるんだが、
キャッシュされないってわめいてるのはいったいどんなスクリプト書いてるんだ?
Windows XP の IE7と Firefox2.0 で確認。
0825812
2006/12/04(月) 20:05:28ID:OBhf6ZT7お騒がせしました
0826nobodyさん
2006/12/04(月) 20:23:16ID:???アホかお前。もしやお前は脊髄反射が得意な>>786か?
知ったかぶる前に、一連の流れをもう一回最初から読み直せバカ基地害。
動的に配信された画像をキャッシュさせる話だっつってんだろが。
0827nobodyさん
2006/12/04(月) 20:30:24ID:Tc134QUM>>823のような単純なのでキャッシュされてるんだから
「キャッシュされていない」って言ってる人はなにか勘違いしてるとしか思えないね
0828nobodyさん
2006/12/04(月) 20:39:24ID:???なんか頭に血が上ってる人が2人ほどいるみたいだけど、ちょっと落ち着きませんか?
0829nobodyさん
2006/12/04(月) 20:55:45ID:Tc134QUM(α) = アクセスしない
(β) = If-Modified-Since付きでアクセスする
(γ) = If-Modified-Since無しでアクセスする
IE7の設定
(1)Interner Explorerを開始するたびごとに確認する
リンククリック:(α)
更新ボタン:(β)
Ctrl+更新ボタン:(γ)
(2)Webサイトを表示するたびに確認する
リンククリック:(β)
更新ボタン:(β)
Ctrl+更新ボタン:(γ)
Firefox2.0 の設定・・・する場所はない?
リンククリック:(α)
更新ボタン:(β)
Ctrl+更新ボタン:(γ)
各ファイルのソースは次のレスで。
0830nobodyさん
2006/12/04(月) 20:57:31ID:Tc134QUMimage.php
<?php
$pastTimeString = gmdate(DATE_RFC1123, mktime(10, 10, 10, 10, 11, 2006));
header("Last-Modified: $pastTimeString");
header('Content-Type: image/jpeg');
readfile('./topimage.jpeg');
?>
test1.html
<html><head><title>test1</title></head><body>
<a href="test2.html">test2</a>
<img src="./image.php">
<img src="./image.php?hoge=1">
</body></html>
test2.html
<html><head><title>test2</title></head><body>
<a href="test1.html">test1</a>
<img src="./image.php">
<img src="./image.php?hoge=2">
</body></html>
0832nobodyさん
2006/12/04(月) 21:06:03ID:Tc134QUM[R]を付けるのと付けないのがあるでしょ。
0833nobodyさん
2006/12/04(月) 21:29:01ID:???要するに>>738はContent-TypeとContent-Lengthだけで
Last-Modifiedヘッダを吐いてないならキャッシュされるわけないだろトンマ。
って話?
0834nobodyさん
2006/12/04(月) 21:36:43ID:voLSDiiKつ http://sb.xrea.com/showthread.php?t=11414
0835nobodyさん
2006/12/04(月) 21:43:29ID:Tc134QUMさあ。。。>>763の通り、Last-Modifiedつけても駄目らしいですけどね。
キャッシュ関係はいい加減ウザイからキャッシュさせるのを再現する方法を>>829-830に掲載しただけ。
0836nobodyさん
2006/12/04(月) 22:01:52ID:???0837nobodyさん
2006/12/04(月) 22:17:00ID:???Last-Modifiedを吐いてもキャッシュされないから問題になってんだろトンマ。
>>835
どうでもいいけどお前のコードで試すと
Last-Modified: WedAMGMTE_ROctoberC1123 などとおかしな値になるぞ。
>>836
バカかお前は。すでに一連の議論の中で必要なコードは出尽くしてるだろ。
0838nobodyさん
2006/12/04(月) 22:21:05ID:Tc134QUM1段落目
キャッシュされてるかどうかを判断する方法手順が間違ってるんだよきっと
2段落目
DATE_RFC1123 定数はPHP5.1.1以降だって。
>>809みて初めて知ったから試したのがまずかった。
"D, d M Y H:i:s \G\M\T" でいいんじゃね?
0839nobodyさん
2006/12/04(月) 22:36:46ID:???0840nobodyさん
2006/12/05(火) 00:47:18ID:???>キャッシュされてるかどうかを判断する方法手順が間違ってるんだよ
だから間違ってないってば。この話のレスの流れを全部読んだかい??
きちんとHTTP通信をキャプチャして、ブラウザのリクエストとか
サーバの応答コードとか全部チェックしてるんだから間違いようがない。
0841nobodyさん
2006/12/05(火) 01:29:40ID:???for($i=0;$i<count($hairetu);$i++){
echo "$hairetu[$i]"."<br>";
}
のようにして配列内のデータを表示しますが、
フォーム登録時のinputに<input type="checkbox" name="hairetu[]">
というようにしている場合、上記のソース上に$hairetu=$_POST["hairetu];
みたいな記述は必要ないのでしょうか?(ちなみにこの書き方ではエラーなりますが・・
0842nobodyさん
2006/12/05(火) 01:39:19ID:???$hairetu = $_POST["hairetu"];がいる
一回変数に入れなおすのもいいけど
for($i=0;$i<count($_POST["hairetu"]);$i++){
echo $_POST["hairetu"][$i]."<br>";
}
こういうのもできるよ
あとcountはループの条件評価で使わないほうがいいかも
ループする前に変数に入れるとか初期値として使うなら全然いい
0844nobodyさん
2006/12/05(火) 02:54:31ID:???ループでcount使わない方がいいの?なんで?
>>843
コード間違ってるだけじゃない。Arrayになってるならprint_rぐらいしてみたら?
php.netを見ても最新のバージョンしか置いて無いようです。
どなたかPHPの最新バージョン以外を置いてある所って
ご存知ありませんか?
0848nobodyさん
2006/12/05(火) 11:19:41ID:???どこを探したんだ
http://us2.php.net/get/php-5.1.6-Win32.zip/from/a/mirror
0850nobodyさん
2006/12/05(火) 11:30:40ID:???countっていう関数名だからって、第2引数を指定しない限りは、本当に1個1個カウントするわけじゃないよ。
気にしなくておk。
0851841
2006/12/05(火) 12:41:29ID:???だいぶ遅くなってすみません・・。
print_rももちろんしているのですが、なぜかAとかArrayとかでます。
こちらのテスト環境ではregister_globalsをOnにしてるからかな?とも
思いましたが、ググっても理由が分かりません。
ちなみにcountの箇所をcount($hairetu)にすると問題なく処理されます。
0852841
2006/12/05(火) 12:46:09ID:???登録フォームで配列の箇所は別ファイルにしているからだろうか、、、
関係ないと思いますが、色々調べてみます。お騒がせしました。
0854nobodyさん
2006/12/05(火) 13:57:45ID:nXBCkDsb0856a
2006/12/05(火) 16:41:58ID:s1tJ/lxX0857nobodyさん
2006/12/05(火) 16:46:03ID:???0859nobodyさん
2006/12/05(火) 16:50:12ID:???何言ってんだ。
サーバの原理はみんな一緒だ。
クライアントから何らかの要求を受けたら、何らかの答えを返す。
サーバってのはそういうもの。
0861nobodyさん
2006/12/05(火) 16:52:35ID:???WebサーバはWebページの要求を受けたら送信する。
原理はどちらも同じ。受ける要求や返す内容が違うだけ。
0863nobodyさん
2006/12/05(火) 16:53:29ID:???0864nobodyさん
2006/12/05(火) 16:55:13ID:???>>861をよく読め。
サービスってのは、サーバというハードやソフトが供給する仕事を指す。
だからサーバとサービスは密接不可分。
0865nobodyさん
2006/12/05(火) 17:08:41ID:???サーバーが中でやってる仕事はWebとメールじゃ随分違うのでは。
>>861
> メールサーバはメール送受信の要求を受けたら実行する。
ここで「何を実行するのか」が論点なんじゃないの?
0866nobodyさん
2006/12/05(火) 17:25:19ID:nXBCkDsb知識自慢は余所でやれ!
0867nobodyさん
2006/12/05(火) 17:34:53ID:???0868nobodyさん
2006/12/05(火) 17:38:14ID:???お前は「原理」という言葉を辞書で100回ほど調べるといいだろう。
>>866
「知識自慢」じゃなくて、単なる質問への回答でしかない。
そしてそれを「自慢」と感じるのは、お前が無教養なバカだから。
0869nobodyさん
2006/12/05(火) 17:40:26ID:???0870nobodyさん
2006/12/05(火) 17:47:30ID:???0872nobodyさん
2006/12/05(火) 18:39:24ID:???$hoge = preg_replece('/<(script)>/i', '<\1>', $hoge);
0874nobodyさん
2006/12/05(火) 19:12:42ID:???とりあえず落ち着けよ
0878ura. ntkngw286002.kngw.nt.ftth.ppp.infoweb.ne.jp.2ch.com
2006/12/05(火) 20:41:09ID:???0879age
2006/12/05(火) 20:45:32ID:nt4HnWjk0880nobodyさん
2006/12/05(火) 20:48:14ID:???ここはいかが?
http://oku.edu.mie-u.ac.jp/~okumura/php/env.php
0881nobodyさん
2006/12/05(火) 21:36:56ID:GzZh5Paf無意味にクエリ文字つけるのはよろしくないですか?
0883nobodyさん
2006/12/05(火) 23:04:41ID:???FTP上のものをブラウザからダウンロード可能にしようと思った場合、
セキュリティ上の脆弱性は問題ないでしょうか?
例えば、ダウンロードさせるようのHTTPヘッダを表示して、
その後、ユーザ任意のファイルを表示(出力)させることになるのですが、
この段階で、ファイルの内容によって脆弱性が発生することは
あるのでしょうか?
通常であれば、PHP上で任意のファイルを出力させるのは危険極まり無いですが、
ヘッダー出力後なので問題ないのかなと思ってます・・・。
間違ってますでしょうか?
0884nobodyさん
2006/12/05(火) 23:15:30ID:???0886nobodyさん
2006/12/05(火) 23:43:19ID:???脆弱性云々がブラウザ上でのXSSだけを指してるんなら
特に問題はないんじゃない?
そんなの言い出したら世間のダウンロードサイトは
全部セキュリティがやばいことになってしまう。FTP関係ない。
0887nobodyさん
2006/12/05(火) 23:46:33ID:???カテゴリごとにファイルを分けて必要な時にrequireやincludeで読み込むのと
1つのファイルでfunctionによって分けるのと、どちらが汎用性や処理の面で
良いのでしょうか?
0888nobodyさん
2006/12/05(火) 23:51:38ID:???>>886
ブラウザが仕様通りの動作をしてくれれば問題無い。
だけど、IE6 (SP2で多少改善されたがIE6SP1からアップグレードした人は設定が自動では書き換わらなかったような) だと、
HTTPヘッダを無視して内容で判断されるから、scriptを含めたhtmlファイルをアップされたらブラウザ上でそのドメインとしてのスクリプトが実行されちゃう。
これはブラウザの欠陥、というか脆弱性だが、そういう脆弱なIEを配慮するなら、
ユーザに任意のファイルをアップロードさせる、つまり、アップローダーをやるならば、
捨てドメインを使うべき。
間違っても、Cookieでセッション管理しているドメインでやっちゃ駄目。
あ、あと Cookie 使っているなら httpOnly 属性を使えばXSSによるCookieの漏洩は抑制できる。ただし、完全ではないし、
XSSにはCookie漏洩以外の問題もある。
0889nobodyさん
2006/12/05(火) 23:57:44ID:???>ヘッダー出力後なので問題ないのかなと思ってます・・・。
ってことはヘッダー出力前にファイルを出力する方法があるってことだろ
だから、それは何ですか、と。
0890nobodyさん
2006/12/06(水) 00:09:15ID:???が、うまくいきません。(置換されていない)
テーブル:A
word word1 word2 word3
果物 フルーツ fruit くだもの
上のようなテーブルがあり、PHPからクエリを投げて、word1,word2,word3の
いずれかにヒットしたときは、変数に格納されている語句をwordに変換したい
のですが。。。
$phrase="fruit";
$select=<<<EOM
SELECT * FROM A WHERE word='{$phrase}' OR word1='{$phrase}'OR・・;
EOM;
$sel_query = sqlite_query($db_open,$select);
$rows = sqlite_num_rows($sel_query);
$query_array = sqlite_fetch_array($sel_query,SQLITE_NUM );
//ヒットしたレコードがあったら、そのレコードのwordフィールドの語句に置換
if($rows == 1){
$word_replace = str_replace("$phrase","$query_array[0]",$phrase);
}
0891nobodyさん
2006/12/06(水) 00:13:38ID:???>HTTPヘッダを無視して内容で判断されるから
それって、IEはContent-TypeやContent-Dispositionまで無視して、「ファイルの内容」からHTMLを判別(推測)してるってこと?
そんな無茶な・・・
0892nobodyさん
2006/12/06(水) 00:15:08ID:???どっかの坊さんが言ってたな。
プログラムするときって知恵が重要だよねー。
0893nobodyさん
2006/12/06(水) 00:28:19ID:???(スクリプトの処理による)Octet-Stream指定でのヘッダ出力後、って意味でしょ。
任意ヘッダ出力前のファイル出力=自動ヘッダ出力=text/html指定。
Octet-Streamにしとけばユーザが自ら「表示」を選択しない限り
ブラウザで表示されることはないはずだよね、というのが質問の趣旨かと。
>>888
IEの「内容で判断」って拡張子での判定だっけ。
0894888
2006/12/06(水) 00:39:08ID:???その通り。
実験してみれば分かるよ。
IE6 on Windows 2000 や IE6 SP1 on Windows XP だとそうなる。
image/gif 返しても、中身HTMLだとHTMLとして処理される。
もじら組みとかにも載ってるよ。
0895888
2006/12/06(水) 00:40:01ID:???IE6SP2の、拡張子によって判断する、ってオプションの拡張子はMIMEタイプを示す。
(MSの表記が問題あって分かりにくいけど。)
なので、これがONになっているIE6 SP2 なら問題なし。
0896nobodyさん
2006/12/06(水) 00:49:35ID:???Content-type: application/octet-streamやContent-disposition: attachmentまで無視されるとしたら、かなりやっかりだな。
IE6SP1以前の「内容がHTML」ってのが、いったいどのように判定されているのかわからないと対処しようがないね。
圧縮してダウンロードさせるしか安全な方法はないのか。
もしくは、ファイルの1バイト目が「<」だった場合だけ圧縮するとか。
0897nobodyさん
2006/12/06(水) 02:58:24ID:???いくらでも抜け穴のある対策法だなww
0898867
2006/12/06(水) 03:19:43ID:EpXwEc8l0899nobodyさん
2006/12/06(水) 04:21:36ID:???Apr 05 2005
↑
をタイムスタンプや
4月5日01:00
4月5日2005
とかに簡単に直す方法ってありますか?
今はちまちまとif文使って、Aprの場合は4、Aug の場合は8、とか
ありえないことやってるんですが・・・。
0900nobodyさん
2006/12/06(水) 05:04:57ID:???前者は年を挿入してやらないと無理っぽいが、後者なら
$unixtime = strtotime("Apr 05 2005");
echo date("n月j日Y", $unixtime);
でできる。
前者も05と01:00の間に date(" Y ") を挿入してやれば変換可能。
0901nobodyさん
2006/12/06(水) 05:09:55ID:???872のを直して
$html = preg_replace('/<(script[^>]*)>/i', '<\1>', $html);
でいいんじゃないの?
0902nobodyさん
2006/12/06(水) 05:10:38ID:???$html = preg_replace('/<(script[^>]*)>/i', '<\1>', $html);
か?
0903nobodyさん
2006/12/06(水) 05:19:36ID:???0904903
2006/12/06(水) 05:20:50ID:???恥ずかしや恥ずかしや(ノ∀`)
0905nobodyさん
2006/12/06(水) 11:06:14ID:???firefoxなら前者、IEなら後者。
<script<script type="text/javascript>">
document.write('You are third-class.');
</script>
<script<script type="text/javascript" charset=">">
document.write('You are third-class.');
</script>
0906905
2006/12/06(水) 11:11:34ID:???プログラミングの原則だろ。
質問は下らなくてもいいが、回答まで下らないと話にならない。
0907nobodyさん
2006/12/06(水) 11:46:43ID:0xIGcNVS0908nobodyさん
2006/12/06(水) 12:04:08ID:???>質問スレで運悪く、ろくな答えもよこさない(ry
という嫌味な文面を探して時間を浪費しているところを想像してしまったのはオレだけですか?
0911nobodyさん
2006/12/06(水) 12:41:46ID:???0912452
2006/12/06(水) 12:47:23ID:???0913nobodyさん
2006/12/06(水) 12:49:14ID:???return str_replace(array(908, 909, 910, 912), "", $result);
0915nobodyさん
2006/12/06(水) 13:00:54ID:???次スレからはタイトル変えれ。
0917nobodyさん
2006/12/06(水) 13:04:05ID:???2chに「荒れない」を求めるのは無理
でもまぁ、あえて書き換えるなら
【PHP】荒れない程度に下らねぇ質問はここに書き込みやがれ
0919nobodyさん
2006/12/06(水) 13:09:48ID:???あぁ、そう言えば下らなくないほう(五十歩百歩だったが)が
いつのまにか消えてるな。
「下らねぇ」と「下らなくねぇ」の違いがよくわかんないから
統合しちゃったほうがいいと思うのだが。
0920nobodyさん
2006/12/06(水) 13:25:24ID:???変数を出力する場合printで'. $test .'と出力してて1つだと出力できるのですが
2つの変数を隣り合せで並べて出力するにはどうすればいいんでしょうか
'. $test .' ' . $test2 .'
イメージ的にはこんな感じで出力したいのですが、、
0921nobodyさん
2006/12/06(水) 13:25:53ID:???username
はこれ自身で一語ですか?
classname
は一語になりませんよね。
変数名付けるときに
$filename $fileName
$username $userNmae
$classname $className
のどちらにしようか迷ったんで。
0923nobodyさん
2006/12/06(水) 13:33:40ID:???おまえらそんなこともわからず質問回答してきたんですか?
0924nobodyさん
2006/12/06(水) 13:57:44ID:???0925920
2006/12/06(水) 14:08:38ID:???0927nobodyさん
2006/12/06(水) 14:51:21ID:???いつの間にか??
下らなくない方(旧本スレ)の最後を見れば分かるけど
「次から下らないスレと統合ね」という意見で消え去った。
とっくの昔にここは統合されている。
>>918
それなら本スレが残ってこっちを消せばよかったわけだが、
本スレが「お前らあまりにも下らん!」で荒れまくってたので
今の下らない質問スレ程度の荒れ方ならそれよりは100倍マシ。
とりあえず途中に様々な煽りは入るものの、質問→回答という
流れは本スレよりまともに機能している。
後はみんなで荒らしを無視する大人の対応を心がけるだけだ。
0928nobodyさん
2006/12/06(水) 15:36:12ID:???タイトルを取得する簡単な方法はないでしょうか?
URLはPATH_INFOとかでなんとかなるのですが。
0929nobodyさん
2006/12/06(水) 15:43:57ID:???<?php
ob_start();
?>
元のHTML
<?php
$html = ob_get_contents();
ob_end_flush();
$title = preg_replace('/<title>(.*?)</title>/i', '\1', $html);
?>
ってPHPコードで元々のHTMLを挟むってのはどう?
(挟むのではなく元のHTMLをincludeで読み込むのでもいい)
でも個人的には最初からHTMLのタイトルをPHPで定義しちまえば?と思うが。
どっちにしろそのHTMLにPHPコードが入るんだろ?
0930nobodyさん
2006/12/06(水) 15:45:05ID:???うっかり。
> $title = preg_replace('/<title>(.*?)</title>/i', '\1', $html);
ここは
$title = preg_replace('/<title>(.*?)<\/title>/i', '\1', $html);
にしてくれ。
0931nobodyさん
2006/12/06(水) 15:57:01ID:orxyqHFcそれであなたの模範解答はいつ出てくるんでしょうか?
0932nobodyさん
2006/12/06(水) 16:02:26ID:???お前、そんなの待ってたのかよ。よく見ろよ。
カスにはわかんないだろうが>>906はすでに回答になってるだろ。
scriptだけ確実にはじくなんて無理なんだよ。script以外のタグを
有効にしたいんだったらHTML_BBCodeParserでも使えや。
0933nobodyさん
2006/12/06(水) 16:18:35ID:qPJcEJvW$val1 = "<b>ABC</b></td><td nowrap><b>YYY</b>";
preg_match_all( "/".$pattern."/i" , $val1, $matches);
oreach( $matches[0] as $valo ) {
print $valo . "<br>";
}
PHP5.2にて正規表現を使用します。
上記にてABCとYYYを別々に抜き出したいのですが、
ABCYYYと抜き出されます。
どこが悪いのでしょうか?
0934487
2006/12/06(水) 16:25:50ID:BQeeyZbT$max = mysql_query("selet max(col_1) from table_$t");
echo $max;
というコマンドを打ったのですが、Resource id #4という結果が表示されて,
カラムの中の最大値が表示されません。どうすればいいでしょうか。
0935nobodyさん
2006/12/06(水) 16:27:15ID:???最短マッチの条件じゃないと、可能な限り長い範囲でマッチさせようとするから。
> $pattern = "<b>(.*)<\/b>";
↓
$pattern = "<b>(.*?)<\/b>";
0937nobodyさん
2006/12/06(水) 16:28:38ID:???君はmysql_queryの使い方そのものを勘違いしている。
queryは実行だけ、結果の取得はresultなりfetch。
0938nobodyさん
2006/12/06(水) 16:29:06ID:???$pattern = "{<b>(.*?)</b>}i";
$string = "<b>ABC</b></td><td nowrap><b>YYY</b>";
preg_match_all($pattern , $string, $matches);
print_r($matches[1]);
$matches[1][0]がABC
$matches[1][1]がYYY
これじゃだめなの?
0939nobodyさん
2006/12/06(水) 16:39:20ID:???クライアント側で、毎日決まった時間にそのスクリプトにアクセスして実行するなんて
プログラムでも作るしかないのでしょうか?
0941nobodyさん
2006/12/06(水) 17:06:07ID:???$array2 = ( [0] => Array ( [id] => 001 ) [1] => Array ( [id] => 003 ));
この二つを較べて、結果を
$array3 = ( [0] => Array ( [id] => 001 [name] => hoge1 ) [1] => Array ( [id] => 003 [name] => hoge3 ));
こうしたいのです… array_mergeを使用して、やってみてるのですが上手く行きません (涙)
少しだけヒントお願いします;;
0942nobodyさん
2006/12/06(水) 17:06:43ID:???echo $title;してみたのですが、<title>と</title>が消えただけの
HTML全部が表示されてしまいます。
0944nobodyさん
2006/12/06(水) 17:08:32ID:???すまん
$title = preg_replace('/.*<title>(.*?)<\/title>.*/i', '\1', $html);
0945nobodyさん
2006/12/06(水) 17:15:26ID:???馬鹿の一つ覚えみたいに正規表現を使うやつがいるが、HTMLの解析にはtidyのよ
うな専用の関数がある。
tidyのマニュアルに目を通しておくと後々役に立つ。
0946nobodyさん
2006/12/06(水) 17:16:22ID:???既存のスクリプトやシステムはありますか?
単なるアンケートスクリプトは大量にありますが、プログラムの知識がなくても
管理者が自由に編集できる完全モジュール化スクリプトってあまり知らないので。
http://www.databasebank.com/svc_ankete.php
これがそんな感じかなと思ったのですがサンプルは見れず。
0947nobodyさん
2006/12/06(水) 17:21:23ID:???たかがタイトル取得にtidyなんて糞重いもの持ち出すのは
すりむき傷をレーザーメス使って手術するようなもん。
0948nobodyさん
2006/12/06(水) 17:25:08ID:???>>944
どーでもいいことだが、値の取得にreplaceは普通使わない。
0949nobodyさん
2006/12/06(水) 17:30:13ID:???普通の正規表現だとHTMLコメント中にtitleタグあったらこけるとかがあるから、
HTML記述が一定しない外部サイトのHTMLからのtitle取得とかなら
tidyとか使った方が確実だろうし、tidyを使わなくても重くなるだろうね。
自分のサイトのHTML相手にそこまでやるのはさすがに自爆行為だと思うけど。
0950948
2006/12/06(水) 17:33:40ID:???だよね。正規表現は便利だけど、セマンティクス
に基づかないケースが多いから使い方を間違える
とちょっと危ない。
まぁ、ケースバイケースってやつか。
0951nobodyさん
2006/12/06(水) 17:42:08ID:???0952nobodyさん
2006/12/06(水) 17:42:21ID:???0953nobodyさん
2006/12/06(水) 17:44:49ID:???0954nobodyさん
2006/12/06(水) 19:25:34ID:???最近フレームワークを使うようになったんですが、
重いとは思わないまでも
何かつっかかる感じがしますね。
0956941
2006/12/06(水) 19:52:26ID:???>943
すみません、IDが比較対象です。
$array1がselect * from で引っ張った全データで、$array2は絞込み検索の結果だと思ってください。
$array1と$array2で、$array1にしかないIDを削って、共通のIDがある場合は、そのまま残すと、考えておりました。
配列構造が違うと、array_diffも使えず、困っておりました;;
説明足らず失礼しました;;
0957nobodyさん
2006/12/06(水) 20:27:27ID:???そんな複雑な条件を関数一発でできるとは思わない方が…
条件で取捨選択するなら素直にロジック書いた方がいいよ。
$array3 = array();
$idlist = array();
foreach($array2 as $id) $idlist[] = $id['id'];
foreach($array1 as $data) if(in_array($data['id'], $idlist)) $array3[] = $data;
とかいう感じ?
しかし意味分からんのが、$array2が絞り込み検索の結果なら、
そもそも絞り込み検索で$array1を取得すればいいんじゃないの?
何故わざわざ2段階に分けてPHPで苦労する?
select id,name from table where 絞り込み条件;
でいいじゃん。
0959nobodyさん
2006/12/07(木) 01:17:48ID:???元のファイルを削除するという考え方で良いのでしょうか?
それとも直接移動出来るのでしょうか?
0961960
2006/12/07(木) 01:34:36ID:???rename()はファイル名の変更ではないのでしょうか?
ファイルそのものの場所(ディレクトリ)を移動出来るのですか?
0963959
2006/12/07(木) 01:36:01ID:???>>962
そうですか・・・手持ちのリファレンスには書いてないので、もう少し調べてみます。
0964nobodyさん
2006/12/07(木) 01:41:14ID:???本家マニュアルも常に確認するようにした方がええよ。
市販リファレンスはあくまで(内容が薄い分読みやすいだけの)補助的なものと割り切るべし。
ttp://www.php.net/manual/ja/function.rename.php
ここの例1にあるようにrenameは「ディレクトリを含めた」ファイル名の変更ができる。
0965nobodyさん
2006/12/07(木) 12:25:40ID:4ce7Ud5Iこういう文字列の濁点・半濁点を合体させたいのですが、どのようにすれば良いのでしょうか?
0967nobodyさん
2006/12/07(木) 14:36:15ID:9CmtFee0現在以下のような画面遷移でフォームを作っています。
入力→確認(or必須エラー)→送信完了
input name="file" type="file" でファイルを選ぶんですが、入力画面から確認画面に遷移
した時にテンポラリファイルとして保管されますよね?
で、確認して実際に送信する際にはリクエストが一度終わってしまうので、削除されてしまっているようなんです。
なので、確認画面に遷移する際にテンポラリファイルをリネームし、
削除されないようにして、その後送信を押すと、リネームしたファイルをメールに添付し、サーバ内のファイルを削除するような仕組みにしたんですが、
こうすると、確認画面から入力へ戻ったりそこでブラウザを閉じてしまった際に削除されません。
実際のところ、添付ファイルの送信ができるメールフォームで、確認画面を出すのは難しいのでしょうか?
長文で申し訳ございませんが、わかる方ヒント頂けると嬉しいです。
0968nobodyさん
2006/12/07(木) 15:22:39ID:???意外と面倒くさいよ、それ。
手法としては
1.アップロードファイルをファイルに保存しないでhiddenで持ち回す
メールに添付するもの=それほど大きなファイルではない=サイズを制限する
という扱いができるならこれが簡単。
2.TMPディレクトリを一定期間ごとにゴミ掃除する
各ファイルの更新日付を確認して古いファイルはゴミとみなして削除していく
とかがある。
0969nobodyさん
2006/12/07(木) 15:44:31ID:VdHijTI7洗濯した顧客の情報をCSV形式のファイルで出力しようと思ったのですが、「�梶v「�求vの文字がうまくCSVに
はいってきません。DBの文字コードはutf-8で、出力するときにmb_convert_encodingでSJISに変換し、CSVに
納めています。
どうしてもだめなら「(株)」「(有)」で代用しようと思いますが、以前のDBとの整合の都合上できることなら「�梶v「�求vを
使用したいのです。
どなたかヒントをお願いします。
0971967
2006/12/07(木) 15:54:31ID:???あら、やっぱり簡単な方法ってないんですね。
昨日googleでずっと調べてたんですが、出てこないわけですねぇ。
ありがとうございます。
0972nobodyさん
2006/12/07(木) 16:00:28ID:???セッション使ってファイルデータもセッションに格納してしまえば
hiddenでたらい回すよりは高速にたらい回しできるし
一定時間後のゴミ削除も自動でやってくれるから簡単。
0974969
2006/12/07(木) 16:20:33ID:???無事できました!ありがとうございます。SJIS-winという形式があったのを知りませんでした。
勉強しなおします。
>970
ご指摘ごもっともです。これまでサーバーはWin環境のみでやってきたため無頓着に使ってしまっていました。
今後は徐々に使わない方向にもっていきたいと思います。
ありがとうございます。
0976nobodyさん
2006/12/07(木) 17:02:54ID:???そうなんだよね。
で、一般的な対処法とかあるんですかね。>タブブラウザで同時にアクセス対策
そろそろ次スレ立てますか?
くだらなくないはずの本スレと統合する形で。
0977nobodyさん
2006/12/07(木) 17:33:32ID:???だから>>1から「ここなら本スレで回答のないお前の」って一文も消えたし、
本スレにあった簡易FAQも>>5-6に移動してきたんじゃん。
何も知らないで間抜けなことぬかすな。
0980nobodyさん
2006/12/07(木) 17:53:48ID:???0981967
2006/12/07(木) 17:58:21ID:???セッションってファイルのデータも格納できるんですか。。
全く知りませんでした。
画像ファイルとかの場合、文字列化して格納するってことでしょうか?
0983nobodyさん
2006/12/07(木) 18:12:32ID:???直す必要があったら統合時に本スレ残して下スレを消してるよ。
修正無用。直しちゃったら下らない質問が投下しにくいじゃないか。
0984nobodyさん
2006/12/07(木) 18:16:07ID:G0QKrQPgもっとハードル下げようぜ
0985nobodyさん
2006/12/07(木) 18:18:38ID:Jk+UiVCG$h_URL = htmlspecialchars($URL);
echo "<a href={$h_URL}>{$h_URL}</a>";
って感じにしてるんだけど、
このとき例えば$URLの中身が「http://example.com/?a=1&b=2」とかだったりすると、
「&」がエスケープされちゃって、リンクが正しく機能しなくなります。
こういう場合、正しくエスケープして安全性を保ちつつ、
正常なURLをaタグのhref属性に送り込むには、どうすれば良いんでしょうか?
0986nobodyさん
2006/12/07(木) 18:22:17ID:???っていうか正しいURLならエスケープ要らないししちゃダメだろ。
URLを組み立てる時点で各パーツをurlencode()する。
ユーザ入力とかで信用ならないURLなら、1度 ? と & でパラメータを分解して、
全部urlencodeかませて再構築。
0987nobodyさん
2006/12/07(木) 18:28:24ID:Jk+UiVCG$URLはユーザから渡される値なんです。
やっぱりクエリストリングを分解しないとダメですか・・・
0988979
2006/12/07(木) 18:44:56ID:???超がつくのは
くだすれPHP(超初心者用)
http://pc8.2ch.net/test/read.cgi/php/1150088761/l50
こっちで良くね?
0989nobodyさん
2006/12/07(木) 19:37:48ID:JHpRodpN0991nobodyさん
2006/12/07(木) 20:35:34ID:???例えば
$array=array("あああ","いいい","");
$array_max=count($array); //3が入る
これを空白値を削除してcountした時に「2」と表示したいのです
0994nobodyさん
2006/12/07(木) 21:32:57ID:TE+ffKua0995nobodyさん
2006/12/08(金) 01:45:33ID:???0996nobodyさん
2006/12/08(金) 04:12:22ID:???仕様上はできることになってるらしいけど、バグってるという噂も。
バージョンにもよりそうな気はするから自分で確認してみるといいかも。
参考:
ttp://sandman.s6.xrea.com/nucleus/item-48.html
0997nobodyさん
2006/12/08(金) 04:25:37ID:???【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
関連スレのとこだけちょこっと修正した。これで十分だろ。
0998nobodyさん
2006/12/08(金) 07:47:54ID:???0999nobodyさん
2006/12/08(金) 07:54:17ID:???1000nobodyさん
2006/12/08(金) 08:07:57ID:???i! ゙ヽ、 ,,,..-'"/ ゙i!⌒ヽー-、.,,.-イ''⌒ヽ
l ゝ-─‐-/' i! ヽ、 i, ,ノ
,/" i! .... ゙'';;.. Y"
,/' 〈 :::::. '';;... 'i- 、,,
i' 'i, :::::::: :::: 'i! ゙"ヽ、
i! ー- ,,_ 'i ::::::::: ''':;;; ヽ、 ゙)
'i,::::: ,--、  ̄ ,/ヽ '''' 'i,-‐'"
/⌒ヽ、 i,_,〉 :::::,,-‐ ゝ ............. ヽ、
( ヽ、 ,,.-‐''" ,) ::::::::: '\,
ヽ、,, ノ,.-‐''" ノ-‐''"´( ::::::::::: )
"~ ( ,. -'" ヽ、 _,,... -‐─'''"
ヽ、,,.. -‐'''" ``゙"´~
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。