トップページ⇒php
1001コメント335KB

【PHP】下らねぇ質問はここに書き込みやがれ 33

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2006/11/23(木) 00:27:02ID:???
PHPに関するくだらねぇ質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【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:???
【簡易FAQ】
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:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきは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:???
>>7
つまりタグを使わないって事でしょ?
JavaScriptを上手く使うといけると思う

単純にイメージ出力ならヘッダを指定して出力すればおk
0009nobodyさん2006/11/23(木) 00:58:42ID:???
htmlに記述がないのにどうやってクライアントがリクエストするんだよ
お前のサイトにくるやつはみんなエスパーか!
001072006/11/23(木) 01:03:45ID:???
>>8
表示せずにカウントアップするって事です
JavaScriptは知識がないですが頑張ってみます、ありがとうございました
0011nobodyさん2006/11/23(木) 01:13:19ID:???
結局はJavaScriptが残るから格好悪いのは変わらないと思うんだがどうか。
001272006/11/23(木) 01:15:49ID:???
それもそうですね

となると完全に手詰まりですが
0013nobodyさん2006/11/23(木) 01:17:44ID:???
JavaScriptでソース無しとか一時期やってたけどあんまり意味ないかも
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:???
>>7
ページビュー計測が目的なら別に画像を呼び出さなくてもいいんじゃないの?
そのHTML自身の表示をPHP経由にしてカウントすればいいじゃない。
0017nobodyさん2006/11/23(木) 01:23:45ID:???
>>16
そういう制約があるんだろ
PVなんてログみりゃいい話だし
0018nobodyさん2006/11/23(木) 01:29:42ID:???
>>15
おまえ何かスゲーな
0019nobodyさん2006/11/23(木) 01:30:36ID:???
>>15
> フレームではサイト作成に不利ということで、PHPを使おうと思ったのですが、
SEO的な話?一部の検索エンジンはフレーム内ページの検索も対応しつつあって
近いうちにフレーム=不利という理屈は過去のものになりそうだけど。

> ・調べてみると、PHPをWindowsに導入するだとかがでてきますが、
> これはそもそもなんでしょうか?普通にPHPのページを見ることができるはずなのに…
言ってる意味が分かりません。
WEBサーバーの仕事とWEBクライアント(ブラウザ)の仕事を混同してません?
PHPのインストールが必要なのはサーバー側であって、ページを見るのに使ってるブラウザは関係ない。

> ・今までのhtml拡張子を、.php.htmlと改変すれば、とりあえずphp命令を読む準備はOKですか?
そんな変な拡張子は無いよ。>.php.html
拡張子の設定はPHPインストール後のWEBサーバーの設定によります。
.phpで動かすのが普通だけど、.htmlのままPHPを動かすことも簡単にできます。

> ・PHPとHTMLは基本、共存なのでしょうか?
共存です。HTMLのタグの中に拡張でPHP用のタグが含まれる形になります。

> ・エディタでおすすめがあれば…
君のレベルならどれでもあんまり変わらないのでは…
002072006/11/23(木) 01:31:13ID:???
>>16-17
キャッシュ対策でheaderを使っているので、他にformなどからデータを取得してから戻ろうとすると
有効期限が切れてしまうため、画像カウントにしようかと。サーバはアクセスログを公開してくれません。

>>15
php動作のデフォルト拡張子が.phpだったらそれではダメかと。
.htaccessでAddType application/x-httpd-php .htmlとか指定すれば.htmlでphpを読めます。
002172006/11/23(木) 01:34:27ID:???
>>15
ちなみに、phpをサーバが動かして、その結果をブラウザが読んで表示〜って事になるので、
見る側には勿論、作る側も「phpがOK」とうたっているレンタルサーバなら気にする事はないですね。
ループとか、複雑なのをテストで動かすならいきなり上げるのはどうかと思いますが。
0022152006/11/23(木) 01:41:38ID:???
みなさんありがとうございます。
わかりやすいです。
勉強になりました。
鯖側の設定を今までやってたのか…
(゚∀゚)アヒャヒャヒャヒャ
鯖はPHP対応しています。
ということは、拡張子は.phpですか?
しかしフレームの弊害が過去のものになろうとは…
0023nobodyさん2006/11/23(木) 01:43:08ID:???
>>20
そのHTMLを表示するサーバーでPHPは使えるの?
単に
<?php include "PVカウント用PHPプログラム"; ?>
ってHTMLに1行挿入して終わりの気がするんだが。
これなら別にブラウザ上のHTMLソースでは何も無かったように見える。
0024nobodyさん2006/11/23(木) 01:43:52ID:???
>>22
拡張子は標準だと.phpだけど.htmlにすることも可能だってば。よく回答嫁
0025nobodyさん2006/11/23(木) 01:48:12ID:???
>>23
ありがとうございます。
自分の付け焼刃の勉強だと、
例えば左側にメニュー、右側にコンテンツを、
フレームではなくPHPでやりたいとき、
まずテーブルタグをつくり、<Td>ここにPHP命令を入れる</Td>
と理解しているのですが、ウンコですか?
>>24
あ…ごめんなさい。
ありがとうございます。
そのままでおkか…
002672006/11/23(木) 01:48:48ID:???
>>23
それだと、ブラウザがキャッシュから読み込んだ時にカウントされません
それでヘッダを送信しているわけですが、>>20みたいに有効期限が切れてしまう訳です。

>>22
拡張できる拡張子です。.phpだろうと.htmlだろうと何もついてなかろうと動きますよw
SEO的にはフレームで問題がなくなってもHTML的にフレームはイマイチだから、
余程大量の情報を詰め込むのでなければ1ページにまとめる事をお勧めします。
0027nobodyさん2006/11/23(木) 01:52:39ID:???
<?php include("menu.html"); ?>
ネットで調べて拾ったタグです。
これをテーブルタグに埋める、でいいのでしょうか?
しかし、menu.html側のPHP記述はなにもないのですが、大丈夫なのでしょう(;゚ァ.... k?
002872006/11/23(木) 01:53:47ID:???
1.「.htaccessにAddType application/x-httpd-php .phpを動かす拡張子」と記述してアップ。
2.「<p>hogehoge</p>とか書いてtest.htmlでアップ」
3.「<td><?php include("./test.html"); ?></td>とか書いてアップ」
4.「<td><p>hogehoge</p></td> で完成」
って感じです。サーバの設定にもよるけど一般的なのならうまくいくはず。
簡単にまとめたつもりですが、どうでしょう?>>15
002972006/11/23(木) 01:55:14ID:???
includeするファイルはphpでなくても構いません。
CSSを使っていないサイトのindex.htmlをincludeすれば、丸ごとぱくる事も可能です。
無論、やってはいけません。
0030nobodyさん2006/11/23(木) 01:56:57ID:???
>>25
PHPでやらずに最初からそういうレイアウトでHTML書けば?
DreamWeaverとかの高機能HTMLエディタ使えばフレーム部分を
テンプレート化して全ページで取り込むのも簡単にできるよ。
0031nobodyさん2006/11/23(木) 02:03:25ID:???
それはクライアントサイドのonloadイベントじゃん
CS間のキャッシュバリデーションとブラウザの戻るは関係ないんだし
0032nobodyさん2006/11/23(木) 02:04:17ID:???
>>28
ありがとうございます。
この場合、私の考えるところのMENUがtest.htmlですよね?
で、3のファイルにそれが埋め込まれると。
しかし4でつまずきました。どこにどう4を適用させるのか…

>>30
ありがとうございます。
その場合、フレームによる弊害は解消されるでしょうか?
003372006/11/23(木) 02:11:40ID:???
>>31
むー、関係ないんでしょうか?
私の解釈に最初から間違いがあったのかもしれません、サーバが返しているのかと思っていました。
結局この点への対策はありませんか?

>>32
そうですー。
3を表示すると、サーバ側が4を返してきて、ブラウザが4を読み込む事になると思うのですが。
3を表示するとどうなるんでしょ?
0034nobodyさん2006/11/23(木) 02:14:27ID:???
>>33
ありがとうございます。
う〜ん、なにも移らないですorz
もう少し勉強してみます。
0035nobodyさん2006/11/23(木) 02:17:46ID:???
>>28
そもそも1がもう怪しいです。
メモ帳に、AddType application/x-httpd-php .phpを動かす拡張子
と書いた後、XXX.htaccessとリネームして鯖にアップ…ですよね?
0036nobodyさん2006/11/23(木) 02:22:11ID:???
>>35
違う。.htaccessってのは拡張子じゃなくてそういう名前のファイル。
ちなみにWindows上では作れない。(いや、裏技はあるけど)

サーバー上で直接作るか、「htaccess.txt」とかの名前のファイルを
アップロード後に.htaccessという名前にリネームするとかでできる。
0037nobodyさん2006/11/23(木) 02:24:27ID:???
>>>「htaccess.txt」とかの名前のファイルを
orzorzorz
なんか本当みなさん丁寧に私のようなバカを相手にありがとうございます。
試してみます!
0038302006/11/23(木) 02:24:51ID:???
>>32
フレーム使わないHTMLを書けばいいじゃん、って話なんだから
フレームの弊害なんてあるわけないじゃん。
困ってるのはフレームを使わないと同じメニューを全ページに貼り付ける手間が大変、ってだけなんだろ?
そのくらいのことはDWとかのエディタが肩代わりしてくれるよ。

しかしその程度の知識とスキルの人がSEOなんて気にしても始まらないと思うぞ。
0039nobodyさん2006/11/23(木) 02:28:45ID:???
>>38
そうですか…
そっち方面もあたってみます。
ありがとうございました!
0040nobodyさん2006/11/23(木) 02:30:01ID:???
Dreamweaver 8 日本語版 ¥48,280
004172006/11/23(木) 02:30:20ID:???
XHTML1.1からはStrict相応のDTDしか用意されてないんだし、
これからの(X)HTMLでフレームを排除した方が良いのは確かなんですけどねぇ。
0042nobodyさん2006/11/23(木) 03:49:15ID:???
でもそういうことはもうちょっと全体を理解した上で考えないと、
個別に「これは良くないらしい」でやってても単なるバカですよ。
0043QQQ2006/11/23(木) 07:13:00ID:vr3qLXu2
HTMLファイルとPHPファイルを使ってTXTファイルから特定の文字列を
検索させたいんですが、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:???
$_POST['var']
0045QQQ2006/11/23(木) 07:43:24ID:vr3qLXu2
>>44さん
それはどこについてなのでしょうか??
0046nobodyさん2006/11/23(木) 07:49:38ID:???
>>43
name=varで指定したinputがデフォで$varで取得できたのは昔の話。
今は$varではなく$_GET['var'](GET時)や$_POST['var'](POST時)や
$_REQUEST['var'](どっちでも使える版)という書き方をする。
0047nobodyさん2006/11/23(木) 08:07:53ID:???
つまり要約すると

$var = $REQUEST['var'];

と、一番先頭の行に書いておけばよいということ
0048QQQ2006/11/23(木) 08:16:53ID:vr3qLXu2
でで、できましたぁぁ!!
どーもありがとーございます!
0049nobodyさん2006/11/23(木) 10:09:00ID:???
ついでにstrposはマルチバイト文字対応してないからね。
0050nobodyさん2006/11/23(木) 10:15:18ID:???
$_REQUESTは使わないほうがいい。
面倒がらずに、GETとPOSTをしっかり区別しる。
0051nobodyさん2006/11/23(木) 12:14:12ID:3T4ybzoe
初歩的でスミマセン。

php4とphp5、どっちがオヌヌメなんでせうか?
XREA+だと選べるようなんで迷ってまつ……
0052nobodyさん2006/11/23(木) 12:17:04ID:???
>>51
PHP5
0053nobodyさん2006/11/23(木) 12:51:25ID:???
>>51
鯖が対応しているPHPで最新のもの
0054nobodyさん2006/11/23(木) 12:59:15ID:???
PHP3マジオススメ
0055nobodyさん2006/11/23(木) 13:06:36ID:???
3.47がいいな
0056nobodyさん2006/11/23(木) 14:37:44ID:Ja3fMNWU
htmlファイルもincludeできるよね?
<?include "1.html";?>って感じで。

自分で試したら表示されたけど、特に問題ないよね?
0057nobodyさん2006/11/23(木) 14:38:45ID:???
>>56
ないよ
0058nobodyさん2006/11/23(木) 14:44:56ID:???
>>57
ありがとう。
0059nobodyさん2006/11/23(木) 14:50:16ID:6gP1lOLG
.txtでも.incでもとにかくなんでも読み込め!
0060nobodyさん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で開くしかないのでは?
0062nobodyさん2006/11/23(木) 14:56:12ID:???
>>60

fopen($test . ".txt")
0063nobodyさん2006/11/23(木) 15:27:48ID:???
Linux + Apache + PosgreSQL + php でやってた Web を故あって
Windows2003 Server + Apache + SQL-Server + php でやる羽目に
なってしまった。

で、移植しててはたと困ったのが、新規のレコードを挿入した時に
挿入したばかりのレコードが特定できない。

PostgreSQL の時は、pg_last_oid で挿入しレコードを特定できた
のだけど、SQL-Server には該当の機能がなさげ。

登録画面で登録された情報を元に、こんな風に登録されましたと
表示するなんてことはありがちだと思うけど、SQL-Server + php
の人はどうやってるんでしょうか?
0064nobodyさん2006/11/23(木) 15:36:43ID:J3FVLRFg
>62,63
ありがとうございました
あともうひとつ
テキストファイルに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:???
abc.txtの中身を晒してくれ
0066nobodyさん2006/11/23(木) 15:41:35ID:???
$file = fopen(abc.txt','r');
$array = array();
for($i=0;$i<10;$i++){
$number = fgetc($file);
$array[] = $number;
}
print_r($array);
0067nobodyさん2006/11/23(木) 15:43:22ID:I5R9DF47
データベース名:A  テーブル名:ABC レコード:phrase1,phrase2,phrase3,phrase4
として、

テーブルにレコードを新たに加える際に、
1・既に格納されているレコードと1つでも共通項があった場合、既に格納されて
  いるレコードに統合したい。
2.レコードを統合する際に、共通項のあったレコードに差分をプラスする。

共通項があれば統合、なければ新たに格納ということで、PHPも必要だと思いまして。
しかし、これをどのように記述すれば良いのか分からなくて。。。
どうかお教え願えないでしょうか?
0068nobodyさん2006/11/23(木) 15:48:34ID:???
>>67
データベースの話だと思うけどphrase1にプライマリを設定しておいてインサートで失敗したら
アップグレードすれば良いんじゃね?
0069nobodyさん2006/11/23(木) 15:55:41ID:rtAYuH71
>62,63
ありがとうございました
あともうひとつ
テキストファイルに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+Ub
↑ごめんなさい、間違いました
abc.txtの内容は1231231231
と数字並べてあるだけです
66さんありがとう
0071672006/11/23(木) 16:12:59ID:I5R9DF47
phrase1,phrase2,phrase3,phrase4 はレコードでなく、フィールドでした。
>>68
フィールドでなく、テーブルの全ての要素が一意のものでなければ
いけないので。。。
0072512006/11/23(木) 17:24:58ID:???
>>52>>53>>54>>55
ありがとうございます。PHP3はないのでPHP5でやってみます。
0073nobodyさん2006/11/23(木) 17:57:15ID:???
PHP勉強すれば彼女ができるんだ!
0074nobodyさん2006/11/23(木) 18:52:04ID:???
10つ ←これなんて読むの?じゅっつ?
0075nobodyさん2006/11/23(木) 19:23:21ID:???
つ旦
0076nobodyさん2006/11/23(木) 19:25:28ID:???
「ですよ♪」
0077nobodyさん2006/11/23(木) 19:28:02ID:jopFxTUo
配列で$2ch[0] $2ch[1] $2ch[2]とかやらないで
読み込んだ全部の配列を単語として出すにはどうすればいいですか?
0078nobodyさん2006/11/23(木) 19:34:37ID:???
>>77
は? 何を言っているんだ?
0079nobodyさん2006/11/23(木) 19:37:54ID:???
joinでくっ付けてみたら?
0080nobodyさん2006/11/23(木) 19:44:52ID:jopFxTUo
$2ch[0-10]

みたいなのありませんか?
0081nobodyさん2006/11/23(木) 19:47:05ID:???
つimplode
0082nobodyさん2006/11/23(木) 19:54:57ID:???
>>78
>>79
>>81
レスありがとうございます。
implode 使ってみたんですが、たとえば、文字列をエンコードする場合
個別に切り取ってからじゃないと出来ないみたいなんですがなんでですか
0083nobodyさん2006/11/23(木) 19:57:22ID:???
>>82
>implode 使ってみたんですが、たとえば、文字列をエンコードする場合
>個別に切り取ってからじゃないと出来ないみたいなんですがなんでですか

何のエンコードかな?。文字コードなら長い文章のままエンコできますよ。
0084nobodyさん2006/11/23(木) 20:41:33ID:???
20061123194606こういう文字列を

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:???
>>84
$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";
0086nobodyさん2006/11/23(木) 20:54:41ID:???
>>84-85
1時を01時とか常に桁数を合わせてくれるなら、sscanfで一発で分解→再結合でよくね?
0087nobodyさん2006/11/23(木) 20:54:46ID:6gP1lOLG
>>77
例えかもしれんが変数名の始めに数字は使えないんじゃなかった?配列はいいんだっけ?
0088nobodyさん2006/11/23(木) 21:04:18ID:???
>>87
ムリ
0089nobodyさん2006/11/23(木) 21:05:50ID:???
>85
うまくいきました。ありがとうございました。
>86
sscanfも調べてみます。

どうもでした。
0090nobodyさん2006/11/23(木) 21:17:27ID:???
>>85
そんなめんどくさいことしないで

DATE_ 使えばいいよ  PHP 5.1.1 以降ね
0091nobodyさん2006/11/23(木) 21:29:59ID:???
ちょっとありえないコードだな
0092nobodyさん2006/11/23(木) 22:21:16ID:???
85には感動した。
石器人だ。
0093nobodyさん2006/11/23(木) 22:22:39ID:???
$t = '20061123194606';
echo preg_replace('/(....)(..)(..)(..)(..)(..)/', '\1-\2-\3 \4:\5:\6', $t);

こういうのはどう
0094nobodyさん2006/11/23(木) 22:50:15ID:???
<ひとりごと>
Smarty使っていたら、便利な修正子が沢山用意されていると思っていたんですYo!
そしたらSo!!

自分で関数を定義してやらなきゃならないんですねぇ……。
</ひとりごと>
0095nobodyさん2006/11/23(木) 23:00:34ID:???
>>94
<チラ裏>
むしろ自分で追加できる柔軟性に感動せよ。
</チラ裏>
0096nobodyさん2006/11/24(金) 00:17:41ID:???
PHPで作成されたアップローダを探しているのですが
日本語ファイル名を扱えるやつを教えてください。
できれば AutoIndex みたいなのが希望っす。

0097nobodyさん2006/11/24(金) 00:24:12ID:???
知らんけどAutoIndexとやらを日本語ファイル名に対応させるのはそんなに難しいの?
0098nobodyさん2006/11/24(金) 00:26:46ID:???
どっちかっつーとその日本語はSJISなのかEUC-JPなのか、
その上でそのアップローダはどのOS上で動かすつもりなのか、
が重要なんじゃあるまいか?
0099962006/11/24(金) 00:46:58ID:???
>>97
スキルないっす。
アップロードした時点で、フォルダを除くと文字化けしているんで
move_uploaded_file のところで mb_convert_encoding をしてみたん
うまくいきませんでした。
(ファイル保存時は文字化けしなくなりましたが)

>>98
そうですね。環境を晒していませんでした。
アップローダ&サーバ(Apache)共に Win2000 です。のでファイル名は
SJIS になるかと。。

0100nobodyさん2006/11/24(金) 00:52:22ID:???
PHPで作成された日本語ファイル名を扱えるアップローダなんてごまんとあると思うけど
0101nobodyさん2006/11/24(金) 00:53:56ID:???
【CGI】こんなCGI探してますver.21
http://pc8.2ch.net/test/read.cgi/hp/1154177468/

まあポログラミングしないとなると板違いなんで向こうでどうぞ
0102962006/11/24(金) 00:58:22ID:???
たしかに板違いですね。
情報ありがとうございます。
0103nobodyさん2006/11/24(金) 01:03:39ID:???
>>101
そのスレの存在意義ってテンプレだけだよな
0104nobodyさん2006/11/24(金) 02:14:25ID:yAUAJcwD
当方開発環境はWindows上でPHP5.2.0使用。
PHPUnit2を使いユニットテストを組みながら開発しています。
Singletonなクラスを作成したのですが、そのユニットテストを行おうとしたところ、
インスタンスが共有されているため独立したテストが行えずテストが上手く行えません。
そこで、インスタンスを記録しているprivateなstatic変数をTestCaseからtearDownで
初期化したいのですが、アクセス権を無視して書き換える手段はありますでしょうか。

クラス/オブジェクト辺りの関数やリフレクションを漁っては見たのですが、特にリフレクションには
> 注意: privateまたはprotectedクラスプロパティの値の取得または設定を 行うと、例外がスローされます。
とまで書かれてしまっており...

複数人で開発しているわけでもありませんので、publicにしてしまうなり、
テストを行う際だけ書き換えるなりしてもさほど問題はありませんが、
何か良い方法をご存知でしたらよろしくお願いします。
0105nobodyさん2006/11/24(金) 02:17:41ID:3W6tCrEf
>>83
↓こんなかんじでやってみたのですがエラーでます
$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:???
>>104
Runkitでテスト時のみのイニシャライザをくっつけるとか?
なんか他にいい方法がありそうな気もするけどよくわかんねっす

>>105
mb_conv...の第一引数は文字列 http://jp2.php.net/mb_convert_encoding
0107nobodyさん2006/11/24(金) 02:36:42ID:C3XLERtZ
$obj =& new HogeClass;
というようにnewを参照で受け取ることの意味や有用性って、
どんなことがありますか?
0108nobodyさん2006/11/24(金) 02:55:57ID:3W6tCrEf
>>106
どうもありがとうございます。
連想配列とかいうのでやってみたらエンコできました。
0109前スレ9822006/11/24(金) 03:05:01ID:???
亀レスですみません!
前板982で質問した者です。

■質問した内容↓
質問します!
windowsでPHPを使用しているのですが、
ローカル環境で
<? include("../home/httpd/html/template/top.html"); ?>
の相対パスを
<? include("/home/httpd/html/template/top.html"); ?>
に変えて表示する事ってできるのでしょうか?

windows環境で、includeするファイル指定を相対パスを絶対パスに
変えて表示する事はできるのでしょうか?という質問でした。
意味不明ですません;;
0110nobodyさん2006/11/24(金) 03:09:39ID:???
>>107
ないね
0111nobodyさん2006/11/24(金) 03:10:05ID:???
>>109
どういうフォルダ構成になってるか分からないので何とも言えないが、
普通に考えたら
../home/httpd/html/template/top.html
と
/home/httpd/html/template/top.html
は絶対に同じ場所を指さないと思うんだが…となれば別のファイルが表示されるだけかと。
それは相対パスを絶対パスにしたとは言わないだろう。別の場所を指定してるんだから。
そもそも相対パスと絶対パスってどういうものなのか分かってて言ってる?

そもそも何でそんなことしたくなったのか分からないと回答は難しいよ。
「別のファイルを表示しても同じように表示されますか?」という質問にしか聞こえない。
0112nobodyさん2006/11/24(金) 03:14:26ID:???
>>111
カレントが第二階層にあるなら ../ と / は同じになるじゃないかな
とするとWindowsでドライブレターを省略した絶対パスが有効かという質問かなあと思うけど
わざわざ聞くようなことでもないしなあ謎だわ
01131042006/11/24(金) 03:15:15ID:yAUAJcwD
>>106
おお、素晴らしい。
__autoload('SingletonClass');
echo runkit_method_add('SingletonClass', 'initializesingleton', '',
    'self::$instance = null;',
    RUNKIT_ACC_PUBLIC
);
...
protected function tearDown()
{
    SingletonClass::getInstance()->initializeSingleton();
}
といった感じでテスト対象のファイルを弄ることなく初期化することが出来ました。
# 作成するメソッド名に大文字を混ぜてしまって一時嵌りましたが
どうもありがとうございました。
0114前スレ9822006/11/24(金) 03:36:06ID:???
documentrootを例えばE:\abc\にしてまして、
その後に続くのがそのディレクトリなんです。
なので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:???
httpdのドキュメントルートはファイルシステムのパスとは関係なし

ハードコーディングせず、パスは定数にしておけば多少楽になるだろう
プラットフォームはPHP_OSで取得できるから自動でパスを切り替えるようなこともできるし
01174392006/11/24(金) 04:00:22ID:???
「htmlspecialchars」を毎回書くのが大変なので
以下のファンクションでサニタイズしているんですが
普通に「htmlspecialchars」したほうがいいでしょうか?

function outhtml($str) {
 $str = htmlspecialchars($str);
 return $str;
}
0118nobodyさん2006/11/24(金) 04:02:46ID:???
普通にってなんじゃ
0119nobodyさん2006/11/24(金) 04:07:07ID:???
普通にってゆうとろうが
01204392006/11/24(金) 04:12:46ID:???
>>118
分かりにくくってすみません。
スピード的にはあまり大差なかった(私の感覚で)のですが
保守やこの業界の普通というか常識ではあまりやらない手法だ等お教えいただけたらと思っております
0121nobodyさん2006/11/24(金) 04:13:14ID:???
なんで竹原スレになってんだよw
0122nobodyさん2006/11/24(金) 04:41:21ID:???
http://framework.zend.com/manual/ja/coding-standard.coding-style.html#coding-standard.coding-style.functions-and-methods

Zendコーディング規約では、メソッドの引数で値の参照渡しができないようなのですが、
滅多にしないとはいえ、これって結構な制限になりませんか?
0123nobodyさん2006/11/24(金) 04:45:09ID:???
例えば?
0124nobodyさん2006/11/24(金) 04:55:46ID:???
例えば、メソッドの引数を参照で取りたいときに困る。
0125nobodyさん2006/11/24(金) 04:57:13ID:???
引数に値がセットされるなんて、preg_matchとsscanfとfsockopenでお腹いっぱい。
ユーザー定義関数でなんて絶対使いたくないっす。
値を複数返すなら配列で返してlistで受け取るっす。
0126nobodyさん2006/11/24(金) 04:59:23ID:???
>>124
それは普通にできる
122は実行時参照渡しの話でしょ
0127nobodyさん2006/11/24(金) 04:59:47ID:???
>>122
はいはい、君は早とちりしているようだ。
Zendコーディング規約では、メソッドの引数で値の参照渡しを禁じているわけではない。

値の参照渡しは、"関数宣言"においてのみ可能です。
class Foo
{
 public function bar(&$baz) ←関数宣言
 {}
}
注意:"実行時"の参照渡しは禁止されています。
0128nobodyさん2006/11/24(金) 05:17:27ID:???
>>114
あー。仮想のパスと実際のパスの違いが理解できてない上に
サーバー環境とローカル環境を違う状態にして開発してるんだ。
そりゃー面倒だわ。

画像とかHTMLとかのリンクのパスはサーバーの外に対しての指定で
ブラウザが解釈するもの。そしてブラウザの要求をWEBサーバーが
仮想パス→DOCUMENT_ROOTを基準にした実際のパスに変換して
内部では正しいフルパスで扱われる。
それに対してPHPで使われるincludeのパスってのはPHP自身が
サーバー内部の仕組みであるため、「最初から実際のパス」で扱われる。

対処方法としては、よくやる手法ではPHP内部でのディレクトリ指定を
DEFINEまたは変数での定義にしてしまって、定義ファイルの差し替えで
簡単に切り替え可能にしてしまう方法。これは汎用性が高い。

ただ、目的が画像みたいにDOCUMENT_ROOT基準にしたいだけなら、
include "$_SERVER[DOCUMENT_ROOT]/template/top.html";
みたいにして、DOCUMENT_ROOTの値を使ってパスを補完しちゃうのもアリだよ。
0129nobodyさん2006/11/24(金) 05:19:11ID:???
>>120
普通何度もタイプするような状況にはならないけど、
まあ面倒ならコード補完できるエディタを使うかな
0130nobodyさん2006/11/24(金) 05:22:05ID:???
>>126 >>127
なるほど、それなら全く平気です。

http://phpspot.org/blog/archives/2006/05/zend_framework_2.html
↑最初にここの22を見て誤解しちゃいました。
0131nobodyさん2006/11/24(金) 05:24:55ID:???
>>120
前に同じようなことしてるらしい書き込みをここか旧本スレの過去スレで見たよ。
でも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:???
HTMLSpecialChars()おすすめ
0135nobodyさん2006/11/24(金) 08:18:37ID:???
htmlSpecialChars()派
0136nobodyさん2006/11/24(金) 09:01:37ID:???
2chには PHP Extension 開発者が集まるようなスレッドはないですか?
0137nobodyさん2006/11/24(金) 09:37:56ID:???
ないんじゃね?
Zend_APIのリファレンスってロハじゃ手に入らんだろ?
0138nobodyさん2006/11/24(金) 10:32:34ID:???
長い関数名をタイプミスる事無く1〜3秒で一気に入力出来るとちょっと嬉しいじゃない
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:???
error処理してる訳でもないのになんで一旦変数に入れるの?
return htmlspecialchars($str, ENT_QUOTES, 'EUC-JP');
でいいような希ガス。
0141nobodyさん2006/11/24(金) 11:54:47ID:???
>>136
基本的にインターフェース部分だけ、マニュアルを参照しながら作法通りに書くだけで、あとは普通にCで書くだけだしな。
win上(cygwin)でトライしたときは、コンパイルがうまくいかなくて投げ出した記憶があるが、linux上なら無問題。
0142NAME IS NULL2006/11/24(金) 12:35:14ID:LYtHrh60
Array ( [0] => タイトル [1] => ツール [2] => カメラ [3] => ユーザー[4] => カメラ [5] => カメラ
[6] => データベース [7] => ユーザー [8] => アプリケーション [9] => アプリケーション [10] =>データベース
[11] => パソコン [12] => カメラ [13] => Java [14] => API)

このように文書中の語句を抜き出し、配列に格納しております。
そして、同じ要素の語句の個数をカウントして、降順に並び替えて
表示したいのですが、どのようにすれば良いでしょうか?
例えば、カメラ 4,ユーザー 2,データベース 2  といった感じにしたいの
ですが。。。
0143nobodyさん2006/11/24(金) 12:42:03ID:???
>>142
そんな関数があるよ
0144nobodyさん2006/11/24(金) 12:43:09ID:???
>>142
array_count_values+arsort
01451422006/11/24(金) 13:04:34ID:LYtHrh60
なるほど。ありがとうござりまする。
0146nobodyさん2006/11/24(金) 13:57:24ID:???
>>142
まだやってたのかw
しかもたいして進んでないようなw
0147nobodyさん2006/11/24(金) 14:14:35ID:bDJYivQE
設計について質問です。

画像アップロードが出来る掲示板を作ろうと思っているのですが、
登録→確認→完了

という3つの手順を踏まえるとして、確認画面で画像を表示させたい場合、
一旦サーバに画像を登録しないと駄目ですよね?
しかし、登録しなかったり前に戻ったりする場合、その画像がサーバに蓄積
されていって無駄になります。

どういう構成の方が効率よくできるのでしょうか?
それともPHPの組み方にもよるのでしょうか?アドバイスお願いします。
0148nobodyさん2006/11/24(金) 14:17:37ID:???
>>147
「登録」の時に、確認画面用にテンポラリでサーバに保存してるファイルの
タイムスタンプ見ていって古いファイルを削除すればいい
0149nobodyさん2006/11/24(金) 14:23:37ID:???
テキストの5つ目のデリミタ(例えばカンマ)の所を取得して表示したいのですが、

a,b,c,d,e,f,g
上の例だとfを表示。

どのようにソースを書けばいいのか検討がつきません。
正規表現で置き換えをしようと思いましたが、どのように書けばいいかわかりません。
どなたかわかる方教えていただけませんでしょうか?
01501472006/11/24(金) 14:25:35ID:???
>>148
すみません、いまいち構造の意味が分からないのですが、、、

確認 → クッキーを発行してファイルのパスを保存
登録 → そのクッキーを読んで現在の時間より古ければファイル削除

と言うことですか?
0151nobodyさん2006/11/24(金) 14:31:40ID:1uBVtpeJ
テキストファイルの中身をすべて表示させるには?
なぜか日本語が文字化けして・・・
0152nobodyさん2006/11/24(金) 14:33:35ID:???
>>149
$str = "a,b,c,d,e,f,g";
$data = explode(",", $data);
echo $data[5];
0153nobodyさん2006/11/24(金) 14:34:32ID:???
>>151
文字コードを勉強しといで
01541492006/11/24(金) 14:38:57ID:???
>>152
あーなるほどー
データを配列にいれて取り出せばいいんですね。
頭が固かったです。
助かりました。どうもありがとう。
0155nobodyさん2006/11/24(金) 14:39:10ID:???
>>150
クッキーとかいらね
要は確認までいったらテンポラリディレクトリにファイルを上げる
正常に完了までいった場合はテンポラリから正ディレクトリへ移す
確認でやっぱやめたってなったファイルはテンポラリに残っていく
テンポラリの中で現在より24時間前とかのファイルだったら
明らかに確認途中であきらめて残ったゴミファイルでしょ
その掃除作業を登録→確認→完了のどこかでやればよいということ
0156nobodyさん2006/11/24(金) 14:41:50ID:???
確認画面をつくならきゃGCもいらず効率が最もよい
01571472006/11/24(金) 14:50:33ID:???
>>155
「テンポラリディレクトリ」というのは、画像をアップロードするディレクトリと
別のディレクトリを作って、そこにアップするということですよね?

次に確認画面で下のようなソースを書きました。
$time_stmp=mktime();
echo tempnam($file_name,"$time_stmp");

出力画面には
C:\WINDOWS\TEMP\116207.tmp と出ます。(ローカル上でテストしてるので)

あとはTEMP(テンポラリディレクトリ)の中のタイムスタンプ付きファイルを
調べて、IFで指定時刻のタイムスタンプと比較して古いファイルなら
unlinkする処理を組み込めば、OKということでいいでしょうか?
0158nobodyさん2006/11/24(金) 15:08:19ID:???
>>157
おk
01591472006/11/24(金) 16:03:04ID:???
ありがとうございます。意味が分かってきました。
01601142006/11/24(金) 17:04:18ID:???
>>128さん
ありがとうございます。
早速、その方法で試してみます!

0161nobodyさん2006/11/24(金) 20:49:40ID:???
<input type="file" name="test[]"> //複数ファイルを指定
↓
いくつのファイルをアップロードして送信したかを調べる
$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++;
}
}

ってことがしたいってことかな。「フォームの選択」ってとこの意味がよくわからんな
0163nobodyさん2006/11/24(金) 22:28:02ID:???
>>162
これです!errorの数でMAX値を求めるんですね。。

ありがとうございました。
0164nobodyさん2006/11/24(金) 22:32:33ID:???
>>137
ロハってなんすか?

>>141
マニュアルがまだ未整備って感じで、結局PHPのソースを見るって感じ・・・
マクロとか、どっちを使えばいいのかわからないものも多いし・・・
まあがんばってみます
0165nobodyさん2006/11/24(金) 22:44:58ID:???
ロハ = 只
0166nobodyさん2006/11/25(土) 05:37:25ID:???
http://pc8.2ch.net/test/read.cgi/php/1162818436/914
感じで指摘したら読み間違いは直らないんじゃ、と今更思った
0167nobodyさん2006/11/25(土) 06:08:17ID:uP/mQvTw
このスレ専属の回答者様のPHPを導入したサーバOSをおしえてください
0168nobodyさん2006/11/25(土) 06:57:18ID:???
>>167
一般的な多くのOSで動作するけど・・その質問に何の意味が?
0169nobodyさん2006/11/25(土) 08:04:58ID:???
スレ専属の回答者ってなんだ?
0170スレ専属の回答者2006/11/25(土) 09:03:10ID:???
おいおい、俺のことに決まってるだろ。知らんのか?
0171nobodyさん2006/11/25(土) 09:19:30ID:???
>>170
初書き込み乙
0172nobodyさん2006/11/25(土) 12:15:23ID:???
Unsupported operand types になるのですがメンバ変数のstaticでこういう使い方は
出来ないのでしょうか?

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:???
staticなメンバ変数に$thisは使えないよ
0174nobodyさん2006/11/25(土) 12:28:29ID:???
>>173
そうでしたか、ありがとうございます。
0175nobodyさん2006/11/25(土) 12:38:54ID:???
んじゃstaticって何のためにあんの?
0176nobodyさん2006/11/25(土) 12:39:49ID:???
self::$aとすればよい
0177nobodyさん2006/11/25(土) 12:48:18ID:???
>>175
クラスをインスタンス化しないで呼び出すことができる。
0178nobodyさん2006/11/25(土) 13:08:30ID:???
つまり通常のfunctionと同じことになるって理解でいいんですかね

買い物カゴという「モノ」に商品を追加する「手続き」や、追加する個数という「データ」のように
オブジェクト設計としてはどういう扱いなんでしょうか?
0179nobodyさん2006/11/25(土) 13:10:36ID:???
PHP固有の機能じゃないよ
0180nobodyさん2006/11/25(土) 13:33:04ID:???
オブジェクト指向的には異端
0181nobodyさん2006/11/25(土) 13:53:53ID:???
htaccessで特定のディレクトリだけPHPの設定を変えようと思ったんだけどうまくいかない。

<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:???
static変数ってどういう時に使うかよくわからないね(;´ω`)
0184nobodyさん2006/11/25(土) 14:08:47ID:???
<IfModule はロードされてなくてもエラーを出さないようにするって意味合いしかないから。
01851812006/11/25(土) 14:08:56ID:???
解決しました。
<IfModule sapi_apache2.c>でした…。
0186nobodyさん2006/11/25(土) 14:12:04ID:???
>>183
無理に使うことないよw
0187nobodyさん2006/11/25(土) 14:18:28ID:???
インスタンス毎に変数を持つ必要はないが
クラス内では共有する値が必要な場合にstaticなプロパティを使えばいい
要はグローバル変数でもいいんだけどクラス内でしか使わないから
クラスに押し込んでしまいたいものに使えばいい
0188nobodyさん2006/11/25(土) 14:36:37ID:NunClOiB
各検索サイトでの順位を調べるという良くあるやつを自分で作ってみています

YSTとgoogleは、そのままのHTMLを返してくれるので、splitとeregで何とかなりましたが
MSNは中身の無いものを返してくるので、困っています

スレ違いぽいですが、作ったことある方いらっしゃいませんでしょうか
0189nobodyさん2006/11/25(土) 15:01:06ID:???
>>188
君が言う中身がないものを返してくるソースを見せなよ。
どう指定したかもわからず答えようがない。
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]}');");
}
01911882006/11/25(土) 15:17:48ID:???
すいません、文字コード変換を間違っていて中身がとんでいただけのようです
お騒がせしました
0192nobodyさん2006/11/25(土) 15:22:21ID:???
>>190
釣りだろうけど
for($i=0; i<=29; i++) ←
0193nobodyさん 2006/11/25(土) 15:26:54ID:???
>>192
すいません。for($i=0; $i<=29; $i++) でしたか?
しかし、なおしても通らないのですが。。。
ほかに原因はあるでしょうか?
0194nobodyさん2006/11/25(土) 15:29:42ID:???
>>193
マニュアルを読み直した方が良いよ・・・
0195nobodyさん2006/11/25(土) 15:33:29ID:???
うむ、それから状況説明が「通らない」だけとか回答してもらいたい気が微塵も感じられない
0196nobodyさん2006/11/25(土) 15:43:55ID:???
>>193
>>1
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
01971932006/11/25(土) 15:50:32ID:???
>>196
エラー内容は、ブラウザの表示がまっさらになる です。
0198nobodyさん2006/11/25(土) 15:52:09ID:???
>>197
テメェはマニュアル読んで来い!!
0199nobodyさん2006/11/25(土) 16:01:23ID:???
そもそも、やりたい事は何だよ
(word{$i+1})
って何したいのさ?
・根本的にやりたいに対して処理が間違ってる
・SQL文が間違ってる
ソースから読み取れる情報だとこの程度しか答えられんだろ
02001932006/11/25(土) 16:06:09ID:???
はい。お騒がせしました。
0201nobodyさん2006/11/25(土) 16:07:31ID:???
よしよし、俺がエスパー呼んできてやるから待ってろ。
0202エスパー2006/11/25(土) 16:09:44ID:???
ムリ
0203nobodyさん2006/11/25(土) 16:24:19ID:???
>>202
じゃあ、逆にできることをききたいが。
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
0205nobodyさん2006/11/25(土) 16:51:57ID:???
>>204の亀さにワロタ
AA探してたのかw
0206nobodyさん2006/11/25(土) 20:29:47ID:???
>>193

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:???
CSV(data.csv)データとして↓というデータがあって

佐藤,サ行,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
fsockopenを使ってPOSTをリクエストし、結果のページをfreadしているのですが、
全てを読みきるのに10秒程度もかかってしまいます。ブラウザからの同内容のPOST
だとすぐに結果が返ってくるのですが、この違いは何によるものでしょうか。
HTTPのトレースを見る限りでは、ブラウザが特別なことをやっているようには見え
ないのですが...
ちなみにfreadで読んでいるのは本体?のhtmlだけで、そのhtmlから張られている
画像などのリンクは読みません。ブラウザは平行に?それらも読んでいるようなの
になぜPHPよりも格段に速いのでしょうか。
0212nobodyさん2006/11/25(土) 23:39:22ID:???
ダウンロードしたPHPマニュアル php_manual_ja.chm 開いても
表紙以外見れ無くないですか?
0213nobodyさん2006/11/25(土) 23:43:39ID:???
>>211
fclose忘れてスクリプトが回りつづけてるとか
02142112006/11/25(土) 23:57:11ID:GT4xD1Nx
>>213
freadのループの開始、終了時の時間差が10秒程度なのです。
PHPのfread関数の作りの問題(=改善不可)でしょうか...
0215nobodyさん2006/11/26(日) 00:01:48ID:???
普通はそんなにかからねえよ
PHP疑う前に自分の環境とコードを疑え
あとその部分のコード貼れ
0216nobodyさん2006/11/26(日) 00:04:06ID:???
PHPのバージョンは?
定かではないが、昔のバージョンでは遅かった記憶がある。
0217nobodyさん2006/11/26(日) 00:05:23ID:???
遅いってレベルじゃねーぞ
02182112006/11/26(日) 00:13:22ID:pPg02glY
レスあってうれしいですm(_'_)m

>>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:???
TimeoutまでWaitしてるのは間違いなさそう
バッファ小さくしてみたら
0220nobodyさん2006/11/26(日) 00:18:16ID:???
>>281
何したいのかよくわからんが、web鯖が返すレスポンスを取得するんだったら
GETリクエスト投げないとだめだと思うが。
$request にまともなリクエストヘッダ入ってるか?

0221nobodyさん2006/11/26(日) 00:19:28ID:???
改行たりないとか
02222112006/11/26(日) 00:23:22ID:pPg02glY
>>219
バッファを小さく?それは考えてなかったので試してみます。

>>220
>>221
取得したいページ(html)は全て読めているのですが、
単にループで時間がかかっているのです。ループの前後で
time()の結果を取得して表示してみらたら10秒弱かかって
ました。
0223nobodyさん2006/11/26(日) 00:25:20ID:???
それじゃレスポンス来るまで待ってるのか
レスポンスの途中で引っかかってるのか
データ受信後に止まってるのかわからんじゃまいか
02242112006/11/26(日) 00:31:45ID:pPg02glY
>>223
print 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:???
>>224
だからそれじゃ分からないんだってばよ
各ループでデータは読み出せてるの?
9回から10回で突然6秒停止してるのが非常に気になるけど
0226nobodyさん2006/11/26(日) 00:43:47ID:???
MTUの設定ミスでパケロスとか前スレにいたな。
キャッシュが効いてるとか、よほどでかいテキストでDeflateのメリットが出てるとか、
IEが早いケースはありうるけど超考えにくいね。情報不足で何ともいえないけど。
0227nobodyさん2006/11/26(日) 00:48:24ID:???
>>216
5.0.4だとそれっぽいのが見当たらないな。
こういうケースはあるみたいだけど。
http://bugs.php.net/bug.php?id=32688
0228nobodyさん2006/11/26(日) 00:49:01ID:???
>>224
これのせいで遅くなっているってことはないか?
 $response .= fread($socket, 1024*100);

文字列をどんどん連結していくタイプは、文字列が長くなるにつれて劇的に遅くなる。
配列にプッシュしていく方がはるかに高速なので、試してみては?

$chunks = array();
while (! feof($socket)) {
 $chunks[] = fread($socket, 1024*100);
}
$response = implode($chunks);
02292112006/11/26(日) 00:53:05ID:pPg02glY
>>225
ループ内のprintで、その時点での全受信データ長も出力してみました。
1164469801
1164469802-->556
1164469802-->4703
1164469802-->8818
1164469802-->12578
1164469802-->16963
1164469802-->20723
1164469802-->28859
1164469808-->28859
1164469808

6秒かかってるのにデータ長が変ってない???
0230nobodyさん2006/11/26(日) 00:53:07ID:???
>>228
たしかにリアロケートで時間食ってるのかも
バッファが馬鹿でかいところからして怪しげな感じ
0231nobodyさん2006/11/26(日) 00:59:53ID:???
HTTPリクエストがおかしいと時間かかるときあるよ。
HTTP1.1でリクエストしてるのに、Closeしてないときとか。
0232nobodyさん2006/11/26(日) 01:03:02ID:???
可能性は無限大だな、よくない意味で
0233nobodyさん2006/11/26(日) 01:03:12ID:???
>>229
content-lengthを返しているなら、適切な分読み込んだ時点で処理を打ち切るように改良してみたら?
0234nobodyさん2006/11/26(日) 01:11:13ID:???
>>212
そうだんです
0235211,2292006/11/26(日) 01:12:01ID:pPg02glY
>>228
なるほど!
試して見ましたが解決しませんでした。
でも書き換えます(リアロケートのロスはあるので)。
アドバイスありがとうございました。

>>233
なるほど!
最後に時間がかかるなら最後までいかなければ良い、と。
柔らか頭ですねぇ(古い表現ですが(^^;)
その線で対応できるかもしれないので色々試してみます。
0236nobodyさん2006/11/26(日) 01:22:32ID:???
>6秒かかってるのにデータ長が変ってない???
相手の出したデータ全部読み終わってるのに
さらに次を読もうとして待ってる典型例に見えるな。
>>233で正解だろう。
0237nobodyさん2006/11/26(日) 01:24:47ID:???
原因究明が終わったら curl 関数も調べてみましょう。
なかなか便利な関数ですよ。
0238nobodyさん2006/11/26(日) 01:27:43ID:???
PEAR初心者です

あるサービスパッケージを使いたくて入れてみたら
エラーでまくりでそれをたどり永田、ファイル名検索して
ダウンロードしてきてを5回ぐらい繰り返して
デレクトリとか湧け分からなくなりながら
死ぬ思いしてやっと動作したのですが、みなさんどうやられてるのですか
簡単な方法教えてください
0239nobodyさん2006/11/26(日) 01:28:07ID:???
curl直に叩くのはマンドクサイです
0240nobodyさん2006/11/26(日) 01:42:19ID:???
>>238
普通に pear install パッケージ名
0241nobodyさん2006/11/26(日) 02:29:10ID:???
>>239
そうか。
いろいろできて便利な関数だと思うけどな。
0242俺様2006/11/26(日) 02:42:31ID:???
echoで文字出力を覚えました。つぎは何を覚えればいいですか?
0243nobodyさん2006/11/26(日) 02:55:59ID:???
>>242
printで文字出力
0244俺様2006/11/26(日) 03:06:11ID:???
>>243

それも覚えました。次は何を覚えればいいですか?
0245nobodyさん2006/11/26(日) 03:08:41ID:???
>>244
print_rで配列の中身を出力。
第二引数で出力内容を変数に取り込む。
nl2brで改行コードを書き換えてブラウザ上でも改行して表示する。
0246nobodyさん2006/11/26(日) 03:10:13ID:???
>>244
不動点定理
0247nobodyさん2006/11/26(日) 03:19:41ID:???
>>244
簡単な条件文でも覚えれ。
それができれば、ほとんどなんでもできるようになる。
繰り返し処理を楽にするためにループ関数でも覚えればなおよし。
0248nobodyさん2006/11/26(日) 03:44:25ID:???
>>244
次に何をすれば良いか自分で考える練習
0249nobodyさん2006/11/26(日) 03:49:08ID:HPxv5p71
ヴァーチャルサーバで運営しているマシンなのですが1つのホストだけ
<?xml version="1.0" encoding="UTF-8"?>
なんて出力をするんですがこれにPHPが反応してエラーを出してしまいます。
サーバ全体で.htmlもphpとして見るようにしてあるので.htaccessか何かで
特定のディレクトリのみただのhtmlとして見るようにさせる事は可能でしょうか?
0250nobodyさん2006/11/26(日) 04:44:20ID:???
short_open_tag = off
0251nobodyさん2006/11/26(日) 06:00:46ID:???
file_get_contents関数についての質問です。

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:???
>>251
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で処理すべき
0253nobodyさん2006/11/26(日) 06:49:00ID:???
>>208
レスがないようなのでヒント
$dを,でexplodeして結果を見てみるべし。
0254nobodyさん2006/11/26(日) 09:33:58ID:JtN58Jtp
"うんこ野郎" 

と 

'うんこ野郎'

って何が違うんですか?
たまに"が書き変わってて
動かない場合とかあるんですが
0255nobodyさん2006/11/26(日) 09:38:03ID:???
>>254
$unko = 'まんこ';
echo "$unko野郎"; //まんこ野郎
echo '$unko野郎'; //$unko野郎

http://www.php.net/manual/ja/language.types.string.php
ここに引用符と二重引用符の違いが載ってる
0256nobodyさん2006/11/26(日) 10:27:07ID:???
>>249
AddType application/x-httpd-php .php
02572082006/11/26(日) 10:47:08ID:???
>>253
ありがとございます

やってみて分からなくなったらまた来ます。
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:???
全角アルファベットの大文字小文字ってiオプションで同一視されるっけ?と
実験もせずに聞いてみる
0262nobodyさん2006/11/26(日) 12:20:32ID:???
実験しればわかります。
0263nobodyさん2006/11/26(日) 14:22:23ID:???
Debian GNU/Linux Etch + Apache 2.2.3 + MySQL 5 + PHP 5.1.6
で Web アプリを作っています。諸般の事情により Windows で
動いている SQL Server 2005 内のデータを対象にしたいのですが、
PHP は SQL Server 2005 に接続できますか?その際は ODBC 経由
ということになるのでしょうか?

最悪、SQL Server 2005 内の DB を MySQL に全部吸い出す
覚悟はしているんですが、できれば直接 SQL Server 2005 に
PHP から接続したいと思っています。
0264nobodyさん2006/11/26(日) 14:24:12ID:???
>>263
あなたは、「php SQL Server 2005」と検索窓に入れることもできない
教えてくんなの??
0265nobodyさん2006/11/26(日) 14:54:49ID:???
>>273
ワロタ
0266nobodyさん2006/11/26(日) 15:10:20ID:3LCl7xig
>>273に期待w
02672082006/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:???
phpとどのような関係があるのか10文字以内で述べよ
0269nobodyさん2006/11/26(日) 15:24:13ID:???
普通、行の最後の「,」がないほうがよくね?
0270nobodyさん2006/11/26(日) 15:28:11ID:???
ディープすげー!
0271nobodyさん2006/11/26(日) 15:37:47ID:p7DfmUHL
<input type="checkbox" name="*[]" value="**">***<br>
↑の、name="*[]"の
[]にはどういった意味が含まれているのでしょうか?
0272nobodyさん2006/11/26(日) 15:42:48ID:???
var_dump($*);
してみて。
0273nobodyさん2006/11/26(日) 16:08:39ID:???
有難う御座います!
0274nobodyさん2006/11/26(日) 17:35:08ID:???
$iが0〜10まである場合に、
$hoge['aiueo'][$i] を
$hoge[$i]['aiueo']に簡単に変更する方法ってあるでしょうか?

0275nobodyさん2006/11/26(日) 17:36:30ID:Ej5RlNz7
$aという値が未入力ならば1
それ以外は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:???
>>275
> $aという値が未入力ならば1
> それ以外は2というようにしたいのですが
if($a == NULL || $a == ""){
   $a = 1;
}else{
   $a = 2;
}
でいいかな?
やべ、なんか誤作動起こす気がする。

> 未入力若しくは空白を表現するにはどうすれば?
これは意味が分かりません。
0278nobodyさん2006/11/26(日) 17:46:23ID:???
>>276
print_r($_POST);
0279nobodyさん2006/11/26(日) 17:55:02ID:???
>>278
おお、出来ました。
ありがとうございました。
0280nobodyさん2006/11/26(日) 18:17:12ID:???
>>274
for($i=0;$i<=10;$i++) {$hoge[$i]['aiueo'] = $hoge['aiueo'][$i];}
0281nobodyさん2006/11/26(日) 18:55:04ID:ZiWUMCPr
【環境】

System : 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:???
$pattern = 'Arnold once said: "I\'ll be back"';

echo $pattern;

うちのPHPではエラーにならないが??
0283nobodyさん2006/11/26(日) 19:33:26ID:???
&#165;ってなんだよ馬鹿
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:httKlQJs
data_01.txt
data_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:???
PHPって何ですか?
0292nobodyさん2006/11/26(日) 21:02:29ID:???
$data = file(sprintf("data_%02d.txt", $a));
0293nobodyさん2006/11/26(日) 21:05:16ID:???
>>291
出版社
0294nobodyさん2006/11/26(日) 21:45:21ID:httKlQJs
>>292
ありがとうございます
おかげさまで解決できました

$data = file("data_"printf(%02d,$a)".txt");
今までずっとこんなことを試行錯誤してました・・・(;´Д`)
0295nobodyさん2006/11/26(日) 21:45:56ID:???
>>290
関西ではアリアスとかジョージとか呼ばれてる。
主にファーストとして使うのがポピュラーかな?
0296nobodyさん2006/11/26(日) 22:19:13ID:???
>>294
glob使ったほうがいいよ
0297nobodyさん2006/11/26(日) 22:26:36ID:???
>>293
ありがとうございます。
おかげさまで思い残すことなくあの世に旅行できます。

89歳。北海道のおじいちゃん
0298nobodyさん2006/11/27(月) 01:13:27ID:???
配列のキーに変数を使用する場合の記述方法ってどう書けば正確なのでしょうか?

たとえば、
$var2 = 0;
$var[0] = 1;
$hoge[1] == $hoge[$var[$var2]]
で正式な記述方法なのでしょうか?
0299nobodyさん2006/11/27(月) 01:14:26ID:???
>>298
いーんじゃないですか?
0300nobodyさん2006/11/27(月) 01:17:12ID:???
普通に内側から展開される
文法上は問題ないけど、そのコードはつまり $hoge[1] = $hoge[1] だから無意味だね
03012882006/11/27(月) 05:28:35ID:???
>>296
使ってみました!
すごい!ただただ感動です!

やる事例があまり無く、いつまで経っても初心者なのですが
今回のお二方のレスには感動するばかりです。
本当にありがとうございました。
0302nobodyさん2006/11/27(月) 13:10:49ID:???
fopen()で、対象ファイルを削除する方法ってないでしょうか?
空にすることならできるのですが・・・。
わけあって、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:kpHSAXGL
>>277
foreach ( $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でもだめでした。書き方間違ってますか?
0305nobodyさん2006/11/27(月) 13:12:43ID:???
>>302
その訳を知りたい。
0306nobodyさん2006/11/27(月) 13:16:38ID:???
>>303
内部エンコードがJISじゃないのにJISが渡されたからじゃないの

>>304
フラグ変数が変だと思ったらvar_dump()
0307nobodyさん2006/11/27(月) 13:20:56ID:???
PHP にはワイド文字(ワイド文字列)という概念はあるのでしょうか?
内部的には(たとえそれが UTF-8 文字列だとしても)
単純にバイト列として扱われているのでしょうか?
0308nobodyさん2006/11/27(月) 13:24:32ID:???
内部的にってことはCの話でPHPの話じゃなくなるわけだが。
データタイプが何であれバイト列として扱われたら文字列でないことは自明なわけだが。
03093032006/11/27(月) 13:35:45ID:???
>>306
mb_send_mailの前で
mb_internal_encoding("ISO-2022-JP");
をすると、「(])]UWY[]たちつてと」となりました。

「(そ)そさしすせそたちつてと」という文字列にはばらばらな文字コードが含まれているということですか?
0310nobodyさん2006/11/27(月) 13:36:07ID:???
>>302
unlink
0311nobodyさん2006/11/27(月) 13:36:57ID:???
>>307
PHPの文字列は基本的にただのバイト列と考えていいと思う。
ただし、あたかもマルチバイトでエンコードされた文字列であるかのように処理してくれる関数がたくさんある。
画像や音声などのようなバイナリデータも、文字列としてそのまま扱える。
ワイド文字型のような中途半端な型を余分に導入されるより、ずっと統一的かつ単純かつ柔軟でわかりやすい。
0312nobodyさん2006/11/27(月) 13:39:24ID:???
>>307
ねーよ
スキャナ部分はどうか知らんが
03133022006/11/27(月) 13:41:41ID:???
>>305
FTPで接続し処理したいからです。
ftp_connectウンタラは長くなってしまうため極力使いたくありません。

>>310
php5以降ならそれでいけたようですね・・・
php4では無理でしょうか?
0314nobodyさん2006/11/27(月) 13:49:01ID:???
>>309
mb_send...は文字コードの変換も勝手にやるよ
マルチバイト関連の設定を見直してみたらどうかしら
03153042006/11/27(月) 13:49:24ID:???
>>306
ありがとうございます
なにもないときはstring(0) "" という返りすが
>>304のようにするにはどうすれば良いですか
0316nobodyさん2006/11/27(月) 13:55:11ID:???
「うごきません」じゃ何のことか分からないし変数の値知らないし
03173042006/11/27(月) 13:58:17ID:???
僕にも分かりません
03183032006/11/27(月) 13:58:56ID:???
>>314

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

こんな設定なのですが、やっぱり問題ありです?
03193032006/11/27(月) 14:01:05ID:???
クリスマスの予定無しっすかwww
03203032006/11/27(月) 14:58:05ID:???
$title = "あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわをん";
$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=?=」
完全に半角文字と認識してる…。
03213022006/11/27(月) 14:58:07ID:???
うわっ
いまさら気づいたのですが、
urlラッパーってphp5にならないとほとんどサポートしてないんですね、
うわーめんどくせー
0322nobodyさん2006/11/27(月) 15:33:23ID:???
php5でもラップできる機能は限られてるよ
全部置きかえられたら楽しそうなのにねー
03233022006/11/27(月) 17:54:57ID:???
ftp関数で一時ファイルを作成せずに
接続先のファイルの内容を書き換える方法ってないでしょうか?
urlラッパーが使えれば、実現できるのですが・・・。
0324nobodyさん2006/11/27(月) 18:10:05ID:???
お前は配管工に家を立てさせるのかよ
0325nobodyさん2006/11/27(月) 18:42:47ID:???
ereg の正規表現って、キャプチャしないグループを記述できますか?
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:???
public_htmlの下にディレクトリを10000ぐらい作って、それぞれのディレクトリにdatファイルを
置くのですが、一つのディレクトリに大量のdatファイルを貯める方法に比べて
処理が遅くなることがございますか?
ご教授お願いいたします。
0331nobodyさん2006/11/27(月) 23:26:35ID:???
>>326
http://aucfan.com/know-how/help_4_2.htm

↑ここ見ると、Yahooのデータは、検索される都度Yahooにクエリ投げて結果を受け取ってるだけのようだ。
出品データをいちいち毎日オークファンのDBに取り込んでるわけじゃない。
そりゃそうだわな。そんなことしてたらYahoo側からアク禁食らうだろうし。
0332nobodyさん2006/11/27(月) 23:45:27ID:???
>>330
よくわからんけど、「データベース使ったほうがいいんじゃないか?」と
うちのおじいちゃんが言ってたよ。
0333nobodyさん2006/11/27(月) 23:47:28ID:???
OSやファイルシステムにも違いがあるが、
「とりあえず10000個ディレクトリ作って、lsやってみろ」と、
うちのひいばあちゃんが言ってたよ。
0334nobodyさん2006/11/28(火) 00:29:51ID:???
「とりあえず10000個ファイル作って、lsやってみろ」と、
とも言ってたな。
0335nobodyさん2006/11/28(火) 00:29:52ID:???
>>333
ls・・・Windowsは無視ですか、そうですかw
0336nobodyさん2006/11/28(火) 00:35:48ID:???
うちの Windows には、ls なんて無いよう...

なんて、言ってる奴にはどうせろくなサイトはできないから
無視していいんじゃね。
0337nobodyさん2006/11/28(火) 00:36:04ID:???
問題は一つのファイルをオープンするコストがどれだけ変化するだろ、
lsのコストなんてどうでもいい
0338nobodyさん2006/11/28(火) 01:11:22ID:???
酔って家族に暴力振るっちゃダメだぞコラ
0339nobodyさん2006/11/28(火) 02:04:37ID:???
即席犬糞erにとってはLinux + GNU lsが世界標準なんだから生温かく
0340nobodyさん2006/11/28(火) 03:13:34ID:???
>>335
なんでlsのコストの話してるんだ?と思うが、どうしてもWinでls使いたいなら
っ GnuWin32 Gygwin VMware coLinux ...etc

まぁあれだ、ディレクトリ10000個作ったりするような設計をやった事がないから、どの程度遅くなるのか分からん。
実稼働環境に近い条件を用意して、実際に動作テストやるべきだな。
0341nobodyさん2006/11/28(火) 07:25:30ID:???
>>330
そりゃどっちも同じくらい遅い。
ファイルシステムのindexデータにとっては
ディレクトリも特殊な属性を持ったファイル相当なので、
ディレクトリ+ファイルの合計で数が多くなると遅いです。

ディレクトリを階層構造にはできないの?
0342nobodyさん2006/11/28(火) 07:29:57ID:???
均等にハッシュすれば3層で1ディレクトリ1ファイルじゃね?
0343nobodyさん2006/11/28(火) 07:37:57ID:???
どうしてもディレクトリでやりたいのなら、proxyとかキャッシュサーバとかの
ファイルの持ち方を参考にするとか、簡単なAPで検討してみるしかない。

>>337
おまえ何もわかっていない
0344nobodyさん2006/11/28(火) 08:50:39ID:???
構造について質問です。
求人サイトなどでよくあるのですが、1つの項目に複数個入れる時、
配列を使って「AAA BBB CCC」とするのがいいのでしょうか?
それとも「AAA,BBB,CCC」っと1つずつカンマ区切りの方がいいのでしょうか?

データーベースやテキストでログを保存する場合も
1つのフィールドに対して1つの配列内のデータを入れるのか、
それとも配列にせずに、3つなら3つのフィールドを用意して入れた方が良いのか
どちらの方が汎用性・効率化の面で優位なのか悩んでいます。
0345nobodyさん2006/11/28(火) 08:58:03ID:???
>>344
「入れる」って、「どこ」で「どこ」に入れるのさ?
03463442006/11/28(火) 09:07:48ID:???
>>345
例えば以下のような登録フォームがあるとします

趣味は?:[]パソコン[]野球[]サッカー
※[]はチェックボックスとします。

こういうフォームの場合、ログとしてテキスト、もしくはDBに保存する場合
どのような形で保存する方が汎用性が高いのかな?と思いまして。
質問が「趣味は?」だけならいいのですが、「その趣味に使う時間は?」
など追加した場合も、チェックを入れた項目毎の時間を入力出来るような。
0347nobodyさん2006/11/28(火) 09:15:25ID:???
>>346
テキスト保存とRDBMだと、抽出も含めて全く違うアプローチになると思うけど…
0348nobodyさん2006/11/28(火) 09:22:49ID:???
テキストでCSVなら設問が追加されたらカラムが一個増えるだけ
手早く作るにはこれ
処理の早さならDB・テキストに関わらずビットフラグ
汎用性ならDBだが、>>344の場合テーブル設計つーかリレーションについて
勉強が必要だと思われ

データ構造はどういう操作を楽にしたいか、という観点から設計されるので
漠然とどういうのが効率的か、汎用性が高いか、というのはない
要求をしぼったほうがいいと思う
0349nobodyさん2006/11/28(火) 09:28:08ID:???
つーか>>346は>>345の答えになってない。
まぁわかるからいいけど、とりあえず人の話を聞け。
03503442006/11/28(火) 09:41:27ID:???
>>348
おっしゃる通りです。まさに悩んでいるのはその点です。
テーブル設計やリレーションについて、いまいちまとまらないんです。

だから設問が追加した場合、汎用性が聞かなくなることが多く、
結局、フォームを追加したり、作り直すことが多いんです。
ただ、勉強するにも何をどう学べばいいか悩みます。
参考書に書いているような事でもないし・・。
0351nobodyさん2006/11/28(火) 10:02:55ID:???
>>349
ワロス
0352nobodyさん2006/11/28(火) 10:39:26ID:ms9bthGt
はじめまして。

変数に入れた文字列を、先頭から1文字ずつ順に取り出したい場合、どのような関数
がありましたでしょうか?

ファイルに書き出さない方法がありましたら、教えてください。

よろしくおねがいします。

0353nobodyさん2006/11/28(火) 10:46:25ID:???
>>352
substrとか。

String系の関数を眺めてみればもっといいのがあるかもね。
ttp://jp.php.net/manual/ja/ref.strings.php

よくできた日本語マニュアルがあるんだから読んでみては。
0354nobodyさん2006/11/28(火) 10:50:38ID:???
Substrだとmbオーバーライドがオフってあるとマルチバイトで問題が出る
utf8にしてpreg_splitつー手もある
0355nobodyさん2006/11/28(火) 10:51:44ID:???
>>352
windowsを前提で話す。
1.変数が記述されたphpファイルをメモ帳で開く。
2.変数の行にカーソルを持っていく。
3.変数に格納された文字列をコピー。
4.コピーした文字列を別のファイルにペースト。
5.あとはお好きなように
0356nobodyさん2006/11/28(火) 11:11:15ID:???
http://localhost/index.php?hello

↑こういうURLがあるんですけど、?Helloはどうやって取得したらいいのでしょうか?
$_GETじゃ取得できませんでした。
0357nobodyさん2006/11/28(火) 11:11:35ID:MVyDbxlO
>>353

substrの存在を忘れてました…
助かりました!ありがとうございます。

>>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
>>355

そういう方法もありますね、今回は直接入力された変数から行うので、残念ながら使えませんが、
その方法も覚えておきます。
ありがとうございます。
03603582006/11/28(火) 11:16:05ID:???
オッパイ括弧はDeprecatedだったわ
echo $s[$i]; でアクセス
0361nobodyさん2006/11/28(火) 11:22:10ID:???
>>356
array_keys($_GET);でhelloだけ取れると思うけどキーだけとってどうすんの?
フラグにしたいなら isset($_GET['hello']) で判定可能
0362QQQ2006/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
>>358

そんな方法があったんですね…
勉強不足でした。

早速試してみます。

ありがとうございます
0364nobodyさん2006/11/28(火) 11:41:33ID:???
>>361そんな回答していいのか?的外れだろ
0365nobodyさん2006/11/28(火) 12:38:18ID:???
QUERY_STRING
0366nobodyさん2006/11/28(火) 13:33:08ID:???
>>362
はいはい、マルチマルチ
0367nobodyさん2006/11/28(火) 13:40:05ID:???
はわわー
0368nobodyさん2006/11/28(火) 14:46:43ID:9CSKXruB
フォーム登録処理で登録完了ファイルに

if($_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:???
プログラマにとって怠惰は美徳だってじーさんが言ってるよ
0370nobodyさん2006/11/28(火) 14:51:19ID:???
>>368
最初からmagic_quotes_gpcをオフにしておけばおk
03713682006/11/28(火) 14:53:10ID:???
>>370
それって将来的に問題ないですかね?
前に2ちゃんで指摘されたことがあります。
0372nobodyさん2006/11/28(火) 14:56:26ID:???
毎回書いてることが問題
どんだけ馬鹿なんだよw
0373nobodyさん2006/11/28(火) 14:57:22ID:???
>>369
perlスレにお帰りください
0374nobodyさん2006/11/28(火) 15:14:51ID:???
>>371
お前の脳味噌が問題
0375nobodyさん2006/11/28(火) 15:18:06ID:???
>>371
magic_quotes_gpcなんて最初のド素人のうちしか意味がない
0376nobodyさん2006/11/28(火) 15:18:35ID:???
どう問題なんでしょう?馬鹿なんで教えて下さい
0377nobodyさん2006/11/28(火) 15:25:47ID:???
http://jp.php.net/manual/ja/security.magicquotes.php
とりあえずここ熟読してから来て
0378nobodyさん2006/11/28(火) 15:53:05ID:q3z6QRVX
配列で、指定の文字数以上のものを
取り出すには何を使えば良いのか
0379nobodyさん2006/11/28(火) 16:06:02ID:AFqLXmTZ
$_GET配列を使う際に、
phpが自動でURLデコードをしていてそれが失敗しているために
日本語文字列が化けてしまうのですが、
(インプットアウトプット内部全部EUC-JPでまとめてるからconvert要らないはずなのに・・・)
自動デコードをさせない設定等があれば教えて下さい。
0380nobodyさん2006/11/28(火) 16:12:10ID:???
>>378
手作業、手作業!!
楽しようとすんなよかす
0381nobodyさん2006/11/28(火) 16:19:05ID:q3z6QRVX
手作業とかは無理です
便利な方法おお願いします
0382nobodyさん2006/11/28(火) 16:24:20ID:???
>>378
そもそも文字列の文字数を指定しておけばいいって話じゃないのか?
0383nobodyさん2006/11/28(火) 16:24:32ID:???
>>381
なまいきだぞ
しかたないからヒントな!
substr
これで調べろ
0384nobodyさん2006/11/28(火) 16:37:15ID:???
array_filterとか
0385nobodyさん2006/11/28(火) 16:45:02ID:???
>>378
strlen
0386nobodyさん2006/11/28(火) 17:09:32ID:???
>>378
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:???
PHPの出力をブラウザにキャッシュさせたのですが
何も定義していなのにPragma: no-cacheと過去を指定したExpiresがhttpヘッダに
送信されているようです。
Expiresは未来の日時へ上書きするとしてPragma: no-cacheを出力させないようにするには
どのようにすればよいのでしょうか。
header
headers_ list
headers_ sent
のリファレンスは見ましたが解決に至りませんでした。
0388nobodyさん2006/11/28(火) 18:35:15ID:???
>>387
ヘッダは、PHPのじゃなくてWebサーバーが出力してる に一票。
出力させない方法は俺は知らないが、Expiresを上書きできるなら
Pragmaも適当な意味のない値で上書きすれば良いのでは。

//ちなみにレスポンスの Pragma: no-cache はHTTP/1.0の規格外
0389nobodyさん2006/11/28(火) 18:43:29ID:???
>>368
>$name=$_POST["name"];

何の意味があるんだ、これ。
0390nobodyさん2006/11/28(火) 18:46:40ID:???
なんか既視感あるコードだ
03913782006/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文字のものは
表示させないようにしたい
03923872006/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:???
session.cache_limiter じゃないのか?
0396nobodyさん2006/11/28(火) 19:44:35ID:???
>>394
php hoge.php

cronで動かしたければそれぞれフルパスで。
0397nobodyさん2006/11/28(火) 19:54:41ID:???
>>394
CLI版のPHP動かせばええじゃないか
サーバー動かしてるってことは管理者だろ?
0398nobodyさん2006/11/28(火) 19:55:47ID:???
>>394
だれでも鯖立てられちゃう時代なんだなぁ
問題は立てることより運用なんだけど…
03993942006/11/28(火) 20:06:26ID:???
debianでapt-getでphp4をインスコしましたが、cli版が入っていないようです。
php4.3.10なので標準で--enable-cliになるはずですが・・・(phpinfo()を見ても無い・・・)
ちなみにwindows機ではphpのフォルダの下にcliフォルダがあり、ここにphp.exeが入っていますのでコマンドラインから可能です。
debianでapt-getでphp4を入れるとcli版が入らないのでしょうか???
0400nobodyさん2006/11/28(火) 20:07:40ID:???
php4はメタパッケージcliはcli
04013942006/11/28(火) 20:08:42ID:???
えぇぇぇ?別物なの?
0402nobodyさん2006/11/28(火) 20:11:13ID:???
php -v で確かめてみなさい

$ 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:???
KURO-BOX:~# php -v
bash: php: command not found

になっちゃいますが・・・
0404nobodyさん2006/11/28(火) 20:26:02ID:???
Debian GNU/Linux 3.1 KURO-BOX
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:???
deb系でも窓でもmodとは別だよ
0406nobodyさん2006/11/28(火) 20:54:35ID:???
ん、そういえば犬はPHPのパスが通ってなかった気がしないでもないな・・・
バイナリがあるならパス通したり
04073942006/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:???
>>405
どうもです。
そうだったんですか・・・
窓の方では何もしなくてもphp.exe.が入っていましたし、「php4.3.0以降は
自動的に設定される」ようなことをどこかで目にしていたものですから・・・

なんで動かないのか、半日悩んでおりました。(苦笑

お騒がせしました。。。m( _ _;)m
0409nobodyさん2006/11/28(火) 21:23:29ID:???
siteURLのエンコードをする場合も
文字コードでのエンコードをした方がいんですか?
04103872006/11/28(火) 21:52:06ID:???
その後コンソールから実行しPHPから出力されている事を確認し
php.iniやheader_cache_flag(1)みたいな関数があるのか探していたのですが
>>395さんの仰るとおりsession.cache_limiterが原因であることが判明しました。
ありがとうございました。
0411nobodyさん2006/11/28(火) 22:34:12ID:???
だれか>>391お願いします

おみやげにこれあげるんで
//URLからドメイン名を取得する
$pattern = "/^(http:\/\/)([^\/]+)(\/.*$)/i";
preg_match ( $pattern, $url, $match );
$domain = $match[2]; //ドメイン
$path = $match[3]; //パス
0412sage2006/11/28(火) 22:41:38ID:TqHCzfuA
PATH_INFOのことで悩んでおり質問させていただきます。

変数を受け渡す際に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:???
>>411
391は見る気しないけどURLからドメインを抜く関数ってありますよ

>>412
issetで調べてね

>>413
前から知ってたけど作るもののレベルによるのではないかと限りなく唯一無二なら問題なし
0415nobodyさん2006/11/28(火) 23:24:20ID:???
最近winアプリの開発してて3年ぶりくらいにwebの仕事に戻ってきたんだけど
ブラウザにキャッシュさせたくない時に
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/D
XREAのサーバーを利用しています
MySQL(MySQL - 5.1.11-beta) の文字セットがUTF-8 Unicode (utf8) ということで
データベースに入れたものをEUC-JPで表示しようとすると文字化けしてしまうようです。

他のサーバーでEUC-JPにて構築したサイトでして
これからUTF-8に移行するには非常に手間がかかります
どうにか簡単に解決する方法はありませんでしょうか?
よろしくお願いいたします
0418nobodyさん2006/11/28(火) 23:33:39ID:???
設計ミスなら諦めて1から書き直すしかないんじゃない?
0419nobodyさん2006/11/28(火) 23:35:03ID:???
>>417
データベースに入ってるのがUTF-8で、表示するときEUC-JPにしたいなら
表示するときに変換すればいいのでは?

そのサーバーのPHPスクリプトの表示する部分だけちょちょいと書き換えればOK。
0420nobodyさん2006/11/28(火) 23:43:19ID:QkZ3aa/D
>>419
了解しましたー
どうでもです。

しかし、mb関数が使えないとかなるとおそらく面倒なんでしょうかね?
0421nobodyさん2006/11/29(水) 00:29:55ID:???
>>420
はい。泣いてください。
胸は貸しませんが。
0422nobodyさん2006/11/29(水) 00:58:36ID:???
PEARのソースを参考にソースの書き方とか勉強しようと思うのですが、
PEARのソースって綺麗ですか?
適当なものをダウンロードしてソースを見たら、
思っていたのとだいぶ違っていました。
見た感じ手続き型でしたし、
文法的にも動作的にも問題はないですがちょっと違和感がある、
書き方をしている箇所があったりと。(自分本位の視点なので自分がおかしいのかも)
とりあえずPEARのソースは参考になると思いますか?
それとも国産フレームワークのソースでも見たほうがいいでしょうか?
0423nobodyさん2006/11/29(水) 01:27:35ID:???
>>420
iconv

使えないか。
0424nobodyさん2006/11/29(水) 01:28:32ID:???
>>416

HTTPを勉強しないWebアプリ屋っているの?
0425nobodyさん2006/11/29(水) 01:51:50ID:???
いっぱいいるよ。特にPHPしか出来ないWebアプリ屋は。
PHP以外の言語だったら>>387のような問題が発生することは無い。
0426nobodyさん2006/11/29(水) 01:52:49ID:???
スマン。HTTPの勉強ってなんだ?
HTTPの意味はわかるが、何を勉強すればいいんだ?
0427nobodyさん2006/11/29(水) 01:57:53ID:???
>>425
>PHP以外の言語だったら>>387のような問題が発生することは無い。

んなことねぇよボケ。
Cやっててネットワークの知識がないヤツだってたくさんいる。
0428nobodyさん2006/11/29(水) 02:02:11ID:???
>>413
そんなことを気にしてるほうがダメ人間だと思う。
PHPのセッションID生成方法について、ヲタ的には乱数がどうのこうので
ケチをつけたくなるのかもしれんが、現実的には十分に推測不可能だろ、それで。
0429nobodyさん2006/11/29(水) 02:22:55ID:???
簡易掲示板を作っているんですけど、
ログの読み取り方について質問です。
file()でログを読み込んで、
それをリクエストがあるたびに毎回読み込んでhtmlに反映してるのですが、
当然ログが長くなるとレスポンスが悪くなりますよね?
そこでログに変更があった後、
htmlを更新し出力しなおすみたいなことをしたいのですが、
技術的に難しいでしょうか?
04304292006/11/29(水) 02:38:45ID:???
ごめんなさい。
言ってることがよくわかりませんね。
自分でもわからなくなってしまいましたorz
色々と試行錯誤してみることにします。
お騒がせしてすみません。
0431nobodyさん2006/11/29(水) 03:41:49ID:???
>>427
そりゃそうなんだけどCでやる事になった場合は
content-type出力して\r\n\r\nを出力してと一連の流れを把握するでしょ。
PHP使ってるとheader関数やcookie関数のおかげで内部で何やってるか
分からない奴がいっぱいいる。
0432nobodyさん2006/11/29(水) 03:57:11ID:???
>>431
C じゃなくても Perl でもprint "Content-Type: text/html\n\n"; とかは普通やるよね。
use CGI; すると重くなるし。
0433nobodyさん2006/11/29(水) 04:07:10ID:???
>>429>>430
よくあるのは、書き込まれた時に、HTMLファイルを作っちゃう方法。
つまりその(PHPの)掲示板に最初にアクセスした時の画面と同じ見た目のHTMLを作っておくわけだ。
訪問者は、そのHTMLにアクセスする(最初の画面だけ)。
0434nobodyさん2006/11/29(水) 04:43:05ID:???
$a = "50"; //String
$b = $a + 50; //String + Integer
echo $b; //100

このソースに関して質問なんですが、
$b = $a + 50;の$aの部分は、
自動的にintにキャストされてるということなのでしょうか?
0435nobodyさん2006/11/29(水) 04:46:09ID:???
http://jp2.php.net/manual/ja/language.types.type-juggling.php
> PHP の自動型変換の例の一つは、加算演算子 '+' です。 オペランドのどれかが float の
> 場合、全てのオペランドは float として評価され、結果は float になります。
> その他の場合、オペランドは整数として解釈され、結果も整数になります。
0436nobodyさん2006/11/29(水) 04:56:34ID:???
なるほどー
オペレーターとオペランドをみて型が自動変換されるんですね。
結構ややこしいなぁ。
お答えどうもありがとうございました。
0437nobodyさん2006/11/29(水) 05:11:36ID:???
>>428
本当にそうだろうか。

例えば、俺がサイト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:???
>>436
要するに . を使えば文字として扱われるし、+ を使えば数として扱われますよということ。
数として扱えない場合は 0 扱い。
0439nobodyさん2006/11/29(水) 05:26:57ID:???
>>437
なんかますますセキュアに見えてくるな
0440nobodyさん2006/11/29(水) 05:40:07ID:jv+ZvP9Y
卓上の理論なんていらないんだよ。
実験したものを見せろ
0441nobodyさん2006/11/29(水) 06:01:58ID:???
>>440
個人が実験してセッションハイジャックが成功するレベルなわけないじゃん
これは共通鍵・公開鍵方式の暗号で、個人の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を解析しようとする?
通信自体が盗み取れたときが問題なんでしょ?

それよりも、session_idをリジェネレートしたときに、
改めてCOOKIEを送りなおすのは止めれないのか?
2回同じ値のCOOKIEがhttpヘッダに書かれているのは気持ち悪いんだが。
0444nobodyさん2006/11/29(水) 06:16:44ID:???
漏れの php の設定みてみたら既に

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:???
session.entropy_length は 16 じゃなくて 32 でした。
0446nobodyさん2006/11/29(水) 06:53:13ID:???
>>441
>>428をもう一度読んでみよう(゚∀゚)













>現実的には十分に推測不可能だろ
0447nobodyさん2006/11/29(水) 08:50:09ID:???
>>446
>>441をもう一度読んでみよう(゚∀゚)
0448nobodyさん2006/11/29(水) 10:09:18ID:???
なんでセキュアな話をしたがるやつは、SSL使わないんだよw
0449nobodyさん2006/11/29(水) 11:04:23ID:???
>>448
SSLとは関係無いセッションハイジャックの話をしているわけだが
もっと分かりやすく言えば、SSLを使うことは大前提で、それより高度なセキュリティ確保の話をしているわけだ
0450nobodyさん2006/11/29(水) 11:27:38ID:???
>>437と>>441は別人だと仮定してレスする。

>>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:???
>>437
>俺のサイトAからサイトBへリンクを貼り、被害者Cがそれをクリックする。
フィッシングサイトに引っかかるやつの面倒まで見なくてもいいだろ
0454nobodyさん2006/11/29(水) 12:16:58ID:???
もういいよPHPは危ないみたいだからJavaに移行します
04554522006/11/29(水) 12:36:03ID:???
自己解決しました。
/usr/local/mysqlのパーミッションが足りなくファイルまで到達できなかったようです。

お手数おかけ致しました。
0456nobodyさん2006/11/29(水) 12:38:31ID:???
qmailではよくあること
0457Mrセキュア2006/11/29(水) 12:40:55ID:???

お 外 に で る と 事 故 に あ う か も し れ な い の で 怖 く て 出 れ ま せ ん (笑)
0458nobodyさん2006/11/29(水) 12:58:01ID:???
>>452
適当なところで改行しろよ!!横スクロールバーがでたじゃないか!!
この低脳所得者市ねボンクラ!
0459nobodyさん2006/11/29(水) 13:03:47ID:uckTTJrX
-> と :: の違いって何ですか?
0460nobodyさん2006/11/29(水) 13:05:56ID:???
->インスタンス化してないと使えないメソッド
::インスタンス化してなくても使えるメソッド
0461nobodyさん2006/11/29(水) 13:09:57ID:???
ダブルコロンは先祖のプロパティを呼ぶのにもつかうな
0462nobodyさん2006/11/29(水) 13:36:17ID:???
>>460-461
なるほど、ありがとうございました。
0463nobodyさん2006/11/29(水) 14:02:32ID:+Stuj4pW
PHPでWebサービス作り方が載ってるサイト教えて。
0464nobodyさん2006/11/29(水) 14:06:26ID:???
>>463
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ページにはどうやればとばすことできますか?


0467nobodyさん2006/11/29(水) 15:45:57ID:???
>>465
意味不明

>>466
header()でリダイレクトする
0468nobodyさん2006/11/29(水) 15:56:16ID:???
相手のPCの特定のポートが開いてるかを調べる関数みたいのあります?
0469nobodyさん2006/11/29(水) 16:04:11ID:???
>>468
関数はないけどtcpでアクセスしてみれば簡単に分かるよ
0470nobodyさん2006/11/29(水) 16:13:00ID:???
>>465
専用サーバなら負荷が高かろうが気にする必要はないのではアルマイト
0471nobodyさん2006/11/29(水) 16:16:43ID:???
>>468
順番にポートをスキャンしていけばいいジャン
04724662006/11/29(水) 16:34:07ID:gqW8eidG
>467
ごめんなさい、よくやり方がわからないです。
今はフォームのactionでhtmlファイル作成するページに飛ばして
るんです。そこでまた作成したページに飛ぶ感じにしようと思ったんですけど
かなり無駄なことしてますよね・・
なにかいい方法は?
04734682006/11/29(水) 16:40:40ID:???
>>469
ないんですかー
どうもありがとうございます。
tcpの知識がないので勉強してきます。

>>471
80番が開いてたら書き込み不可能とかにするつもりなので、
そういったことはしたくないのです。
0474nobodyさん2006/11/29(水) 16:49:05ID:???
80番あいてるからってプロキシとか限らないだろ低脳
0475nobodyさん2006/11/29(水) 16:51:54ID:???
串のポート番号は自由だからね
04764682006/11/29(水) 16:52:44ID:???
>>474
深読みしすぎですよ。そういう意図じゃないんですよね。
プロキシ弾くだけならおとなしくライブラリ入れますし。
書き込んだ人のIPを表示しているので、
アクセスされる可能性を視野にいれた措置です。
0477nobodyさん2006/11/29(水) 17:00:36ID:???
TCPを勉強っつーか
接続を試行して成功したらポートが開いてる、失敗したら閉じてる
ただそれだけだ がんばれ
0478nobodyさん2006/11/29(水) 17:24:06ID:???
ポート番号80で調べるということは、自宅鯖持ちのやつを全部弾くつもりか

まぁいいや、レッツPHPからソース盗んで改造しろ
0479nobodyさん2006/11/29(水) 17:25:52ID:???
>>466
何がわからんのかいまいち理解できないが。

1.フォームを表示
2.番号を入力させてサブミット
3.サブミットした値を元にHTML作成
4.結果を表示(作ったHTMLへ飛ぶってこういうことか?)

なら、HTMLの基本中の基本だろ?
で、3の部分でPHPを使いたいわけだ。

んで何が分からないの?
04804662006/11/29(水) 17:32:34ID:gqW8eidG
3のところでphpつかって作成して
で4で作ったHTMLに飛びたいんです
その4の部分がわからなくて・・
アホでごめんなさい
04814682006/11/29(水) 17:39:43ID:???
>>477
なるほど。HTTP系の関数の何かが使えそうですね。
もう少し色々と調べてやってみます。

>>478
>ポート番号80で調べるということは、自宅鯖持ちのやつを全部弾くつもりか
そうですね。
ただ、コメントを禁止するだけで、閲覧はできるようにします。
2chのような掲示板ではないですし、所詮個人サイトなので、
用件があればメールも用意してるし大丈夫だと勝手に判断しました。
それよりも鯖を運営してるIPで、ネットサーフは危険じゃないですかね。
0482nobodyさん2006/11/29(水) 17:40:25ID:???
>>480
いやだからさ、2のサブミット先をphpファイルにすれば、
そこで出力した結果がブラウザに表示されるだろ?
それが4なんじゃないのか?
04834662006/11/29(水) 17:49:05ID:gqW8eidG
いや、その時点ではまだHTMLファイル作成されてなんです
2で、飛んだPHPファイルでhtmlファイルを作って
4でさらにそのhtmlファイルに飛ぶかんじです

やり方がおかしいですかね?
やりたいこととしては、フォームで番号入力させて
その番号のhtmlファイルを作って、そこに飛ばす
って感じです
0484nobodyさん2006/11/29(水) 18:03:40ID:???
1.フォームを表示(前からあるhtmlファイル)
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:???
やり方がおかしいw
0486nobodyさん2006/11/29(水) 18:11:08ID:???
session_startが実行されているかどうか調べる関数ってあるんでしたっけ?
今は$_SESSIONを調べているのですが気になった
0487nobodyさん2006/11/29(水) 18:47:24ID:J9ZOlswS
tuika.php ソース
<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_以下の数字の部分を記号で表すように
したいのですが、一体どうすればいいでしょうか。誰か教えてください。
04884872006/11/29(水) 18:50:57ID:J9ZOlswS
あ、すみません、tuika.phpの4行目は正しくは
echo "<form action='kakunin.php method='post'>";
でした。
0489nobodyさん2006/11/29(水) 19:03:23ID:???
>>483
だから>>467で回答してあるんだからマニュアルでheader()関数ぐらい調べろよ
http://jp.php.net/header
の「2番目の特別なヘッダは、」あたりに書いてあるだろ
やりかたわからないです
とかいう前にわかろうと努力すらしない
おまえはいつまでたっても進歩しないだめ人間だ
プログラミングとか向いてないからさっさとやめたほうがいいよ
0490nobodyさん2006/11/29(水) 19:31:43ID:OZta3BjG
>>487
シングルクオートの中では変数は展開されない。

echo $_POST['data_'.$p];
echo $_POST['data_'.$q];

とか

echo $_POST["data_{$p}"];
echo $_POST["data_{$q}"];

とか書くべし。

あと4行目、>>488でもおかしくない?kakunin.phpの後ろにシングルクオート要るでしょ。
04914662006/11/29(水) 19:34:15ID:gqW8eidG
ごめんなさい、まじでいそいでて。
header("Location:$text.'.html'"); で飛ばないんですがなぜ?
0492nobodyさん2006/11/29(水) 19:43:30ID:???
491がスルーされますように。。。
04934872006/11/29(水) 19:55:47ID:J9ZOlswS
>>490
できました! ありがとうございます!
0494nobodyさん2006/11/29(水) 20:02:17ID:???
例えば変数内に”test.gif”などとファイル名があったら
表示(echo時)に自動的に<img src="test.gif">のように
することってできるのでしょうか?
0495nobodyさん2006/11/29(水) 20:09:27ID:???
意味不
0496nobodyさん2006/11/29(水) 20:16:14ID:???
>>491
今日はまだ4時間もある。
とりあえずマニュアルを読んできなさい。
0497nobodyさん2006/11/29(水) 20:23:41ID:???
>>494
っ 正規表現で置換
04984152006/11/29(水) 20:41:58ID:???
>>416
多分、直近レスのせいでキャッシュリミッタに固定観念が入っちまったんだとは思うが、俺が聞いてるのはブラウザの挙動の話
ヘッダ情報は正しく送られているのは確認済で挙動が昔と違うわけな
ずっとwebやってた奴なら何か変化があったか情報を持ってるか?聞いた方が早いと思うわけ
ヘッダ情報を処理するのはあくまでブラウザだからな、ブラウザの実装によって動きが変って当然なのな、分かる?
結局、vmに残ってたwin98のie5と比較したら、やっぱり挙動が変ってたな
0499nobodyさん2006/11/29(水) 20:51:03ID:???
>>441
何か難しそうな事言ってるつもりみたいだけど演算なんて必要ないよw
0500nobodyさん2006/11/29(水) 21:00:05ID:Ob2oQ/dq
PHPの開発にeclipseを使いたいのですが、これはEUCに文字コードを設定すると
「ー」が文字化けするとかなんかあるんですけど、ファイルの文字コードはEUCですよね?
0501nobodyさん2006/11/29(水) 21:10:06ID:???
>>441 ぷっ。よくこんな幼稚なこと平気で書けるな。
>>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軟式PHP2006/11/29(水) 21:14:32ID:???
久々にきたら凄い奴が登場してるなwww
0503nobodyさん2006/11/29(水) 21:22:36ID:???
貴様らにはセキュアという言葉の意味がわからないようですね^^;
0504nobodyさん2006/11/29(水) 21:47:07ID:???
PHP5ってどうなの?
0505nobodyさん2006/11/29(水) 21:48:06ID:???
>>503
それを気にするなら、まずネットから切断するべきですよ
0506nobodyさん2006/11/29(水) 22:04:54ID:???
>>504
速い
0507nobodyさん2006/11/29(水) 22:07:20ID:???
>>494
>例えば変数内に”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/dq
apachebenchってguiで動かせませんか?
0509nobodyさん2006/11/29(水) 22:19:40ID:???
>>507
そんなんでいいの!?いくらなんでもしょぼすぎる気が...
05104942006/11/29(水) 22:21:14ID:???
>>501
まさにこれです!ソースまでいただき、ありがとうございました。
0511nobodyさん2006/11/29(水) 22:29:13ID:???
>>507
でも>>497の文章だとそれも正解ではある。
0512nobodyさん2006/11/29(水) 22:30:13ID:???
訂正
×>>497
〇>>494
05135012006/11/29(水) 22:32:19ID:???
>>510
どういたしまして。そんなに喜んでもらえるとこっちもうれしいよ(ノ´∀`*)
0514nobodyさん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)){
○ if(strlen($post)>0){
0517nobodyさん2006/11/29(水) 22:56:14ID:???
くだスレで釣りとか言うなカスが
0518nobodyさん2006/11/29(水) 22:56:48ID:1R8/2qI8
>>516さん

ありがとうございました。助かりました。
0519nobodyさん2006/11/29(水) 22:57:01ID:???
ほうっとけよカスなんだから。
0520nobodyさん2006/11/29(水) 23:01:05ID:???
自作自演乙
0521nobodyさん2006/11/30(木) 00:25:39ID:???
>>453
フィッシングサイトからリンクされている正規のサイトを見た人の面倒は見る必要あるだろうが。

その理論でいったら、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:???
>>523
10KBくらいならメモリ食ったうちにも入らないから配列に入れちゃった方がいいんでない?
CSVファイルが単純なカンマ区切りならどっちでもそんなに変わらないけど、
ちゃんとエスケープ処理されてるExcel互換CSVファイルなら
展開が少し重くなるから、何度も展開しない方が多少は早い。
まー、でも1000行にも満たないレベルじゃたかが知れてそうだけど。
0527nobodyさん2006/11/30(木) 10:03:48ID:???
そんな負担を気にするぐらいに、ヘボマシンか、アクセス過剰なのか?
0528nobodyさん2006/11/30(木) 11:22:03ID:???
「%u3042」を PHP で「あ」に戻す方法はないでしょうか?
urldecode() や mb_convert_kana() ではないみたいですし。
0529nobodyさん2006/11/30(木) 11:57:24ID:???
>>528
ここ参考になる?
http://module.jp/blog/regex_unicode_prop.html
0530nobodyさん2006/11/30(木) 12:00:07ID:???
>>528
http://jp2.php.net/urldecode
ユーザーノートにそれっぽいのあるけど
05315232006/11/30(木) 12:12:40ID:sNmjvtK7
>>524,526
あ、そんなもんなんですね、
いや、最近始めたものでその辺の感覚がよく分からなかったので。
ありがとうございます。勉強になりました。
0532nobodyさん2006/11/30(木) 12:51:57ID:???
>>529-530
ありがとうございます。
ユーザーノートにある 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:???
$c=array_merge($a,$b);

こうですね。
0537nobodyさん2006/11/30(木) 14:23:37ID:???
$c = $a + $b; とか。
0538nobodyさん2006/11/30(木) 14:39:16ID:sFslmVcl
フォームのセクリティについて質問させてください。
htmlspecialchars
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
を行い、設定ファイルのいくつかがデフォルトに戻ってしまったのも
原因のうちかもしれません。
0541nobodyさん2006/11/30(木) 14:56:27ID:???
>>540
メモ帳が開くって事からエスパるとurlでアクセス汁
0542nobodyさん2006/11/30(木) 15:20:06ID:???
>>541
お前の回答の方がエスパー必要だ
0543nobodyさん2006/11/30(木) 15:24:23ID:???
>>542
お前も再起動してこい
0544nobodyさん2006/11/30(木) 15:38:08ID:???
purgeしなきゃ設定ファイルはそのままだろ
0545nobodyさん2006/11/30(木) 15:48:30ID:G4M0iaJf
昨日のAsial社主催のセミ受講した人いる?
どんな感じだったでしょうか
0546nobodyさん2006/11/30(木) 16:10:33ID:HTGu5qKm
Mysqlのテーブルにデータを追加するinsert文の中にループを組み込むことは可能でしょうか
例えば

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:???
断る
0548nobodyさん2006/11/30(木) 16:16:35ID:???
>>546
可能だけどそれはMySQLスレで聞いといで
0549nobodyさん2006/11/30(木) 16:19:43ID:HTGu5qKm
>>548
わかりました!
0550nobodyさん2006/11/30(木) 16:35:17ID:???
>>546
for($a = 0; $a < 4; $a ++) {
mysql_query("insert into table_1(ID_C)values('999')"),
}
でいいんじゃないのか?
0551nobodyさん2006/11/30(木) 16:42:03ID:tD1Wqo8l
UNKO
0552nobodyさん2006/11/30(木) 16:43:29ID:???
>>538
セクリティってなんかエロいですね。
05534872006/11/30(木) 17:11:32ID:HTGu5qKm
>>550
できました! ありがとうございます!
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:???
copyの第一引数がおかしい
0556nobodyさん2006/11/30(木) 19:56:12ID:???
つかエラーメッセージ見ればすぐ分かりそうなもんだけど
コーディング中にエラー抑止とかありえないっす
05575542006/11/30(木) 20:04:28ID:???
failed to open stream: No such file or directory in

と出るのですが、コピー先のディレクトリはあります。
0558nobodyさん2006/11/30(木) 20:10:45ID:???
copy($dir_name."/".$file,"to/".$file);
0559nobodyさん2006/11/30(木) 20:11:20ID:???
ネタは他所でやってくれ。
0560nobodyさん2006/11/30(木) 21:56:38ID:???
ネタじゃないです
マジレス希望です
0561nobodyさん2006/11/30(木) 22:15:45ID:???
駅前留学したら?
0562nobodyさん2006/11/30(木) 22:32:16ID:???
>>561
そういう意味不明で無駄なことを書くなカス
0563nobodyさん2006/11/30(木) 23:29:33ID:???
はじめたばかりの初心者です。
質問させてください。。

$str = $_POST["atai"];
if(strlen($str>0)){
print($str);
}
else{
print("エラーです");

この場合textに書き込みがあれば表示し、書き込みがない場合エラーですを
表示したいのですが最初から「エラーです」が出てしまいます
どのようにすればよいのでしょうか。。

0564nobodyさん2006/11/30(木) 23:41:20ID:???
>>563
>>516
0565nobodyさん2006/12/01(金) 00:10:10ID:???
最近、あちこちのスレにこの手の房が増えてんだよな・・・
0566nobodyさん2006/12/01(金) 00:13:53ID:???
夏休みとか長期休暇の五月蝿さと比べたら、別に大した事はないような。
05675632006/12/01(金) 00:19:28ID:???
>>564
ありがとうございます。
なおしましたがやはり最初の時点で「エラーです」が表示されてしまいます。。、
どこがいけないのでしょうか。
送信ボタンを押したら出力させたいのですが。。
申し訳ありませんがどなたか教えてください
0568nobodyさん2006/12/01(金) 00:34:11ID:???
var_dump($_POST["atai"]);してみそ
05695632006/12/01(金) 00:43:50ID:???
$str = var_dump($_POST["atai"]);
if(strlen($str)>0){
print($str);
}
else{
print("エラーです");



ありがとうございます。これでやったところ
string(0) "" エラーです

と出力されてしまいます。すみません引き続きおねがいします。。



0570nobodyさん2006/12/01(金) 00:55:55ID:???
<?php
$str = var_dump($_POST["atai"]);
?>

だけで試してみたら?
0571nobodyさん2006/12/01(金) 01:01:45ID:???
>>569
var_dumpでstring(0) "" が出力されることは
$_POST["atai"]が空ってこと
だからstrlenでも 0 が返る

NULLじゃないから一応定義されてるみたいだけど
05725632006/12/01(金) 01:08:56ID:???
ありがとうございます。そういうことなんですか。
さきほどので試したところNULLのみ表示されました。
最初は無表示でボタンを押すと空の場合エラーですという出力にその関数が必要なのですか?
0573nobodyさん2006/12/01(金) 01:20:18ID:???
var_dumpは主にデバッグに使うものだと思うけど
0574nobodyさん2006/12/01(金) 04:36:07ID:???
>>567
そもそもボタンを押す前はそのプログラムを動かさなきゃいい。
フォームを表示するプログラムと、そのデータを受け取るプログラムを分けれ。
0575nobodyさん2006/12/01(金) 05:48:50ID:???
$_GETS["m9"]
0576nobodyさん2006/12/01(金) 08:34:57ID:???
$_GETS["9m"]["m9"]
0577nobodyさん2006/12/01(金) 09:38:42ID:???
>>572
先頭でprint_r($_POST);するとどうなってる?
0578nobodyさん2006/12/01(金) 10:38:52ID:???
>>577
そんなん言ったところでNULLってなんですかレベルのやつに意味分かるわけないし。
0579nobodyさん2006/12/01(金) 11:32:09ID:pNXMUOFK
<?
$test = "test";
?>
<?=$test?>

ってやると$testの中身がprintされるんですが、これはマニュアル等にあるきちんとした仕様ですか?
基本的な文法からするとすごい意外だったんですが・・。
0580nobodyさん2006/12/01(金) 11:33:53ID:???
>>579

確か <?= は <?print と等しかったと思う。

ただ、それ、ショートタグを有効にしてないと使えないよね。

<?php= $test ?>

とかやってもできないしorz

ショートタグ関係の機能なんじゃないかな。
0581nobodyさん2006/12/01(金) 11:47:43ID:???
http://jp2.php.net/manual/ja/language.basic-syntax.php
0582nobodyさん2006/12/01(金) 11:47:45ID:???
>>579-580
きみたちもう少しマニュアルとか読もうよ。
05835802006/12/01(金) 11:50:48ID:???
>>581
サンクスです

http://jp2.php.net/manual/ja/ini.core.php#ini.short-open-tag

やはり、short_open_tag を on にしていないと使えなかったんですね。

<? と ?> のショートタグは無効にしたい (XML宣言とかで邪魔になるし美しくないので) のですが、
<?php= みたいな方法で <?php echo を使いたいんです(´・ω・`)

やはりこれは無理なんですかね…。

0584nobodyさん2006/12/01(金) 11:51:38ID:???
>>579
とりあえず何が意外なのか書こうよ。
0585nobodyさん2006/12/01(金) 11:56:14ID:pNXMUOFK
ありがとうございました、マニュアル自分で探せばすぐでしたね。
横着はいけないなと・・。

ショートタグを活用したことが無かったので意外だったんですよね。
構文エラーじゃないのかと思った次第です。
<?=$test?>
0586nobodyさん2006/12/01(金) 14:56:38ID:???
Ver.5とかになってるphpでそれはないだろうw
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/4eJy6
質問です
FORMに数字しか入力させないようにしたいのですが
なんの関数を使えば良いでしょうか
0591nobodyさん2006/12/01(金) 15:47:39ID:???
ereg()
0592nobodyさん2006/12/01(金) 15:54:49ID:???
>>590
is_numeric()
0593nobodyさん2006/12/01(金) 16:02:12ID:NWvcMdwA
array_walk()ってarray_map()の自爆関数版?
0594nobodyさん2006/12/01(金) 16:05:26ID:mT/4eJy6
>>591-592
どうもでしたー
0595nobodyさん2006/12/01(金) 16:19:55ID:???
>>593
違うよ
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:???
<?php
$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:???
ブラウザはMIME-Type(Content-Type)を判断して動作するから
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:???
はるか昔…
本スレとくだスレという、互いを意識しあう二つのスレが存在した。
本スレに住む住人は、「くだスレいらなくね?」と思い、くだスレに住む住人は、「本スレいらなくね?」と思っていた…
そんな拮抗した時代はもろくも崩れ去った…
本スレ住人とくだスレ住人の戦争が勃発したのである。
続く↓
06035962006/12/01(金) 20:25:17ID:???
>>597,599
ありがとうございます。
試しに597さんのソースをex.phpの上部に貼り付けて
$path_fileをプログラムがある場所を指定したのですが、
ダウンロードはされるものの、作成されたファイルを開けません。
(なので、作成失敗していると思います)
0604nobodyさん2006/12/01(金) 20:27:32ID:ZL9qk5lm
IDとパスワードでログイン認証してる会員制サイトがあるのですが、
あるユーザ(例えばID=10)がログインしてるとき、IP等だけでなく、
IDもapacheのログに追加出力するにはどうしたら良いのでしょうか??
IDの内容は$_SESSIONで持ちまわっています。

apacheのログ出力設定の何かをいじるのだろうと思いますが、
ググってもいまいち望みの結果が検索できませんでした。。。
0605nobodyさん2006/12/01(金) 21:11:34ID:???
Apacheのログ形式に成形したのに、
IDを付け加えた別のログを吐くしかないのでは?
0606nobodyさん2006/12/01(金) 21:17:25ID:???
phpでsetenvしてapacheで受け取れんの?
0607nobodyさん2006/12/01(金) 21:21:04ID:???
自作のphpにtelnetからPOSTで入力を試してるのですがうまく行きません。
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には何も入力されずああが増えるだけです。
どなたか原因を教えてもらえないでしょうか?
0608nobodyさん2006/12/01(金) 21:34:29ID:???
>>604
別々にログとって、後で合体させるスクリプトでも書けばおk
0609nobodyさん2006/12/01(金) 21:58:33ID:???
apache_setenvを使えばカスタムログから参照可能
06106072006/12/01(金) 22:18:29ID:???
自己解決した。
Content-type: application/x-www-form-urlencoded
を入れるとうまく動いた。
06116072006/12/01(金) 22:21:35ID:???
自己解決した。
Content-type: application/x-www-form-urlencoded
を入れるとうまく動いた。
06126072006/12/01(金) 22:22:13ID:???
自己解決した。
Content-type: application/x-www-form-urlencoded
を入れるとうまく動いた。
0613nobodyさん2006/12/01(金) 22:46:46ID:???
>>607
良かったなぁ。
0614nobodyさん2006/12/02(土) 00:33:11ID:???
functionの中でwhileを使ってDB(MySQL内)のデータを出そうとしました。

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:???
>>614
大して読んでないが
whileの中を

echo "<option value={$row['name']}>{$row['name']}</option>\n";
でテストして味噌
06166142006/12/02(土) 01:07:52ID:???
>>615
ありがとうございます。ただ、特に変わりないです・・・。
0617nobodyさん2006/12/02(土) 01:29:25ID:C/1Qwb+b
FC4にyumコマンドでphp-5.0.4をインストールしたのですが
zip関数を有効にするにはどのようにしたらよいでしょうか。
どなたかご教授頂けると恐縮です。
0618nobodyさん2006/12/02(土) 01:35:51ID:???
while の中で
print_r($row);
するとちゃんと値出る?
06196182006/12/02(土) 01:36:21ID:???
>>614あてね
06206142006/12/02(土) 01:42:30ID:???
>>618
いえ、出ません。そしてソースを見ると以下のようなエラーが出てます。

<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:???
http://www.php.net/ChangeLog-5.php
・Added RFC1867 fileupload processing hook. (Stefan E.)

これ実装した拡張モジュールってありませんか?
あと「PHPの本スレ」みたいなものはないんですか?
0623nobodyさん2006/12/02(土) 03:30:08ID:???
>>620
おいおい、先にエラー出てるって言えよ・・
そのエラー内容と出てる行があらば考えるか検索できると思うよ。

でmysql_fetch_array()でエラー出てるから、$conが問題なんじゃね。
DBにコネクト出来て無いとか

ttp://www.php.net/manual/ja/function.mysql-connect.php
の例を見てコネクトをチェックしなさい。

何で俺今日はこんな面倒見がいいんだろw
0624nobodyさん2006/12/02(土) 04:53:53ID:???
MySQLのあるフィールドの値に1加算する場合って
一旦mysql関数で現在値データ拾ってきて、それにphpで+1して
UPDATEするしか無理でしょうか?

直接MySQLへのクエリーのみで+1することは不可能でしょうか?
0625nobodyさん2006/12/02(土) 06:04:13ID:???
>>624
いくらなんでもMySQLを馬鹿にしすぎだろ

まぁ、PHPの話題ではないけどできるはずだ
0626nobodyさん2006/12/02(土) 06:24:15ID:???
それができないと、会員番号とかプログラム的に増やさないといけないし、
同時にリクエストきたらプログラム対応じゃ面倒だろうがw
0627nobodyさん2006/12/02(土) 06:24:50ID:???
update table1 set field1 = field1 + 1 where id = ・・・;
こんな感じだったっけ?
0628nobodyさん2006/12/02(土) 07:38:24ID:???
mysql系で質問してる奴、同一人物だろ・・・
sqlのマニュアルくらい読めよ
0629nobodyさん2006/12/02(土) 08:00:44ID:???
上の人とは別人ですが、
MySQLでorderというフィールドを作成して、
順番データを入れたいと思います。
それを参考に、phpで表示させる、という流れです。

今やってる苦肉の策は
指定データ(行)のorderの値だけ1加算する、というかたちです。
これだとorderが10のデータと順番を変えようと思ったら、
10回動作させなければいけません。

orderデータに一意性を持たせて、、、
みたいなことも考えましたが、いかんせんかなり面倒な感じになりそうです。

どんなロジックでいけばいいのかわからないのですが、
何かよい方法はないでしょうか。
0630nobodyさん2006/12/02(土) 09:23:47ID:???
>>629
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で終了の気がするけど。
0631nobodyさん2006/12/02(土) 09:29:46ID:???
>>630
下のsetはorder=3だった。まぁ分かるよね。
0632nobodyさん2006/12/02(土) 09:47:53ID:???
http://www.php.net/manual/ja/function.flock.php
>ロック中に flock()でブロックを行いたくない場 合は、operation に LOCK_NB を加えます。

LOCK_NBとは、これは具体的にどういう意味ですか?
マニュアルの説明文ではどうもよくわかりません。
0633nobodyさん2006/12/02(土) 09:48:57ID:???
perlのuse integerみたいな設定?ってphpにはないですか?
0634nobodyさん2006/12/02(土) 09:56:35ID:???
>>632
他のプロセスがflockしてるときにさ、

(1)LOCK_NB無しでflockしようとする時(通常)
他のプロセスがflockが終わるまで待機する。

(2)LOCK_NB有りでflockしようとする時
flockはあきらめて先に進む。
0635nobodyさん2006/12/02(土) 10:01:03ID:???
>>634
わかりましたどうも。
しかしそれって不完全で、あんまりflockしている意味ないですね・・。
0636nobodyさん2006/12/02(土) 10:02:40ID:???
使い方によるよ。君のロックの考え方が一辺倒なだけ。
0637nobodyさん2006/12/02(土) 10:04:34ID:???
>>635
flockは成功するとTRUE、失敗するとFALSEだから
LOCK_NBありのときは返り値を見て処理を変更するとか、
結構使いどころはあるよ。
0638nobodyさん2006/12/02(土) 10:06:43ID:???
なるほど、LOCK_NBでfalseの時は、別処理にするとかですか。
0639nobodyさん2006/12/02(土) 10:12:10ID:???
>>633
ない
0640nobodyさん2006/12/02(土) 10:12:35ID:???
本当に下らない質問なんですが、
WindowsのPHP4.4.2でfopenでURIを読み込もうとすると、apacheがエラーになります。
(WindowsXPで一般保護エラーのダイアログ?が出る。ご不便をおかけして申し訳ありません。のやつ)
何かモジュールを組み込む必要がありますか?
0641nobodyさん2006/12/02(土) 10:25:15ID:???
前に特定のバージョンのApacheでそんなバグが出てた報告見たよ。
Apacheをアップデートしてみたら?
0642nobodyさん2006/12/02(土) 10:56:39ID:h5X/zZpV
640です。追記です。php.iniは、
allow_url_fopen = On
になってます。
0643nobodyさん2006/12/02(土) 10:57:19ID:h5X/zZpV
>>641
ありがとうございます。試してみます!
06446142006/12/02(土) 11:31:04ID:???
>>623
だいぶレスが遅れてすみません。。$conの問題ではないです。
function内ではなくrequireで読み込むと表示されますし、
function内でもwhileの箇所を$row=mysql_fetch_array($rst);
にすると1行出力されます。

だからfunction内でwhileを使えないのか?もしくは何か設定があるのか?
っと思い、質問した次第です。リファレンスとか見まくったのですが、解決しません。。
0645nobodyさん2006/12/02(土) 11:38:22ID:???
print_r($row);してみそ
0646nobodyさん2006/12/02(土) 11:40:20ID:???
>>644
そんなん無い。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:???
>>645
どうしてそういう遠回りで無意味なデバッグ方法を示唆すんの?
それともお前は普段そんな変なデバッグ方法をとってるのか?
06486292006/12/02(土) 11:42:19ID:???
>>630

そのやり方の場合、
orderの値を全て把握していないと厳しくないでしょうか?
例えば、
a(order=100)
b(order=50)
c(order=3)
と並んでいて、
cを上に上げるためにはbのorder値と、
bをaの上に上げるためにはaのorder値と比較しなければいけないですよね?

MySQLでorderの直近の上の値をチェックできれば楽かと思いますが、
phpで実現しようと思うとかなり面倒なコーディングになるような気がするのですが・・。
0649nobodyさん2006/12/02(土) 11:47:05ID:???
>>648
なんでorderの値を連番にしないの?
0650nobodyさん2006/12/02(土) 11:47:18ID:???
>>639
ないですか。
整数演算はぜんぶFPU命令なんですね・・。
0651nobodyさん2006/12/02(土) 11:50:08ID:???
>>650
いや、PHPは演算データにfloat型を混ぜない限りはintで全部計算するよ。
06526142006/12/02(土) 11:52:35ID:???
>>646
おっしゃる通りでした・・。
この掲示板ではわかりやすいように>>614と書いたのですが、
実際は$con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD)と
変数にしていました。

これを変数ではないサーバの設定に変えたところ、問題なく表示されました。

デバッグの方法も頭から抜けていました。大変勉強になりました。
昨日からご迷惑おかけしました。ありがとうございました。
0653nobodyさん2006/12/02(土) 11:55:32ID:???
>>651
おお、混ぜなければいいんですね。
ありがとうございました。
0654nobodyさん2006/12/02(土) 12:22:46ID:h5X/zZpV
>>641
apacheを2.0.59にアップデートしてみましたが、やっぱりエラーが表示されました。
2.2系にアップデートしないといけないかもしれませんね?
0655nobodyさん2006/12/02(土) 13:35:25ID:???
>>654
ごめん。過去ログ確認したら間違ってた。
それ、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:???
>>648
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:???
そろそろPDO使おうぜ
0660nobodyさん2006/12/02(土) 17:04:20ID:???
>・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
0661nobodyさん2006/12/02(土) 17:19:31ID:???
>>648
MySQLのバージョン次第では副問合せでいけそうだが。
06626582006/12/02(土) 17:38:00ID:2AsRSHi/
>>659
ご回答ありがとうございます。
マニュアルを見たのですが、先ほどの例の場合、どう記述するかが
掴めません。よろしければ、お教え願えないでしょうか?
0663nobodyさん2006/12/02(土) 17:56:03ID:???
mysql_num_rows
0664nobodyさん2006/12/02(土) 18:01:33ID:???
>>624
クエリーだけで+1できるよ。
UPDATE テーブル名 SET `hoge`=`hoge`+1 WHERE 〜

っていうか、使い方にもよるけど、
MySQLのオートインクリメントを使えばいいと思うが。
0665nobodyさん2006/12/02(土) 18:15:12ID:???
>>664
オートインクリメントで+1できるのはinsertであって
updateしたい要望とは全然噛み合ってない気がするが。
つーか>>627
0666nobodyさん2006/12/02(土) 18:16:43ID:???
>>658
正しくない。mysql_queryの戻り値はSQL実行でエラーが出たかどうかであって
データが見つかったかどうかではない。
データの有無は取得されたデータを見ないとダメ。
0667nobodyさん2006/12/02(土) 18:22:19ID:???
>658
正しいかどうかは動かしてみればわかるだろ。
0668nobodyさん2006/12/02(土) 18:32:10ID:???
マニュアルを全く見ていない奴に手取り足取り教えてくれるスレなんですね
0669nobodyさん2006/12/02(土) 18:33:53ID:???
まぁ、くだ質なんてそんなもんだ
0670nobodyさん2006/12/02(土) 18:38:22ID:???
>>668みたいなのは見ない方が良い隔離スレだよ
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:???
だってこのスレ立てたの俺だもの
0679nobodyさん2006/12/02(土) 19:12:12ID:???
>>673
>>676
お前ら何でこのスレにいるの?
0680nobodyさん2006/12/02(土) 19:12:58ID:???
>>678
誰だよお前
0681nobodyさん2006/12/02(土) 19:13:54ID:???
俺だよ俺、俺!
0682nobodyさん2006/12/02(土) 19:18:38ID:???
バカが自己満足してるから説教されてるんだろバカw
0683nobodyさん2006/12/02(土) 19:26:11ID:???
>>1がどんな意図で立てようが知ったことじゃないし。
だいたいくだ質のパートスレとしか書いてないのに誰に伝わると思ったんだろ。
0684nobodyさん2006/12/02(土) 19:27:35ID:???
沢田研二はなんなんだよ
0685nobodyさん2006/12/02(土) 19:38:51ID:???
こいつらマジに取ってるよwww
0686nobodyさん2006/12/02(土) 19:42:01ID:???
      ノノノハヽ  ∋ノノノハ∈   @ノハ@+
      ((  (0^〜^∩   (^▽^ ∩   (‘ д ‘ ∩     ))
       ⊂ 中退 丿  ⊂中卒 丿  ⊂専門卒丿 ♪
   +     ( (  (    ( (  (     ( (  (   ∧_∧    +
   ノハヽヽ  (_(_)   (_(_)    (_(_) /ハ)ヽヽ   +
  ( ´__ `)  ♪                  ♪  (´ー ` ●)
  ( あなたつ   差別をなくして明るい社会  ⊂修士終了 )
   ) ) )    同じ人間同士仲良くしましょう   ( ( (
  (_(__) ♪                       (__)_)
        ノノノハヽヽ  ∂/ハ)ヽ   ノノノハヽ ♪
        川^ v ^ 从  (〜^◇^)    川 ゚ ___ ^ ノ||
       ( 高専卒  つ、( 大卒 つ、(博士終了つ、   +
         ) )ヽ_ノ  ) )ヽ_ノ   ) )ヽ_ノ     +
         (__)     (__)     (__)
0687nobodyさん2006/12/02(土) 19:42:04ID:???
敗北宣言キター
0688nobodyさん2006/12/02(土) 19:59:16ID:???
>>671
君のような事を言う人間を何人も見てきた。

さぁ、現状を見たまえ。
そして、その主張が全くの無駄だという事に気付け。
精神衛生上、二度とこのスレに近寄らない事を強く推奨する。
0689nobodyさん2006/12/02(土) 20:03:26ID:???
>>688
去年も同じフレームやってただろお前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:???
道徳語られて反抗心もやしたガキだろw
0694nobodyさん2006/12/02(土) 20:27:31ID:???
エロサイトかスパイウェアの宣伝じゃね?
0695nobodyさん2006/12/02(土) 20:28:04ID:???
どっちかというと手取り足取りっつーか鼻くそほじりながら適当にレスするスレだよな
0696nobodyさん2006/12/02(土) 20:28:31ID:???
まぢか。。
いくら消しても、時間がたつと出てくるのだが。。
これは家族のパソコンだからマヂヤバイんだが。。
0697nobodyさん2006/12/02(土) 20:31:31ID:???
>>695
お前ハナクソほじってたのかよ!近寄るなボケ
0698nobodyさん2006/12/02(土) 20:35:43ID:???
今、スパイウェア駆除でググってみたら、ダウンロード出来るサイトがあった。
一回それでやってみるぽ。
0699nobodyさん2006/12/02(土) 20:36:40ID:???
>>688
俺もお前みたいのを何人も見てきた。
いいかげん学習したら?
0700nobodyさん2006/12/02(土) 20:38:51ID:4l/VpbTL
printとecho
forとwhile
eregとpreg_match

どちらを使うようにすればいいのでしょう?
0701nobodyさん2006/12/02(土) 20:41:25ID:???
どっちでもいいよ
いまエロトロイでそれどころじゃない!
0702nobodyさん2006/12/02(土) 20:46:16ID:???
>>688
>>699
何人も見て何も学習しないお前らが一番馬鹿w
07036992006/12/02(土) 20:51:50ID:???
>>702
ああ言うの見て学ぶことなんて特にないよ
それに一番って何?
0704nobodyさん2006/12/02(土) 20:51:57ID:???
>>700
個人的な趣向を交えて言えば、

・printとecho
通常はechoだけど、printは値を返すらしいので、たとえば
kansu() or print("kansu失敗");
とかできるみたいだ。一度もやりたいと思ったことないけど。

・forとwhile
何かを順次処理するときはできるかぎりfor。それ以外はwhile。
あとは、while ($row = DBからfetch系())のようなイディオム次第。

・eregとpreg_match
pregのほうが強力なので、pregを常用。

ついつい長々回答してしまったorz
07057002006/12/02(土) 20:53:47ID:4l/VpbTL
>>701
ありがとうございます。
ふだんはforを使ってるので、whileの文法を忘れてしまう事が…
入門書にはeregの事が書いてあって、pregが一切なし。 人のソース見るとeregではなくpregを使ってる方が多いような気がしたので、どうなのかと思っていました。
0706nobodyさん2006/12/02(土) 20:54:51ID:???
>>704
順次処理ってのは初心者には分かりにくいかなあ
PHPの話じゃないから省いたのかしらんが
0707nobodyさん2006/12/02(土) 20:56:49ID:???
一人で何やってんの?
0708nobodyさん2006/12/02(土) 21:10:30ID:???
>>706
なんていうか$i++とか$j--とか$iter->next()みたいな、「次のステップに行くための処理」が別個に必要なときは、できるかぎりforを使いたいかな。
whileのブロックの終わりのほうに$i++等を書くのは、極力避けたい。
0709nobodyさん2006/12/02(土) 21:14:16ID:???
>>705
pregはPerlの独自拡張で複雑だから、入門書は基本的なPOSIX仕様のeregにしたのかもね
pregでマルチバイトを処理するには、文字列をutf-8にしてuオプションつけなきゃいかんことあるし

ていうかエロトロイに礼なんか言うなw
0710nobodyさん2006/12/02(土) 21:19:30ID:dk8eu7iU
>>704
>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:???
PHP5.2対応のWin ZendOptimizerをインストールしてみたんだけど何か英語で
エラーダイアログが出たw。そのままインストールが進んだけどPHPinfoで
インストールが正常に完了したのか確認できるんでしょうか?。
php.iniには追加されてたしapacheをリスタートしても平気みたいだから大丈夫かな。
0712nobodyさん2006/12/02(土) 21:21:33ID:???
k1ハジマタ
0713nobodyさん2006/12/02(土) 21:21:35ID:???
whileはbool判定をループする時に使うのが理想だけどfor書くよりwhileと書くほうが楽ではあるww
0714nobodyさん2006/12/02(土) 21:21:58ID:???
for →ループする回数をこちらで指定するとき
while→DBからの取得やファイルからの読み込みなど読込先に依存するとき
って感じかな。
0715nobodyさん2006/12/02(土) 21:23:55ID:???
>>711
なんでわざわざ出てる答え(メッセージ)を無視して他人に質問するの?
0716nobodyさん2006/12/02(土) 21:24:01ID:???
おう、エロエロ土曜ワイド劇場の時間か。
07177002006/12/02(土) 21:30:06ID:4l/VpbTL
>>704
printは奥が深いですね… 今はecho使ってるのでそのまま使っていく事にします。
forとwhileについては713,714を見てたらだんだん混乱してきました。
ゆっくり理解してみます。

マルチバイトの文字コードは苦手分野で、EUC-JPで書いてるときはpreg_matchする場合は毎回エンコードする必要があるのですかね。
そのあたりは実際にやってみて調べてみようと思います。
07186582006/12/02(土) 21:30:53ID:2AsRSHi/
>>663
ありがとうございました。mysql_num_rows を教えていただいおかげで
ここのところ行き詰っていた部分が一挙に解決しました。
0719nobodyさん2006/12/02(土) 21:54:59ID:???
開発環境はノーパソのWindows(WAMP)で,本番用はLinux(LAMP)なサーバなんだけど,この2つで(絶対パスで指定しているところとか)ちょこちょこ設定が違うのよ.
で,phpの側で自分の実行環境を自動認識させたいんだけど,どんな方法が良いのやら.
$_SERVER[SERVER_SOFTWARE]から分けるとかしか思い浮かばないんだけど,何か良い手があったら是非・・・
07207192006/12/02(土) 21:55:34ID:pNytI564
すいません,メール欄消し忘れた・・・
0721nobodyさん2006/12/02(土) 21:57:13ID:???
PHP_OSもあるでよ
0722nobodyさん2006/12/02(土) 22:03:01ID:???
DOCUMENT_ROOTに「:」が含まれていたら窓
0723nobodyさん2006/12/02(土) 22:22:58ID:???
>>719
開発環境にVMware入れて本番環境を構築。
Document rootをsambaでローカルマウントすると
開発も確認も楽だし、環境の違いも考えなくて済むよ。

メモリがたくさん欲しくなるけど。
0724nobodyさん2006/12/02(土) 22:28:01ID:???
アクティブパーティションにPHP入れればパス互換になるよ
0725nobodyさん2006/12/02(土) 23:48:58ID:???
設定ファイル作って定数にパス指定すればいいんじゃねぇの
0726nobodyさん2006/12/03(日) 01:11:00ID:WgFKbMzx
画像をアップロードするスクリプトで、ディレクトリを動的に作成しようと思って
mkdir()使ったらエラーが出てうまくいきません。
いろいろ調べるとどうも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:???
>>726
レン鯖業でも始めるのならsafe_modeは絶対にOnにすべきだが、
鯖をいじるユーザが自分だけならOffでいいと思う。
(もちろんサイトにアクセスしてくるユーザは不特定多数が存在しても良い)

あと細かい点は詳しい人ドゾー
0729nobodyさん2006/12/03(日) 01:42:02ID:???
DB抽象化レイヤなるものの中で、今から学ぶならどれがお勧めですか?
買ってきた本ではPEAR::DBを解説してるけど、
他にもあるよと紹介されてる中ではPDOが将来性ありそうに感じる。
ちなみにPHP5.1.6、DBはMySQL5.0.24aを使ってます。
0730nobodyさん2006/12/03(日) 02:13:28ID:???
>>729
自分は使っているフレームワークの関係で未だにPEAR::DBを使っているけど、
今ならMDBかMDB2じゃなかろうか?
07317252006/12/03(日) 02:30:53ID:???
>>729
俺はPDOベースでPEAR::DBに擬似させたサブクラスを作ってそれを使ってる
0732nobodyさん2006/12/03(日) 02:36:32ID:ONXLMhLT
>>655
貴重な情報サンクスです!わざわざ調べていただいて感謝感激です!
07337292006/12/03(日) 03:24:18ID:???
>>730-731
ご意見ありがとうございます。
自分は「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:???
>>734
http://jp.php.net/manual/ja/language.variables.php#language.variables.basics
07367192006/12/03(日) 07:30:46ID:LdRYMBEl
>>721-725
レスありがとうございました.
とりあえず一番簡単そうな実装として>>723を確認したところ,
WindowsXPでPHP_OS==WINNT,Linux環境ではLinuxとなることを確認しました.
当面はこれでOKです.多謝.
07377342006/12/03(日) 07:49:42ID:JsSZU6FP
>>735
あ、参照代入でしたか。 はずかしい。

ありがとうございました。
07387262006/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:???
PHP のmail関数でメールを送信した場合、必ずyahooの迷惑メール扱いになってしまうのですが、
どうやったら通常のメールとして認識されるようになるんでしょうか?

メール送信元アドレスや、内容、題名など通常のメールとして届いたものを真似て送信しましたが
どれも迷惑メールになってしまいました。
0740nobodyさん2006/12/03(日) 09:55:14ID:???
>>738
304 PHP でググれ
0741nobodyさん2006/12/03(日) 09:59:01ID:???
>>739
同じレン鯖にスパム業者がいたりして
0742nobodyさん2006/12/03(日) 10:51:41ID:???
>>738
サバ側でcacheコントロールを書いても、ブラウザ側で毎回取るように
設定してあったら、毎回取られるよ。
0743nobodyさん2006/12/03(日) 15:43:25ID:???
>>738
画像ファイルを表示してるスクリプトにパラメータ渡してない?
07447262006/12/03(日) 16:49:48ID:WgFKbMzx
>>740
ありがとうございます。今から調べてみます。

>>742
そうなんですか! それは画像が多い場合に困っちゃいますね。
仮に静的な画像だとしてもそうなんですか?? でも、IEとかのデフォルトではそういう設定じゃない・・・のかな?

>>743
いえ、変動するパラメータは一切渡しておりません。
クエリストリングとして渡してるのは、毎回固定のファイル名だけです。
07457262006/12/03(日) 16:52:52ID:WgFKbMzx
>>744について補足です。
「固定のファイル名」と書きましたが、
より丁寧に言いますと「各ファイルごとに固有のファイル名」を、
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:???
Apache再起動とか
つかAlloc600MBって強力だな
0748nobodyさん2006/12/03(日) 17:05:11ID:???
>>746
phpinfo()で実際の設定が反映されているかを確認。
違うphp.iniを見ているかも知れないので、同様にphpinfo()でphp.iniの場所も確認。
0749nobodyさん2006/12/03(日) 17:08:19ID:???
memory_limitでエラーになるとAllowed memory size of XXXX bytes exhaustedでしょ
メモリの使用制限は関係ないんじゃないかと
0750nobodyさん2006/12/03(日) 17:42:58ID:???
XAMPPで、phpとアパッチとnySQL入れてローカルでやってるんですが、
mySQLにテーブルつくりたいんですが、DBコネクトエラーでできません・・・

詳しい導入方法が載ってるサイトあれば教えてください
0751nobodyさん2006/12/03(日) 17:47:51ID:???
XAMPに導入も糞もない
0752nobodyさん2006/12/03(日) 18:00:41ID:???
>>750
> nySQL

なんだかすごくセキュリティに問題がありそうなDBだなww
格納したデータを次々バラまくとかww
0753nobodyさん2006/12/03(日) 18:02:28ID:???
IRI <=> URI の変換やってくれる関数ありませんか?
07547532006/12/03(日) 19:02:58ID:???
ごりごりとPHPで書きました。
preg_split とか駆使して。
汚い。

で、UTF-8 がらみのところは解決したのですが、
punycode がらみのところをやってくれるライブラリってありませんか?
0755nobodyさん2006/12/03(日) 19:07:09ID:U5thVNJ+
>>749
ってことは、何が原因?
本体の実装メモリが足りないのかな?
07567532006/12/03(日) 23:07:56ID:???
punycode <-> utf8 は
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+/
コンテンツ(HTMLや画像など)を、通信経路にあるプロキシにキャッシュさせない方法ってありますでしょうか?
HTTPヘッダでキャッシュ・コントロールをすればいいかと思ったのですが、それを無視しちゃうプロキシもあるそうですね。
たとえば会員限定の秘密コンテンツなどはどうやったら安全確実に会員「だけ」に配信できるのでしょうか…

通信をすべてSSL化しちゃえばいいのかなとも思いましたが、
SSLって画像とかも暗号化されるのでしょうか…。
もし暗号化されるなら、キャッシュされても大丈夫ですよね??
0758nobodyさん2006/12/04(月) 02:25:35ID:???
>>745
パラメータ付けてるとブラウザはキャッシュ使わなくなるよ。
PATH_INFOとか使って普通のURLに見せかけるとかの処置が必要なんじゃないかな、多分。
0759nobodyさん2006/12/04(月) 02:30:45ID:???
>>755
プログラムの見直しが必要。
PHPの変数のサイズは無限じゃないので
何でも格納できるとは思わないこと。
07607452006/12/04(月) 02:55:34ID:???
>>758
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です)
07617452006/12/04(月) 03:27:21ID:???
IEのキャッシュ・フォルダを眺めていて気づいたんですが、
たとえば、ある画像の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:???
>>761
だから ユーザーがブラウザのキャッシュを使わない設定なら鯖側の意図は無意味
どうしても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/";);
}
}
07637452006/12/04(月) 10:41:23ID:???
>>762
いえいえ、当方のIEはキャッシュを使う設定になってます。
あくまでもキャッシュを使う設定になってる場合の話をしております。

それと、提示してくださったソースは、http://blog.drry.jp/2005/01/26/2357のを参考にされてますよね?
僕もそれはググって見つけましたので。
ですが、Last-ModifiedとETagを付加しても、URLがhttp://〜/abc.php?zzzz のような形式の場合、
少なくともIEはキャッシュしませんでしたよ。したがって、次回のアクセスでIf-Modified-Sinceも送信されません。
0764nobodyさん2006/12/04(月) 11:06:39ID:???
>>763
だからそういう物だって
0765nobodyさん2006/12/04(月) 12:22:16ID:???
>>763
?がある時点でブラウザは新規にリクエストするよ
0766nobodyさん2006/12/04(月) 12:34:16ID:nyh8nms1
俺の経験からいうと、?があってもブラウザはキャッシュするよ。
ためしに、現在時刻を出すだけのスクリプトで試してみたら?
0767nobodyさん2006/12/04(月) 14:01:52ID:???
俺んところで、>>760-763を参考にテストしてみた。環境はPHP4.3。

IE・FireFox・Opera、いずれの場合もキャッシュされず。
?を/や_などに変えてみてもダメだった。→>>765
ETag・Last-Modifiedの有無も関係ないようだ。
>>763にも書かれてるが、そもそもブラウザがIf-Modified-Sinceを送ってくれないので
>>762の方法では絶対に304を吐けない。
つまり問題なのは304の吐き方ではなくIf-Modified-Sinceの吐かせ方。

もちろん上記環境で、apacheが配ってくれる静的な画像はキャッシュされた。
0768nobodyさん2006/12/04(月) 14:11:36ID:???
>>767
拡張子は?
.phpでなく.jpgとか.htmlでPHP動かしてみるとか。
0769nobodyさん2006/12/04(月) 14:14:39ID:???
>>765
>>766の指摘通り、?があってもキャッシュされるぞ。
ためしに以下にアクセスしてみるといい。
http://services.windowsmedia.com/cover/200/drf200/f268/f26820yhodf.jpg?locale=411
この画像に二度目以降アクセスするときはキャッシュが効いて、304が返ってくる。
0770nobodyさん2006/12/04(月) 14:21:35ID:???
だからあれほどHTTPを勉強しろといってるのに
0771nobodyさん2006/12/04(月) 14:31:05ID:???
IE 7.0、キャッシュされず…
0772nobodyさん2006/12/04(月) 14:37:36ID:???
>>769
拡張子を.jpgにすればOK、でFA?
0773nobodyさん2006/12/04(月) 14:39:29ID:???
えー。俺、画像アップローダで同名画像が更新されたときのキャッシュ対策に
画像の後ろに ?更新日時 とかパラメータつけてたのに、これじゃダメってこと?
0774nobodyさん2006/12/04(月) 14:43:23ID:???
>>767
>そもそもブラウザがIf-Modified-Sinceを送ってくれないので

念のため確認したいんだけど、If-None-Match を知っててその発言をしてる?
0775nobodyさん2006/12/04(月) 14:52:19ID:???
>>757
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:???
>>776
ネタか?
phpで二次方程式ってふざけてるとしか思えないんだけど
普通はWebプログ言語でやることじゃないだろ


あと、そんなプログラムあったら漏れも欲しいぞ
Vector探しても何処探しても、二次方程式を解けるプログラム(や電卓)なんてみたことない。

当てはめでおよその小数解だすようなのはいくらでもあるけど、分数式・虚数・無理数などを使った
数学的に正しい解を出すプログラムはマジでないぞ。
0779nobodyさん2006/12/04(月) 15:47:46ID:+NWA2rgN
>>778
でもうちの先生がつくれとかぬかしてて…
当てはめでおよその小数解だすようなのはいくらでもあるけど
↑
教えてください
0780nobodyさん2006/12/04(月) 15:50:19ID:???
>>779
とりあえず、どこの学校の何ていう先生だ!
07817762006/12/04(月) 15:52:57ID:+NWA2rgN
T大学の中国人の先生すorz
0782nobodyさん2006/12/04(月) 16:00:08ID:???
東大か、日本終わったな
0783nobodyさん2006/12/04(月) 16:01:21ID:???
東大はRuby
0784nobodyさん2006/12/04(月) 16:01:47ID:???
>>782
東大にはそんな室の悪い先生はいません
これは客観的な事実です
07857672006/12/04(月) 16:02:59ID:???
とりあえず具体的に何も知らないくせに偉そうな>>770みたいなバカは放っておくとして、、、

>>768、>>772 拡張子は関係ない。mod_rewriteで、見かけ上「.jpg」にしてみたが、やはりダメだったので。

>>773 結論としてはそれじゃダメ。>>769に示されたURLにアクセスして、HTTP通信をキャプチャしてみるといい。

>>774 ETag付けてもキャッシュされてないんだから、If-None-Matchは関係ない。(っていうかキャッシュされない=If-None-Matchもリクエストされてこない)
0786770,7742006/12/04(月) 16:07:07ID:???
If-Modified-Sinceが付いてるか付いてないかしか書いてないから
まさか If-None-Match が付いてるのに「If-Modified-Sinceが付いてない」って騒いでるのかと思ったんだよww
「条件付きGET」とか言えよ
07877672006/12/04(月) 16:07:19ID:???
>mod_rewriteで、見かけ上「.jpg」にしてみた

上記に追記というか補足。
.jpgにしたうえ、?も使ってない。それでもキャッシュされず。

具体的には、hogehoge.com/images/filename.jpgにアクセスすると
mod_rewriteでhogehoge.com/img.php/filename.jpg にリダイレクトするようにしたが、
これでもキャッシュされず、アクセスすると毎回200応答になっちゃう。
07887782006/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;
 }
}

だ。

くだらん設問つくる教師にはこれで十分だろう
0789nobodyさん2006/12/04(月) 16:08:40ID:???
>>786
それはむしろ喪前の読解力がおかしいと思われ。
0790nobodyさん2006/12/04(月) 16:12:40ID:???
>>786
お前は脊髄反射でレスしすぎ。
ちゃんと頭から書き込み読めよ。
単語にだけ反応してんじゃないよ。
0791nobodyさん2006/12/04(月) 16:14:46ID:???
>>787
mod_rewriteじゃブラウザを騙せない、ってことじゃないのかそれ。
mod_rewriteだと最終的なURLがブラウザにも通知されちゃうから。
.jpgでPHPが呼び出されるように.htaccessいじってみたらどうよ?
07927892006/12/04(月) 16:20:16ID:???
>790
あ、かぶったww

>>791
騙せるよ。っていうかmod_rewriteってapacheの内部的な処理だから、
クライアント(ブラウザ)はリダイレクトされたことすら分からない。

>mod_rewriteだと最終的なURLがブラウザにも通知されちゃうから。
こんな大嘘、どこで覚えたんだか・・・www
0793nobodyさん2006/12/04(月) 16:23:52ID:???
>>791
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:???
>>791
>.jpgでPHPが呼び出されるように

アイタタタタタ・・・・・・
お前、それがまさにmod_rewriteの機能の一つだよ。
中途半端な知識で知ったかぶって大恥をかく典型例だな。
07957762006/12/04(月) 16:32:20ID:HUF4lLmF
〉〉788
まじで感謝です。
親身になってくれてあざすm(__)m
0796nobodyさん2006/12/04(月) 16:43:03ID:???
>>784
つ 姜尚中
0797nobodyさん2006/12/04(月) 16:48:12ID:???
>>795
つーかお前、自分で考えなきゃ宿題の意味がないだろう。
これが「ゆとり教育の結果 & 大学生の質の低下」ってヤツか・・・
0798nobodyさん2006/12/04(月) 16:48:22ID:???
mb_internal_encoding -- 内部文字エンコーディングを設定あるいは取得する
とありますが、内部文字エンコーディングって何でしょうか?
0799nobodyさん2006/12/04(月) 16:50:43ID:???
どこのスレでも定期的に現れる、ゆとり教育厨。
いちいち煽るなよ。
0800nobodyさん2006/12/04(月) 16:57:41ID:???
>>778
>くだらん設問つくる教師
おう、呼んだか?
0801nobodyさん2006/12/04(月) 17:00:45ID:???
>>800
呼んだぜ
まずは「phpで二次方程式を解く」といったプログラムで何を学ばせたいのか教えてくれないか

ついでに大学名と配属教えてくれ
0802nobodyさん2006/12/04(月) 17:11:02ID:???
>>799=ゆとり教育の権化w
08038002006/12/04(月) 17:18:21ID:???
>>801
>まずは「phpで二次方程式を解く」といったプログラムで何を学ばせたいのか教えてくれないか

変数の取り扱いと演算子だ。
何か文句あんのか?

>ついでに大学名と配属教えてくれ

○○大学×学部だ
0804nobodyさん2006/12/04(月) 17:28:49ID:???
>>776
>>778より、正解を導き出すと、

当てはめでおよその小数解だすようなのはいくらでも書けるけど、分数式・虚数・無理数などを使った数学的に正しい解を出すプログラムは書けません。

と書いて提出しる!
0805nobodyさん2006/12/04(月) 17:32:24ID:???
ゆとり教育は30年前から始まっているんだがな
0806nobodyさん2006/12/04(月) 17:49:56ID:???
>>805
少なくとも教科書のレベルは今から20年〜30年前が一番高かったよ
過去の中でね

0807nobodyさん2006/12/04(月) 17:51:57ID:???
>>804
> 分数式・虚数・無理数などを使った数学的に正しい解を出すプログラムは書けません。

書けないこともないとおもうけどね。
二次方程式なら因数分解もいらない (解の公式にいれりゃ確実に出る) んだから
人間と同じロジックで処理すりゃいい。

0808nobodyさん2006/12/04(月) 18:30:01ID:???
SSL設定などの質問はどこですればいいんだろうか。。。
0809770,7742006/12/04(月) 18:39:52ID:???
>>762
If-Modified-Sinceヘッダに使う文字列で "D, d M Y H:i:s \G\M\T" こういうの使うのやめろよ。
DATE_RFC1123 があるだろ。
0810nobodyさん2006/12/04(月) 18:46:40ID:???
mtimeのみのEtagは弱いバリデータなんじゃ
あとIF_MODIFIED_SINCEは実装上はエコーなんだから文字列として==でいいんじゃ
strtotimeじゃパースできない形式返す端末の問題もあるよね
0811770,7742006/12/04(月) 19:03:18ID:???
>>810
>mtimeのみのEtagは弱いバリデータなんじゃ

ETagの中身は別にmtimeじゃなくてもいいんだけど。

中身は変化したが意味は変化していない→ 弱バリディタは変化しない 強バリディタは変化する
中身が変化した → 弱バリディタ・強バリディタともに変化

>実装上はエコー
サーバーがRFC850の日時文字列を返してもIE7はRFC1123 を If-Modified-Since に入れるぞ
0812nobodyさん2006/12/04(月) 19:10:51ID:OBhf6ZT7
このたびXREAのサーバーへサイトを移転することになりまして、移管作業をすすめているのですが、
今まで使っていたサーバーでは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:???
phpmyadminは設定ファイルで切り替えられる
mysqlもユーザディレクトリに設定ファイル置けるんじゃなかったっけか
0814nobodyさん2006/12/04(月) 19:18:53ID:???
IO時にUTF-8 ⇔ EUC-JPコンバートすればいいじゃないのよ。
0815nobodyさん2006/12/04(月) 19:30:04ID:???
>>807
だから中学生に範囲外のこと教えるなってのに
0816nobodyさん2006/12/04(月) 19:41:50ID:???
$a, $b , $c;

$y1 = (-$b ± sqrt($b * $b - ? * $a * $c)) / ? * $a;

Pythonなら虚数も出せるとオモ
0817nobodyさん2006/12/04(月) 19:42:10ID:???
>>815
どうでもいいけど、二次方程式を解く時には平方完成の方が解の公式より早いから、
解の公式使うメリットなんて素人以外には無いぞ。
0818nobodyさん2006/12/04(月) 19:43:19ID:???
>>816
分数や無理数も出せる?
0819nobodyさん2006/12/04(月) 19:44:53ID:???
>>787
念のため漏れもmod_rewriteで同様の実験をしてみたところ
たしかにブラウザにキャッシュされてないようだ・・・なぜだろう。
0820nobodyさん2006/12/04(月) 19:47:03ID:???
>>815
だから中学生を刺激するなってのにw
0821nobodyさん2006/12/04(月) 19:53:49ID:???
タイムリーだな
昨日NHKで平方完成の使いどころやってた
0822nobodyさん2006/12/04(月) 19:57:00ID:Tc134QUM
>>812
デジャビュ

>>819
ブラウザが何かぐらい書けよ
0823nobodyさん2006/12/04(月) 20:01:19ID:Tc134QUM
<?php
$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 で確認。
0824nobodyさん2006/12/04(月) 20:05:20ID:???
>>808
少なくてもここの板でもスレッドでもないな・・・通信技術スレッドかな
08258122006/12/04(月) 20:05:28ID:OBhf6ZT7
サーバー接続時にSET NAMES ujis;で解決しました
お騒がせしました
0826nobodyさん2006/12/04(月) 20:23:16ID:???
>>823
アホかお前。もしやお前は脊髄反射が得意な>>786か?
知ったかぶる前に、一連の流れをもう一回最初から読み直せバカ基地害。

動的に配信された画像をキャッシュさせる話だっつってんだろが。
0827nobodyさん2006/12/04(月) 20:30:24ID:Tc134QUM
画像だろうとなんだろうと関係ないだろ。
>>823のような単純なのでキャッシュされてるんだから
「キャッシュされていない」って言ってる人はなにか勘違いしてるとしか思えないね
0828nobodyさん2006/12/04(月) 20:39:24ID:???
リロードボタン押してキャッシュ破棄&No-cache送られてるとか
なんか頭に血が上ってる人が2人ほどいるみたいだけど、ちょっと落ち着きませんか?
0829nobodyさん2006/12/04(月) 20:55:45ID:Tc134QUM
image.phpに
(α) = アクセスしない
(β) = If-Modified-Since付きでアクセスする
(γ) = If-Modified-Since無しでアクセスする

IE7の設定
(1)Interner Explorerを開始するたびごとに確認する
リンククリック:(α)
更新ボタン:(β)
Ctrl+更新ボタン:(γ)

(2)Webサイトを表示するたびに確認する
リンククリック:(β)
更新ボタン:(β)
Ctrl+更新ボタン:(γ)

Firefox2.0 の設定・・・する場所はない?
リンククリック:(α)
更新ボタン:(β)
Ctrl+更新ボタン:(γ)

各ファイルのソースは次のレスで。
0830nobodyさん2006/12/04(月) 20:57:31ID:Tc134QUM
image.jpeg:適当な画像

image.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>
0831nobodyさん2006/12/04(月) 21:03:49ID:???
>>792
mod_rewriteでリダイレクトした先のURLってブラウザのアドレスバーに表示されなかったっけ?
0832nobodyさん2006/12/04(月) 21:06:03ID:Tc134QUM
mod_rewriteって言ったって(超大雑把に言って)2種類、
[R]を付けるのと付けないのがあるでしょ。
0833nobodyさん2006/12/04(月) 21:29:01ID:???
>>830
要するに>>738はContent-TypeとContent-Lengthだけで
Last-Modifiedヘッダを吐いてないならキャッシュされるわけないだろトンマ。

って話?
0834nobodyさん2006/12/04(月) 21:36:43ID:voLSDiiK
>>812
つ http://sb.xrea.com/showthread.php?t=11414
0835nobodyさん2006/12/04(月) 21:43:29ID:Tc134QUM
>>833
さあ。。。>>763の通り、Last-Modifiedつけても駄目らしいですけどね。
キャッシュ関係はいい加減ウザイからキャッシュさせるのを再現する方法を>>829-830に掲載しただけ。
0836nobodyさん2006/12/04(月) 22:01:52ID:???
丸投げしたいのが煽ってコード出させてるだけだと思うんだが・・
0837nobodyさん2006/12/04(月) 22:17:00ID:???
>>833
Last-Modifiedを吐いてもキャッシュされないから問題になってんだろトンマ。

>>835
どうでもいいけどお前のコードで試すと
Last-Modified: WedAMGMTE_ROctoberC1123 などとおかしな値になるぞ。

>>836
バカかお前は。すでに一連の議論の中で必要なコードは出尽くしてるだろ。
0838nobodyさん2006/12/04(月) 22:21:05ID:Tc134QUM
>>837
1段落目
キャッシュされてるかどうかを判断する方法手順が間違ってるんだよきっと

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:???
>>838
>キャッシュされてるかどうかを判断する方法手順が間違ってるんだよ

だから間違ってないってば。この話のレスの流れを全部読んだかい??
きちんと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:???
register_globalsがOffになってたらもともとその使い方はできないはず
$hairetu = $_POST["hairetu"];がいる

一回変数に入れなおすのもいいけど
for($i=0;$i<count($_POST["hairetu"]);$i++){
echo $_POST["hairetu"][$i]."<br>";
}
こういうのもできるよ

あとcountはループの条件評価で使わないほうがいいかも
ループする前に変数に入れるとか初期値として使うなら全然いい
08438412006/12/05(火) 02:05:23ID:???
>>842
ありがとうございます。
ただ、842さんの方法だと表示がArrayとなって
中身が表示されません・・。
0844nobodyさん2006/12/05(火) 02:54:31ID:???
>>842
ループでcount使わない方がいいの?なんで?

>>843
コード間違ってるだけじゃない。Arrayになってるならprint_rぐらいしてみたら?
0845nobodyさん2006/12/05(火) 08:02:02ID:???
>>844
条件評価で使わないほうがいいってこと
ループ毎にカウントするから
0846nobodyさん2006/12/05(火) 09:58:03ID:???
>>840
こんな簡単な実証コードが出てるのに何を言ってるんだ
0847nobodyさん2006/12/05(火) 10:16:04ID:????2BP(1)
サーバ環境の問題でPHP5.1系のWindows版が欲しいのですが
php.netを見ても最新のバージョンしか置いて無いようです。
どなたかPHPの最新バージョン以外を置いてある所って
ご存知ありませんか?
0848nobodyさん2006/12/05(火) 11:19:41ID:???
>>847
どこを探したんだ
http://us2.php.net/get/php-5.1.6-Win32.zip/from/a/mirror
0849nobodyさん2006/12/05(火) 11:26:44ID:????2BP(1)
>>848
ありがとうございます!
無知でした・・
0850nobodyさん2006/12/05(火) 11:30:40ID:???
>>842,845
countっていう関数名だからって、第2引数を指定しない限りは、本当に1個1個カウントするわけじゃないよ。
気にしなくておk。
08518412006/12/05(火) 12:41:29ID:???
>>844
だいぶ遅くなってすみません・・。
print_rももちろんしているのですが、なぜかAとかArrayとかでます。
こちらのテスト環境ではregister_globalsをOnにしてるからかな?とも
思いましたが、ググっても理由が分かりません。
ちなみにcountの箇所をcount($hairetu)にすると問題なく処理されます。
08528412006/12/05(火) 12:46:09ID:???
自己レスです。1から作り直したら、842さんの方法で大丈夫でした・・。
登録フォームで配列の箇所は別ファイルにしているからだろうか、、、
関係ないと思いますが、色々調べてみます。お騒がせしました。
0853nobodyさん2006/12/05(火) 13:11:56ID:???
>>846
だから実証したんだっつーの。
バカかお前は。スレの流れを全部読んでから発言しろ。
0854nobodyさん2006/12/05(火) 13:57:45ID:nXBCkDsb
もういいっつーの。
0855nobodyさん2006/12/05(火) 14:09:16ID:???
>>852
とりあえず現状のソースを改変なしでそのままコピーしてみ。
0856a2006/12/05(火) 16:41:58ID:s1tJ/lxX
電子メールとウェブサービスの原理的な違いは何ですか?
0857nobodyさん2006/12/05(火) 16:46:03ID:???
違いすぎてどこから説明したものやら
0858nobodyさん2006/12/05(火) 16:49:51ID:???
>>856
宿題は自分でやろうな。
0859nobodyさん2006/12/05(火) 16:50:12ID:???
>>856
何言ってんだ。
サーバの原理はみんな一緒だ。

クライアントから何らかの要求を受けたら、何らかの答えを返す。
サーバってのはそういうもの。
0860nobodyさん2006/12/05(火) 16:52:08ID:???
>>856
ここはPHPの質問をするスレッドです。
0861nobodyさん2006/12/05(火) 16:52:35ID:???
メールサーバはメール送受信の要求を受けたら実行する。
WebサーバはWebページの要求を受けたら送信する。

原理はどちらも同じ。受ける要求や返す内容が違うだけ。
0862nobodyさん2006/12/05(火) 16:52:56ID:???
>>859
サーバの違いじゃなくサービスの違いを聞いてるんじゃないの?
0863nobodyさん2006/12/05(火) 16:53:29ID:???
あ、原理だからいいのか。
0864nobodyさん2006/12/05(火) 16:55:13ID:???
>>862
>>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:???
JavaScriptのみサニタイズしたいのですが何か都合のいい関数はありますでしょうか?
0868nobodyさん2006/12/05(火) 17:38:14ID:???
>>865
お前は「原理」という言葉を辞書で100回ほど調べるといいだろう。

>>866
「知識自慢」じゃなくて、単なる質問への回答でしかない。
そしてそれを「自慢」と感じるのは、お前が無教養なバカだから。
0869nobodyさん2006/12/05(火) 17:40:26ID:???
下らない質問に回答するやつは荒らし
0870nobodyさん2006/12/05(火) 17:47:30ID:???
addslashesが効いているかいないかをチェックしたいのですがどのような方法がありますでしょうか??
0871nobodyさん2006/12/05(火) 18:16:09ID:???
>>870
マニュアル嫁。
そのまんまなコードが載ってるだろうが。
0872nobodyさん2006/12/05(火) 18:39:24ID:???
>>867
$hoge = preg_replece('/<(script)>/i', '<\1>', $hoge);
0873nobodyさん2006/12/05(火) 19:08:42ID:???
>>869
スレタイを理解できないほど頭がイカれてるお前は
荒らし以下の基地害クズニートダメ人間。
0874nobodyさん2006/12/05(火) 19:12:42ID:???
861=868=873
とりあえず落ち着けよ
0875nobodyさん2006/12/05(火) 19:51:23ID:???
>>868
あの質問のどこにPHPが関係してるのか述べてみろ
0876nobodyさん2006/12/05(火) 20:06:22ID:???
>>872
それなんか意味あるの?
0877nobodyさん2006/12/05(火) 20:10:10ID:???
>>875
つまらねぇ人間だなぁ。
公務員か教師か? お前は。
それとも底辺ウンコサラリーマンかな?w
0878ura. ntkngw286002.kngw.nt.ftth.ppp.infoweb.ne.jp.2ch.com2006/12/05(火) 20:41:09ID:???
guest guest
0879age2006/12/05(火) 20:45:32ID:nt4HnWjk
アクセス解析プログラムを作りたいと思っているのですが、ホスト名、ブラウザの種類、OSの種類などのデータはどのように取得すればいいのでしょうか?
0880nobodyさん2006/12/05(火) 20:48:14ID:???
>>879
ここはいかが?
http://oku.edu.mie-u.ac.jp/~okumura/php/env.php
0881nobodyさん2006/12/05(火) 21:36:56ID:GzZh5Paf
index.php?aaaみたいに同一ファイルでなんの処理が行われているかURLで判断するために
無意味にクエリ文字つけるのはよろしくないですか?
0882nobodyさん2006/12/05(火) 21:38:54ID:???
>>881
よく意味がわからない。
>無意味に
意味ないならつけないにこしたことはない。
0883nobodyさん2006/12/05(火) 23:04:41ID:???
WEBFTPツールみたいなものを作っています。
FTP上のものをブラウザからダウンロード可能にしようと思った場合、
セキュリティ上の脆弱性は問題ないでしょうか?

例えば、ダウンロードさせるようのHTTPヘッダを表示して、
その後、ユーザ任意のファイルを表示(出力)させることになるのですが、
この段階で、ファイルの内容によって脆弱性が発生することは
あるのでしょうか?

通常であれば、PHP上で任意のファイルを出力させるのは危険極まり無いですが、
ヘッダー出力後なので問題ないのかなと思ってます・・・。
間違ってますでしょうか?
0884nobodyさん2006/12/05(火) 23:15:30ID:???
ヘッダー出力前にファイルを出力ってどういう意味?
0885nobodyさん2006/12/05(火) 23:40:43ID:???
>>884
どこにそんなこと書いてある?
0886nobodyさん2006/12/05(火) 23:43:19ID:???
>>883
脆弱性云々がブラウザ上でのXSSだけを指してるんなら
特に問題はないんじゃない?
そんなの言い出したら世間のダウンロードサイトは
全部セキュリティがやばいことになってしまう。FTP関係ない。
0887nobodyさん2006/12/05(火) 23:46:33ID:???
ちょっと相談ですが、カテゴリがいくつもある場合、
カテゴリごとにファイルを分けて必要な時にrequireやincludeで読み込むのと
1つのファイルでfunctionによって分けるのと、どちらが汎用性や処理の面で
良いのでしょうか?
0888nobodyさん2006/12/05(火) 23:51:38ID:???
>>883
>>886
ブラウザが仕様通りの動作をしてくれれば問題無い。

だけど、IE6 (SP2で多少改善されたがIE6SP1からアップグレードした人は設定が自動では書き換わらなかったような) だと、
HTTPヘッダを無視して内容で判断されるから、scriptを含めたhtmlファイルをアップされたらブラウザ上でそのドメインとしてのスクリプトが実行されちゃう。

これはブラウザの欠陥、というか脆弱性だが、そういう脆弱なIEを配慮するなら、
ユーザに任意のファイルをアップロードさせる、つまり、アップローダーをやるならば、
捨てドメインを使うべき。

間違っても、Cookieでセッション管理しているドメインでやっちゃ駄目。

あ、あと Cookie 使っているなら httpOnly 属性を使えばXSSによるCookieの漏洩は抑制できる。ただし、完全ではないし、
XSSにはCookie漏洩以外の問題もある。
0889nobodyさん2006/12/05(火) 23:57:44ID:???
>>885
>ヘッダー出力後なので問題ないのかなと思ってます・・・。

ってことはヘッダー出力前にファイルを出力する方法があるってことだろ
だから、それは何ですか、と。
0890nobodyさん2006/12/06(水) 00:09:15ID:???
DBのテーブルから抽出した文字列を、語句の置換に利用したいのです
が、うまくいきません。(置換されていない)
テーブル: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:???
>>888
>HTTPヘッダを無視して内容で判断されるから

それって、IEはContent-TypeやContent-Dispositionまで無視して、「ファイルの内容」からHTMLを判別(推測)してるってこと?
そんな無茶な・・・
0892nobodyさん2006/12/06(水) 00:15:08ID:???
「知識はただ物事を知っていること。知恵は知識を使いこなすこと」と
どっかの坊さんが言ってたな。

プログラムするときって知恵が重要だよねー。
0893nobodyさん2006/12/06(水) 00:28:19ID:???
>>889
(スクリプトの処理による)Octet-Stream指定でのヘッダ出力後、って意味でしょ。
任意ヘッダ出力前のファイル出力=自動ヘッダ出力=text/html指定。
Octet-Streamにしとけばユーザが自ら「表示」を選択しない限り
ブラウザで表示されることはないはずだよね、というのが質問の趣旨かと。
>>888
IEの「内容で判断」って拡張子での判定だっけ。
08948882006/12/06(水) 00:39:08ID:???
>>891
その通り。
実験してみれば分かるよ。

IE6 on Windows 2000 や IE6 SP1 on Windows XP だとそうなる。

image/gif 返しても、中身HTMLだとHTMLとして処理される。

もじら組みとかにも載ってるよ。
08958882006/12/06(水) 00:40:01ID:???
>>893
IE6SP2の、拡張子によって判断する、ってオプションの拡張子はMIMEタイプを示す。
(MSの表記が問題あって分かりにくいけど。)

なので、これがONになっているIE6 SP2 なら問題なし。
0896nobodyさん2006/12/06(水) 00:49:35ID:???
>>894
Content-type: application/octet-streamやContent-disposition: attachmentまで無視されるとしたら、かなりやっかりだな。
IE6SP1以前の「内容がHTML」ってのが、いったいどのように判定されているのかわからないと対処しようがないね。
圧縮してダウンロードさせるしか安全な方法はないのか。
もしくは、ファイルの1バイト目が「<」だった場合だけ圧縮するとか。
0897nobodyさん2006/12/06(水) 02:58:24ID:???
>ファイルの1バイト目が「<」だった場合だけ圧縮するとか

いくらでも抜け穴のある対策法だなww
08988672006/12/06(水) 03:19:43ID:EpXwEc8l
お願いします
0899nobodyさん2006/12/06(水) 04:21:36ID:???
Apr 05 01:00
Apr 05 2005
↑
をタイムスタンプや
4月5日01:00
4月5日2005
とかに簡単に直す方法ってありますか?

今はちまちまとif文使って、Aprの場合は4、Aug の場合は8、とか
ありえないことやってるんですが・・・。
0900nobodyさん2006/12/06(水) 05:04:57ID:???
>>899
前者は年を挿入してやらないと無理っぽいが、後者なら
$unixtime = strtotime("Apr 05 2005");
echo date("n月j日Y", $unixtime);
でできる。
前者も05と01:00の間に date(" Y ") を挿入してやれば変換可能。
0901nobodyさん2006/12/06(水) 05:09:55ID:???
>>898
872のを直して
$html = preg_replace('/<(script[^>]*)>/i', '<\1>', $html);
でいいんじゃないの?
0902nobodyさん2006/12/06(水) 05:10:38ID:???
ちっ。872と同じミスしたか。
$html = preg_replace('/<(script[^>]*)>/i', '&lt;\1&gt;', $html);
か?
0903nobodyさん2006/12/06(水) 05:19:36ID:???
strtotime()
09049032006/12/06(水) 05:20:50ID:???
リロードしていなかった
恥ずかしや恥ずかしや(ノ∀`)
0905nobodyさん2006/12/06(水) 11:06:14ID:???
>>902
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>
09069052006/12/06(水) 11:11:34ID:???
禁止されないから許可ではなく、許可されないから禁止が
プログラミングの原則だろ。
質問は下らなくてもいいが、回答まで下らないと話にならない。
0907nobodyさん2006/12/06(水) 11:46:43ID:0xIGcNVS
http://pc8.2ch.net/test/read.cgi/php/1158647441/l50
0908nobodyさん2006/12/06(水) 12:04:08ID:???
>>907が、知識では対抗できないが、反撃しないのは悔しいので
>質問スレで運悪く、ろくな答えもよこさない(ry
という嫌味な文面を探して時間を浪費しているところを想像してしまったのはオレだけですか?
0909nobodyさん2006/12/06(水) 12:21:18ID:???
>>908=へぼ回答者乙
0910nobodyさん2006/12/06(水) 12:36:12ID:???
>>909=へぼ無職乙

以下ループ
0911nobodyさん2006/12/06(水) 12:41:46ID:???
exit;
09124522006/12/06(水) 12:47:23ID:???
return str_replace(908, "", $result);
0913nobodyさん2006/12/06(水) 12:49:14ID:???
>>912
return str_replace(array(908, 909, 910, 912), "", $result);
0914nobodyさん2006/12/06(水) 12:53:52ID:???
>>913
return str_replace('913', null, $result);

以下再びループ
0915nobodyさん2006/12/06(水) 13:00:54ID:???
スレタイの「下らねぇ質問」って言葉は、しょっちゅう荒れる原因になるな。
次スレからはタイトル変えれ。
0916nobodyさん2006/12/06(水) 13:01:52ID:???
>>902
それだと
<script language="JavaScript">
とか普通に変換されません
0917nobodyさん2006/12/06(水) 13:04:05ID:???
>>915
2chに「荒れない」を求めるのは無理

でもまぁ、あえて書き換えるなら
【PHP】荒れない程度に下らねぇ質問はここに書き込みやがれ
0918nobodyさん2006/12/06(水) 13:05:45ID:???
>>917
くだらなくない(本スレ)スレが無くなってしまったので、
ちょっと考えんと如何かもな。
0919nobodyさん2006/12/06(水) 13:09:48ID:???
>>918
あぁ、そう言えば下らなくないほう(五十歩百歩だったが)が
いつのまにか消えてるな。
「下らねぇ」と「下らなくねぇ」の違いがよくわかんないから
統合しちゃったほうがいいと思うのだが。
0920nobodyさん2006/12/06(水) 13:25:24ID:???
初心者です、、
変数を出力する場合printで'. $test .'と出力してて1つだと出力できるのですが
2つの変数を隣り合せで並べて出力するにはどうすればいいんでしょうか
'. $test .' ' . $test2 .'
イメージ的にはこんな感じで出力したいのですが、、
0921nobodyさん2006/12/06(水) 13:25:53ID:???
filename
username
はこれ自身で一語ですか?
classname
は一語になりませんよね。

変数名付けるときに
$filename $fileName
$username $userNmae
$classname $className
のどちらにしようか迷ったんで。
0922nobodyさん2006/12/06(水) 13:28:05ID:???
>>920
$test . $test2
0923nobodyさん2006/12/06(水) 13:33:40ID:???
知識のあるものからしたらくだらないし、知識のないものからしたらくだらなくない。
おまえらそんなこともわからず質問回答してきたんですか?
0924nobodyさん2006/12/06(水) 13:57:44ID:???
「くだらないかどうか」という話題自体が、そもそもくだらないのですよ。
09259202006/12/06(水) 14:08:38ID:???
自己解決しました
09269202006/12/06(水) 14:13:42ID:???
>>922
.で統合なんですね
レスありがとうございます。
0927nobodyさん2006/12/06(水) 14:51:21ID:???
>>919
いつの間にか??
下らなくない方(旧本スレ)の最後を見れば分かるけど
「次から下らないスレと統合ね」という意見で消え去った。
とっくの昔にここは統合されている。
>>918
それなら本スレが残ってこっちを消せばよかったわけだが、
本スレが「お前らあまりにも下らん!」で荒れまくってたので
今の下らない質問スレ程度の荒れ方ならそれよりは100倍マシ。
とりあえず途中に様々な煽りは入るものの、質問→回答という
流れは本スレよりまともに機能している。
後はみんなで荒らしを無視する大人の対応を心がけるだけだ。
0928nobodyさん2006/12/06(水) 15:36:12ID:???
アクセスされたときのURLとページのタイトルを取得したいのですが、
タイトルを取得する簡単な方法はないでしょうか?
URLはPATH_INFOとかでなんとかなるのですが。
0929nobodyさん2006/12/06(水) 15:43:57ID:???
>>928
<?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:???
>>929
うっかり。
> $title = preg_replace('/<title>(.*?)</title>/i', '\1', $html);
ここは
$title = preg_replace('/<title>(.*?)<\/title>/i', '\1', $html);
にしてくれ。
0931nobodyさん2006/12/06(水) 15:57:01ID:orxyqHFc
>>905-906
それであなたの模範解答はいつ出てくるんでしょうか?
0932nobodyさん2006/12/06(水) 16:02:26ID:???
>>931
お前、そんなの待ってたのかよ。よく見ろよ。
カスにはわかんないだろうが>>906はすでに回答になってるだろ。

scriptだけ確実にはじくなんて無理なんだよ。script以外のタグを
有効にしたいんだったらHTML_BBCodeParserでも使えや。
0933nobodyさん2006/12/06(水) 16:18:35ID:qPJcEJvW
$pattern = "<b>(.*)<\/b>";
$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と抜き出されます。
どこが悪いのでしょうか?
09344872006/12/06(水) 16:25:50ID:BQeeyZbT
PHPでmysqlのmax()って使えますか?

$max = mysql_query("selet max(col_1) from table_$t");
echo $max;

というコマンドを打ったのですが、Resource id #4という結果が表示されて,
カラムの中の最大値が表示されません。どうすればいいでしょうか。
0935nobodyさん2006/12/06(水) 16:27:15ID:???
>>933
最短マッチの条件じゃないと、可能な限り長い範囲でマッチさせようとするから。

> $pattern = "<b>(.*)<\/b>";
 ↓
$pattern = "<b>(.*?)<\/b>";
0936nobodyさん2006/12/06(水) 16:27:55ID:???
>>934
マニュアルを見直せ
君は普通の値を取る時もそうやるのかい?
0937nobodyさん2006/12/06(水) 16:28:38ID:???
>>934
君はmysql_queryの使い方そのものを勘違いしている。
queryは実行だけ、結果の取得はresultなりfetch。
0938nobodyさん2006/12/06(水) 16:29:06ID:???
>>933

$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:???
PHPだけで、毎日決まった時間にそのスクリプトを実行するなんてことは出来ませんよね?
クライアント側で、毎日決まった時間にそのスクリプトにアクセスして実行するなんて
プログラムでも作るしかないのでしょうか?
0940nobodyさん2006/12/06(水) 16:40:35ID:???
>>939
普通はcronとかatとか使うよ。>>5読んでる?
0941nobodyさん2006/12/06(水) 17:06:07ID:???
$array1 = ( [0] => Array ( [id] => 001 [name] => hoge1 ) [1] => Array ( [id] => 002 [name] => hoge2 ) [2] => Array ( [id] => 003 [name] => hoge3 )) ;
$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:???
>>930
echo $title;してみたのですが、<title>と</title>が消えただけの
HTML全部が表示されてしまいます。
0943nobodyさん2006/12/06(水) 17:07:37ID:???
>>941
結合のルールが全く分からないんだが。
何を削って何を残すんだそれ?
0944nobodyさん2006/12/06(水) 17:08:32ID:???
>>942
すまん
$title = preg_replace('/.*<title>(.*?)<\/title>.*/i', '\1', $html);
0945nobodyさん2006/12/06(水) 17:15:26ID:???
>>942
馬鹿の一つ覚えみたいに正規表現を使うやつがいるが、HTMLの解析にはtidyのよ
うな専用の関数がある。
tidyのマニュアルに目を通しておくと後々役に立つ。
0946nobodyさん2006/12/06(水) 17:16:22ID:???
項目の追加や編集をモジュール化したアンケートシステムをPHPで作ろうかと思っているのですが
既存のスクリプトやシステムはありますか?
単なるアンケートスクリプトは大量にありますが、プログラムの知識がなくても
管理者が自由に編集できる完全モジュール化スクリプトってあまり知らないので。

http://www.databasebank.com/svc_ankete.php
これがそんな感じかなと思ったのですがサンプルは見れず。
0947nobodyさん2006/12/06(水) 17:21:23ID:???
>>945
たかがタイトル取得にtidyなんて糞重いもの持ち出すのは
すりむき傷をレーザーメス使って手術するようなもん。
0948nobodyさん2006/12/06(水) 17:25:08ID:???
>>945も>>947もどちらも正しい気がする。

>>944
どーでもいいことだが、値の取得にreplaceは普通使わない。
0949nobodyさん2006/12/06(水) 17:30:13ID:???
>>948
普通の正規表現だとHTMLコメント中にtitleタグあったらこけるとかがあるから、
HTML記述が一定しない外部サイトのHTMLからのtitle取得とかなら
tidyとか使った方が確実だろうし、tidyを使わなくても重くなるだろうね。
自分のサイトのHTML相手にそこまでやるのはさすがに自爆行為だと思うけど。
09509482006/12/06(水) 17:33:40ID:???
>>949
だよね。正規表現は便利だけど、セマンティクス
に基づかないケースが多いから使い方を間違える
とちょっと危ない。
まぁ、ケースバイケースってやつか。
0951nobodyさん2006/12/06(水) 17:42:08ID:???
titleのコメント表示をやってるサイトなんて見たことないけどw
0952nobodyさん2006/12/06(水) 17:42:21ID:???
<title><なんかやばいコード></title>
0953nobodyさん2006/12/06(水) 17:44:49ID:???
やばいコードを埋めるほうが悪い。
0954nobodyさん2006/12/06(水) 19:25:34ID:???
今までフレームワークもクラスも関数も一切使わずにやってきて、
最近フレームワークを使うようになったんですが、
重いとは思わないまでも
何かつっかかる感じがしますね。
0955nobodyさん2006/12/06(水) 19:40:55ID:???
>>954
キャッシュは使ってないの?
APCとかeAcceleratorとか
09569412006/12/06(水) 19:52:26ID:???
>941です

>943
すみません、IDが比較対象です。
$array1がselect * from で引っ張った全データで、$array2は絞込み検索の結果だと思ってください。
$array1と$array2で、$array1にしかないIDを削って、共通のIDがある場合は、そのまま残すと、考えておりました。
配列構造が違うと、array_diffも使えず、困っておりました;;

説明足らず失礼しました;;
0957nobodyさん2006/12/06(水) 20:27:27ID:???
>>956
そんな複雑な条件を関数一発でできるとは思わない方が…
条件で取捨選択するなら素直にロジック書いた方がいいよ。
$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 絞り込み条件;
でいいじゃん。
09589332006/12/07(木) 00:05:43ID:???
>>935,938
うまくいきました。
0959nobodyさん2006/12/07(木) 01:17:48ID:???
ファイルを移動させるには、移動先にcopyして
元のファイルを削除するという考え方で良いのでしょうか?
それとも直接移動出来るのでしょうか?
0960nobodyさん2006/12/07(木) 01:31:55ID:???
>>959
rename()で移動できる。
09619602006/12/07(木) 01:34:36ID:???
>>960
rename()はファイル名の変更ではないのでしょうか?
ファイルそのものの場所(ディレクトリ)を移動出来るのですか?
0962nobodyさん2006/12/07(木) 01:35:03ID:???
>>961
できる
09639592006/12/07(木) 01:36:01ID:???
↑間違えました。上のは959です。。

>>962
そうですか・・・手持ちのリファレンスには書いてないので、もう少し調べてみます。
0964nobodyさん2006/12/07(木) 01:41:14ID:???
>>963
本家マニュアルも常に確認するようにした方がええよ。
市販リファレンスはあくまで(内容が薄い分読みやすいだけの)補助的なものと割り切るべし。
ttp://www.php.net/manual/ja/function.rename.php
ここの例1にあるようにrenameは「ディレクトリを含めた」ファイル名の変更ができる。
0965nobodyさん2006/12/07(木) 12:25:40ID:4ce7Ud5I
> そうて?はありません。例えは?、今のところ宇宙日本食の試作品には寿司や天ふ?らと

こういう文字列の濁点・半濁点を合体させたいのですが、どのようにすれば良いのでしょうか?
0966nobodyさん2006/12/07(木) 13:19:10ID:???
>>965
Jcodeにそんな機能があったキガス
0967nobodyさん2006/12/07(木) 14:36:15ID:9CmtFee0
すみません。添付ファイルとしてメールを送れるフォームメールについて教えてください。
現在以下のような画面遷移でフォームを作っています。

入力→確認(or必須エラー)→送信完了

input name="file" type="file" でファイルを選ぶんですが、入力画面から確認画面に遷移
した時にテンポラリファイルとして保管されますよね?
で、確認して実際に送信する際にはリクエストが一度終わってしまうので、削除されてしまっているようなんです。

なので、確認画面に遷移する際にテンポラリファイルをリネームし、
削除されないようにして、その後送信を押すと、リネームしたファイルをメールに添付し、サーバ内のファイルを削除するような仕組みにしたんですが、
こうすると、確認画面から入力へ戻ったりそこでブラウザを閉じてしまった際に削除されません。

実際のところ、添付ファイルの送信ができるメールフォームで、確認画面を出すのは難しいのでしょうか?
長文で申し訳ございませんが、わかる方ヒント頂けると嬉しいです。
0968nobodyさん2006/12/07(木) 15:22:39ID:???
>>967
意外と面倒くさいよ、それ。
手法としては
1.アップロードファイルをファイルに保存しないでhiddenで持ち回す
 メールに添付するもの=それほど大きなファイルではない=サイズを制限する
 という扱いができるならこれが簡単。
2.TMPディレクトリを一定期間ごとにゴミ掃除する
 各ファイルの更新日付を確認して古いファイルはゴミとみなして削除していく
とかがある。
0969nobodyさん2006/12/07(木) 15:44:31ID:VdHijTI7
FedoraCore5+Apache2+php5+postgreSQL8で、顧客名簿プログラムを作成しています。
洗濯した顧客の情報をCSV形式のファイルで出力しようと思ったのですが、「�梶v「�求vの文字がうまくCSVに
はいってきません。DBの文字コードはutf-8で、出力するときにmb_convert_encodingでSJISに変換し、CSVに
納めています。

どうしてもだめなら「(株)」「(有)」で代用しようと思いますが、以前のDBとの整合の都合上できることなら「�梶v「�求vを
使用したいのです。
どなたかヒントをお願いします。
0970nobodyさん2006/12/07(木) 15:45:49ID:???
>>969
機種依存文字、ダメ・ゼッタイ!
09719672006/12/07(木) 15:54:31ID:???
>>968
あら、やっぱり簡単な方法ってないんですね。
昨日googleでずっと調べてたんですが、出てこないわけですねぇ。

ありがとうございます。
0972nobodyさん2006/12/07(木) 16:00:28ID:???
>>971
セッション使ってファイルデータもセッションに格納してしまえば
hiddenでたらい回すよりは高速にたらい回しできるし
一定時間後のゴミ削除も自動でやってくれるから簡単。
0973nobodyさん2006/12/07(木) 16:07:05ID:???
>>969
変換する時にSJISじゃなくSJIS-winを指定したらどうだろう
09749692006/12/07(木) 16:20:33ID:???
>973
無事できました!ありがとうございます。SJIS-winという形式があったのを知りませんでした。
勉強しなおします。

>970
ご指摘ごもっともです。これまでサーバーはWin環境のみでやってきたため無頓着に使ってしまっていました。
今後は徐々に使わない方向にもっていきたいと思います。
ありがとうございます。
09758002006/12/07(木) 16:56:24ID:???
>>972
だけど、ブラウザを複数開くときの処理を考えないといけないわな。
0976nobodyさん2006/12/07(木) 17:02:54ID:???
>>975
そうなんだよね。
で、一般的な対処法とかあるんですかね。>タブブラウザで同時にアクセス対策

そろそろ次スレ立てますか?
くだらなくないはずの本スレと統合する形で。
0977nobodyさん2006/12/07(木) 17:33:32ID:???
もう統合してるってば。
だから>>1から「ここなら本スレで回答のないお前の」って一文も消えたし、
本スレにあった簡易FAQも>>5-6に移動してきたんじゃん。
何も知らないで間抜けなことぬかすな。
0978nobodyさん2006/12/07(木) 17:37:48ID:???
>>976
本スレも下らない質問しか来なかったから
統合したら下らない質問だけが残ったんだよ。
0979nobodyさん2006/12/07(木) 17:52:55ID:???
>>977
わかっとるわボケ。
スレタイを直すのかというとんじゃ池沼
0980nobodyさん2006/12/07(木) 17:53:48ID:???
わろた
09819672006/12/07(木) 17:58:21ID:???
>>972
セッションってファイルのデータも格納できるんですか。。
全く知りませんでした。

画像ファイルとかの場合、文字列化して格納するってことでしょうか?
0982nobodyさん2006/12/07(木) 18:09:19ID:???
>>979
下らねぇ質問しか来ないんだから、このままでいいだろ
0983nobodyさん2006/12/07(木) 18:12:32ID:???
>>979
直す必要があったら統合時に本スレ残して下スレを消してるよ。
修正無用。直しちゃったら下らない質問が投下しにくいじゃないか。
0984nobodyさん2006/12/07(木) 18:16:07ID:G0QKrQPg
超 つけてくれよ
もっとハードル下げようぜ
0985nobodyさん2006/12/07(木) 18:18:38ID:Jk+UiVCG
aタグでURLを出力するときに
$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:???
>>985
っていうか正しいURLならエスケープ要らないししちゃダメだろ。
URLを組み立てる時点で各パーツをurlencode()する。
ユーザ入力とかで信用ならないURLなら、1度 ? と & でパラメータを分解して、
全部urlencodeかませて再構築。
0987nobodyさん2006/12/07(木) 18:28:24ID:Jk+UiVCG
>>986
$URLはユーザから渡される値なんです。
やっぱりクエリストリングを分解しないとダメですか・・・
09889792006/12/07(木) 18:44:56ID:???
>>984
超がつくのは

くだすれPHP(超初心者用)
http://pc8.2ch.net/test/read.cgi/php/1150088761/l50

こっちで良くね?
0989nobodyさん2006/12/07(木) 19:37:48ID:JHpRodpN
PHPにてディレクトリ内のファイルの数を取得するにはどう記述すれば良いのでしょうか?
0990nobodyさん2006/12/07(木) 19:41:55ID:???
>>989
そのディレクトリに他のディレクトリは含まれているのか?
0991nobodyさん2006/12/07(木) 20:35:34ID:???
配列に値が入ってなかったら削除するにはどうしたらいいのでしょうか?
例えば
$array=array("あああ","いいい","");
$array_max=count($array); //3が入る

これを空白値を削除してcountした時に「2」と表示したいのです
0992nobodyさん2006/12/07(木) 20:41:46ID:???
>>991
array_filter
0993nobodyさん2006/12/07(木) 20:45:23ID:???
>>992
これです!出来ました。ありがとうございました。
0994nobodyさん2006/12/07(木) 21:32:57ID:TE+ffKua
1000ゲットm9(^Д^)プギャー
0995nobodyさん2006/12/08(金) 01:45:33ID:???
pear::HTTP_Requestでタイムアウトの検出ってできますか?
0996nobodyさん2006/12/08(金) 04:12:22ID:???
>>995
仕様上はできることになってるらしいけど、バグってるという噂も。
バージョンにもよりそうな気はするから自分で確認してみるといいかも。
参考:
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:???
ume
0999nobodyさん2006/12/08(金) 07:54:17ID:???
uma
1000nobodyさん2006/12/08(金) 08:07:57ID:???
          lヽ、            /ヽ
           i! ゙ヽ、    ,,,..-'"/  ゙i!⌒ヽー-、.,,.-イ''⌒ヽ
            l    ゝ-─‐-/'    i!  ヽ、     i,  ,ノ
         ,/"             i!  .... ゙'';;..   Y"
        ,/'              〈  :::::.  '';;...  'i- 、,,
         i'                'i,  ::::::::   ::::  'i!   ゙"ヽ、
          i! ー-      ,,_         'i  :::::::::  ''':;;;  ヽ、  ゙)
        'i,:::::   ,--、     ̄     ,/ヽ ''''        'i,-‐'"
       /⌒ヽ、 i,_,〉   :::::,,-‐    ゝ   .............    ヽ、
       (    ヽ、   ,,.-‐''"       ,)  :::::::::      '\,
        ヽ、,,  ノ,.-‐''"      ノ-‐''"´( :::::::::::          )
          "~ (       ,. -'"     ヽ、    _,,... -‐─'''"
             ヽ、,,.. -‐'''"         ``゙"´~
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。