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

このエントリーをはてなブックマークに追加
1nobodyさん
PHPに関する質問用スレです。ここならお前の下らない質問に回答があるかも知れません。

まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 33
http://pc8.2ch.net/test/read.cgi/php/1164209222/

◆質問する時の注意
・ 自分の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
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
 しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
2nobodyさん:2006/12/08(金) 04:23:36 ID:???
■過去ログ
【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/
【PHP】下らねぇ質問はここに書き込みやがれ 32
http://pc8.2ch.net/test/read.cgi/php/1162818436/
3nobodyさん:2006/12/08(金) 04:24:04 ID:???
関連リンク
■本家マニュアル   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/
4nobodyさん:2006/12/08(金) 04:24:17 ID:???
関連スレ
注:昔は本スレ(PHP質問スレ)というのが別にあったけど、今はここが本スレです。

◆超初心者を自覚してる方ははこちらへどうぞ
くだすれPHP(超初心者用)2
http://pc8.2ch.net/test/read.cgi/php/1164617202/

◆その他
http://pc8.2ch.net/php/subback.html
PHP関連スレは非常に多いのでこの中でブラウザのCTRL+F等で「PHP」を検索!
5nobodyさん:2006/12/08(金) 04:24:36 ID:???
【簡易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プログラムとして実行された結果になる。
6nobodyさん:2006/12/08(金) 04:24:50 ID:???
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に保存?
 → 好きにしてください
7nobodyさん:2006/12/08(金) 04:39:48 ID:???
>>1
乙華麗
8nobodyさん:2006/12/08(金) 04:55:22 ID:???
>>1
9nobodyさん:2006/12/08(金) 05:05:39 ID:???
>>1
市ね
10nobodyさん:2006/12/08(金) 07:02:32 ID:???
「エスパーきぼんぬ」「氏ね」「(゚Д゚)ハァ?」等のレスを貰う八ヶ条。
1. ハードウェア、OSのバージョン等には一字一句触れない。
2. 大切な個人情報が漏れるとまずいので、己の行った操作、変更などは秘密。
3. エラーメッセージの類は決して書かない。「エラーが出るんです」で留める。
目の前で生じている現象をそのまま具体的に書くなどもっての外。
事実より俺様の脳内解釈を優先すべし。
4. 独り言文体で必勝。
「…なんだけど、どうすればいいのかなぁ」「何が悪いんだろう?」
5. 「急いでいます」「困っています」等、自分の都合を全面に押し出す。
6. もう試したことを得意げに指摘してくる奴には、厳しく対応。
「それが駄目だったから質問してるんです」「それはもう試してみて駄目でした」
"どう"だめだったのか、本当に実際それを行ったかどうかなんか問題じゃない。
7. ストレートに答えを書かないもったいぶったレスには、逆切れで対応。
「だからどうすればいいんですか?」「分からないなら引っ込んでろやゴルァ」
示されたURL等を参照するなんて態度は、回答者を甘やかすことに他ならないので
絶対に避ける。
8. 情報は小出しに。

「エスパーきぼんぬ」 補足
上の八ヵ条を「一つでも」満たす者は質問者として不適格だということだ。
そのような悪い質問に対して答えられるのは,
質問者の意図をすべて汲み取ることのできるエスパーでもなければムリ,
という意味であって,決して,高度な技術を持つユーザに対する尊称でなはい。
まちがっても「エスパーの方,回答お願いします」
なんて痛い質問するな。つうか氏ね。
11nobodyさん:2006/12/08(金) 08:08:07 ID:UlcPY8MZ
スレが切れてしまたので再掲です

PHPにてディレクトリ内のファイルの数を取得するにはどう記述すれば良いのでしょうか?

ディレクトリ内に他のディレクトリは有りません。ファイルだけです
12nobodyさん:2006/12/08(金) 08:10:38 ID:???
>>11
http://jp.php.net/manual/ja/ref.dir.php
この辺の関数使って、配列の数でも取得汁。
13nobodyさん:2006/12/08(金) 09:54:02 ID:ewFyIfPg
http://www.matubusi.com/cart/cgi-bin/kaitori.cgi?id=5
ここの買取口数とメールフォームの口数を買い取り口数にマイナスする計算の連動
似たようなスクリプトありませんか?もしくは作れますか?
よろしくお願いいたします
14nobodyさん:2006/12/08(金) 10:01:26 ID:???
>>11
$d = new DirectoryIterator('path');//調べたいディレクトのパス
$c = 0;ファイル数
for ($d->rewind(); $d->valid(); $d->next())
{
if ($d->isFile()) $c++;
}
15nobodyさん:2006/12/08(金) 10:06:57 ID:???
>>13
RMT業者には教えてあげません^^
16nobodyさん:2006/12/08(金) 10:08:01 ID:???
>>13
こんな意味不明なことがビジネスになる時代か...
気持ち悪い。はっきり言って異常。

>>15
お前の考えに一票。
17nobodyさん:2006/12/08(金) 10:08:29 ID:O/tUI87z
明示的に変数を宣言しないと使えないようにはできませんか?
よく変数名をちょっと間違えたまま気づかず、
バグを発見するのにすごく時間がかかることがあるので。
18nobodyさん:2006/12/08(金) 10:27:46 ID:???
>>17
無理だねえ。
PHPのいい所でもありいい加減なところでもあるから、
仕様だと思って、IDEでの開発をお勧めする。
宣言されてない変数だとエラー出るようなIDEも結構あると思うから。
19nobodyさん:2006/12/08(金) 10:30:48 ID:???
>>17
統合環境でやれって話だな。
20nobodyさん:2006/12/08(金) 10:36:03 ID:???
>>13
>>ここの買取口数とメールフォームの口数を買い取り口数にマイナスする計算の連動
何をしたいのか良く分からんのだが

>>17
error_reporting(E_ALL)は?
21nobodyさん:2006/12/08(金) 11:05:22 ID:???
正規表現による置き換えついて質問なんですが、
\t<p>あいうえお</p>
(\tのとこはタブ)
これの、タブと、<p></p>をとりのぞいて
あいうえおと表示する正規表現を書きたいのですが、

$a = "\t<p>あいうえお</p>";
$b = preg_replace("/<(.|)p>/", "", $a);
$c = preg_replace("/\x09/", "", $b);
print $c;

今のところこんな感じで、$bで<p></p>を、$cでタブをといった感じで
分けて処理しています。
$bで、両方とも一緒に取り除くような書き方はできませんでしょうか?
今後似たようなことをしたい場合、さらに取り除きたい条件が増えた時、
どのように対処するのかが知りたいので、
一緒にとりのぞくやり方があったら教えていただけませんでしょうか?
ちなみに$bの<(.|)p>というのは、勘で書いたらできていたので、
もっと適切な書き方があれば教えていただきたいです。
22nobodyさん:2006/12/08(金) 11:06:59 ID:???
>>21
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
http://pc8.2ch.net/php/subback.html
2321:2006/12/08(金) 11:09:46 ID:???
>>22
すみません。
一応そこで「正規」「表現」「正規表現」のキーワードで探したのですが、
みつからなかったもので・・・
あと正規表現って言語を超えて全て共通なのでしょうか?
24nobodyさん:2006/12/08(金) 11:19:34 ID:???
>>23
>あと正規表現って言語を超えて全て共通なのでしょうか?
違う(ついでに、スレも)。
2522:2006/12/08(金) 11:29:59 ID:???
他にもあるかもしれないけど2つ程紹介しておく。

>>23
正規表現 part 3
ttp://pc8.2ch.net/test/read.cgi/tech/1156413899/l50

正規表現
ttp://pc8.2ch.net/test/read.cgi/unix/1039165754/l50
26nobodyさん:2006/12/08(金) 11:37:09 ID:???
そもそもタブは、タブ除去関数あるだろうが
27nobodyさん:2006/12/08(金) 11:39:38 ID:vLtHeZoc
mysql_query("update table_$t set col_$r = '$q' where col_1 = '$max2'");

上のように、table_$tのcol_1の値が$max2である場所のcol_$rに、$qというデータを挿入する
というコマンドを書いたのですが、データが挿入されません。
$qと$max2を囲っているクオートの使いかたを間違っている気はするのですが、どう直せばいいのか解かりません。
誰か教えてください。m(_ _)m
2821:2006/12/08(金) 11:40:37 ID:???
>>24-25
どうもありがとうございます。
誘導先が参考になりそうなのでまずはちょっとスレを眺めてみたいと思います。

>>26
そんなもんがあるんですね。後ほどマニュアルひいてみます。
29nobodyさん:2006/12/08(金) 11:42:55 ID:???
ややこしいから次スレの1のテンプレ
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
じゃなくて
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
だけでいいよ
30nobodyさん:2006/12/08(金) 11:52:13 ID:???
>>13
宣伝はよそでやれ、クズ。
31nobodyさん:2006/12/08(金) 12:13:42 ID:UlcPY8MZ
>>12
>>14
ありがとうごさいます。
32nobodyさん:2006/12/08(金) 12:18:10 ID:EP/lKf3+
指定したディレクトリ内のファイルを削除して
最後にそのディレクトリも削除するという仕組みを作っています。

$dir_name="test";
if(file_exists($dir_name)){
$dh = opendir($dir_name);
while($file = readdir($dh)){
if ($file != "." and $file != "..") {
unlink($dir_name./.$file);
}
}
rmdir($dir_name);
}

画像は削除されるものの、どうやってもディレクトリが削除されず、
パーミッションエラーになります。
(ちなみにローカル上でテストしているので、サーバはWinXPです)

ディレクトリ作成時はmkdir($dir_name,0777);
などにしているので、特にパーミッションの指定はしていません。

上記のソースの書き方が悪いのでしょうか?
33nobodyさん:2006/12/08(金) 12:26:23 ID:???
知ってるかい?
Windowsにはパーミッションの概念はないんだぜ。
3432:2006/12/08(金) 12:27:04 ID:???
知ってます。だからパーミッションエラーと言われても??って感じです。
ちなみにアクセス権はWindowsでもありますが。
3532:2006/12/08(金) 12:31:25 ID:???
連投ですが、、Permission denied エラーメッセージが出ます。
36nobodyさん:2006/12/08(金) 12:52:23 ID:???
                     _.. - .._
                   _.. - ,ニ-冖 ⌒ 冖-ニ - _
               / ノ´,. .‐.: : : ̄: :、:‐. 、`ヽ \
            /   //: :./: : : : : : :l: : : :.\ヽ \
             <  ヽ/: : : :/: : : : : : /: :.l: : :、: : :ヽ/   >
              丶、/: : : ::/: : : : ::::〃:/:.|:: : :.l: : : :.', /
              l:l: :-:、l.: :::::::://://:∧:::._;l:-!: l:.|!
             ,l:l: : : ::|><__/ ' / '_,. へ:.|: l: :|::!l
             l:.|:|: : : ::lz=ュ   ′ z=ュ.リ:://: l
            l: :Nヽ: : :ヽ     '       /:://: : :.l  下らねぇ質問はここに
             l: : /il ヽ、ヽヽ   /二ヽ  / '// ̄`ヽ!  書き込みやがれ、ちび。
             l: /   il  li、``  |   |  /' li:.   ヽ
              l:/    il   li `丶、ヽ-- ,' ィ .il  li::.    ヽ
            ,/     il.※.li    ,.ィ`不ヽ、 il.※.li::::::..   ヽ
.        //     .:il  li   // //'{l:l ヾ、il  li\::::::...   l、
      / l/    ..::::il  li  ヽヽ//l>ィll:l__,ノイ   li:::::::丶、:::::::...l \
       |:  l:::.  ..:::::::::il.※.li   `イl:l. {.l:「´ il.※.li:\:::::::. `` ┘ \
      l::  l::::::_:::-:':´il  li    {l:l,><{ l:l   il  li\_l\::::.     .::/
    /,l:::.  ̄   ::::::il  li、,.、,、,、{.l:ト、イ.l:l、,、,il  li::::::::l:::::ヽ::.   .::::/` 丶、
  ,. '"´,.-l::::::::::::::::::::::/il.※.li、,、,、,、,、l:l::::::::{_l:l,、,、il.※.li、:::::::l:::::::..........:::::/ニ、ヽ、
37nobodyさん:2006/12/08(金) 13:13:13 ID:???
>>13
その会社の従業員数、ホントかよ。
たかだか数百円の売買してるのに、どうやってその人数を維持するんだかwww

>>27
自分でいろいろ直して試してみてから質問しろチンカス。
ちょっと考えれば数通りしかないだろ。
38nobodyさん:2006/12/08(金) 13:21:43 ID:???
RMT関連の会社は"自称"が多いからね。
会社自体の存在がなかったり、
登記してるだけで実体がないものがほとんど。
客の信用寄せのためだが、扱ってるものがオンラインゲームのデータと滅茶苦茶。
しかもほとんどが中華絡みで、海外への不正送金が後をたたない。
世間ではニートまたは、ニート予備軍という部類だな。
まぁドブネズミがやるような商売なんて>>13は相手にしないでやってくれ。
39nobodyさん:2006/12/08(金) 13:42:08 ID:???
xmlファイルを読み込むxml専用の関数みたいのってありましたよね?
どの関数かちょっとわからなくて迷ってるのですが、
どなたか心当たりありませんでしょうか?
file()のような関数で、よりxmlファイルを扱いやすくするような関数だったかと・・
40nobodyさん:2006/12/08(金) 13:48:57 ID:???
>>39
2chに書き込む暇があるなら、PHPマニュアルで検索くらいしたらどうか?

PHPロゴの下の検索バーで、search for [XML] in the [function List]▽
41nobodyさん:2006/12/08(金) 13:52:15 ID:???
>>32
開けたら閉めろってよく怒られなかったかい
4232:2006/12/08(金) 14:04:34 ID:???
>>41
最後から2行目のrmdirの前に
closedir($dh);を追加したのですが、testディレクトリ内のファイルは削除されるものの
ディレクトリ自体を削除しようとするとDirectory not empty inというエラーが出て
削除出来ません・・。
43nobodyさん:2006/12/08(金) 14:06:36 ID:???
質問なんですが
参照ダイアログや保存ダイアログで拡張子指定やファイル名に規則性をもたせる方法ってありますか?
44nobodyさん:2006/12/08(金) 14:46:53 ID:???
>>32
$dir_name./.$file

エラーになるはず
45nobodyさん:2006/12/08(金) 14:49:14 ID:???
RMTって何ですか?
46nobodyさん:2006/12/08(金) 15:01:55 ID:???
>>45
つ google
47nobodyさん:2006/12/08(金) 15:31:23 ID:???
携帯用のHPを作っているのですがauでセッションが引き継げないエラーが出て困っております。
hoge.phpで端末認証してからhoge2.phpにheaderで飛ばしています。
その際、session_id()をURLにいれて飛んだ先でも引き継ぐようにしているのですがauだと引き継げていないのです。
私の持っているDoCoMo機種だと問題なく動きます。
ご教示お願い致します。
48nobodyさん:2006/12/08(金) 15:38:53 ID:???
>>42
試してみたら、ちゃんと消えたよ

そのエラーを見る限り、なにかファイルが残っているんだろ
49nobodyさん:2006/12/08(金) 15:41:16 ID:???
>>11
UNIXとWindowsで多少変わるのと「.」から始まるファイル名を含む場合に注意が必要だが
echo count(glob("$dir/*"));
でファイル数は取れるんじゃなかろうか。
50nobodyさん:2006/12/08(金) 16:18:37 ID:???
>>35
Windowsの場合、操作対象のファイルを使用中にスクリプトを実行(例えば
メモ帳で編集しているファイルを削除しようとする)するとそんなエラーが
出たような気がする。
51nobodyさん:2006/12/08(金) 16:32:14 ID:???

<?php
echo file_get_contents("http://www.ugtop.com/spill.shtml?useragent=".$_SERVER['USER_AGENT']= 'Mozilla/4.0';);
?>
こいつでuseragentをMozilla/4.0にしたいんだがどうしてもうまく行かない
52nobodyさん:2006/12/08(金) 16:45:27 ID:DDnDD/EO
長文失礼
PHPを使って画像をアップ後、move_uploaded_fileで移動(保存)という流れの
プログラムを作っているのですが、アップした画像が見れないですし、
さわれない状態になってしまってます。

調べてみると、どうもアップされた画像のパーミッションが
600になっていて、これを chmod 755等としてやると問題ないです。

毎回アップのたびにファイルをexec(chmod ・・)すれば一応動くのですが、
根本的な解決はどのようにすればよいのでしょうか?

環境は
fedora core 6
PHP 5.1.6 をApacheモジュール
Apache 2.2.2
ファイルをアップするディレクトリは755で所有者はApache
ちなみに、アップしたファイルも所有者はApacheです。

でもコレってもしかして、Apache板?
53nobodyさん:2006/12/08(金) 16:54:24 ID:???
>>50
だから>>35のエラーはちゃんとクローズしたら回避できたんだろ。
いちいちむしかえすなよ。
空じゃないから削除できないってのは隠しファイルか
システムファイルでもあるんじゃないの
54nobodyさん:2006/12/08(金) 17:06:44 ID:???
>>53
だからいちいちむしかえしに抗議すんなよ。>>50の指摘だって当たってるんだから
後で誰かの役に立つこともあるだろ。
55nobodyさん:2006/12/08(金) 17:34:58 ID:???
DBクラスのインスタンスを保持するには
singletonパターンやcontainerパターンなどがあるそうですが
どんな方法がいいですか?
56nobodyさん:2006/12/08(金) 17:44:10 ID:???
>>55
普通はsingletonだろうね。
57nobodyさん:2006/12/08(金) 18:20:32 ID:Y02nKAI9
PEAR等のクラスでよく以下の様にメソッド名の先頭に&がついているものを
見かけますがこれは何を表すのでしょうか?

function &method(){
...
}
58nobodyさん:2006/12/08(金) 18:29:21 ID:???
マニュアル(ry
59nobodyさん:2006/12/08(金) 19:10:21 ID:La6qVtX7
if($a & $b){
print "true";
}
といったif文でどういったときにtrue判定されるのか分かりません。
マニュアル等でもかまいませんのでお教えください。
60nobodyさん:2006/12/08(金) 19:23:46 ID:???
ビット演算子についてぐぐれば分かるかもしれない
6157:2006/12/08(金) 19:28:38 ID:Y02nKAI9
>>58
マニュアルは一通り探してみたのですが見つからないのです。
6259:2006/12/08(金) 19:35:53 ID:La6qVtX7
自己解決しました。
下記のようなソースを書いたのですが、結果が検索等した内容と不一致でしたので悩んでいたのですが・・。
$_GETの内容が文字列として扱われていることを忘れていました・・。
intval($_GET['a']) という風に数値として扱うことによって正しい解が得られ理解の裏づけも出来ました。

$a = intval($_GET['a']);
$b = intval($_GET['b']);

print "十進数<br>";
echo $a;
print ":";
echo $b . "<br>";


$c = $a & $b;
if($a & $b){
print "true!";
}else{
print "not true!<br>";
}

print "二進数<br>";
printf("%'_8b",$a);
print "<br>";
printf("%'_8b",$b);

print "<br> 二進数結果:" . base_convert($c,10,2);
print "<br>十進数結果:" . $c;
63nobodyさん:2006/12/08(金) 19:37:03 ID:DDnDD/EO
>>52 解決しました。
apacheですね。m(_ _)m
64nobodyさん:2006/12/08(金) 19:46:16 ID:???
>>51
その方法じゃ無理

ini_set('user_agent', $user_agent);
echo file_get_contents("http://example.com/index.php");
65nobodyさん:2006/12/08(金) 19:53:21 ID:???
>>37
RMTの市場規模知ってていってるんだろうか
おまい、ネトゲーしたことないだろ。

数百円ってのは最低単位。
$1 = 120円 っていってるようなもの。

廃人が1人あたり 毎月5万近くのゲーム通貨を買ったりするのが普通の世界だよ

http://ascii24.com/news/i/topi/article/2006/02/11/660504-000.html

>>38
わざわざリスク犯して 「自称」 する意味ないじゃん
国内業者なら、違法行為でもないんだから、堂々とやって、堂々と儲けたほうがいいにきまってる

ここもマツブシもTVの取材を受け付けたりとちゃんと会社として存在していることをアピールしてるからね
http://www.gm-exchange.jp/index.html
66nobodyさん:2006/12/08(金) 20:00:15 ID:???
>>65
そんな「キモヲタ業界の常識」を得意げに語られてもねぇ・・・

俺はネトゲーにはまるで興味わかないからどうでもいいが、
まぁ、キモヲタはキモヲタどうし、仲良くやってれば?
67nobodyさん:2006/12/08(金) 20:23:28 ID:???
>>66
だよな。
しょせんキモゲーマーはキモゲーマーでしかない。せいぜい
自分が死ぬ間際になって「あぁ、オレは人の役にも立たず、
キモゲーマーとして一生を終えてしまった。」と後悔すればいいさ。

>>65
おまいネトゲーしたことあんの?たかがネトゲーしたことあるのを
自慢するなんて相当肝いよ^^
>ここも
宣伝丸出し乙。
68nobodyさん:2006/12/08(金) 20:23:53 ID:???
>>38
まぁ漏れは業界関係者だから分かるけど国内で登記しているRMT業者ってのは結構健全なもんだよ
TVでは海外への不正送金やら脱税やらバーチャル徒労やらと散々言われててネガティブなイメージはあるだろうけど

> RMT関連の会社は"自称"が多いからね。
> 会社自体の存在がなかったり、
> 登記してるだけで実体がないものがほとんど。
よくも平気でこんな嘘が言えるね。
国内の大手RMT会社は の 「ほとんど」 は VeriSign + 帝国データバンク のステッカーを貼ったりと信頼性をアピールしている。
いっとくが、帝国データバンクの実在証明は登記書類等が必要で、偽装するのは極めて困難だ。

> しかもほとんどが中華絡みで、海外への不正送金が後をたたない。
海外のRMT業者ってのは確かにそうだね。
海外のRMT業者と国内のRMT業者の大きな違いは、どっちで登記しているか(あるいはしていないか)の違い。

国内RMT業者ってのはいたってシンプル。
売りたい人からゲーム内通貨を買い取り、買いたい人に買値の倍ぐらいの値段で売る、それだけ。

ゴールドファーマーといった海外の中華組織と絡むメリットは無い。

個人間のRMT、海外のRMT業者に比べて、国内RMT業者の価格は1.8倍ぐらいするわけよ。
何故、そんな高い値段で買ってくれるかわかる?
信頼があるから。
BOT生産やらチートで生成したお金を取得した人は、ゲーム内アカウント剥奪などのリスクがあるわけで、
「あの会社で買ったら垢BANされた」 なんて噂がながれたら、会社としての存続に関わる。

不正送金ってのは留学生がやって逮捕された例があるけど、全体の市場規模からしたらそんなのは一部だし、
会社としての規模が大きくなればなるほど調査も入りやすくなる。

あと、脱税については、RMTは(最も?)脱税がしにくい業界と言える。

だって、収入:客からの振込み 支出:社員の給料+事務所代+PCなどの経費+客への振込み と、銀行振込を通して税務署にほぼ全て把握されるから、収入を隠したり支出を多く見せかけたりするのは困難。
69軟式PHP:2006/12/08(金) 20:27:45 ID:???
あれ、スレ間違えたかな?^^;
70nobodyさん:2006/12/08(金) 20:28:01 ID:???
>>68
長文はやめようね。RMTの業界自慢は ス レ 違 い だから
消えろ。
業界が健全?はぁ?
ゲームの金を現実の金に変えるなんていう低俗極まりないことを
商売にしてそれで満足なのかって話だよ。
金さえ手に入れば満足なつまらない人生送りたいなら勝手にやれ
ばいいけど。
71nobodyさん:2006/12/08(金) 20:28:06 ID:???
>>47
auはcookie使えるからヘッダが被っちゃっているんだろうね
72nobodyさん:2006/12/08(金) 21:01:12 ID:???
マクドナルドの携帯サイト(mdj.jp)で登録とかすると
パスワードを入力するように求められるけど、
このパスワード入力欄は、入力したパスが伏字にならない。

input typeをpasswordにしてないせいだろうけど、
これって脆弱性・・・とまでは言わないのかな??
73nobodyさん:2006/12/08(金) 21:03:21 ID:???
>>72
ユーザビリティの観点からパスワードを非表示にするとデメリットが生じるじゃん。
パスワードをいれるときに覗き見されないようにユーザが工夫すればいいだけでしょ。

何を入力したか分からないよりよっぽど親切。
74軟式PHP:2006/12/08(金) 21:15:28 ID:???
親切よりセキュアなほうがいい。
75nobodyさん:2006/12/08(金) 21:19:41 ID:???
7673:2006/12/08(金) 21:19:49 ID:???
>>74
だったらパスワードの安全性を確保できるような仕様にすることが優先だな。
大抵の人 (9割以上) が 4桁の数字をパスワードにしているから、
ブルートフォースアタックで簡単にやぶれるぞ。

必ずアルファベットを使わないと駄目とか、数字なら8桁以上とか、制約をつけて安全性を高めた方がいいね。
77nobodyさん:2006/12/08(金) 21:25:45 ID:???
>>76
それでたまに普段使ってるパスワードが使えないサイトがあったりして困るんだよな。
勝手にセキュアと思い込んだルールをユーザに押し付けつけるなよと。
78nobodyさん:2006/12/08(金) 21:25:59 ID:???
ケータイで桁数が多いとそれだけ会員になってもらえないw
79nobodyさん:2006/12/08(金) 21:32:52 ID:???
>>77
> それでたまに普段使ってるパスワードが使えないサイトがあったりして困るんだよな。
> 勝手にセキュアと思い込んだルールをユーザに押し付けつけるなよと。

パスワードを使いまわしするという行為自体がセキュアでないことをお分かりですか?


パスワードの入力欄に入力した文字が ****** に変換されないことが原因でクラックされる例なんてそんなにないでしょ。
80nobodyさん:2006/12/08(金) 21:37:19 ID:???
>>79
だから?全サイト1つずつパスワードを変えて100以上ものパスワードを暗記してられるとでも?
覚え切れなくてメモ残す羽目になったらもっとセキュアじゃないだろう。
8179:2006/12/08(金) 21:41:56 ID:???
>>80
メモを残すことがセキュアじゃないか。
漏れはパスワードを手帳にメモするときは、独自のルールで暗号化している。
Fkkh8D なら 最初の3文字はアルファベット数字を2回進め、最後の3文字はアルファベットと数字を3回戻す、みたいにね。
メモを安全に管理すれば、メモを残しておいても問題ないだろう。
ISPのパスワードなどの重要なのは、独自のルールで暗号化したものを、さらに家の金庫にいれて保管してるよ。

パスワードを使いまわししていたら、どこか1箇所から漏洩しただけで、全てのサービスがクラックされる可能性があるわけだが。
その管理の何処がセキュアなんだ。

もし、独自ルールでの暗号化が面倒ならば、サイト毎に違うパスワードにしてメモして、
メモしたパスワード + In@2 (暗記するパスワード) みたいにすれば問題なし。
82軟式PHP:2006/12/08(金) 21:43:32 ID:???
>>76
仕様とかそういう以前に俺はtype=passwordにする。
ただ、そんだけ。

>>78
ケータイでpasswordにしてたら古い機種はキツイよなw
何打ってるか分からんやつがあるw
83nobodyさん:2006/12/08(金) 21:44:04 ID:???
ttp://www.livedoor.com/blogでアクセスできるのですが
http://www.livedoor.com/blog/だとできません
これはPHPでクエリ文字でページを制御しているのでしょうか?
84nobodyさん:2006/12/08(金) 21:46:42 ID:???
>>83
無理やりPHPにからめるな。スレ違い。
85nobodyさん:2006/12/08(金) 21:47:19 ID:???
>>81
そんな独自のルールじゃ、攻撃者がメモをたまたま見つけてコンピュータで暗号解読を試みたら、短時間で見破られる可能性あるんじゃ・・・
8681:2006/12/08(金) 21:52:03 ID:???
>>85
あ、説明が不十分だった・・・。
独自のルールに変換した文字列に 4桁ぐらいの共通パスワードをいれたものが実際のパスワードになってる。

ただ単に4桁の共通パスワードを加えただけでも、ランダムな英数字にしているから、
62^4 = 14776336 通りを試さなければならない。

そして、もし、サイト運営者が悪用しようとしても、メモを奪わないと他のサイトのパスワードを知ることができない。
87nobodyさん:2006/12/08(金) 21:56:32 ID:???
>>85
マクドナルドの件から始まった幼稚なセキュリティの話は
どうにか我慢してたけど、おまえの発言はさすがにばかば
かしすぎるぞ。

>>86
おまえも自慢げに説明するな。読んでるほうが恥ずかしく
なる。
88軟式PHP:2006/12/08(金) 21:57:13 ID:???
すげぇ・・・俺も見習ってパスワードをメモって暗号化して
ライオン像を斜めに傾けると本棚が開いて出てくる金庫にしまうぜ。
89nobodyさん:2006/12/08(金) 21:58:03 ID:???
>>86
パスワードを忘れたときに、自分自身が解読できなかったら、元も子もない罠
90nobodyさん:2006/12/08(金) 21:59:17 ID:???
そんなパス管理を世の中の全てのユーザができると思い込んでる辺りが…
91nobodyさん:2006/12/08(金) 22:01:24 ID:???
>>90
それも全て<input type=text>のため。
見えて入力しやすいフォームのためなら、ユーザーは僅かながらの労力を惜しんではならんのだ。
92nobodyさん:2006/12/08(金) 22:02:45 ID:???
>>89
残念ながら、そこまで記憶力わるくねーよ
毎日何度も使っているパスワードをどうすれば忘れられるんだ
93nobodyさん:2006/12/08(金) 22:04:01 ID:???
それならメモしなければよろし
94nobodyさん:2006/12/08(金) 22:04:58 ID:???
ねぇ、このくだらないコキブリレベルのぱしゅわーどにょのおはにゃしは
いちゅまでつじゅくんでちゅか?
ここはあくまでもPHPのしゅれでしゅよ?
95nobodyさん:2006/12/08(金) 22:18:10 ID:???
おまえらってなんで難しく考えるんだろうパスワード項目を多重に増やせばいいだろ。
これでID入力1つ、パスワード入力5つあれば問題ない。
96nobodyさん:2006/12/08(金) 22:19:36 ID:???
>>95
はいはい。お前が実践して便利だと思ったら使えば。
97nobodyさん:2006/12/08(金) 22:25:24 ID:???
>>43は無理?
98nobodyさん:2006/12/08(金) 22:32:28 ID:???
>>95
リアルで茶吹いたじゃねーかwww
9997:2006/12/08(金) 22:51:12 ID:???
はやく答えろや人力検索ども
100nobodyさん:2006/12/08(金) 22:52:01 ID:???
セッションってもうワッシワッシ使っちゃっていいの?
何処かが作ったCMSのスクリプトを覗いたらメニューの文字からリンク先まで
全部セッションに突っ込んであったりしたんで・・・
101nobodyさん:2006/12/08(金) 22:54:33 ID:???
>>97
そもそもダイアログって何の話?
ファイルアップロード?
あそこはPHPじゃ制御できない。
JavaScriptでも無理。
ActiveXならできる。
102nobodyさん:2006/12/08(金) 22:57:29 ID:???
>>100
有限だけどメモリが確保できる限りは大丈夫。
ただ、遅くなるけど。
103nobodyさん:2006/12/08(金) 22:59:37 ID:???
>>102
ありがとうございます
とりあえず基本的なセキュリティとメモリを念頭に使えば良いみたいですね
104nobodyさん:2006/12/08(金) 23:00:44 ID:???
同一人物かどうかは知ったこっちゃないが、

>>99
氏ね
105nobodyさん:2006/12/08(金) 23:23:12 ID:???
同一人物じゃないから安心して叩け
106nobodyさん:2006/12/08(金) 23:24:41 ID:???
同一人物だったとしても、

>>99
氏ね
107nobodyさん:2006/12/08(金) 23:32:52 ID:???
すみません
「56664,123,1,32,0,96,moji」
のように一行で書かれていているものを
「,」で区切ってそれぞれ変数に格納するには
どうしたらいいでしょうか
108nobodyさん:2006/12/08(金) 23:33:58 ID:???
explodeで区切ったらいいです
109nobodyさん:2006/12/08(金) 23:34:38 ID:???
ありがとうございます
110認定回答者:2006/12/09(土) 00:51:07 ID:ohlkT/vm
>>107
斬鉄剣のようにきれ。しかし、文字の中に「,」が付いていた場合、間違えた場所を切るぞ
111nobodyさん:2006/12/09(土) 01:16:45 ID:???
>>110
山田くん、認定を取り消しておいて〜
112nobodyさん:2006/12/09(土) 01:29:57 ID:???
$array=array("あああ","いいい","ううう");

配列に上記の3つの値が入っているとします。
ここで指定の値(例えば「ううう」)を削除して出力するには
どうしたらいいのでしょうか?
113nobodyさん:2006/12/09(土) 01:33:34 ID:???
>>112
削除して出力?出力は「ううう」を表示すればいいの?
114112:2006/12/09(土) 01:37:12 ID:???
>>113
いえ、「ううう」を削除して$arrayには「あああ」と「いいい」が入っている
状態にしたいのです。
unsetも試してみたのですが、違うみたいで・・。
115nobodyさん:2006/12/09(土) 01:45:15 ID:???
>>100
>全部セッションに突っ込んで

それが超ウンコな実装方法だという自覚があって、
それでも使うというのなら、無理に止めはしない。

しかしアクセス数が少ないうちはそれでもいいが・・・
116nobodyさん:2006/12/09(土) 01:53:24 ID:???
>>114
いや、unset()でいいと思うよ。
ちょっとどうやってやろうとしたのか見せてみ。
117112:2006/12/09(土) 01:56:28 ID:???
>>116
$array=array("あああ","いいい","ううう");
$del_val="ううう"; //削除する値
unset($array['$del_val']);

こんな感じです
118nobodyさん:2006/12/09(土) 01:59:44 ID:???
PEARでの認証がどうしてもできずに困っています。
入力フォームは現れるのですが、入力してログインボタンを押すと真っ白な画面になってしまいます。
ソースは以下の通りです・・。
119118:2006/12/09(土) 02:00:18 ID:???
require_once "./common/PEAR/Auth.php";
function drawLogin($username, $status, $objAuth) {
if (isset($_SERVER)) {
$server = $_SERVER;
}else {
$server = $GLOBALS['HTTP_SERVER_VARS'];
}
echo '<form method="post" action="' . $server['PHP_SELF'] . '">' . "\n";
echo '<label for="username">ユーザー名:</label>';
echo '<input type="text" name="username">' . "\n";
echo '<label for="password">パスワード:</label>';
echo '<input type="password" name="password">' . "\n";
echo '<input type="submit" value="ログイン">' . "\n";
echo '</form>' . "\n";
}

$params = array(
'dsn'=>"mysql://root:admin@localhost/db_bbs",
'table'=>"auth",
'usernamecol'=>"username",
'passwordcol'=>"password",
'cryptType'=>"md5",
);

$objAuth = new Auth("DB", $params,"drawLogin");
$objAuth->start();

if($objAuth->getAuth()) {
echo "ようこそ!" . $objAuth->username . "さん<br>";
}
120nobodyさん:2006/12/09(土) 02:01:12 ID:???
>>117
そもそも '〜' 内では変数を参照できないから、
それ$array['ううう']の参照になってない、って突っ込みもあるけど、

$idx = array_search($del_val, $array);
if($idx !== FALSE) unset($array[$idx]);
って感じかな。
121nobodyさん:2006/12/09(土) 02:02:33 ID:k1+g2Cld
大変恥ずかしい質問なのですが、どなたかお答え頂けると嬉しいです。

phpMyAdminを導入したのですが、基本的な操作方法がわかりません。
ググって色々なサイトを見たのですがいまひとつ理解ができないです。
どなたか参考になるサイトなどあれば教えていただけないでしょうか。
122nobodyさん:2006/12/09(土) 02:07:09 ID:???
引数の数が動的な関数で、
かつ 参照渡ししたいと考えています。

change()
{
$args_num = func_num_args();
$args = func_get_args();
for( $i=0; $i < count($args_num); $i++ ){
$args[$i] = "修正後";
}
}
と関数を作って、
使用する際に
change(&$var);
としても $var が参照渡しされず、「修正後」になりません。

https://www.stackasterisk.jp/tech/php/searchAction.do;jsessionid=aa3Tn-HfMu3c?cid=11
ここを参照すると、
関数定義時に&をつける、使用する際に引数に&をつける、
どちらでもOKと書いてありますが、どこが問題かどなたかご教授くださいませ。
123121:2006/12/09(土) 02:17:25 ID:k1+g2Cld
今、自分で参考になるサイトを見つけました。
なので、なんとか設定をすることができましたm(__)m
124nobodyさん:2006/12/09(土) 02:20:52 ID:???
>>122
可変引数は参照渡しに対応してないらしーです。
125122:2006/12/09(土) 02:28:44 ID:???
>>124

そうですか・・・
ありがとうございました。
126124:2006/12/09(土) 02:30:36 ID:???
同じ話は過去にも悩んだ人が結構いるらしく、いくつかの記事が散見される。
ttp://ml.php.gr.jp/pipermail/php-users/2002-Decem
ttp://labs.unoh.net/2006/07/php_3.htmlber/012279.html
ttp://je-pu-pu.jp/blog/archives/2006/03/php_4.html
しかしいずれも無回答もしくは「無理」で結論されている模様。
127nobodyさん:2006/12/09(土) 03:40:48 ID:pb/pWspH
PHP5 + SQL Server 2000でHTMLを保存しようとしているのですが、
SQL Serverのtext型のデータの出し入れの方法がわかりません。

VBとかのサンプルは見かけるのですが、PHPでのやり方をおしえてください
128nobodyさん:2006/12/09(土) 06:57:35 ID:???
>>127
何がしたいのかよくわからないが、
http://www.php.net/manual/ja/ref.mssql.php
ここ眺めてたら答え出るんじゃないかな
129nobodyさん:2006/12/09(土) 09:33:05 ID:???
>>127
何がどうわからないのか書いたほうがいいと思うよ。
数値や日付は普通に取れるってことなのかな?
mssqlはSJISで保存されるので、mb_convert_variablesとかしないといけないけど。

ついでにODBCの方も紹介しとこか。
http://www.php.net/manual/ja/ref.uodbc.php
PEAR::MDB2とかADOdbとか使った方がいいかもだけど。
130nobodyさん:2006/12/09(土) 10:04:30 ID:YIF875cZ
ウィルスセキュリティソフトで、サーバー化ソフトを使ってるPCには使えないものが歩けど
みんあはどうしているの?
131nobodyさん:2006/12/09(土) 10:05:00 ID:???
そもそもLinuxで動かしてるし>Apache
132nobodyさん:2006/12/09(土) 10:16:20 ID:???
>>130
サーバ用のあるでしょ。
まぁ他人にスペース貸したりしてるわけじゃないし、
最低限のセキュリティー対策してれば、
外部から感染することは少ない。

>>131
Linuxならウィルスにかからないとか思ってるわけじゃないだろうな?
133nobodyさん:2006/12/09(土) 10:56:03 ID:???
>>132
ハァ!?
ウイルスにかからないPCなんてない。最大限に対策をしつづける。
こんなの常識だろクズ
134130:2006/12/09(土) 11:01:53 ID:???
レスありがとうございました
僕のためにみんなけんかをしないでください
135nobodyさん:2006/12/09(土) 11:33:29 ID:???
>>102
セッションがメモリっておまw
136nobodyさん:2006/12/09(土) 11:59:39 ID:???
>>133
何ふぁびょってんの?半島の方でしたかw
137nobodyさん:2006/12/09(土) 12:19:19 ID:???
>>136
そういうあおり方しかできませんか?
138nobodyさん:2006/12/09(土) 12:26:13 ID:FhkAh91m
PHPというかWebProgの初心者です
掲示板の管理画面を作ろうとしています。
1ページ20件ずつ表示する掲示板で
20件を超えると<a>リンクで2ページ目が出現する仕組みです。
管理者がログインしている状態でこの掲示板を開くと
各書き込みに対し編集ボタンが表示されるようにしたいのですが
2ページ目に<a>リンクで飛ぶと、当然POSTでパスワードを
受け渡すことができず、こまってしまいました。
こういうのってどうやって実装するものなのでしょうか。

もしスレ違いでしたら誘導よろしくお願いします
139nobodyさん:2006/12/09(土) 12:34:39 ID:???
>>138
認証したらセッションを開始して管理者であることを
示すキーかなんかを放り込んでおけばいいのでは?

各画面ではセッション変数を読み出し、管理者なら編集用の
リンクを張るなどする。
140nobodyさん:2006/12/09(土) 12:42:57 ID:???
>>138
一つ前の過去ログに同じ質問がございますので、肉ちゃんねる等で参照してください。
141nobodyさん:2006/12/09(土) 12:43:19 ID:???
>>138
>当然POSTでパスワードを受け渡す

当然そういう危ないことは止めていただきたい。
>>139の言うとおり、セッションで管理者ログインフラグとか立てる。
142nobodyさん:2006/12/09(土) 12:43:53 ID:???
>>139
レスありがとうございます
セッション管理について無知でした
調べてみたら、まさにこれだ!って感じです。
かゆいところに手が届きました
感謝です
143138:2006/12/09(土) 12:45:39 ID:???
>>141
POSTでパスワードはまずいのですね・・・なるほど
セッション管理を使ってみます
本当にたすかりました
144nobodyさん:2006/12/09(土) 12:49:46 ID:???
mb_http_output あたりのせいだと思うのですが、
SJISの文字列AとEUC-JPの文字列BをブラウザへGET送信した際、
B側を echo すると
表示させるphp側で
<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
と指定しているにもかかわらず、文字列BのみがSJISで表示されます。
(このため文字化けします、ブラウザの文字コードを再度EUC-JPに指定してやれば、
文字化けが解けます)
文字列AをEUC-JPにしたら、文字化けせずに正常にEUC-JPで表示されます。

おそらく、GETで受け取る際に文字コードを判定、
その後、その文字コードで表示、みたいなことを
PHPのmbstring側が勝手にやってるような感じですが、
php.ini を弄る以外で何か解決方法はないでしょうか?

ちなみに mb_http_out("EUC-JP") をしても変わりませんでした。
お願いします。
145nobodyさん:2006/12/09(土) 12:52:22 ID:???
>>144
とりあえずmb_*関係の設定をすべてさらすこと。
次に表示するソースの文字コードを確認。

こっちはエスパーじゃないんだから。
146nobodyさん:2006/12/09(土) 13:04:57 ID:???
肝心のmbstringの現在の設定値を言い忘れてました、失礼しました。
Directive Local Value Master Value
mbstring.detect_order auto auto
mbstring.encoding_translation On On
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output SJIS SJIS
mbstring.internal_encoding EUC-JP EUC-JP
mbstring.language Japanese Japanese
mbstring.substitute_character no value no value
となっています。
ソースの文字コードはEUC-JPです。
この問題以外は文字化けは発生してません。
文字化けが発生するのも文字列Bのみです。

宜しくお願いします
147nobodyさん:2006/12/09(土) 13:16:10 ID:???
auto autoとかjapanとかなんで二重に書くの?
148nobodyさん:2006/12/09(土) 13:17:07 ID:???
>>138
>>140はスルーですかそうですか
149nobodyさん:2006/12/09(土) 13:19:50 ID:???
>>147
phpinfo()の表記でしょ
150146:2006/12/09(土) 13:21:47 ID:???
表記もわからない人は答えなくていいです。
それではよろしくお願いいたします。
151138:2006/12/09(土) 13:21:57 ID:???
>>148
ごめんなさい、過去ログをあさるに必死で
レスつけきれていませんでした
感謝ですm(__)m
152nobodyさん:2006/12/09(土) 13:35:24 ID:???
>>146
mbstring.http_output SJIS SJIS
153146:2006/12/09(土) 13:40:26 ID:???
>>152

>文字列AをEUC-JPにしたら、文字化けせずに正常にEUC-JPで表示されます。
という部分の理由は分かるでしょうか?
また、mb_http_out("EUC-JP") をしても駄目なのはなぜでしょうか。
154nobodyさん:2006/12/09(土) 13:42:32 ID:???
$string_contents = file_get_contents
でコンテンツが見つからなかったときに
エラーを吐かせず$string_contentsに別の数値を入れるにはどうすればいいですか
155146:2006/12/09(土) 13:43:10 ID:???
一応補足しておきますが、
>>150 は私じゃないです、
暇人は羨ましいです
156146:2006/12/09(土) 13:44:08 ID:9A0i8Wu2
ID出す(age)なきゃならないのですね・・・
157146:2006/12/09(土) 13:59:24 ID:gM+cEjaM
150と156は偽者です。
たいへん恐縮ですがはやく教えていただければと思います。
こちらも暇ではないので。
158nobodyさん:2006/12/09(土) 14:02:42 ID:???
めんどくせーからいちいち偽者でるんじゃねえよタコ
159nobodyさん:2006/12/09(土) 14:07:38 ID:???
最初からIDを出さないからこうなる。
ローカルルールも意味無くあるわけじゃないんだよ。

文字列をEUCに変換して出力するならそのままEUCで出力される。
何もしなければお舞さんが設定したとおりSJISに変換してEUCの
HTMLに出力する。
これがAとBの違いだろ。
160146:2006/12/09(土) 14:09:51 ID:gM+cEjaM
どの設定をかえたらよろしいのでしょうか?
161146:2006/12/09(土) 14:25:55 ID:9A0i8Wu2
> 文字列をEUCに変換して出力するならそのままEUCで出力される。
> 何もしなければお舞さんが設定したとおりSJISに変換してEUCの
> HTMLに出力する。
> これがAとBの違いだろ。

文字コード自体は文字列BもEUCなのです、
SJISになってるわけではないです、あくまでブラウザ出力の
文字列B部分がSJISになっているだけであって。
だから
>(このため文字化けします、ブラウザの文字コードを再度EUC-JPに指定してやれば、
文字化けが解けます)
となります。
162nobodyさん:2006/12/09(土) 14:28:55 ID:???
この板にお前の質問に答えられるやつは居ないと思うよ
159も根本的に勘違いしてるし
163nobodyさん:2006/12/09(土) 14:31:51 ID:???
>>162
ならお前が説明すればいいだろ。
164nobodyさん:2006/12/09(土) 14:32:41 ID:???
>>162
お前のような難癖つけるだけの馬鹿はすっこんでろよ。
165146:2006/12/09(土) 14:35:30 ID:gM+cEjaM
文字コードの設定ってアパッチの設定とPHPの設定だけですよね?
166nobodyさん:2006/12/09(土) 14:42:07 ID:???
回答にはなってないけど。

送信されてきた文字列がSJISかEUC-JPかはどうやって
判断したの?
mb_detect_encodingで調べてみた?
167nobodyさん:2006/12/09(土) 14:44:52 ID:???
もうほうっとけよ。
なんか2人146がいるし、めんどくさいから相手にすんな。
168nobodyさん:2006/12/09(土) 14:54:54 ID:???
>>144
ID:9A0i8Wu2が本物であると予想して相手してみる。

とりあえず再現するコードを書いて(特にform部分と、文字コード関連の操作)。
そうすれば、内容が明確になるだろうし、回答も得られるはず(>>146の設定内容は了解した)。

少なくとも、文字列Aと文字列Bというのが、どういう操作の対象なのかがわからん。
同時に送信しているのか、別の送信の仕方をしているのか。ブラウザの通常の使用で再現されるものなのか。

まーとにかく、再現するコードを書いてくれ。
言葉だけで説明されると、曖昧さが出てくる。

>>154
$string_contents = @ file_get_contents("ファイル名") or $string_contents = デフォルト値;
169154:2006/12/09(土) 14:59:31 ID:???
>>168
ありがとうございます
170146:2006/12/09(土) 15:29:44 ID:9A0i8Wu2
>>166
はい、mb_detect_encoding で調べてます。

>>168
$vara = "シフト";
$vara = mb_convert_encoding($vara, "SJIS", mb_detect_encoding($vara));
$vara = urlencode($vara);

$varb = "イーユーシー";
$varb = mb_convert_encoding($varb, "EUC", mb_detect_encoding($varb));
$varb = urlencode($varb);
header("Location: index.php?vara=".$vara."&varb=".$varb);

して、
index.php(文字コードEUC、HTML出力EUC) 側で
echo mb_detect_encoding($_GET['varb']);
echo $_GET['varb'];

です。
EUC と表示され、$varb 自体は文字化けします。
171nobodyさん:2006/12/09(土) 15:40:14 ID:???
>>170
そのindex.phpで、

mb_http_output("EUC-JP");
header("Content-type: text/html; charset=EUC-JP");
<meta http-equiv="content-type" content="text/html; charset=EUC-JP" />
echo $_GET['varb'];

を全部やっても化ける?
172146:2006/12/09(土) 15:45:08 ID:9A0i8Wu2
>>171
化けますね・・・
173nobodyさん:2006/12/09(土) 16:06:09 ID:???
$strがA〜Z、a〜z、1〜9と-_の時にもTRUEを返したいのですが、
どのようにすればよいのでしょうか?
174173:2006/12/09(土) 16:08:40 ID:???
すみませんミスです
$strがA〜Z、a〜z、1〜9と-_の組み合わせでできているとTRUEを返したいのです。
($str = 'abc123'; =TRUE)
($str = 'abc1$3'; =FALSE)
175nobodyさん:2006/12/09(土) 16:13:20 ID:???
>>172
ブラウザに何使ってる?
デフォルトの文字コードを自動判別になってなくて、
ヘッダーの指定を無視するなんてオチだったりして。
176nobodyさん:2006/12/09(土) 16:18:36 ID:???
173応援あげ
177173:2006/12/09(土) 16:21:46 ID:???
>>176
有難うございます


if(!ereg("[0-9a-zA-Z]",$str)){
//エラー処理
}

ここまでは分かったのですが、「-」と「_」はどのようにすればよいのでしょうか・・・?
178nobodyさん:2006/12/09(土) 16:24:43 ID:???
>>172
>mbstring.encoding_translation On

原因はこれだわな。varaがsjisだから、クエリストリング全体にsjis→eucの変換がかかってる。
だからeucでエンコードされてるvarbがおかしくなる。
php.iniがいじれない状況なら、クエリストリングの先頭に常にeucとして解釈される短い文字列でも埋め込んでおけば?
179nobodyさん:2006/12/09(土) 16:29:12 ID:???
>>177
eregなんか使うなよ。

preg_match('/^[a-zA-Z0-9_-]+$/', $str);
180179:2006/12/09(土) 16:30:29 ID:???
最後の「-」の前に「\」な。
181173:2006/12/09(土) 16:33:03 ID:???
>>179-180
有難うございます。
その方法で解決できました。

差し支えなければ、eregとpreg_matchについての違いなど教えていただけないでしょうか。
本には同じ説明文で記載されていたので・・・
182nobodyさん:2006/12/09(土) 16:36:07 ID:???
183nobodyさん:2006/12/09(土) 16:47:14 ID:???
すみません、PHP+MySQLなんですが、ここでも大丈夫ですかね?

$db = 'database';
mysql_db_query($db,'SELECT FORM database . table WHERE id LIKE abc');

『database』というデータベースの『table』というテーブルの『id』というフィールドを検索して
『abc』と同じものがあればTRUEを返したいのですが、上記の方法では何も返されませんでした。
どのように記述すれば良いですか。御指摘お願い致します。
また、スレ違いなら誘導していただけると嬉しいです。
184nobodyさん:2006/12/09(土) 16:49:19 ID:???
eregを使うなってのは確かセキュリティ的にあれだからですよね?
mb_ereg なら問題ないって聞いたんですが。
個人的にはなぜかereg系使いやすいんですよね・・・
185nobodyさん:2006/12/09(土) 16:56:01 ID:???
>>183
$dbにはデータベースへ接続したときに得られたリソースを入れる。
後、セレクト文で何もセレクトして無いでしょ。 count(*) でも入れとけば?
186nobodyさん:2006/12/09(土) 16:57:10 ID:???
>>183
mysql_connecthost,user,pass)
mysql_select_db("database")
mysql_query("SELECT * FROM table WHERE id = 'abc'")

mysql_db_query
http://jp.php.net/manual/ja/function.mysql-db-query.php
変更履歴
バージョン 説明
4.0.6 この関数は廃止予定です。使用しないでください。かわりに mysql_select_db() あるいは mysql_query() を使用してください。
187nobodyさん:2006/12/09(土) 17:02:46 ID:???
>>185-186
有難うございます。

$dbHandle = mysql_connect("localhost","root","root");
mysql_select_db("database");
echo mysql_query("SELECT * FROM table WHERE id = 'abc'");

「リソース」というのが少しわからなかったので上記の方法でしてみました。
すると、「Resource id #5」という値が返ってきました。
もうリソース怖いです、やめてください。
188nobodyさん:2006/12/09(土) 17:07:31 ID:???
>>187
マニュアル読めよ
$result = mysql_query("SELECT * FROM table WHERE id = 'abc'");
while ($row = mysql_fetch_assoc($result)) {
print_r($row);
}
189nobodyさん:2006/12/09(土) 17:07:48 ID:???
190nobodyさん:2006/12/09(土) 17:07:50 ID:???
>>187
ちゃんとマニュアル見てる?

返り値
SELECT, SHOW, DESCRIBE や EXPLAIN 文では、 mysql_query() は成功した場合に resource を返します。エラー時には FALSE を返します。
それ以外の SQL 文 UPDATE, DELETE, DROP などでは、 mysql_query() は成功した場合に TRUE 、エラー時に FALSE を返します。
返された結果にアクセスするためには、結果リソースを mysql_fetch_array() やその他の関数に渡します。
SELECT 文によって返された行の数を知るには mysql_num_rows() を用います。また DELETE, INSERT, REPLACE, または UPDATE 文で変更された行の数を 知るには mysql_affected_rows() を用います。
クエリが参照するテーブルにアクセスする権限がない場合も mysql_query()は失敗し、FALSE が返されます。

使い方に対するとても丁寧でわかりやすい説明があって、サンプルソースまでついてて、
しかもほぼ完全に日本語化されてるなんて恵まれた環境そうないと思うんだけど。
191nobodyさん:2006/12/09(土) 17:16:53 ID:???
>>135
スーパーグローバル$_SESSION配列に確保できるメモリサイズが有限で
これを超える格納はこけるでしょ
192nobodyさん:2006/12/09(土) 17:23:53 ID:???
>>184
バイナリ対応もアレだけど、基本的にはereg系はpreg系に比べて数倍遅いからpreg推奨なだけ。
ただ、それなら何故ereg系があるかっつーと、昔からある正規表現で使い慣れた人が多いから。
性能的にそこがボトルネックになってるわけじゃなきゃ使いやすい方を使えばよろしい。
193nobodyさん:2006/12/09(土) 17:42:45 ID:???
JAVAでポップアップメニュー作ってますが、ボタンを押してリンクに飛ぶ代わりに
そこから<?php include("sample.html"); ?>みたくPHPを呼び出すことできます?
さらにブラウザに表示するアドレスをsample.htmlにできますでしょうか?

194nobodyさん:2006/12/09(土) 18:00:11 ID:???
>>193
JAVAのスレで聞けよ
195nobodyさん:2006/12/09(土) 18:14:04 ID:???
>>193
君は1度、
サーバーサイドとクライアントサイドのプログラムの違い、
それぞれのプログラムがどのマシン上で動いているか、
includeでどこのファイルが呼び出されているか、
そして恐らくはJavaとJavaScriptの違い、
を勉強してみた方がいい。
ものすごくとんちんかんなことを言っていることに気づくはずだ。
196nobodyさん:2006/12/09(土) 19:31:55 ID:???
ajaxればできるんじゃね
197nobodyさん:2006/12/09(土) 19:43:16 ID:???
普通にリンク先をsample.htmlにするのと何違うんだ
198nobodyさん:2006/12/09(土) 19:49:44 ID:???
>>196
>>193が言ってるのはJava(Script?)からPHPのPerlバインディングみたいにPHPコードを
使えるかってことだろ。説明がちんぷんかんぷんでよくわからないが、HTTP経由ではないだろ。
199nobodyさん:2006/12/09(土) 20:01:08 ID:???
ポップアップメニューってことはクライアントで動いてるんだろ。
HTTPも使わずにネット越しのファイルをどうやって読み込むんだよ。
200nobodyさん:2006/12/09(土) 20:57:20 ID:???
[f1][f2][f3][f4][f5]のフィールドがあって
そこのf1とf2に$f1、$f2の入れたいのですが
insert into user values('$f1','$f2');
だけでは入ってくれず、他のところに
insert into user values('$f1','$f2','','','');
というように空白を入れないと入ってくれません
f1->$fi、f2=>$f2のように指定することはできないのでしょうか?

MySQL+PHPですが、向こうに質問スレがなかったのでこっちで聞いてみました
201nobodyさん:2006/12/09(土) 21:12:12 ID:???
>>200
SQLのマニュアルくらい読もうよ。
insert into user (f1, f2) values ('$f1', '$f2');
ってすれば対象カラムを指定できるでしょうが。
めちゃめちゃ基本の文法だと思うよ。
202nobodyさん:2006/12/09(土) 21:13:43 ID:???
向こうに質問スレあるよ
>>201もしくは
insert into user f1='$f1', f2='$f2'
でもいけるよ
丸っきりSQL文の話でPHP関係ないけどね
203200:2006/12/09(土) 21:15:13 ID:???
>>201-202
ありがとうございます!
今日からDBはじめたヒヨッコなので・・・
もう少し勉強してから手をつけていきたいと思います
204nobodyさん:2006/12/09(土) 21:26:06 ID:???
>>201-202の方法でも格納されなす(ノД`)

ちなみに文は
function mdq($sql){
mysql_db_query($db,$sql);
}
$sql = "insert into account id='$id',password='$pass',name='$name',addr='$add',id='$age',id='$age',sex='$sex'";
mdq($sql);

$sql = "insert into user id='$id',name='$name'";
mdq($sql);
なんですが・・・
205nobodyさん:2006/12/09(土) 21:29:55 ID:???
・・・エラー文は?
206nobodyさん:2006/12/09(土) 21:30:34 ID:???
>>205
エラー文は返ってきません
ちなみにphpMyAdminで確認しています
207nobodyさん:2006/12/09(土) 21:35:02 ID:???
>>202の文法って正しくは
insert into user set f1='$f1', f2='$f2';
じゃないの?
208nobodyさん:2006/12/09(土) 21:38:10 ID:???
>>204
> function mdq($sql){
> mysql_db_query($db,$sql);
> }
あとこれだと$dbがどこにも定義されてない状態になるから
いくらSQL文が正しくても動かないんじゃなかろうか。
それとmysql_db_query()は旧バージョンの関数名なので使わない方がいい。
いったいどんな古い本で勉強してるんだ。
>>206
エラー文は返ってくるものではなく取得するもの。
mysql_query()実行後にmysql_error()で得る。
209nobodyさん:2006/12/09(土) 21:43:56 ID:???
>>208
$dbはその上に書いてます。
($db = "database";)

さきほどまではmysql_db_queryでも正常に動いていました
(>>200の状態の時のことです)

mysql_db_queryをmysql_queryに変えると
Warning: mysql_query(): supplied argument is not a valid MySQL-Link resource
というエラーが返ってきました(PHPで)
mysql_error()と記述しても、それのエラーは返ってこない状態です。
210nobodyさん:2006/12/09(土) 21:51:53 ID:???
>>209
とりあえずmysql_queryは引数とかも変わってるのでそこの修正は後にしろ。
マニュアル読み直して書き直しが必要。
それより>>207の方は?
211nobodyさん:2006/12/09(土) 21:54:14 ID:???
>>210
setは加えても変化はありませんでした。
最初から書き直すのですかorz
マニュアル見て頑張ります
212nobodyさん:2006/12/09(土) 21:58:20 ID:???
>>211
>>201の文法ならどうよ?
つーか、ひょっとしてMySQLのバージョンが相当古かったりするか?
213nobodyさん:2006/12/09(土) 22:07:45 ID:???
mysql_query($db,$sql);

これを

mysql_select_db($db);
mysql_query($sql);

で解決できました。
本当にありがとうございました。
214nobodyさん:2006/12/09(土) 22:10:34 ID:???
つーかね。PHPマニュアルのMySQL関数のところを
読めば、やりたいことの例文が全部載ってるわけ。
2chで質問する暇があったら、マニュアル読んだ方が
早いから。絶対。
215nobodyさん:2006/12/09(土) 22:14:02 ID:???
その本家マニュアルの所在を2chで質問するまで知らなかったようだがw
216nobodyさん:2006/12/09(土) 22:14:47 ID:???
>>214
これをいったら質問こない罠
217nobodyさん:2006/12/09(土) 22:51:10 ID:???
別に誰もいなくなるならそれはそれで良いことの気がするけど。
218nobodyさん:2006/12/09(土) 22:57:16 ID:???
くだスレだとしても、もう少しレベルの高い話がしたいな。
219nobodyさん:2006/12/09(土) 22:59:17 ID:???
例えば?
220nobodyさん:2006/12/09(土) 23:07:47 ID:???
>>141
>>143
POSTでパスワードを送受信することの危険性はたいしたもんじゃないよ。

221nobodyさん:2006/12/09(土) 23:10:01 ID:???
>>218
レベルの高い話しましょうか。
来年売れそうなWEBアプリケーションてどんなだろう?
このくらいの話ができないようなら消えてください。
222nobodyさん:2006/12/09(土) 23:11:01 ID:???
>>221
出会い系システム
223nobodyさん:2006/12/09(土) 23:11:59 ID:???
>>221
じゃ先ずあんたからどうぞ。
できないなら消えてください。
224nobodyさん:2006/12/09(土) 23:15:30 ID:???
マニュアルに例文がそのまま載ってるような質問に
苦言を呈しただけなのに、何でそんな話になるの?
0か1かまで単純化しないと話が理解できないの?
極論過ぎ。小学生の言い訳かよ。
225nobodyさん:2006/12/09(土) 23:16:01 ID:???
おまえら質問スレで何勝手に議論はじめてるんですか?
誘導だけで回答できない雑魚はいらないので、
答える意思がないやつor議論はじめるやつは消えてくれ。
226nobodyさん:2006/12/09(土) 23:16:29 ID:???
だから当人の持ってる本にはあれしか例文が無かったんでしょ。
227nobodyさん:2006/12/09(土) 23:20:22 ID:???
>>218
じゃあ普通の質問スレいけばいいんじゃね?
くだらない質問だからくだスレであって
そうでなかったら意味ない
228nobodyさん:2006/12/09(土) 23:22:32 ID:???
>>227
その普通の質問スレが無くなってこのスレに統合されたんよ。
経緯を知らんやつは半年ROMてろ。
229nobodyさん:2006/12/09(土) 23:59:49 ID:???
だからタイトルから「下らねぇ」を消せとあれほd(ry
230nobodyさん:2006/12/10(日) 00:16:14 ID:???
別にレベルとかどうでもいいじゃん。
くだらねえのもくるし普通のもくる。
低レベルから高レベルの質問でも答えられるやつがいるなら問題ないだろ。
わざわざ拘ってるのに理解できん。
231nobodyさん:2006/12/10(日) 00:23:50 ID:???
スレタイが下らなくなくなれば、そもそも下らなさに言い及ぶ奴も減るということか。
232nobodyさん:2006/12/10(日) 01:05:52 ID:???
PHPによるデザインパターン入門
http://www.amazon.co.jp/exec/obidos/ASIN/4798015164/
これどうなん?買った人いる?
233nobodyさん:2006/12/10(日) 01:10:46 ID:???
>>227-229
つーか、下らなくない質問がある&聞きたいというなら
改めてそういうスレを自分で立てればいいんだよ。
ニーズがあると本気で思ってるならさ。
234nobodyさん:2006/12/10(日) 01:28:21 ID:???
質問です>>221はどうして消えたんですか?
235nobodyさん:2006/12/10(日) 01:29:44 ID:???
PHP part2
ttp://pc8.2ch.net/test/read.cgi/tech/1127806509/l50

これをくだらく無い質問用にしたらどうか。
236nobodyさん:2006/12/10(日) 01:30:50 ID:???
>>233
この板スレ立てられなくね?
237nobodyさん:2006/12/10(日) 01:33:36 ID:???
>>235
あなたがそっちの方がいいと思ったらそっちに書き込めばいい。
根本的に板からして違うとこを姉妹スレにするのはどうかと思う。
>>236
は?
じゃあ、どうやってこのスレは立ったんだよ。
238nobodyさん:2006/12/10(日) 01:36:09 ID:???
>>233
新しく立てたって需要があるわけないでしょ。すでにこのスレがあるわけだし。
ただ、実質この板でメインなスレとして機能しているのに、質問や回答が下らないだの質問者や回答者が下らないだのの議論になるのはバカらしいから、せめてスレタイから「下らない」を削除たらどうよ?って話。
239nobodyさん:2006/12/10(日) 01:37:13 ID:???
>>238
外したら今度は「下らない内容しか無いんだからスレタイを戻せ」と
逆のアンチが騒ぐだけ。そのくらいも想像できないお子ちゃまですか。
240nobodyさん:2006/12/10(日) 01:39:12 ID:???
>>238
…なんで「下らなくない」本スレ側が消えたか理解してる?
241nobodyさん:2006/12/10(日) 01:40:43 ID:???
>>237
>は?
>じゃあ、どうやってこのスレは立ったんだよ。

何回かこのくだ質スレの過去スレ立てようとしたけど、立てられなかった。
エラーメッセージ見た限りでは、ホスト規制とかではなく、「この板ではしばらくスレが立てられません」みたいに出てたから、てっきり一般人には立てられないのかとおもた。
242nobodyさん:2006/12/10(日) 01:41:24 ID:???
>>240
質問スレが重複してたからじゃね?
243nobodyさん:2006/12/10(日) 01:42:11 ID:???
>>241
そのメッセージは「そのホストでは」この板ではしばらくスレが立てられません、だ。
同じホストからの連投が規制されているだけ。
244nobodyさん:2006/12/10(日) 01:43:45 ID:???
>>242
だから、あえて本スレ側を消して下らない側を残したのに、
わざわざ「下らない」というタイトル消したら意味ないじゃんか。
旧本スレがどれだけ荒れて質問も来ないスレになってたか知らんのか。
245nobodyさん:2006/12/10(日) 01:43:50 ID:???
>>243
あーそうだったのか。でも今のホストからこの板にスレ立てはしたことないお。
246nobodyさん:2006/12/10(日) 01:44:51 ID:???
>>245
プロバイダどこさ。
247nobodyさん:2006/12/10(日) 01:47:10 ID:???
本当にくだらねえなお前等wwww
248nobodyさん:2006/12/10(日) 01:47:30 ID:???
ま、そういう連中が集うスレだしw
249nobodyさん:2006/12/10(日) 01:49:59 ID:???
>>238
需要が無いとは言い切れないよ。
元々は本スレと言われた「PHP質問スレ」があったのに
後から下らない質問スレが別に立って、しまいには
そっちが本スレになっちゃったくらいなんだから。

必要とされる方が残る。これが真理。
そしてPHPに関して「下らなくない」質問スレは敷居が高くて生き残れない。
250nobodyさん:2006/12/10(日) 01:56:02 ID:???
HTTP_Requestでデータを読み込み、そのデータを加工してfwriteでファイルに書き出すPGを作成しています。

レンタルサーバ上(PHP4.4.2)では正常に終了するのですが、
自宅サーバ(PHP5.2.0)では途中で処理が止まってしまいます。(どこで止まっているかわかりません)
どう対処したら良いでしょうか?
251nobodyさん:2006/12/10(日) 01:59:43 ID:???
>>250
プログラムを段階的に区切ってみてどこで止まるか検証しましょう。

せめてソース見せてくんなきゃ他に何も言えんよ
252nobodyさん:2006/12/10(日) 02:00:57 ID:???
>>239
そういう輩にはこのスレでも勧めとけ。
つーかこのスレの存在も知らんやつは黙ってろ。

くだすれPHP(超初心者用)2
http://pc8.2ch.net/test/read.cgi/php/1164617202/l50
253nobodyさん:2006/12/10(日) 02:05:14 ID:???
>>252
は?超初心者用くだすれは本スレが消える前からあったろ。
なんでそれで下らない質問スレを残したか意図理解してる?
254nobodyさん:2006/12/10(日) 02:06:09 ID:???
>>249
いや、くだスレが最初に立ったときにすでに本スレは荒れてたんだよ。
それで、煽り文句として「くだ質池」ってのがちょくちょく書き込まれ、さらに悪化。
そんな折にくだ質に人が移っていって、しばらく荒れた末に本スレは終了。

別にくだ質が残った理由は「くだらないから」だったとは思わんな。
それよりも、そもそも「レベルが高いとか低いとか」そういう話題が出てくること自体が、常にデメリットしか生み出さないので問題かと思う。
むしろ過去の本スレがどうのこうのっていう話題が出てくることも無駄以外の何物でもないってのが本当のところだな。
255nobodyさん:2006/12/10(日) 02:07:14 ID:???
>>252
それで済むと思うならこのスレも消して超初心者用スレに全部統合で終わる。
スレの使い分けの実情も理解できないやつは黙ってろ。
256nobodyさん:2006/12/10(日) 02:08:55 ID:???
下らないってスレタイを外したがってるやつが
ちゃんと下らなくない質問をここに投下すれば話は済むよ。
実際問題、下らなくない質問なんて1つも出てないんだから
スレタイから外す必要なんて全然ないでしょう。
257nobodyさん:2006/12/10(日) 02:11:20 ID:???
>>256
そういう、質問 or 質問者 or 回答 or 回答者に「くだらない」 or 「レベルが低い」というレッテルをいちいち貼る奴が出てくるとき、一番スレが荒れる。
258nobodyさん:2006/12/10(日) 02:12:27 ID:???
>>255
じゃあ次からそうしろよ。
文句ばかりで実行が伴わない池沼にはもううんざり。
259nobodyさん:2006/12/10(日) 02:13:00 ID:???
>>254
「下らない質問」というスレタイには「スレタイがそうなんだから回答側もあまり文句言うな」
っていう、荒れ防止の役割があるんじゃないかな。
実際、このスレの過去スレ読むと、頻繁に文句は出ても全部それで止められてる。
そうでもないと「下らない質問はやめれ」ってとにかく荒れまくる。

PHPは開発者のユーザレベルが他所より低いのはもう避けて通れない事実なんだから、
こういった自虐でもないとまともに質問スレなんて運用できないと思うよ。
本家MLとかまっとーなコミュニティでさえ滅茶苦茶なんだから2chで自制できるわけないじゃん。
260nobodyさん:2006/12/10(日) 02:15:10 ID:???
>>256
なんで回答側が質問しなけりゃいけないんだよw
馬鹿かお前はwww
質問する側に最低限のマナーを求めているだけだろうが。
お前みたいなあほ質問者は一生ROMるか金払ってコンサル雇え。
261nobodyさん:2006/12/10(日) 02:16:30 ID:???
>>260
いや俺回答しかしたことないんだが。

> 質問する側に最低限のマナーを求めているだけだろうが。
無理だろ。ありえない不可能なものを要求するお前が悪い。
262nobodyさん:2006/12/10(日) 02:17:18 ID:???
>>259
「下らない」が自浄作用になっているような部分ってあったか?
むしろ「下らない」をキーワードに、レベルの高低の話が出てきて、終いには「俺以外レベル低い」と言わんばかりの奴も出てくるなど、荒れる原因になっているところばかりだった希ガス。
263nobodyさん:2006/12/10(日) 02:20:54 ID:???
>>262
アホか。だったら本スレは荒れてない。本スレと下スレの過去ログを比較してみろ。
「下らない」のスレタイを外すと同時に>>260みたいなやつが質問のことごとくにケチをつけ始めて
まったくスレが機能しなくなって終わるだけだ。
264nobodyさん:2006/12/10(日) 02:20:55 ID:???
>>250
エラーでないのかな?
どこが原因なのかよく分からないときは、とりあえずどこまで進んでいるか
きりのいいところに適当に print "aa"とかしてみたりとか、
変数や配列に期待通りの値が入っているか print_r($arr) とかしてみると
原因特定しやすいよ。
265nobodyさん:2006/12/10(日) 02:24:08 ID:???
>>261
> >>260
> いや俺回答しかしたことないんだが。
それが何か?

お前が、
>下らないってスレタイを外したがってるやつが
>ちゃんと下らなくない質問をここに投下すれば話は済むよ。

なんて頓珍漢なレスをしてるんだろうがw

この2行と冒頭の1行がどう繋がるのか説明を求む。
266nobodyさん:2006/12/10(日) 02:25:13 ID:???
>>263
本スレが荒れたのは、スレタイが下らなくないからなのかwww
意味わかんねwww
267nobodyさん:2006/12/10(日) 02:29:06 ID:???
>>266
涙目での必死な反論なんです。
生暖かい目で見守って上げてくださいw
268nobodyさん:2006/12/10(日) 02:31:20 ID:???
>>267
自己言及お疲れ様です。
269nobodyさん:2006/12/10(日) 02:32:25 ID:???
単なる煽りに走るようになったか。程度が知れたな。
270250:2006/12/10(日) 02:33:09 ID:???
>>251
すみませんがソースはちょっとみせられないです。(プーチン大統領が見せるなというので。まだ死にたくありません・・・)

>>264
エラーは表示されず、5分くらい画面はそのままです。
ひたすらループしてるPGで全体のループ回数の1/3くらいでとまります。
(画面におおまかにどこまで進んだかは表示させています)
271nobodyさん:2006/12/10(日) 02:34:09 ID:???
>>268
反論できないなら無理にしなくていいからww
272nobodyさん:2006/12/10(日) 02:34:44 ID:AKRcc5I/
傍から見てて気になったんだが、スレタイの改変を求めてる人に
・今の内容がスレタイと合ってないから外そう
って言ってる人と
・今のスレはスレタイ同様に酷いからスレタイ直して内容も改めよう
って言ってる人の2種類がいない?
なんか論点がぐちゃぐちゃだよ。
273nobodyさん:2006/12/10(日) 02:38:04 ID:???
>>270
画面への表示は表示毎にフラッシュを入れないと、バッファリングされちゃって
正確な位置が特定できないよ。
実行位置をログファイルに出力するか、flush(); ob_flush(); などを入れて
出力直後に確実にブラウザに表示されるような工夫をしないとデバッグにならない。
274nobodyさん:2006/12/10(日) 02:38:40 ID:???
なんか「下らねぇ」に愛着持ってる奴がいるみたいね。へんなの。
荒れる原因になるなら、さっさと外せばいいのに。
275nobodyさん:2006/12/10(日) 02:39:27 ID:???
とりあえず、下らない質問は禁止させたい人へ

>>270 <こいつどうにかしてみせろ。
276nobodyさん:2006/12/10(日) 02:39:55 ID:???
>>274
外した方がもっと荒れる
277nobodyさん:2006/12/10(日) 02:41:16 ID:???
>>276
自分でスレを立てて実証してからほざけ。
278266:2006/12/10(日) 02:41:29 ID:???
煽りは無視するとして。
>>266の書き込みが稚拙すぎたので書き直す。

>>263
本スレのタイトルに「下らねぇ」が入っていなかったから荒れたと言いたいの?
下スレが出来る前から荒れてたのに。
279nobodyさん:2006/12/10(日) 02:41:44 ID:???
>>270
だからその止まる直前の処理は何よ?
280nobodyさん:2006/12/10(日) 02:41:50 ID:???
>>274
荒れる原因になるから「下らねぇ」をスレタイにつけないとダメ。
281nobodyさん:2006/12/10(日) 02:43:53 ID:???
>>270
Apacheのエラーログか何かにメッセージは吐かれてないのか。
吐かれてないなら吐くように設定を変えてみたらどうだ。

なんかループしすぎてメモリを食いすぎただけじゃないのかって気がする。
PHPのバージョンが変わればその辺の仕様も変わるだろ。
282nobodyさん:2006/12/10(日) 02:43:57 ID:???
>>276
外したら荒れる理由とは?
外さないと荒れる理由は、例えば「下質だからxxx」→「質問者のレベルはxxx」→「お前のレベルはxxx」となって水掛け論が始まることなんだが。
283nobodyさん:2006/12/10(日) 02:54:48 ID:???
>>282
外す→そんな下らない質問をするな→この質問のどこが下らない→水掛け論どころか喧嘩騒ぎ

少なくとも今のスレの質問内容にも相当不満を持ってるのが何人かいる状況で
スレタイの変更は自殺行為にしか見えないが。
>>278への回答にもなるけど、元々の本スレが荒れたのも質問内容に対して
その是非を問うようなアホな連中がいたから。
質問と回答の流れに対してフレームが発生するくらいなら、回答者同士で
レベルの水掛け論が起きるくらいなら全然問題があるようには感じない。
(下らない質問スレでの騒ぎはいつも回答者同士だけであって、質問者を巻き込むことは少ない)
そんなのは横目でスルーすればいい話で、本来の質問と回答の流れが機能するなら全然問題のうちに入らないよ。
284nobodyさん:2006/12/10(日) 02:56:44 ID:???
おおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおおお
まままままままままままままままままままままままままままままままままままま
んんんんんんんんんんんんんんんんんんんんんんんんんんんんんんんんんんんん
ここここここここここここここここここここここここここここここここここここ
285nobodyさん:2006/12/10(日) 03:10:31 ID:???
>>283
なんで質問者に最低限のマナーを求めることが
これほど非難されるのかさっぱりわからん。

文句を言うやつはどんな下らない質問にで親切丁寧な
レスをつけてからほざけ。
286nobodyさん:2006/12/10(日) 03:16:39 ID:???
・外す→そんな下らない質問をするな→この質問のどこが下らない→水掛け論
・外さない→そんな下らない質問をするな→わざわざスレタイ通りの質問をする必要はない→それじゃお前がレベル高いこと言えば→水掛け論
・外さない→スレタイ通りの下らない質問だな→答えられない無能は引っ込んでろ→やはりこのスレはレベルが低いな→水掛け論
・外さない→下らねぇってどこからが下らないんだ?→PHPの質問には下らない質問しかない→PHP使ってる奴はレベルが低い→水掛け論

うーむ・・・
287nobodyさん:2006/12/10(日) 03:20:45 ID:???
妙に伸びてると思ったらスレタイ論争か

>スレタイ変更云々言ってる人
新しく立てるんじゃなくてスレタイ変更するのか?
288nobodyさん:2006/12/10(日) 03:27:48 ID:???
俺がお前たちのために、最高のスレタイを提案してやるぞ。

【PHP】下らねぇ質問「も」ここに書き込みやがれ 35
289nobodyさん:2006/12/10(日) 03:28:35 ID:???
>>288
ワロチwwww
290nobodyさん:2006/12/10(日) 04:06:43 ID:???
>>289
全然面白くないけど。
291nobodyさん:2006/12/10(日) 04:22:14 ID:???
>>290
何にでも噛み付く奴だな。少しは落ち着け
292nobodyさん:2006/12/10(日) 04:23:48 ID:???
>>288
これはいいかも
293nobodyさん:2006/12/10(日) 05:02:34 ID:???
$hoge = !$hoge
としてるのって何ですか?
294nobodyさん:2006/12/10(日) 05:03:59 ID:???
>>293
bool値の反転じゃない?
295nobodyさん:2006/12/10(日) 06:32:55 ID:???
【PHP】質問は全てここに書き込みやがれ 35
296nobodyさん:2006/12/10(日) 08:41:10 ID:???
【PHP】いじわるしないで教えてください(><) 35
297nobodyさん:2006/12/10(日) 09:30:36 ID:???
【PHP】くだらねぇかどうかもわからねぇ質問
298nobodyさん:2006/12/10(日) 09:31:38 ID:???
【PHP】くだらねぇかどうかもわからねぇ質問【要は全部】
299nobodyさん:2006/12/10(日) 10:01:43 ID:???
【PHP】くだらねぇ質問か。いいだろう、ここに書き込うわ何をすry 35
300nobodyさん:2006/12/10(日) 10:46:37 ID:???
$string_contents = @file_get_contents("http://外部") or $string_contents1 =file_get_contents("ローカルファイル ");
という構成なんですが、http://外部のアクセスに2秒以上かかるときに
$string_contentsにローカルを入れるためにはどうすればいいでしょうか
301nobodyさん:2006/12/10(日) 10:49:25 ID:???
タイムアウトを2sにしろ
302nobodyさん:2006/12/10(日) 10:49:54 ID:???
普通にfsockopen使ったほうが楽だと思うよ
303nobodyさん:2006/12/10(日) 11:04:25 ID:???
>>301
set_time_limit()を
〜〜〜("http://外部")set_time_limit()
この形で置けばいいでしょうか
304nobodyさん:2006/12/10(日) 11:36:45 ID:???
set_time_limitはCPU時間
305nobodyさん:2006/12/10(日) 12:32:02 ID:???
あるサイト参考にCSVからデータ抽出を挑戦しているのですが一つ教えてください

<?php
$Cid=$_GET['cid'];
$Data=file('top.csv');
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",", $Data[$i]);
if($line[任意]==$Cid){
$CatTitle=$line[任意];
break;
}
}
?>

cidで渡された値を$Cidに納めた後、
$line[0]と$Cidが同じならば、$CatTitleに$line[1]を
$line[1]と$Cidが同じならば、$CatTitleに$line[5]を
$line[3]と$Cidが同じならば、$CatTitleに$line[2]を
という風に条件を別れさせたいのですが、どうやったらよいでしょうか?
わかりにくくてすいません。
306nobodyさん:2006/12/10(日) 12:54:07 ID:???
>>305
ifでもswitch caseでも使って条件分岐するしかないのでは?
空行を読んだときやexplodeした配列が4つも無かった場合の
処理を追加した方がいいね。
あと、forでまわすよりforeachで回す方が毎回sizeofしなくて
いいような気がするが、ここら辺はPHPが最適化してくれるのかな?
307nobodyさん:2006/12/10(日) 13:54:43 ID:???
つfgetcsv
308270:2006/12/10(日) 14:52:34 ID:???
$req =& new HTTP_Request($url);

で処理が止まっているようです。
尚、$urlは可変で60回位までは正常に処理でき、その後で止まるようです。
>>250でも書きましたがレン鯖ではOKなのでHTTP_RequestのVerの違いでしょうか?
309270:2006/12/10(日) 14:54:41 ID:rl/pga4Z
すません間違いました

$req =& new HTTP_Request($url);
if (!PEAR::isError($req->sendRequest())){       ←この行
    処理・・・
310nobodyさん:2006/12/10(日) 14:55:34 ID:???
php5とか?
つかエラー文吐かせらんないの?
311nobodyさん:2006/12/10(日) 14:59:12 ID:???
file_get_contents で、http のリソースを手に入れています。
このときのタイムアウトを設定したいと思うのですがどのように記述すればいいでしょうか?
312270:2006/12/10(日) 15:06:03 ID:???
>>310
PHP5.2.0です。
Apacheのエラーログには何もでてきません。

エラー文吐かせる方法を知りません _| ̄|○
313nobodyさん:2006/12/10(日) 15:11:08 ID:???
php.iniの設定変えてみたら?
error_reporting = E_ALL & ~E_NOTICE
display_errors = On

全然関係ないけどPHP5だと"&"は必要ないね
互換性のために使えるはずだけど(うちの環境では現に使えてるから)
314nobodyさん:2006/12/10(日) 15:18:59 ID:???
俺pear使わないから知らんけど
書き方間違ってんじゃないの?
つかApacheのエラーじゃなくてPearのエラーだけど
315nobodyさん:2006/12/10(日) 15:21:01 ID:???
getMessage()メソッドがあるんやん
316nobodyさん:2006/12/10(日) 15:40:36 ID:q972gna1
PHP初心者です。
先達のお力を拝借できると助かります。
EUCで動く環境のPHPでDBの内容をクライアントにCSVをダウンロードする際に
マルチライン可能の項目に改行コードが混じると
SHIFT-JISに変換する際に(mb_convert_encodingを使用)
\r\nに変換されてしまい困っています。

うまいこと改行コード(CRLF?)を出力方法は無いものでしょか?

今のところ
@nl2brを使い改行の前に<br />を差込
Astrtokで<br />で分解し\r\nを\\nに変換
B再度strtokで\\nで分解し 分解されるたびに mb_convert_encodingで
改行コードを出力

ここまでで一見上手く行った様に見えたのですが
小文字でn が来るとmb_convert_encodingで出力される際に
改行が出力されてしまいます。

参考になるような資料はないでしょうか?
317nobodyさん:2006/12/10(日) 16:01:13 ID:???
>>316
DBに改行コード(LF)を含むテキストをEUC-JPで格納し、
出力する際はShift-JIS+LFで出力したいの?

まず、DB上でその情報を利用して検索などをしないなら、
適当にエンコードして格納しておけば?

検索する場合は、格納時に適当なキーワードを抽出して
別テーブルで管理し、本文はやはり適当にエンコードして
格納すれば?

というのがぱっと浮かんだ。

後は識者の光臨を待てw
318270:2006/12/10(日) 16:23:33 ID:???
解決しました。

原因はPHP.iniのmax_execution_time=30に引っかかり30秒で止まってました。

途中のPGをちょっといじると
「 Maximum execution time of 30 seconds exceeded」のエラーメッセージが表示されたので、
set_time_limit(300);を追加してOKになりました。
319316:2006/12/10(日) 16:33:01 ID:q972gna1
>>317
>DBに改行コード(LF)を含むテキストをEUC-JPで格納し、
>出力する際はShift-JIS+LFで出力したいの?

こういう事です。
残念ながらDBに適当にエンコードして格納して置くことは
許してもらえないのです(泣
320nobodyさん:2006/12/10(日) 16:35:50 ID:tstv0UFr
無名関数を定義する方法を教えてください。
Perlならsub{}、これだけですよね?
321nobodyさん:2006/12/10(日) 16:36:37 ID:???
>>320
create_function()
322nobodyさん:2006/12/10(日) 16:50:34 ID:???
\r\nでなんでだめなの?
323nobodyさん:2006/12/10(日) 16:51:05 ID:???
>>321
どうもありがとうです。でもこれなんか使いにくいですね。
文字列の配列で渡すんですか…
324nobodyさん:2006/12/10(日) 16:52:10 ID:???
クラスの静的メソッドって名前空間に関数を詰め込んだだけのような気がするんだけど、もっと何か違いがあるの?
325316:2006/12/10(日) 16:53:10 ID:q972gna1
>>322
ダウンロードしたcvsをExcelで扱いたいもので…
326nobodyさん:2006/12/10(日) 16:57:48 ID:???
\r\n → \n
に全部置換すりゃええんじゃないの?
327nobodyさん:2006/12/10(日) 17:01:07 ID:???
>>324
たとえば、singletonパターンを利用するときはgetInstance()と
いう静的なメソッドから内部でクラスのインスタンスを生成するし、
SQLクエリの結果を静的なプロパティに格納しておいて静的なメソッ
ドから取得することもある。

どーでもいいけど、名前空間という言葉の使い方を間違えてるよ。
328nobodyさん:2006/12/10(日) 17:04:15 ID:???
>>324
継承ができる。
ただし基底クラスの静的メソッド内で、派生クラスを指定して呼び出したのかどうか、という情報が復元できない難点があるので、それを補う場合は引数にクラス名を渡すなどの工夫が必要。
329nobodyさん:2006/12/10(日) 17:08:53 ID:???
>>324
クラスというスコープ内に定義されるわけだから、静的・非静的にかかわらず、privateなメソッドやプロパティを使用可能な点は、「ただ詰め込んだだけ」以上の利点だとは思わんのか?
330nobodyさん:2006/12/10(日) 17:09:55 ID:???
ところで、PHPの名前空間サポートは今のところどうなってんの?
331nobodyさん:2006/12/10(日) 17:11:44 ID:???
>>330
そういうミーハー的なネタは自分でMLでも漁ってください。
332316:2006/12/10(日) 17:22:54 ID:q972gna1
>>326
!!!

エンコードするタイミングと置換のタイミングが味噌だったようです。
@EUC(DBの値)⇒SJISに変換
A改行コードが「\r\n」と言う文字列に変換される
BSJISで\r\nを\nに置換  
C出力

↓な感じで解決しそうです!

$hoge = mb_convert_encoding (hogedb($item[$hoge]),"SHIFT-JIS", "auto");
$hoge = str_replace ("\\r\\n","\n",$hoge);
print $hoge;

ありがとうございました。
333nobodyさん:2006/12/10(日) 17:30:32 ID:???
>>332
>$hoge = str_replace ("\\r\\n","\n",$hoge);
これだとバックシュラッシュ多すぎじゃない?
334333:2006/12/10(日) 17:31:43 ID:???
誤)シュラッシュ | 正)スラッシュ
335333:2006/12/10(日) 17:33:57 ID:???
>>332
あぁ、これでいいんだ。よく前を読んでなかった。何度もすまない。
336nobodyさん:2006/12/10(日) 17:44:12 ID:???
kakasiをsoとしてインストールしたいのです。
どうしてなのですか?
337nobodyさん:2006/12/10(日) 17:47:02 ID:???
338nobodyさん:2006/12/10(日) 17:56:34 ID:???
>>336
日本語でおk
339nobodyさん:2006/12/10(日) 18:05:34 ID:???
>>337
これ、古い記事だけど実際はサポートされなかったんだから、その
旨の文章をちょこっと追加してほしいよな。紛らわしい。
まぁ、なくても 特 に 困らない機能だけど、サポートされたらちょっと
嬉しい気もする。
340nobodyさん:2006/12/10(日) 21:38:29 ID:???
<?php
require_once("PEAR/Info.php");
$info = new PEAR_Info();
$info->show();
?>

上記のソースでPEARのインストール済みのものが表示されますが、
なぜか一覧にMDB2とHTTP_Requestだけが表示されません。コマンドプロンプトの[pear list]では表示されます。
何が問題なのでしょうか?
341nobodyさん:2006/12/11(月) 00:03:39 ID:???
>>323
PHPでPerlより楽に書けるパターンなんて
欲しい機能そのまんまな関数があったときくらいで
それ以外は全部面倒な書き方を強いられる。
Perlは言語仕様が強力すぎだからあきらめれ。
342nobodyさん:2006/12/11(月) 00:22:33 ID:???
file_get_contents (http) でタイムアウトの設定するにはどうすればいいのでしょうか?
ためしにini_set('default_socket_timeout','4');
と設定してみたのですが、変わらないままでした。
使用している php は 4.4.4 です。よろしくお願い致します。
343nobodyさん:2006/12/11(月) 00:23:43 ID:???
そんなんできたっけ?無理だったと思ったけど。
344nobodyさん:2006/12/11(月) 00:41:47 ID:???
fsockopen使えば?
関数作ればfile_get_contentsと同じように使えるし
PEAR使えばもっと楽
345nobodyさん:2006/12/11(月) 00:47:07 ID:???
fsockopenの使い方があまり分からないんです
346nobodyさん:2006/12/11(月) 00:52:07 ID:???
例えば
ini_set('user_agent', $user_agent.'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)');
$string_contents = @file_get_contents("$url1") or $string_contents =file_get_contents("$local");
$string_contents = str_replace(",", "\n", $string_contents);

をfsockopenで記述するとどうなりますか?
347nobodyさん:2006/12/11(月) 01:10:31 ID:???
ヒント:マニュアルのユーザーノート
348nobodyさん:2006/12/11(月) 02:51:15 ID:U3obhrAG
今実行しているスクリプトファイル名を取得するにはどうすればいいですか?
349nobodyさん:2006/12/11(月) 03:15:57 ID:???
>>348
<?php phpinfo(); ?>で調べて見れ
350nobodyさん:2006/12/11(月) 03:16:10 ID:???
__FILE__
351nobodyさん:2006/12/11(月) 07:08:34 ID:???
>>349
>>350
THX!!
352nobodyさん:2006/12/11(月) 10:13:46 ID:T7VRNufo
質問です。

$fp = fopen("./file.txt");

としたあとに、既に"./file.txt"が開かれているかどうかを確認するのに、
if(is_set($fp))
で確認してるんですが、この方法で確認するのは果たしてOKなのか疑問です。
どのように確認するのが、一般的なんでしょうか?
if($fp)
とかでもいいんでしょうか?
353nobodyさん:2006/12/11(月) 10:15:07 ID:T7VRNufo
訂正
×is_set
〇isset
354nobodyさん:2006/12/11(月) 10:27:56 ID:???
>>352
マニュアル嫁。

オープンが失敗すると、関数は FALSE を返し、 E_WARNING レベルのエラーを発行します。
@ を使ってこのwarningを抑制することもできます。

と書いてあるから、それを確認したらいいのでは。
355nobodyさん:2006/12/11(月) 10:41:20 ID:???
>>352-353
>オープンが失敗すると、関数は FALSE を返し、 E_WARNING レベルのエラーを発行します。 @ を使ってこのwarningを抑制することもできます。
356352:2006/12/11(月) 10:44:26 ID:T7VRNufo
>>354-355
なるほどありがとうございます。そこまでの意味を掴み切れてませんでしたorz
357nobodyさん:2006/12/11(月) 11:08:35 ID:???
$fp = fopen("./file.txt") or exit("File open error.");
358nobodyさん:2006/12/11(月) 11:29:13 ID:???
おれはif文で開けることが多いな。
359nobodyさん:2006/12/11(月) 15:00:11 ID:???
ファイルをアップしている間に 「少々お待ちください」 の画面を出したいのですが
どのタイミングでどの様な処理をすれば良いのか見当もつきません。
良い方法を教示ください。
360nobodyさん:2006/12/11(月) 16:11:58 ID:T7VRNufo
なんでもかんでもPHPでやるのはどうかと思いますよ。得手不得手というものがありますから。
361nobodyさん:2006/12/11(月) 16:35:18 ID:???
PHPとJavaサーブレットの得手不得手って何?
362nobodyさん:2006/12/11(月) 17:44:08 ID:knN2XhtS
セッションについて質問です。

ブラウザのウィンドウを新たに立ち上げた場合は
新ウィンドウは旧ウィンドウのセッションを引継ぎはしませんが、
タブブラウザで新しいタブを開いた場合には
新タブは旧タブのセッションを引き継いだ状態になってしまいます。

同じウィンドウのタブ同士で、セッションを同一に扱わせない処理って出来ますでしょうか?
363nobodyさん:2006/12/11(月) 19:37:01 ID:TN4IXMY0
ftp_put( $conn, $remote, $local, FTP_ASCII);
なら動作するんですが、
ftp_put( $conn, $remote, $local, "FTP_ASCII");
だと ftp_put() expects parameter 4 to be long というエラーが
出ます。理由をおしえてくり。

$mode = "FTP_ASCII";
ftp_put( $conn, $remote, $local, $mode);
も同じエラーが出ます。

364nobodyさん:2006/12/11(月) 19:57:20 ID:???
365nobodyさん:2006/12/11(月) 19:59:40 ID:???
PHPでエクセルファイルを操作することってできますか?
具体的にはCSVの一枚表だけでなく、一つのファイル中に複数のシートを作ったり
印刷範囲の設定などをしたいと考えています。
366nobodyさん:2006/12/11(月) 20:03:10 ID:???
出来るよ。印刷範囲はしらんけど。
367nobodyさん:2006/12/11(月) 20:06:15 ID:???
複数のシートを作るのはどうやるんですか?
368nobodyさん:2006/12/11(月) 20:09:45 ID:???
addWorksheet関数だよ。
369nobodyさん:2006/12/11(月) 20:28:42 ID:???
ありがとうございます。PEARのExcel Writerですね。

ちなみにサンプルではaddWroksheetメソッドのコール時に参照代入になっていますが
オブジェクトのコピーは自動で参照になると思ってましたが
これは必要なんでしょうか?
370nobodyさん:2006/12/11(月) 20:39:19 ID:???
>>363
これ "FTP_ASCII" はFTP_ASCIIという文字列。
これ FTP_ASCII は定数。
引用符で囲むと意味がぜんぜん違うものになる。

ためしに $mode = FTP-ASCII; にしてみな。
371370:2006/12/11(月) 20:40:29 ID:???
間違えた。
$mode = FTP_ASCII;
372nobodyさん:2006/12/11(月) 21:28:03 ID:???
こういうミスがデバッグを苦しめるんだなw
373nobodyさん:2006/12/11(月) 21:56:24 ID:???
PHP ML 全文検索がなくなったみたいなのですが、どこか代替できるサイトないですか?
http://ml.php.gr.jp/search.html
374340:2006/12/11(月) 22:09:45 ID:???
誰か>>340お願いします
375nobodyさん:2006/12/11(月) 22:31:43 ID:???
>>359
最近PHP5向けのpeclでそういうのが出てた。
なんで出来ないかは「file upload progress php」あたりでググってみると分かる。


>>340
おいらのPEAR/Info.phpはPHPで記述されている
376nobodyさん:2006/12/11(月) 22:41:09 ID:???
mb_convert_eocoding()を配列の要素全てに適用するには
array_map()を使うしかないですか?
その場合to_encodingも配列で渡さないといけないようですが
countで数えるなりして同じ数の文字コードを格納した配列を作らなければならないんでしょうか?
数百個になりそうでちょっと気が引けるのですが・・・
377nobodyさん:2006/12/11(月) 22:49:34 ID:???
mb_convert_variables()
378nobodyさん:2006/12/11(月) 23:12:23 ID:???
おー、ありがとうございます
独自関数とarray_walk_recursiveで作ったところでした・・・
379340:2006/12/11(月) 23:43:45 ID:???
>>375
俺のもPEAR/Info.phpはPHPで記述されています
380nobodyさん:2006/12/12(火) 00:42:39 ID:???
>>359
とても難しいです。それ。
381nobodyさん:2006/12/12(火) 02:10:30 ID:zaiE1Sl7
掲示板とか日記とかをPHPで作るとき、
ユーザーからの入力は当然エスケープして表示するわけですが、
このとき、ハートマークとかコピーライト記号とか、そういう特殊記号があった場合に、
それらだけをエスケープせずに表示するにはどういう実装方法を取るべきなのでしょうか?
382nobodyさん:2006/12/12(火) 02:33:01 ID:???
>>381
自分で実体参照文字リストとか作って配列に入れといて、
htmlspecilacharsかけた後の文字列とその配列の中身を比較して、
同じのがあればそれをアンエスケープすれば?

たとえば「&#9829;」を見つけたら「?」に戻す(アンエスケープする)とか。
383382:2006/12/12(火) 02:43:58 ID:???
・・・あ、よく考えたらそれじゃダメか。
エスケープされた「後」に、実体参照文字だけ元に戻したいとなると
これじゃ無理だ・・・
384nobodyさん:2006/12/12(火) 02:51:09 ID:???
まあ、要は頑張れってことだ、ということだけはわかった。
385nobodyさん:2006/12/12(火) 02:54:35 ID:???
>>383
「&amp;#[0-9]+」を見つけたら「&amp;」→「&」変換するとかじゃ無理かな…
386nobodyさん:2006/12/12(火) 03:56:13 ID:???
>>385
一番手っ取り早い力ワザはそれだよね。
ただし、何かセキュリティ的にヤバい穴が出来ないか心配。。。
387nobodyさん:2006/12/12(火) 04:50:41 ID:???
>>385
そういう置換をするための正規表現ってどう書けばいいの??
よく分からないから当てずっぽうでこんなの↓書いてみたけど当然ダメだったorz

$text= htmlspecialchars('ハートだよ?');//文字列全体をエスケープ
$regex = "^&{1}[0-9]{3,6};$";
preg_replace("/".$regex."/", "&\1", $text);//実体参照文字だけをアンエスケープ
388387:2006/12/12(火) 04:56:10 ID:???
あ、しまった。なんか書き込み時に&が勝手に変換されちゃってる。
仕方ないので半角&を全角&にして書き込んでみます。

$text= htmlspecialchars('ハートだよ&#9829;');//文字列全体をエスケープ。&は実際には半角
$regex = "^&amp;{1}[0-9]{3,6};$";//&は実際には半角
preg_replace("/".$regex."/", "&\1", $text);//実体参照文字だけをアンエスケープ
389nobodyさん:2006/12/12(火) 07:23:12 ID:???
phpでrss feedを生成したいのですが、うまくいきません。

やりたいことは、出力したい内容をphpでデータベースから一回ごとにリアルタイムでとってきてxml形式のファイルを動的に生成出力したいのです。


単純に
<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0">
<channel>
<title>.... という文字列を出力するだけではだめなのでしょうか?

ブラウザでアップロードしたURLを見てみても、見ることができません。
ページが見つかりません やその他のエラーは出ず、
アドレスバーにだけそのURLが入っている状態で、ブラウザの内容は前(任意)のサイトのままになってます。
390nobodyさん:2006/12/12(火) 07:43:33 ID:???
>ブラウザの内容は前(任意)のサイトのままになってます。
ブラウザのキャッシュが効いてるんじゃないのか?
391nobodyさん:2006/12/12(火) 09:22:33 ID:???
PDOについて、

$db=new PDO($hoge1.":host=".$hoge2.";dbname=".$hoge3,$hoge4,$hoge5);
$stmt=$db->query("SELECT * FROM hogetable");

//$stmt=NULL;

while($row=$stmt->fetch(PDO::FETCH_ASSOC){
$stmt2=$db->prepare("INSERT IGNORE fugatable (fuga) VALUES (?);");
$stmt2->execute(array(row["hoge"]));
}

のようなコードを書きたいのですが、
$stmt=NULL;を入れないと$stmt2->executeが実行されないのは何故なんでしょうか。
392nobodyさん:2006/12/12(火) 10:19:23 ID:???
PHPのマニュアルのunserializeに、

>エラーやシリアライズされた FALSE 値をアンシリアライズする場合、
>FALSE が返されます。この特殊なケースは str を serialize(false)
>で比較する、もしくは E_NOTICE をキャッチすることで区別することができます。

と書いてあるのですが、1,2行目は
$str = 'hage';
if (@unserialize($str) === false && $str != serialize(false)) {
echo '1:unserialize error';
}
ということだと理解しました。
で、3行目なんですが、キャッチと言う言葉から
try {
$arr = @unserialize($str);
} catch (exception $e) {
if ($e->getCode() == E_NOTICE) {
echo '3:unserialize error';
}
}
と言う事かなと思ったのですが、どうも違うようです。
「E_NOTICEをキャッチすること」とは具体的にどういうことなのでしょうか?
393nobodyさん:2006/12/12(火) 10:22:57 ID:???
PDO::query() を次にコールする前に
結果セット内の全てのデータを取得しない場合、そのコールは失敗します。
PDOStatement::closeCursor() をコールし、次に PDO::query() をコールする前に
PDOStatement オブジェクトに関連付けられたリソースを解放してください。
394nobodyさん:2006/12/12(火) 10:44:29 ID:???
マニュアル読まないでアバウトな感覚で使ってるからそういう疑問が出るんだろうね。
サンプル重視のアホばっかだなwww
395nobodyさん:2006/12/12(火) 10:57:10 ID:???
>>394
スレタイも読まんと何ほざいてるの?
396nobodyさん:2006/12/12(火) 11:00:18 ID:???
>>395
お前こそ>>1も読まずに何をほざいてるの?お前みたいな馬鹿がいるから
>>1も、マニュアルも読まない馬鹿が増えるんだよ。

397nobodyさん:2006/12/12(火) 11:05:42 ID:???
>>396
お前のように文句しか言わない池沼はうせろ。
ま、ほんとは答えられないんだよねw
398nobodyさん:2006/12/12(火) 11:07:45 ID:???
人のことを言う前に答えろや
399nobodyさん:2006/12/12(火) 11:14:14 ID:???
お前が吹っかけてきたんだろうがw
形勢不利と見るや責任転嫁ですか?
分かった分かった。無理すんな。
くだ質スレでケチつけるしかないほど普段の生活で抑圧されてるんだな。
でも次からは雑談スレやチラ裏でやれ。
400nobodyさん:2006/12/12(火) 12:08:06 ID:???
フェラチオしたい…
401nobodyさん:2006/12/12(火) 12:10:22 ID:???
>>400 は女か!?
402nobodyさん:2006/12/12(火) 13:00:44 ID:???
>>391
なんかおかしいならとりあえずエラー出そうよ

$stmt2 = $db->prepare("INSERT IGNORE fugatable (fuga) VALUES (?);");
if (!$stmt2) {
var_dump($db->errorInfo());
exit;
}

こんな感じでいける

$db = new PDO("mysql:host=localhost;dbname=test", 'user', 'pw');
$rows = $db->query("SELECT * FROM hogetable")->fetchAll(PDO::FETCH_ASSOC);

foreach ($rows as $row) {
$stmt = $db->prepare("INSERT IGNORE fugatable (fuga) VALUES (?);");
$stmt->execute(array($row["hoge"]));
}
403nobodyさん:2006/12/12(火) 13:29:59 ID:???
>>388
すごい正規表現だなw
404nobodyさん:2006/12/12(火) 14:20:40 ID:K9EOWnsJ
テキストファイルの内容を全行読み込んで
それを違うテキストファイルに追加して書き込むにはどうすれば?
書き込むファイルには、すでにテキストが書き込まれていて
その後に、追加したいんですが
405nobodyさん:2006/12/12(火) 14:23:58 ID:???
>>404
追記したいファイルを"a"モードでfopenして書き込めばOK
406nobodyさん:2006/12/12(火) 14:30:10 ID:K9EOWnsJ
ありがとうございます!!
テキストファイルの内容を全行読み込んで 全行書き込むには
forループさせるしか方法はないんですか?
407nobodyさん:2006/12/12(火) 14:38:54 ID:???
つぎのテンプレからこれ入れてよ
http://makimo.to/2ch/pc8_php/index.html
408nobodyさん:2006/12/12(火) 14:39:43 ID:???
>>406
ファイルをコピーしたら?
409nobodyさん:2006/12/12(火) 15:13:57 ID:???
>>406
file_get_contents(), file_put_contents()とかもアリじゃない?
410nobodyさん:2006/12/12(火) 15:19:37 ID:???
サーバの引越しとかDBの調整とかスクリプトのテストとかをするときに、
アクセスしてきた人に対して一時的に「メンテナンス中」と表示するには
どうしたらいいんでしょうか?

イメージとしては、管理者(自分)だけはいつも通りサイトにアクセスできるけど、
一般の訪問者はどのページにアクセスしようとも、
mod_rewriteか何かで、メンテを知らせるページに強制ジャンプさせる…みたいな感じです。
411nobodyさん:2006/12/12(火) 15:33:14 ID:j1klqrWE
複数のプログラムの実行についてお聞きしたいのですが。
例えば、A.php,B.php,c.phpというプログラムがあったとして、Aを実行して
処理が終わったら、B,Cの順に実行するということをしたいのですが、どうすれ
ばいいでしょうか?よろしければ、お教えください。
412nobodyさん:2006/12/12(火) 15:38:57 ID:???
>>411
execute.phpというファイルに
<?php
require('A.php');
require('B.php');
require('C.php');
と記述して、execute.phpにアクセスするとか、単にそれぞれの
ファイルの末尾にrequire()を追加するのは?
413nobodyさん:2006/12/12(火) 15:46:45 ID:???
>>411
そんなことすら自分で分からないレベルなら、
そういうことをやらないほうがいいと思う。

絶対にいろんなバグや予期せぬ動作が起きまくる。
414nobodyさん:2006/12/12(火) 15:46:48 ID:???
>>407
今年一杯で終了じゃなかったっけ?カナシス
415nobodyさん:2006/12/12(火) 15:47:21 ID:8yL3wR52
issetとemptyの使い分けがわかりません。
どういったときに使い分けるのでしょうか?
416nobodyさん:2006/12/12(火) 15:54:11 ID:???
>>415
isset = コップが有るかどうか
empty = コップに水が入っているかどうか
417nobodyさん:2006/12/12(火) 16:00:35 ID:8yL3wR52
>>416さんのとてもわかりやすい例えで解決しました。
さしつかえなければ416さんの得意分野をおしえてください。
418nobodyさん:2006/12/12(火) 16:02:00 ID:???
くだらんネタは書き込まなくていいよ
419nobodyさん:2006/12/12(火) 16:02:52 ID:???
>>413
わからないから>>411は質問したんだろ。
>絶対にいろんなバグや予期せぬ動作が起きまくる。
これは当たり前のことだろうが。それともお前はバグを起こしたことがないのか?
お前がバグさえ起こしたことがない天才プログラマーなのは勝手だが、意味不明な
アドバイスをするな。
420nobodyさん:2006/12/12(火) 16:11:41 ID:???
時々沸いてくるね〜。
意味あるアドバイスもせずケチつけるだけのやつ。
答えたくなければスルーすればいいし、お前にこのスレ
読んでくれなんて誰も頼んでないのにね。
ご苦労なこった。

誘導
【総合】 Webprog板質問雑談スレッド 1
http://pc8.2ch.net/test/read.cgi/php/1131016915/l50

こちらへどぞ。
421nobodyさん:2006/12/12(火) 16:14:07 ID:???
>>420 = 時々沸いてくる意味あるアドバイスもせずケチつけるだけのやつ。
自戒乙。
422やっぱり認定回答者:2006/12/12(火) 16:15:09 ID:???
最初は誰でも知識がないんだから質問して知識をどんどんつけていけばいいじゃないか。
自分の知ってることであれば答えてやるから遠慮せず質問ぶつけてこい
423nobodyさん:2006/12/12(火) 16:16:42 ID:???
>>420
まぁ、そういうお前にもこのスレ読んでくれ
なんて誰も頼んでないわけだが。

>>422
だよな。お前みたいのがいてよかったよ。
424411:2006/12/12(火) 16:19:50 ID:j1klqrWE
先ほどのことなのですが、AとBはそれぞれ単体で動かすと、正常に処理できる
のに、require.phpとして
<?php
require('A.php');
require('B.php');
?>
として実行したら、Aの部分しか処理できていませんでした。
何故なのでしょうか?
425nobodyさん:2006/12/12(火) 16:23:51 ID:???
>>424
A/B.phpそれぞれに "<?php" ついてる?

ついでに>>420
誘導
【総合】 Webprog板質問雑談スレッド 1
http://pc8.2ch.net/test/read.cgi/php/1131016915/l50

こちらへどぞ。
426411:2006/12/12(火) 16:27:03 ID:j1klqrWE
>>425
ええ、ついています。
427nobodyさん:2006/12/12(火) 16:38:58 ID:???
>>426
うーん、わからん。
実は全角の<?phpになってるとか...それはないか。
428411:2006/12/12(火) 16:43:36 ID:j1klqrWE
そうですか。。。どうもでした。
429nobodyさん:2006/12/12(火) 16:47:28 ID:???
>>428
すまんな。役に立てなくて。
430nobodyさん:2006/12/12(火) 16:49:59 ID:???
>>411
パターン1

execute.phpからAへ飛ばす
処理が終わったら行の終わりにBへ飛ばす記述
処理が終わったら行の終わりにCへ飛ばす記述

ぱたーん2
execute.phpというファイルに
<?php
require('A.php'); Aの行の終わりに「Aの処理が終了した」変数Aをセット
require('B.php'); 変数AがTRUEならBを処理→変数Bをセット
require('C.php'); 変数CがTRUEならB
431nobodyさん:2006/12/12(火) 16:52:36 ID:???
>>413,421,423,425
お前に言ってんだよw読解力無いな。鸚鵡返ししかできんのか。
さっさと失せろ。

432nobodyさん:2006/12/12(火) 16:58:42 ID:???
だが断る。
433nobodyさん:2006/12/12(火) 17:00:06 ID:???
>>431
必殺「鸚鵡返し」。 お前が
>さっさと失せろ。
434nobodyさん:2006/12/12(火) 17:02:14 ID:???
まぁ落ち着けよ
435PHP出版:2006/12/12(火) 17:02:35 ID:???
eval("include('A.php')");
eval("include('B.php')");
436nobodyさん:2006/12/12(火) 17:05:14 ID:???
>>431
誰が言ってるんだよ。お前が>>420ならちゃんと名前欄に入れろよ。
そもそも>>420がきちんとレスアンカーをつけないから混乱が起き
てるんだろうが。>>420>>419にケチつけてるのか、>>413にケチ
つけてるのかわかんねぇよ。
437nobodyさん:2006/12/12(火) 17:05:27 ID:apzoBj1l
たくさんの入力項目を元に、
ファイルを作成するプログラムを作っているのですが、

$a = $_POST['a'];
$b = $_POST['b'];
$c = $_POST['c'];

みたいなかんじで変数でごちゃごちゃになっています。
もうちょっと綺麗な書き方あったらぜひ教えてください。
438nobodyさん:2006/12/12(火) 17:09:06 ID:???
>>436
素直に読めば>>419にケチをつけているのではないことくらい自明だと思うが?
まあいいや他所でやれ。
439軟式PHP:2006/12/12(火) 17:12:00 ID:???
>>437
他人が作ったソースを読んでみるのも勉強になるお。
440nobodyさん:2006/12/12(火) 17:12:58 ID:???
>>438
そうか?オレは>>419に対してだと思っていたが。
まぁ、とにかくレスアンカー必須のほうが誤解もなく安全だろ。ということでみなさ
ん、マナーとしてレスアンカーはきちんとつけようね。
441nobodyさん:2006/12/12(火) 17:14:25 ID:???
>>437
extract()のマニュアルを調べるといいかも。
442nobodyさん:2006/12/12(火) 17:17:15 ID:???
>>437
配列とか。

なんかプログラマって、いちゃもんつける人多いよね。
理系だから、完全な解を求めたがるような印象…
443nobodyさん:2006/12/12(火) 17:18:56 ID:???
>>437
$key = array($_POST['a']=>'a',$_POST['b']=>'b',$_POST['c']=>'c');

echo $key['a'];
444nobodyさん:2006/12/12(火) 17:20:08 ID:apzoBj1l
みなさんどうもありがとうございます!
さっそく教えていただいた配列でやってみたいと思います。
extractもマニュアルでひいてきます。
445nobodyさん:2006/12/12(火) 17:22:53 ID:???
>>443
それはないだろ。
446nobodyさん:2006/12/12(火) 17:23:16 ID:8yL3wR52
aaa.txtが存在しまして、file関数で変数$fileに取り込む記述があります。

$file = file("aaa.txt");

ファイルが開けない原因を考えているのですがわかりません。
どなたかアドバイスお願いいたします。
447nobodyさん:2006/12/12(火) 17:24:24 ID:???
パーミッション
448nobodyさん:2006/12/12(火) 17:27:54 ID:???
>>446
>>447。か、まれに>>50
わかってると思うけど$fileは配列になってるので注意。
449nobodyさん:2006/12/12(火) 17:41:25 ID:8yL3wR52
<<447-448さんありがとうございます。
やはりパーミッションですよね。
windowsでテストしているのですが、この環境でlinuxと同じように
パーミッションをいじくる方法ってありませんか?
450nobodyさん:2006/12/12(火) 17:47:39 ID:???
$aが0のとき、empty($a)がTRUEになるのですが、
マニュアルだとnullや0はFalseを返すと書いてあるのになぜでしょうか?
451391:2006/12/12(火) 17:48:07 ID:???
>>393
>>402
超ありがとう!!
やっぱり、いったんfetchAllしてforeachで回すのがいいか。
452nobodyさん:2006/12/12(火) 17:49:40 ID:???
>>450
よく嫁。まったく逆。
453nobodyさん:2006/12/12(火) 18:07:44 ID:???
>>452勘違いしました(汗
クエリーから送った0だと空扱いにならないんですがなぜでしょうか?

この記述はAが出力されますが、クエリ文字を$aにおくるとBになるんです。
$a = 0;
if (empty($a)){
echo "A";
}else{
echo "B";
}
454nobodyさん:2006/12/12(火) 18:40:22 ID:???
0とnullの違いわかってる?
455nobodyさん:2006/12/12(火) 18:42:34 ID:???
>>453
よくわからないので、できればソースを。
456nobodyさん:2006/12/12(火) 18:44:14 ID:???
>>453
echo($a)は何が出るん?
457nobodyさん:2006/12/12(火) 18:55:16 ID:???
>>454
おい、emptyでは0もnullもいっしょw
458453:2006/12/12(火) 19:08:03 ID:???
すいません、勘違いしてました。
なるわけないですね。
459nobodyさん:2006/12/12(火) 19:14:38 ID:???
>>458
すげぇ、おちだなwwwwwwwwwwwwwwww
460nobodyさん:2006/12/12(火) 19:14:43 ID:???
混乱させた罪は重い
461411:2006/12/12(火) 19:26:37 ID:j1klqrWE
エラーを全表示にしたら、Fatal error: Maximum execution time of 30
というエラーが出ていて、php.iniを修正したら解決しました。
お答えくださった方々、ありがとうございました。
462nobodyさん:2006/12/12(火) 19:45:44 ID:???
>>461
おつかれ。
463nobodyさん:2006/12/12(火) 22:08:04 ID:???
>>458
どういうことだったん?
464nobodyさん:2006/12/12(火) 22:23:01 ID:aSyT8QN3
前スレの >>883>>888 に関する便乗質問なんですが、
http://pc8.2ch.net/test/read.cgi/php/1164209222/888
888さんの言うとおりだとすれば、
今現在ブラウザから第三者がUPした任意のファイルをダウンロードできるサービスをやってるところは
全てブラウザによっては脆弱性をはらんでいる、
ということでしょうか?

さすがに大手ではそれはないような気がしますが、
何か回避策ってありますか?
個人的に思いついたのは、強制的に圧縮処理してからダウンロードさせる、
という方法ですが、これ以外に方法はあるでしょうか?
465nobodyさん:2006/12/12(火) 22:34:08 ID:???
ある。
466nobodyさん:2006/12/12(火) 22:37:06 ID:???
>>465
kwsk
467nobodyさん:2006/12/12(火) 22:48:27 ID:???
>>464
あまりにも華麗に入ってきたから気づかなかったが、よく考えたら
その質問は



い。
468nobodyさん:2006/12/12(火) 22:54:08 ID:???
「第三者がUPした任意のファイルをダウンロード」する時点で、
全てはダウンロードする側の自己責任。
469nobodyさん:2006/12/12(火) 23:01:51 ID:???
>>468
つりですか?

>>467
俺も知りたいから教えて栗
470nobodyさん:2006/12/12(火) 23:02:59 ID:???
XSS絡みでPHP使用する場合の話だから
あながち完全にスレ違いってわけでもない
471nobodyさん:2006/12/12(火) 23:16:22 ID:???
>>464をスレ違いじゃないとすればApacheの設定やJavaScriptの使い方
を尋ねてくる輩まで全部世話しないといけなくなるぞ。
>>464の質問にはPHPに絡むと思われる記述はどこにもないじゃん。
472nobodyさん:2006/12/12(火) 23:42:04 ID:Fq05kJcv
SESSIONって使ってますか?
自分でファイルに書き出して、セッション管理する方が
サーバーの設定に惑わされることもなくていいように感じるけど。
473nobodyさん:2006/12/13(水) 00:01:48 ID:???
ぱくられたらおわり
474ID出し忘れてました:2006/12/13(水) 02:35:11 ID:e6aGkkm7
サーバの引越しとかDBの調整とかスクリプトのテストとかをするときに、
アクセスしてきた人に対して一時的に「メンテナンス中」と表示するには
どうしたらいいんでしょうか? よく大手サイトなどでメンテナンスのときになってるようにしたいです。

イメージとしては、管理者(自分)だけはいつも通りサイトにアクセスできるけど、
一般の訪問者はどのページにアクセスしようとも、
mod_rewriteか何かで、メンテを知らせるページに強制ジャンプさせる…みたいな感じです。
475nobodyさん:2006/12/13(水) 03:04:57 ID:???
if ($_SERVER['REMOTE_ADDR'] != "おまいのIP") {
 header('Location: メンテナンス中のページ');
 die();
}
476nobodyさん:2006/12/13(水) 04:28:27 ID:e6aGkkm7
>>475
なるほど、その手がありましたか!! 意外と盲点だった・・・。

大規模サイトもそんなシンプルな手法なのでしょうか?
477nobodyさん:2006/12/13(水) 04:37:43 ID:???
言っておくけど、この板に大規模サイトなんて触ったことある人はいないよ。
478nobodyさん:2006/12/13(水) 04:41:01 ID:???
大規模サイトってどのくらいの規模以上のものを言うの?
yahoo並、とかいうあいまいな基準を出されても分からないから数値でよろ。
479nobodyさん:2006/12/13(水) 04:51:42 ID:???
>>477
なんでいないと決め付けるの?
案外身近にいるもんだよw
480nobodyさん:2006/12/13(水) 06:02:04 ID:???
>>478
少なくとも、1サイトで「ロードバランサ+Webサーバ2台+DBサーバ1台」
という構成が、大規模サイトの最低基準だと仮定すると??
481nobodyさん:2006/12/13(水) 06:17:25 ID:???
>>480
その構成は金の無駄じゃね

ロードバランサなんて使わずに、DNS ラウンドロビン すりゃいいじゃん。


482nobodyさん:2006/12/13(水) 07:18:26 ID:???
>>481
問題点
1.耐障害性の欠如
分散先のサーバの障害検知は原則として不可能である。
そのため、分散先のサーバのうちの1つだけがサービス不能な場合等に復旧が遅れがちである。
2.分散先サーバの通信継続性
接続ごとに接続先が違うと、接続の継続性が求められる
サーバの場合に問題が起きる可能性がある(暗号化通信など)。
3.分散先サーバの同期
分散サーバのコンテンツの内容が同一でないと、
接続に問題が起きる可能性がある(Webサーバでのリンクなど)。
4.DNSキャッシングの情報更新の際に生じる時差
5.トラフィック負荷を分散する際の予期せぬ偏り

1〜5の問題があるからロードバランサーなんだろうw
483nobodyさん:2006/12/13(水) 07:30:45 ID:???
>>482
見栄を張りたいのはわかるが、「DNSラウンドロビンの意味を調べに行ったら
偶然カコイイ説明を見つけたよ!みんな聞いてよ!」という文とともに引用であ
ることくらいは書こうね^^
http://ja.wikipedia.org/wiki/DNS%E3%83%A9%E3%82%A6%E3%83%B3%E3%83%89%E3%83%AD%E3%83%93%E3%83%B3
484nobodyさん:2006/12/13(水) 07:40:39 ID:???
>>477-480
今まで関わったWeb系で一番規模が大きいのは、
Webサーバー6台、DBサーバー2台、メールサーバー1台、SSL処理サーバー1台、ロードバランサー1台だった。
(大規模サイトかわからんがな。ちなみに携帯メインサイト PCサイトもあるけどあくまでも携帯中心だった)
PHPが使われてたのはPCサイトだけだったけど・・・
Perl60% Java30% PHP10%なサイトだった。最初はJavaだけだったはずが、PerlとPHPもやることに/ ,' 3 `ヽーっ

485nobodyさん:2006/12/13(水) 07:42:41 ID:???
>>482
>1〜5の問題があるからロードバランサーなんだろうw
他人の文章を丸パクリしたくせに生意気なこと言える立場かよw
486nobodyさん:2006/12/13(水) 07:46:39 ID:???
>>483
ちょw そうです。見栄が張りたいんですw
わざわざ検索されたんですねw
乙ですw
487nobodyさん:2006/12/13(水) 07:59:40 ID:???
>>486
うわぁw こいつ完全に開き直ってますwww
>わざわざ検索されたんですねw
>乙ですw
余裕あるように見せても、お前、実際かなり恥ずかしいぞwwwww
488nobodyさん:2006/12/13(水) 08:00:48 ID:???
>>485
ごめんね、刺激しちゃってw
489nobodyさん:2006/12/13(水) 08:03:04 ID:???
>>488
荒れるから知ったかぶり厨は消えてね。
490nobodyさん:2006/12/13(水) 08:11:04 ID:???
>>482 ┐(´ー`)┌ ぷっ
まぁ、これは槍玉に挙げられてもしょうがないわな。
491nobodyさん:2006/12/13(水) 09:59:21 ID:???
お願いだから、くだらなさ、レベルの高さ、規模の大きさに関連する話題でこのスレを荒らさないでください。
492nobodyさん:2006/12/13(水) 10:10:40 ID:???
別に話題としてはしてもいいけど、
煽りにいちいち反応するなよ。餓鬼じゃあるまいし。
493nobodyさん:2006/12/13(水) 11:33:34 ID:teIa09dB
教えてください。

$a = array("あ",0,"い","う","え","お");
$b = array("か",7,"き","く","け","こ");
$c = array("さ",9,"し","す","せ","そ");
$d = array("た",1,"ち","つ","て","と");
$e = array("な",5,"に","ぬ","ね","の");
$f = array("は",6,"ひ","ふ","へ","ほ");

という$a〜$fの配列を、数字順に$a,$d,$e,$f,$b,$cという風に
並び替えたいのですが、スマートに書けません。
どんな書き方が負荷のかからないスマートな書き方なんでしょうか?
494493:2006/12/13(水) 11:35:08 ID:teIa09dB
$list = array($a,$b,$c,$d,$e,$f);
$New_list = array();
$n = 0;

while(count($list) > $n){
 if($n){
  $f = 1;
  $m = 0;
  while($f){
   $x = $list[$n][1];
   $y = $New_list[$n - $m - 1][1];
   if($x < $y){
    $New_list[$n - $m] = $New_list[$n - $m -1];
    $New_list[$n - $m - 1] = $list[$n];
    if($n == $m){ $f = 0; }
   }else{
    $f = 0;
    $New_list[$n - $m] = $list[$n];
   }
   $m++;
  }
 }else{
  $New_list[$n] = $list[$n];
 }
 
 $n++;
}
495nobodyさん:2006/12/13(水) 11:44:20 ID:???
配列の2番目($a[1]〜$f[1])を配列にいれて、
sortすればいいだけでは?
496nobodyさん:2006/12/13(水) 11:53:06 ID:???
>>492
使い古された論法だが、おまいもいちいち反応してるやんけ。

>>493
usort($list, cmp_arr);
function cmp_arr($a, $b) {
return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
}
497493:2006/12/13(水) 12:05:12 ID:???
>>495>>496

すばらしく できました。
ありがとう。
498nobodyさん:2006/12/13(水) 12:06:53 ID:BBaxillB
テキストファイルをfile()で配列にして、そこからE(全角)で始まる
英数字の文字列を取り出したいのですが、うまくいきません。(処理されない)

$file_array=file("$filename.txt");
for($i=0; $i < 10; $i++)
{
  $str = mb_ereg("[a-zA-Z][a-zA-Z0-9]*",$file_array[$i]);
  if($str)
  {
$gakuseki = $str;
echo "$gakuseki"<br>\n;
  }
//その他の項目
}
このような感じで、Eから始まる文字列を抜き出す処理を加えると、
何も処理されなくなってしまいまして。。。
よろしければ、お教え願いたく。
499nobodyさん:2006/12/13(水) 12:19:07 ID:bSWpJk+Q
JpGraphで折れ線グラフ作ってるんですけど、
プロットに適当な文字列を表示することってできるんでしょうか?
プロットの値を表示することしかできないんでしょうか?

返答、お願いします。
500nobodyさん:2006/12/13(水) 12:30:37 ID:???
>>498
$lines = new ArrayIterator(file('file.txt'));
for ($lines->rewind(); $lines->valid(); $lines->next()) {
mb_ereg("[a-zA-Z][a-zA-Z0-9]*", $lines->current(), $matches);
list($str) = $matches;
echo ($str ? $str."<br />\n" : '');
}
501493:2006/12/13(水) 12:38:04 ID:teIa09dB
>>496で教えていただいたものについて、

$x = 1;
usort($list, cmp_arr);
function cmp_arr($a, $b) {
 return $a[$x] < $b[$x] ? -1 : $a[$x] > $b[$x];

}

と書き換えましたが正しく動作しませんでした。
return $a[1] < $b[1] ? -1 : $a[1] > $b[1]; の数字部分は変数ではなく
数字を入れないとダメなんでしょうか?
502nobodyさん:2006/12/13(水) 12:42:54 ID:???
関数の中はスコープが違うから$xは未定義だよ
503493:2006/12/13(水) 12:43:48 ID:teIa09dB
失礼しました。
$x = 1 を書く位置が悪いんですね・・・ すみません
504nobodyさん:2006/12/13(水) 12:52:18 ID:???
三項演算子は読みにくいから使わないほうがいいよ
505nobodyさん:2006/12/13(水) 12:53:37 ID:???
>>500
Iterator使うならforeachしようよ。そしてforeach使うなら、最初からただのarrayでおk。
506nobodyさん:2006/12/13(水) 14:09:34 ID:???
>>484
で、構成は分かったけど、それでユーザー数とかPVとかはどれくらい?
あと1日のトラフィック量とか、そういうのが分からないと
サイトの規模が分からないでしょう。
507nobodyさん:2006/12/13(水) 14:11:45 ID:???
三項演算子が読みづらいってことはないでしょ。
使いたい人は使えばいい。
508nobodyさん:2006/12/13(水) 14:16:06 ID:???
クンニされたい…。
509nobodyさん:2006/12/13(水) 14:44:06 ID:???
三項演算子なんて実務で使ったら上に殺される
510nobodyさん:2006/12/13(水) 14:46:56 ID:???
それなら俺は殺されまくりんぐだなw
511nobodyさん:2006/12/13(水) 14:55:56 ID:???
>>504, >>509
なにこいつら?たかが三項演算子くらい使いたいところで使えばいいじゃん。
三項演算子くらいで文句言うのはキモイ。

>>505
まぁ確かにOOPも理解できないお前にはIteratorは一生無縁だろうな。
512nobodyさん:2006/12/13(水) 15:04:53 ID:???
質問です
php 5.1
mysql 5.0
apache 2.0
zend framework 2.0

AJAX系の非同期通信で、エラーが出たときに、画面を遷移させたいのです。

ただリクエストの戻り値の行き先を<div>タグ内にしていて、
実行すると、エラー画面が、その<div>に全部入ってしまいます
現状、 header("Location: error/index"); みたいなことしています
(zend controller無しだと、headers already sent みたいなエラーで怒られますが…)

PHP内で完結して、画面を遷移or移動させる方法って、他にありませんでしたっけ?
(JavaScript込みなら方法はあるのですが、安全性を求められている所なので使えません…)
513nobodyさん:2006/12/13(水) 15:05:26 ID:???
>>511
PHPは言語自体がOOP向きじゃないから>>505みたいなカスが出てきても仕方ないと思うが。

自分が使えないからって
>ただのarrayでおk
とか言いだすのはひどすぎるけどな。
514nobodyさん:2006/12/13(水) 15:10:53 ID:???
もうお舞ら可燃度高すぎw
もうちょっと冷静にいこうよ。
515nobodyさん:2006/12/13(水) 15:12:01 ID:???
>>512
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html

オレはsymfony派だからZFは使ったことないが
http://framework.zend.com/manual/ja/zend.controller.rewriterouter.html
が参考になるんじゃないの?
516515:2006/12/13(水) 15:18:54 ID:???
517nobodyさん:2006/12/13(水) 15:30:00 ID:???
全角英数字の文字列を取り出して、半角に変換すると文字化けしてしまう
のですが。(文字列を取り出した段階では文字化けしていません)

$get_id = substr($array_id,0,16); ・・・・ex A0103360
$convert_id = mb_convert_kana($get_id,"a");

このようにして取り出した全角英数字の文字列を半角に変換したいのですが
文字化けしてしまいまして。どうすれば正常に変換されるでしょうか?


518nobodyさん:2006/12/13(水) 15:33:43 ID:???
>>517
substr() -> mb_substr()にしてみて。
519nobodyさん:2006/12/13(水) 15:35:05 ID:???
>515>516
ありがとう〜〜〜 516のメソッドのページは見たことありませんでした〜〜 熟読してみます〜〜



……………やっぱPHPで、ページ遷移させる方法ってのありませんでしたっけ?
520517:2006/12/13(水) 15:40:10 ID:???
>>518
回答どうもです。
mb_substr()にしてみましたが、文字化けがなおりませんでした。
ほかに手はないものでしょうか?
521nobodyさん:2006/12/13(水) 15:41:12 ID:???
Zend_Controller_Actionクラスの_forward()というメソッドで
エラーが発生したときにエラー処理用のActionに処理を移せば
いいかと。

class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
//エラーがあったら他のActionに処理を移す
if ($error) $this->_forward('IndexController', 'errorAction');
}

public function errorAction()
{
//エラー処理
}
}
522517:2006/12/13(水) 15:47:48 ID:???
mb_internal_encoding を使ったら文字化けなおりました。
523nobodyさん:2006/12/13(水) 15:49:06 ID:???
>>522 それはよかった。おつかれ。
524nobodyさん:2006/12/13(水) 15:59:17 ID:???
書き込まれたソースは半角スペースが削除されて読みにくいので、よかった
らこれで変換してから書き込んでください。

<?php
$string = <<<END
//code
END;
$string = preg_replace('{ }', ' ', $string);
$string = preg_replace('{\t}', '    ', $string);
echo $string;

できれば誰かJavaScript版を作ってくれると使いやすくていいと
思うんだけど。
525nobodyさん:2006/12/13(水) 16:02:45 ID:???
>>524
それはいいけど、preg_replaceよりstr_replaceのほうがいいんじゃね、この場合?
526nobodyさん:2006/12/13(水) 16:31:47 ID:???
preg_replaceの第一パラメータは/pattern/にしないと。

preg_replace("/pattern/", "replacement", "strings");
527nobodyさん:2006/12/13(水) 16:32:05 ID:???
メール送信について相談なのですが、
BCC送信のように、複数宛先を一括送信する場合は、配列にメールアドレス
を入れて、mail関数の処理をforで回すという考えでいいでしょうか?

また、特別なソフトを使わない場合、PHPでメール送信するには
mail関数やsendmailを使う以外無いのでしょうか?処理速度が心配です。
528nobodyさん:2006/12/13(水) 16:34:25 ID:???
{}でもおkだけど//のほうがなじみがあるね
529nobodyさん:2006/12/13(水) 16:36:04 ID:???
>515>516>521
返信ありがとうございます〜 勉強させて頂きました感謝です。

結論から言うと、
$this->_forward('IndexController', 'errorAction');
で、確かにページは出ました。 「<div>タグ」の中に;;

クライアント XMLHttpRequestを送信

鯖 forwardで違うアクションのページを出力

クライアント あ、戻り値?何? XMLHttpRequestでしょ? タグの中にinnerHTMLねw

戻り値が何であろうと、根こそぎjs上で指定された場所っぽいです
アクションは、途中で変わったので、正規アクションが動く前に処理できる所まで着ました。
もう少しの所まで来た気がします。

530nobodyさん:2006/12/13(水) 16:36:09 ID:+OBhpWUX
2006年12月13日を2006/12/13の形にしたいのですが
どうするのが簡単でしょうか?
531nobodyさん:2006/12/13(水) 16:57:59 ID:???
>>530
正規表現による置き換え
532nobodyさん:2006/12/13(水) 17:04:00 ID:???
$str = "2006年12月13日";
$str = preg_replace('/年|月/', '/', $str);
$str = preg_replace('/日/', '', $str);

echo $str;
533nobodyさん:2006/12/13(水) 17:05:22 ID:???
指定したディレクトリの .txt .pdf のファイルを一括して削除
したいんですけど、何か方法はないでしょうか?
534nobodyさん:2006/12/13(水) 17:25:49 ID:+OBhpWUX
>>531-532
ありがとうございました。
535nobodyさん:2006/12/13(水) 17:28:41 ID:???
$hoge[$num]
感覚的にこんなことがしたいのですがどうすればいいでしょうか?
$numには英数字が入っています
536nobodyさん:2006/12/13(水) 17:35:20 ID:???
>>535
${"hoge".$num}

>>533
ディレクトリなめて
拡張子がそれらか比較
該当したらファイル削除
537nobodyさん:2006/12/13(水) 17:37:15 ID:dNCg3wG0
$hoge["{$num}"]
538nobodyさん:2006/12/13(水) 17:41:09 ID:F8GTcB6w
ttp://www.spencernetwork.org/memo/tips-5.php

を参考にwebサーバ上にあるtxtファイルをダウンロードさせたいのですが、
ダウンロードダイアログが開かず、普通にブラウザ上で中身が表示されてしまいます。
原因は何でしょうか?
539nobodyさん:2006/12/13(水) 17:42:48 ID:???
ヘッダが濃厚
540nobodyさん:2006/12/13(水) 17:49:49 ID:???
IEのバージョン
541nobodyさん:2006/12/13(水) 18:32:58 ID:???
PHPで.aiファイルをswfやjpgに変換できるようなライブラリとかありますか?

やりたいことはアップロードされた.aiデータをswfをリアルタイム変換したいんですけど。
542nobodyさん:2006/12/13(水) 18:51:42 ID:???
<?php
$url = "http://2ch.se/";
$fp = @fsockopen($url,80,$errno,$errstr,5) or die("ゴメン無理");
print $fp;
?>

なぜか表示されません原因は何でしょうか?
543542:2006/12/13(水) 19:01:39 ID:???
修正
目的のURLが表示されません
544nobodyさん:2006/12/13(水) 19:02:52 ID:???
545nobodyさん:2006/12/13(水) 19:11:59 ID:???
接続してるだけでおk?
546542:2006/12/13(水) 19:21:00 ID:???
<?php
$url = "http://2ch.se/";
$fp = @fsockopen("$url", 80, $errno, $errstr, 30) or die("ゴメン無理");
if (!$fp) {
echo "$errstr ($errno)<br />\n";
} else {
$out = "GET / HTTP/1.1\r\n";
$out .= "Host: $url\r\n";
$out .= "Connection: Close\r\n\r\n";

fwrite($fp, $out);
while (!feof($fp)) {
echo fgets($fp, 128);
}
fclose($fp);
}
?>

これでも無理でした
547nobodyさん:2006/12/13(水) 19:32:53 ID:???
$url = "2ch.se";
548542:2006/12/13(水) 19:58:14 ID:???
ありがとうございます、解決しました。
549505:2006/12/13(水) 21:54:09 ID:???
>>500,511,513
本気で言ってるのか、ただ煽りたいだけなのか・・・
まず500のforの部分をforeach ($lines as $line)とでも書いたらどうよ。
しかもそのケースだったら、Iterator使っても意味なさすぎ。
550542:2006/12/13(水) 22:06:51 ID:???
たびたびすみません
>>546でページを表示したときに出る
HTTP/1.0 200 OK content-type:text/html
という表示を消したいのですが
>>546のどこをどう変えればいいのでしょうか?
551nobodyさん:2006/12/13(水) 22:14:35 ID:???
>>549
三項演算子の不便さをキモイという素人なんだから放っておけ。
552538:2006/12/13(水) 22:24:45 ID:sfCDWF8R
>>539
kwsk
553nobodyさん:2006/12/13(水) 22:24:59 ID:???
>>551
三項演算子が不便!?なにこのド素人。
お前一回くらいオープンソースで開発されてるアプリケーションの
ソース見てみろよ。自分がいかに恥ずかしいことを言ってるか気づ
くよ。
554nobodyさん:2006/12/13(水) 22:27:27 ID:???
>>553
大多数が見づらい書き方を推奨するなよタコ。
どこのコーディング規約でもたいてい禁止されてる。
555nobodyさん:2006/12/13(水) 22:31:28 ID:???
>>554
なるほど。それは知らなかった。
>どこのコーディング規約でもたいてい禁止されてる。
では早速、禁止されてる有名なプロジェクトあげてみてくれる?
556nobodyさん:2006/12/13(水) 22:34:38 ID:???
>>554
「たいてい」と言うほど禁止されてはいないだろ。
一部では禁止してるみたいだけど、さすがに言いすぎ。
557nobodyさん:2006/12/13(水) 22:39:02 ID:???
そもそも三項演算子も理解できない、読みにくいとか言うレベルの人間が参加してるプロジェクト
なんて大したことないだろ。
大口をたたいたやつは、早く三項演算子禁止のプロジェクトをあげろよ。たいていは禁止らしいか
ら山ほどあるはずだろ。
558nobodyさん:2006/12/13(水) 22:45:55 ID:???
たいてい禁止ではなくてたいてい"非推奨"だな。
三項演算子なんて一般的じゃないし、可読性が大事だからね。
559nobodyさん:2006/12/13(水) 22:48:33 ID:???
>>557
>そもそも三項演算子も理解できない、読みにくいとか言うレベルの人間が参加してるプロジェクト
>なんて大したことないだろ。

何言ってるんだ・・・
個人的に理解できてても、読みなれてても、
複数人がらみのプロジェクトなら
読みやすいほうを採用するに決まってるだろう・・・
560nobodyさん:2006/12/13(水) 22:48:42 ID:???
>>496
return $a[1] < $b[1] ? -1 : $a[1] > $b[1];
                〜〜〜〜〜〜
これ何か意味あるの?
561nobodyさん:2006/12/13(水) 22:51:28 ID:???
>>549
お前の言うこともわかる。たしかにforeachのほうが若干すっきりするしな。
でも、pythonとかjavaをやった人間には>>500のほうがしっくりくる気がする。
PHPにはPHPの流儀があるだろうから、それぞれ好きにやればいいんじゃないの?
562nobodyさん:2006/12/13(水) 22:54:47 ID:???
>>559=>>554
決まってるのはわかったから、山ほど実例挙げてよ。
563nobodyさん:2006/12/13(水) 22:55:56 ID:???
すいません、CSVから出力するときに、
順番を後ろから出力する載ってどうやったらいいでしょうか?

1〜10行までデータがあった場合、10行目から出力したいのです。
564nobodyさん:2006/12/13(水) 23:00:14 ID:???
>>562
自分で調べろよ。
PGになればわかるからそういう会社入れ。
禁止っていうのは言い過ぎたかもしれんが、
よほどの事情がない限り使うなとは言われるだろう。
565nobodyさん:2006/12/13(水) 23:02:56 ID:???
>>552
そのままコピペしたらいけたよ。
IEでもだめかい?
header出力するまえに何も出力ないよね?

>>550
それらの文字列なら出力しないようにすればどう?
もしくはfile_get_contents使えば?
566nobodyさん:2006/12/13(水) 23:04:43 ID:2BlCBXrB
PHPのプログラムなどでよく、

送信→Now loadingの画面→送信完了ページ

のようなプログラムがありますが、これはどうやっているのでしょうか?
構造のヒントだけでもいいので、アドバイスいただければと思います。
567556:2006/12/13(水) 23:06:35 ID:???
>>564
>禁止っていうのは言い過ぎたかもしれん
潔いじゃん。負け惜しみを言うよりよっぽどカコイイな。
完全に見直した>>564=>>554=>>559。きつく言って悪かったな。
568nobodyさん:2006/12/13(水) 23:10:29 ID:???
>>566
ロード画面は<meta http-rquiv="refresh"〜>でやれば簡単でいいよ。
569nobodyさん:2006/12/13(水) 23:18:09 ID:???
>>567=オタクきもいよ
570567:2006/12/13(水) 23:20:04 ID:???
>>569
あ、やっぱり?
自分でもそう思ったんだけど、謝るのも礼儀かなと。
571nobodyさん:2006/12/13(水) 23:23:15 ID:???
>>570 珍しいよ、お前みたいなタイプは。でも、別に悪いことではないわな。
572566:2006/12/13(水) 23:35:39 ID:???
>>568
出来ました!ありがとうございます。

ただ、これの場合、繰り返し処理の動作など思い処理の場合も
有効なのでしょうか?
573nobodyさん:2006/12/13(水) 23:41:15 ID:???
>>572
ベンチはかって十分な時間持たせればOK
574nobodyさん:2006/12/13(水) 23:56:39 ID:???
まったくお前ら良く燃えるな。
575nobodyさん:2006/12/13(水) 23:57:08 ID:???
冬だからあったかくていいぜ?
576nobodyさん:2006/12/14(木) 00:00:58 ID:???
>>575
いや本人たちはいいかも知れんが、見てる分には
ちっとも暖まらんぞw
577nobodyさん:2006/12/14(木) 00:07:49 ID:???
最後のともしびだから、優しく見守ってね
578nobodyさん:2006/12/14(木) 00:18:53 ID:???
>>561
ん?PHPのIteratorはforeachでまわせるってことだよ。
Iteratorの5つのメソッドを明示的に呼び出す必要はないの。
明示的に呼び出すのは、イテレーションの途中で中断してもう一回再開したり、細かいことをするために使う面もあるが、Webサイトの構築でそんなシチュエーションには残念ながら出会ったことはない。
通常はforeachを用いておけば、rewindやcurrentなど、>>500と全く同じ順序で自動的に呼び出される。
pythonやjavaをやっていると>>500がしっくり来るってのは、よーわからんな。
C++のSTLと比較するなら、しっくりくるってのもまだわかるけど。
579nobodyさん:2006/12/14(木) 00:23:44 ID:???
>>578
javaには拡張for文もあるし、Iteratorに拘る必要もない
580nobodyさん:2006/12/14(木) 00:35:34 ID:???
まぁ、扱いなれた構文で書きたいというのも分かるし、
PHPは似たような関数を各種取り揃えてる辺りからも
そういったニーズに応えようとしてるわけだから、
「PHPの構文にある限りは好きなの使えばよろしい」
でFAなんでないの?
PHPならこの書き方!みたいのはそんなに無いと思う。
(大抵は制約くらいでしかそんな場面にならない)
581nobodyさん:2006/12/14(木) 00:43:01 ID:???
>>579
それ俺が知らないと思って言ってるの?何を主張したいのか全然わからないんだけど・・・。
javaの拡張for文もやっていることはイテレーション(リスト状の構造を順番に走査)なわけで。
むしろ拡張for文(=構文糖)を使うってのは、PHPでいうとfor ($lines->rewind();・・・のかわりにforeach ($lines・・・を構文糖として使うことと方向が同じじゃないか。

>>580
いや、言いたいことはわかるけど、そもそも>>500で無意味にIteratorを持ち出している点、foreachで書けるものを無意味&煩雑なfor文に展開している点などは、俺的につっこみどころなんだが。
そもそも俺の経験上、PHPのIterator自体お勧めしないものの一つだしな。
582nobodyさん:2006/12/14(木) 00:51:48 ID:6QjdxOSQ
PHPのスクリプトを組んでいるのですが、分からない点がありましたので質問させてください。

変数に文字列を格納していて、その中から特定の文字を2箇所見つけて
その間にある文字列を取り出したいのですが、どのように記述したらよいのでしょうか?

nfai_usdgvga_jgmandfak_flahogek_glangol_ialgkka

のアンダーバーから次のアンダーバーの間を取り出し、その中にhogeが含まれる時に、
別の変数に取り出すということをしたいです。

突然の質問で、大変申し訳ありませんが何卒よろしくお願い致します。
583nobodyさん:2006/12/14(木) 00:56:35 ID:???
explodeして、それをforeachでループして、ループの中でstrposしてfalseじゃなかったら変数に入れればいい
584nobodyさん:2006/12/14(木) 00:57:31 ID:???
>>582
explode()
585nobodyさん:2006/12/14(木) 01:06:07 ID:6QjdxOSQ
ありがとうございました。アドバイスを参考に続けたいと思います。
586nobodyさん:2006/12/14(木) 02:09:24 ID:???
こう、スレを見返してみると、文字列系の質問が多いな

大体、explode, implode, array_search, array_shift, foreach, eregとかで、答えが出る感じに思う。
と、徹夜中のリーマンより。
587nobodyさん:2006/12/14(木) 04:08:49 ID:???
文字列系の関数と配列系の関数は、全部憶えておいて損はないよな。
588nobodyさん:2006/12/14(木) 10:09:59 ID:???
覚える必要はないけどなw
一度、全部読んでおくだけで十分
589nobodyさん:2006/12/14(木) 10:22:37 ID:???
よく使うやつとか、こういうのがあったなぁぐらいでいいね。
あとはリファレンスを見ればいいし。
590500:2006/12/14(木) 10:38:40 ID:???
>>581
オレが変な書き方をしたせいで迷惑をかけてるようで申し訳ないです。
あとから拡張とか変更が楽かな?と思って、ついくせでIteratorを使ってし
まいました。でも、みなさんの書き込みを読んでるとその必要も無さそうな
のでこれからはforeachでまわすことにしようと思います。

煽りの原因をつくってしまってすいません。
591nobodyさん:2006/12/14(木) 10:41:27 ID:???
すみません、質問させてください。

たとえばループ処理系の構文(for等)は、
breakでループを抜けさせることができるようですが、
if構文内で、処理を途中でも抜けさせるような関数はありますか?
592nobodyさん:2006/12/14(木) 10:58:49 ID:???
無いんじゃないの
593nobodyさん:2006/12/14(木) 10:58:53 ID:???
>>591
ないよ。なぜなら必要性がないから。
処理させたくないなら、単にif文をネストして処理する条件を
増やしていけばいい。

if ($a) {
 if ($b) //ここで$bがfalseならbreak;したのと同じになる
 {}
 //もちろん$bの評価にかかわらずここは実行されるけど、それは
 //書き方を工夫するしかない。
}
594591:2006/12/14(木) 11:07:47 ID:gRu0cvf6
>>592-593

トンクス!
あぁ、なるほど。
若干書き方を変えるだけでどうにもなりますものね。
1個勉強になりました、ありがとうございます!
595nobodyさん:2006/12/14(木) 11:13:10 ID:???
複数の入力値があって、
全て入力されているかどうかのチェックが入っています。
入力してなかった箇所は入力してくださいと出すのですが、
送信した際、入力してた方の値もリセットされるので、
inputのvalue属性に入力した値を入れて、入力を保持した感じにしているのですが、
入力値がバックスラッシュ(\)だった場合、
なぜかバックスラッシュが2倍の数になって値に入っているようです。
これは何が原因なのでしょうか?
596nobodyさん:2006/12/14(木) 11:17:50 ID:???
>>595
magic_quotes_gpcの設定じゃないかな。
597nobodyさん:2006/12/14(木) 12:39:41 ID:???
配列におけるforeachのように、文字列を一文字ずつ取り出す関数や構文はありませんか?
598nobodyさん:2006/12/14(木) 13:05:13 ID:???
upローダー作ってますが、
phpのみでフォルダごとアップロードするのって不可能でしょうか?
javaアプレットあたりとからめる方法しか思いつかないですが・・。
599nobodyさん:2006/12/14(木) 13:22:58 ID:???
>>598
それはブラウザ側の問題なのでPHPの処理では無理
input=fileの制限上無理

ありえるとすればzipを鯖で解凍してディレクトリ生成後その中に展開
600nobodyさん:2006/12/14(木) 13:44:49 ID:???
>>598
単一のクライアントならクライアントのほうにFTPDを立てて、
サーバーからFTP接続してダウンロードさせるってのもトリッキーながら出来る。
601nobodyさん:2006/12/14(木) 16:53:49 ID:???
mysqlをやってみようと思ってますが、初めからpear等を使うより
関数を使って処理した方が覚えるにはいいですか?
602nobodyさん:2006/12/14(木) 17:04:32 ID:???
>>601
うん
603nobodyさん:2006/12/14(木) 17:16:12 ID:???
>>597
for($i = 0; $i <= strlen($str); $i++) { echo substr($str, $i); }
とか。
604nobodyさん:2006/12/14(木) 17:18:55 ID:???
>>603
せめてmb_strlenとmb_substr使おうぜ
605nobodyさん:2006/12/14(木) 17:30:18 ID:???
>>602
d
606nobodyさん:2006/12/14(木) 18:32:11 ID:???
mbなんてトラブルの元はインスコしてないよ
607nobodyさん:2006/12/14(木) 18:36:32 ID:???
>>606
       ____
     /⌒  ⌒\ ホジホジ
   /( ●)  (●)\
  /::::::⌒(__人__)⌒::::: \  <で?マルチバイトの文字数える時はどうやるのかな?
  |    mj |ー'´      |
  \  〈__ノ       /
    ノ  ノ

608nobodyさん:2006/12/14(木) 18:41:40 ID:???
>>606
バイナリで判断してなんていわないでくれよw
609nobodyさん:2006/12/14(木) 20:25:40 ID:???
マニュアル読んでると、
new XXXみたいにしてから使う関数とかもあるのですが、
これは普通の関数とは何が違うのでしょうか?
610nobodyさん:2006/12/14(木) 21:08:15 ID:IgfNuu2k
ファイルの内容を配列に読み込んで、ある行のデータのみ削除し、
またファイルに書き込みたいのですが、流れがわかりません。
現在のやりかたは、
1.file関数でファイルAを配列に読み込む
2.不必要なデータをunset関数で配列から削除
3.削除した後の配列をファイルBに書き込む
4.ファイルAをunlink関数で削除し、ファイルBの名前をrename関数でファイルAにする
というやり方を行っていますが、もっと効率の良いやり方がありましたらご教授お願いいたします。
【テキストファイルの内容】
一行目:あか
二行目:きいろ
三行目:ぴんく
四行目:むらさき
611nobodyさん:2006/12/14(木) 21:22:24 ID:???
>>609
それは関数ではなくクラス
612nobodyさん:2006/12/14(木) 21:25:01 ID:???
適当な変数にファイル内容を1行ずつ読み込みながら流し込んでいく
要らない部分は流さない。
最後までいって変数の内容を元のファイルに上書き。

じゃだめなのか?
613nobodyさん:2006/12/14(木) 21:26:23 ID:???
>>610
$lines = file($filename);
//ここで余分な行削除
file_put_contents($filename, implode('', $lines));
// もしくは$fp = fopen($filename, 'w'); fwrite($fp, implode('', $lines)); fclose($fp);
614nobodyさん:2006/12/14(木) 21:34:16 ID:???
>>601
PEARとかADOとか不要。
特に一人で趣味的に開発してるんなら、わざわざ抽象化する意味ナシ。
615610:2006/12/14(木) 21:52:13 ID:IgfNuu2k
>>612さん>>613さんアドバイスありがとうございます。
php4と互換性もたせるために>>613さんの後者の記述を拝借させていただきましたが、
implodeがないとファイルへの書込みがおかしくなってしまいます。
fwriteは複数行のデータ(多次元配列ですかね?)は書き込めないんですね。
616nobodyさん:2006/12/14(木) 21:58:32 ID:???
>>615
fwriteの第2引数は文字列だと、マニュアルに書いてある。
617nobodyさん:2006/12/14(木) 22:00:03 ID:???
>>615
まぁ、なんだ、、、やりたい事を手持ちの機能を使って組み上げていくのがプログラマの仕事だ
618563:2006/12/14(木) 22:52:19 ID:???
>>563
すいません、どなたかお願いします
619nobodyさん:2006/12/14(木) 22:54:54 ID:???
>>563
rsort
620nobodyさん:2006/12/14(木) 23:01:36 ID:???
今年のクリスマスの予定はありますか?
621nobodyさん:2006/12/14(木) 23:06:40 ID:???
phpでツリーを作ります
622nobodyさん:2006/12/14(木) 23:12:27 ID:???
教室でセクロスします。
見つかったら停学だがそのスリルがいい。
623nobodyさん:2006/12/14(木) 23:16:39 ID:???
昔実際にセクロスで停学になった俺様が来ましたよ。
62427:2006/12/14(木) 23:33:48 ID:???
誰かおねがいします。
625nobodyさん:2006/12/14(木) 23:40:37 ID:???
>>27
まずコンソールからmysqlのコマンド叩いて更新されるか確認したらいいよ。
つーか、エスケープはちゃんとできてるわけ?
626nobodyさん:2006/12/15(金) 00:13:14 ID:0FUvK34I
stream_set_write_bufferってfwriteの前に使用することが推奨されてますか?
627nobodyさん:2006/12/15(金) 00:29:42 ID:???
>>626
このスレでまともな回答が得られるかどうか
世の中は間違いだらけだ

http://ya.maya.st/web/RTFM.html
628nobodyさん:2006/12/15(金) 00:45:12 ID:???
>>624
mysql_query( 〜 ) or die(mysql_error();
でエラーでないか確認してみれ。

あと俺は確実に
mysql_query("update table_$t set col_$r = '".$q."' where col_1 = '".$max2."'");
な感じに書いてるよ、めんどいけどね
629nobodyさん:2006/12/15(金) 01:00:11 ID:???
>>627
宣伝乙
630nobodyさん:2006/12/15(金) 01:16:05 ID:???
つーか、PDO使ったら、エスケープも楽にできるのに。
ほとんどPHPでDB扱う際の標準みたいな立場になりつつあるわけだし。
631nobodyさん:2006/12/15(金) 03:49:30 ID:yi07hMf9
emacs使ってる人に質問だけど、php-modeよりいいのってある?
632nobodyさん:2006/12/15(金) 08:50:30 ID:???
PDOって何ですか
633nobodyさん:2006/12/15(金) 09:20:41 ID:???
>>632
PEAR::DBの方は知ってるかな?あれはご存知のとおりPHPで書かれている
ため、普通にPHP上のAPIを使って接続してるだけ。PDOはCで書かれている
のでよりネイティブに近い接続をするから速度も速い。
また、PHP5なら例外処理もやりやすいというメリットもある。
ただ、モジュールインストールになるから対応していないサーバーも多い。
634nobodyさん:2006/12/15(金) 09:56:54 ID:VrTEtYOe
多重配列のnullの要素を取り除いて配列に再度格納したいのですが、うまく
いきません。

$array[0][0] =PC $array[0][1] =IP $array[0][2] =null
$array[1][0] =ADSL $array[1][1] =TCP $array[1][2] =UDP $array[1][3] =null
この配列からnullの部分を除いて

$array[0][0] =PC $array[0][1] =IP
$array[1][0] =ADSL $array[1][1] =TCP $array[1][2] =UDP
このようにしたいのですが、どう記述すればよろしいでしょうか?
635nobodyさん:2006/12/15(金) 10:30:37 ID:???
どうやってみて、うまくいかないと言ってるかを書けば?
636389:2006/12/15(金) 10:39:28 ID:???
phpでXML形式のファイルを出力したいのですが、うまくいきません。

phpで動的(ブラウザでアクセスがあるたびに生成する)にXML形式のテキストを出力しているのですが、
これをRSSリーダで読み込もうとしても
「登録可能なフィードが見つかりません」と うまくいきません。
出力しているテキストの形式は完全にXML形式になっているのですが、
(ブラウザでソースを見ても完全に期待するXMLファイルと同じ、しかしxmlファイルを表示するときのようにはならない)

phpでRSSフィードをXML形式で出力しようとするためには何か必要なことがあるのでしょうか?

637634:2006/12/15(金) 10:43:38 ID:VrTEtYOe
>>635
そうですね。

//nullの部分を除外して多重配列を再構成//
$other_array   //多重配列
$arr_word =array();

foreach($other_array as $val=> $arrValue)
{
foreach($arrValue as $val2=> $strValue)
{
if($strValue == '')
{
break;
}
else
{
array_push($arr_word,$strValue);
}
}
}
このようにしてみたのですが、nullは除外されても多重配列にはなって
おらず、ひとつの配列に要素が全て連結された状態になってしまいます。
どうか正しい記述をお教えいただきたいのですが。
638nobodyさん:2006/12/15(金) 11:02:00 ID:???
>>636
ソース出せ
639389:2006/12/15(金) 11:17:47 ID:???
こういう風です。


<?
print "<?xml version=\"1.0\" encoding=\"utf-8\" ?>\n";
print "<rss version=\"2.0\">\n";
print "<channel>\n";
?>


<title>title</title>
<link>http://www.site/</link>
<description>description</description>
<language>ja</language>
<copyright>Copyright</copyright>
<pubDate>Fri, 15 Dec 2006 06:00:00 +0900</pubDate>

<item>
<title>item title</title>
<link>http://www.site/001.html</link>
<description>item description</description>
</item>

<?
print "</channel>\n";
print "</rss>\n";
?>
640nobodyさん:2006/12/15(金) 11:27:31 ID:???
HTML_QuickFormでcheckboxを生成する際
結果を以下のように配列に値が入るように生成したいのですが
どうすればよいでしょうか。

<input type="checkbox" value="1" name="hoge[]"><label>a</label>
<input type="checkbox" value="2" name="hoge[]"><label>b</label>
<input type="checkbox" value="3" name="hoge[]"><label>c</label>
<input type="checkbox" value="4" name="hoge[]"><label>d</label>
641nobodyさん:2006/12/15(金) 11:27:31 ID:???
>>693
ソースの一番先頭にheader関数でxml用のヘッダ出すと解決しそうな予感。
642641:2006/12/15(金) 11:29:19 ID:???
ごめ、アンカーは639の間違い。
具体的なソースは以下。
header( 'Content-type: text/xml' );
643nobodyさん:2006/12/15(金) 11:42:27 ID:???
>>639
そのソースだけならphp使う意味ないような。

こちらの関数も調べてみるといい。
SimpleXML関数 DOM XML関数 xmlwriter関数
644nobodyさん:2006/12/15(金) 12:44:35 ID:???
未来の>>693に嫉妬さげ
645nobodyさん:2006/12/15(金) 14:10:30 ID:???
質問させてください。

PHPで掲示板を作ってます
HTMLタグを無効化するにはどうしたらいいでしょうか?
htmlspecialcharsを使うと、? ←この文字が?になってしまいます。
よろしくお願いします。
646645:2006/12/15(金) 14:13:26 ID:???
あ、2chには書き込みできなかったorz
上の?は
&#12316;←半角です。
よろしくお願いします。
647nobodyさん:2006/12/15(金) 14:14:46 ID:???
まぁ、そりゃそうだろな。&は&amp;になるから。
<と>だけを置換するようにしたらいいんでないかね。
648nobodyさん:2006/12/15(金) 14:24:15 ID:???
>>639
curlなりでレスポンスヘッダ見て、MIMEがXMLになってるか確認してみれ
649nobodyさん:2006/12/15(金) 14:34:08 ID:???
>>645
>>674の方法以外にも、htmlspecialcharsをしてから、
特定のものだけ(この場合だと?)を置き換え。
650645:2006/12/15(金) 14:43:00 ID:???
>>647>>649
ありがとうございます
<と>だけを置換するだけでいいんですかね?
htmlspecialcharsの意味がよくわからない^^;
どういうときに使うんだろう・・・
651nobodyさん:2006/12/15(金) 14:46:36 ID:???
>>650
そもそも&#〜ってのがすでにHTMLエスケープ処理済みの表記だということは理解してる?
エスケープ済み表記をエスケープしたらそりゃおかしくなるという話。
652645:2006/12/15(金) 14:47:46 ID:???
ちなみに
特定のものだけ置換しないで、
全部の文字を普通に表示させたいです。
(2chみたいに特殊文字が?になるのは嫌なので)

となるとやはり<と>だけを置換ですよね
<と>だけを置換だと、危険なこととかないのかな?
653nobodyさん:2006/12/15(金) 14:50:43 ID:???
あとダブルコーテーションとかシングルコーテーションも危険やねぇ。
654nobodyさん:2006/12/15(金) 14:54:42 ID:zjrdLe6P
質問させて下さい。
バイナリをbin2hexで16進数に変換したあと、それをまたバイナリに戻す事は可能でしょうか?
色々みたけど見当たらない・・・packっていうのがそれっぽかったけど、使い方がよく分からない。

識者の方、ご指導よろしくお願いします
655nobodyさん:2006/12/15(金) 14:55:38 ID:???
>>652
1)痴漢したくないものだけ、htmlspecialcharsに影響されなず、
 一般的に使われる事の無いような特殊文字列に痴漢

2)htmlspecialchars 実行

3)特殊文字列を元に戻す
656軟式PHP:2006/12/15(金) 14:59:05 ID:???
>>654
そのpackでできるよ。
<?php
$str = 'その通り';
$hex = bin2hex( $str );
print 'Hex:' .$hex . '<BR>';
$bin = pack("H*",$hex);
print 'bin:' . $bin . '<BR>';
?>
657nobodyさん:2006/12/15(金) 15:04:06 ID:zjrdLe6P
>656
おおー!
素晴らしい!
"H*"ってのを指定したらいいのか。
色んなオプション突っ込んで途方にくれてたところですw

ありがとうございました。
658645:2006/12/15(金) 15:05:16 ID:???
掲示板で特殊文字も普通に表示させる方法としては

1.<と>だけを置換
2.ダブルコーテーションとシングルコーテーションを置換
3.trim
4.mb_convert_kana

これくらいでいいのでしょうかね?
659nobodyさん:2006/12/15(金) 16:22:41 ID:???
ユニコードのことをいってるのか?
660nobodyさん:2006/12/15(金) 16:46:31 ID:9BwOCrLJ
都道府県フォームつくってて、
都道府県を選択後、自動で選択した都道府県の市区郡がselectできるよう(表示される)
ようにしたいのですが、どうすればいいんでしょう?

661nobodyさん:2006/12/15(金) 16:53:39 ID:qvbJOa4k
あああああ
662645:2006/12/15(金) 16:58:17 ID:???
ユニコードのこと?
えーと。(ユニコードは使いません)
掲示板などで、投稿された文字をそのままアップじゃやばいですよね。
だから、何か処理をしなければいけない。ってことはわかりますが
その処理は、>>658に書いた4つの処理でいいのでしょうかね?
663nobodyさん:2006/12/15(金) 17:29:08 ID:???
メールにcsvデータを圧縮したファイルを添付しようとしています。
以下のコードでサーバー上に圧縮ファイルは出来上がり、このファイルをFTPでDLして中身を見てみると、確かに圧縮されています。

メールにもファイルは添付されてきます。しかしファイル名は hogehoge.gz ですが、中身も容量も圧縮前のcsvデータそのままになってしまいます。

base64にエンコードする際に圧縮ファイルの中身の文字列を圧縮されたままエンコードしているつもりなのですが、
どうやらcsvデータをそのまんまエンコードしてしまっているように思われます。
正しくエンコードしてやるにはどのように書いたらいいのでしょうか??

664nobodyさん:2006/12/15(金) 17:33:15 ID:???
以下、コードです。

//■■取得したデータ($getdata)から圧縮ファイルを生成

//圧縮ファイルのオープン
$filename = mb_encode_mimeheader("hogehoge").".gz";
$fp = gzopen($filename,'w');
//圧縮ファイルに書きこみ
gzwrite($fp,$getdata);
gzclose($fp);
//圧縮ファイルのオープン
$fp = gzopen($filename,'r');
//圧縮ファイルの読みこみ
do {
$data = gzread($fp, 10000);//←@ gzread で解凍せずに読み込んでるつもり
if (strlen($data) == 0) {
break;
}
$contents .= $data;
} while(true);
gzclose($fp);

//エンコード
$f_encoded = chunk_split(base64_encode($contents));  //←A エンコードしてるつもり 

//body文字列の生成(添付部分)
$body .= "\n\n--$boundary\n";
$body .= "Content-Type: application/zip; name=\"$filename\"\n";
$body .= "Content-Transfer-Encoding: base64\n";
$body .= "Content-Disposition: attachment; filename=\"$filename\"\n";
$body .= "$f_encoded\n";
$body .= "\n\n--$boundary--\n";
665nobodyさん:2006/12/15(金) 17:40:52 ID:???
圧縮ファイルをオープンしたら、そりゃ解凍された結果が読めるわなw
どうして普通に読まないんだよ。
666nobodyさん:2006/12/15(金) 17:48:23 ID:???
やや??もしかして

//エンコード
$f_encoded = chunk_split(base64_encode($filename));

でいいんでしょうか?? 

667nobodyさん:2006/12/15(金) 17:49:51 ID:???
//圧縮ファイルのオープン
$fp = gzopen($filename,'r');

これがだめぽ
668664:2006/12/15(金) 17:52:09 ID:???
自己レスれす。

>>666 これじゃファイル名1行こっきりのファイルになっちまいました。
669nobodyさん:2006/12/15(金) 17:53:33 ID:???
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
670nobodyさん:2006/12/15(金) 17:55:41 ID:o16g8Qpy
>>669 ごめんなさい。sageるクセが付いてまして失礼しました。
671nobodyさん:2006/12/15(金) 18:09:59 ID:???
なかなかユニークな輩だな。
そろそろ"gz"で読むのがまずいことに気付いたかな?
672645:2006/12/15(金) 18:10:22 ID:???
あの〜
僕の質問よろしくお願いします。
673nobodyさん:2006/12/15(金) 18:12:51 ID:???
>>672
もう色々教えてもらったんだからそれで動かしてみて問題があればそこを直せばいいじゃん。
XSSは大抵防げるだろうけど、CSRF、DB使ってるならSQLインジェクションやら
考えることは山ほどあるんだ。ってことで勉強しつつ作ってくれ。
674nobodyさん:2006/12/15(金) 18:15:09 ID:???
君のは、すでに答え出てるじゃん。

それに入力の検査自体が別にphp固有の問題じゃないし。
675nobodyさん:2006/12/15(金) 18:17:34 ID:???
>>671 死ぬほどありがとう。感涙にむせび泣いてます。
676nobodyさん:2006/12/15(金) 18:18:08 ID:o16g8Qpy
しまった。また下げてしまった(泣)
677nobodyさん:2006/12/15(金) 19:31:24 ID:???
PHP暗号化ツール コードロック
ttp://www.777777.net/magmag/codelock.php
の評価を教えてけれ
ワシの高級PHPソースを見られたくないのです。
レンタル鯖なので、Zend系とかサーバにインストールする系は
無理なのでございます。
678nobodyさん:2006/12/15(金) 19:36:26 ID:???
高級なソースかけるなら評価自分ででき・・・・
679nobodyさん:2006/12/15(金) 19:37:32 ID:???
>>677
高級PHPソースの割にはこのスレに質問しにくるとはアホなのか。
なんか、ereg関数とか使ってそうだなwww
680PHP出版:2006/12/15(金) 19:46:44 ID:???
bcompiler使えでFA
681nobodyさん:2006/12/15(金) 21:28:41 ID:???
ereg関数つかっちゃいけないすかwwwwwww

馬鹿ですねwwww
682nobodyさん:2006/12/15(金) 21:49:55 ID:Xtqi0V4I
どうでもいい煽りはいらね。
683nobodyさん:2006/12/15(金) 22:06:28 ID:g5A+TTGd
俺もereg使うけど>>679は何を使ってるの?
684nobodyさん:2006/12/15(金) 22:13:36 ID:???
erege
685nobodyさん:2006/12/15(金) 23:15:32 ID:???
高級ソースをキャベツにかけてくえってことだよ。
686nobodyさん:2006/12/16(土) 01:07:59 ID:???
>>681=>>482=知ったかぶり厨=消えろ

ereg関数は別に使ってもいいけど、ereg関数にマルチバイト文字列を含む
パターンを使ってるのを見ると「あぁ、こいつは経験が浅いな」と思う。

ereg('[あ-んア-ン]', $string)
こういうの、なんか気持ち悪い。
687nobodyさん:2006/12/16(土) 01:18:20 ID:???
>>686
>ereg('[あ-んア-ン]', $string)
この場合「こういうの、なんかいやらしい。」が正解だろ?
688nobodyさん:2006/12/16(土) 01:26:19 ID:???
>>687
激しく同意だ。ちくしょうめ。
689nobodyさん:2006/12/16(土) 01:44:07 ID:???
>>677
つーか、よくそんな怪しいソフトを使う気になるねぇ。
他にいくらでも有名なソフトあるのに。

もしかして「本人宣伝乙」ってヤツ?www
690nobodyさん:2006/12/16(土) 02:01:13 ID:kvjqtHVC
b_使えってことでFA?

でもなぜか俺は文字数数える仕事ってないんだよね。バイト数を数えるのは多いんだけど
691690:2006/12/16(土) 02:01:45 ID:???
すまん mb_ ね
692nobodyさん:2006/12/16(土) 02:09:11 ID:???
>>677
ヘボカス初心者がやらかす三大意味不明行為(ウェブ開発編)
1.「JavaScriptによる右クリック禁止」
2.「HTMLソース表示妨害(無駄な努力)」
3.「自分の書いたしょぼいコードをやたら大事にして隠したがる」

てめえの書いたしょぼいコードなんか、誰も見たがったりしねぇよ。
宣伝目的ならスレ違いだから消えな。
693nobodyさん:2006/12/16(土) 03:00:30 ID:???
PHP4.4.3のレンタルサーバーで下記のプログラムをテストしています。
結果がどうしても同じにならないのですがなぜでしょうか?

<?php

$a = 300.10;
$b = 0.10;

$a_b_sum = $a + $b;
var_dump ($a_b_sum); // float(300.2)

$c = 300.20;
var_dump ($c); // float(300.2)


if( $a_b_sum > $c) {
echo "NG"; // こっち
} else {
echo 'OK';
}

if(300.2 > 300.2) {
echo 'NG';
} else {
echo 'OK'; // こっち
}

?>
694nobodyさん:2006/12/16(土) 03:13:46 ID:???
floatだからですぅ。
文句があるなら下駄でも履かせやがれこんちくしょーっ!
695nobodyさん:2006/12/16(土) 05:26:57 ID:???
>>693
http://jp.php.net/manual/ja/language.types.float.php

$a_b_sum = $a + $b;

$a_b_sum = bcadd($a, $b);
するとOKOK
(BCMathはWinか--enable-bcmathコンパイル必要)
696nobodyさん:2006/12/16(土) 07:31:58 ID:HXTFaSG2
PDF 作成関数で位置やサイズを指定する数値の単位は何ですか?
697nobodyさん:2006/12/16(土) 10:45:33 ID:???
>>686
俺もereg関数でマルチバイト文字使ってるんだけど駄目なのか・・・
別の関数を使ったほうがいいんでしょうか?

素人ですまんが教えてください。
698nobodyさん:2006/12/16(土) 10:58:59 ID:???
マジ素人でスマソ。

そう言うわけで教えて欲しいのですが、
xxx.php?page=10&block_num=girl_list
のような?の後に続くのは、どう言う意味なんでしょうか?

なにぶんPHPと言うモノを知ったのが、今日なんでサッパリわかりません。
699nobodyさん:2006/12/16(土) 11:08:54 ID:???
>>697
Perl互換正規表現関数。

>>698
ワンクリ詐欺にでも遭遇したのか?引数が意味深だな。
700nobodyさん:2006/12/16(土) 11:12:36 ID:???
>>689
まぁ、たぶんアレだ・・・
女の子リストの10ページ目を見ていたわけだ…

女の子リスト…
701nobodyさん:2006/12/16(土) 11:13:52 ID:???
>>696
ピクセルじゃなかったっけ?

>>700
女の子リスト・・どこぞの出会い系かアダルトサイトか?w
702699:2006/12/16(土) 11:16:56 ID:???
>>701
お舞もそう思うだろ!?いかがわしいサイトにアクセスしている
疑いが強い。
703nobodyさん:2006/12/16(土) 11:24:51 ID:???
>>699 ありがとです。

>>698
girl_listワロタ・・

それはPHPというよりHTMLの内容じゃまいか?
704nobodyさん:2006/12/16(土) 11:25:17 ID:???
698だけど

見てたのは確かにアダルトなんですが、普通のURLってxxx.phpてな感じで終わるじゃ〜ないですか。
疑問は、この?page=10&block_num=girl_listの部分なんです。なんの為に、こんなのがひっついているのですか?

なんの為に、こんなのがあるのか興味があるんです。
705nobodyさん:2006/12/16(土) 11:38:52 ID:???
>>704
やぱっりそうなのかよww まぁ、こうもあっさり認められると
これ以上つっこみようもないが。

?以降は(この場合)PHPプログラムに情報を渡すために使われるんだよ。
例えばblock_numの値に応じてページの内容を変えることができる。
block_num=girl_listならお前の好きな女の子のページが表示されるだ
ろうし、block_num=boy_listなら(開発者がページを用意してれば)男だ
らけのページが表示されるかもな(キモすぎる...)。

page=10をpage=11とかpage=09にすると違うページが表示されるかもな。
そのへんは自分で?のついたURLをいろいろいじくってるとなんとなく実感
がわいてくるんじゃない?
706nobodyさん:2006/12/16(土) 11:41:35 ID:???
普通はxxx.phpで終るけど
?page=10&block_num=girl_listが付いてると不安になるの?
その辺を聞きたい。
707nobodyさん:2006/12/16(土) 11:43:55 ID:???
そうなんですか。早速イジってみます。ありがd
708nobodyさん:2006/12/16(土) 11:47:28 ID:???
>>706

別に不安にはならないけど、なんの為にあるんだろ?って気になったんです。
709nobodyさん:2006/12/16(土) 11:53:19 ID:???
>>708
君のレスの、
「って気になったんです。」
も気になるよ。
710nobodyさん:2006/12/16(土) 11:59:32 ID:???
なんで>>709
>君のレスの、
>「って気になったんです。」
>も気になるよ。
と、下らなすぎるレスをしてしまったんだろ?って気になったんです。
711nobodyさん:2006/12/16(土) 12:03:34 ID:???
>>698が何歳なのか気になりました

大人にしては質問が子供すぎる
子供にしては見てるサイトが…
712nobodyさん:2006/12/16(土) 12:08:27 ID:???
そろそろ誰かがまともな質問をしないと、スレが変な方向へ進む予感。
713645:2006/12/16(土) 13:03:42 ID:???
>>645です。
結論として
掲示板に投稿されたデータは
特殊文字を表示させたいならhtmlspecialcharsは使わない
<と>と'と"を置換する。
以上でよろしいのでしょうか?
714nobodyさん:2006/12/16(土) 13:35:16 ID:???
携帯電話用のホームページで、imode用・au用・softbank用と個別にサイトを作り、一ヶ所を更新すれば全キャリアで更新ができるような、そんなモノはPHPで作れますか?
715nobodyさん:2006/12/16(土) 13:42:21 ID:M68Se3i9
>>714
おまい次第
716nobodyさん:2006/12/16(土) 13:42:43 ID:???
テンプレみたいなの作ってそれを各キャリア用のページに読ませるようにすればどうよ?
717nobodyさん:2006/12/16(土) 13:55:25 ID:???
$array['jp'] = "日本";
$array['usa'] = "アメリカ";
$array['uk'] = "イギリス";
から
jp = 日本, usa = アメリカ, uk = イギリス
という文字列を表示させたいのですが、
何か簡単な関数はあるでしょうか?
718nobodyさん:2006/12/16(土) 14:07:09 ID:???
foreach ($array as $key => $value)
echo $key.' = '.$value.', ';
719nobodyさん:2006/12/16(土) 14:47:41 ID:???
print_r
720nobodyさん:2006/12/16(土) 15:09:26 ID:???
>>713
危ないやり方だな。
フェイルセーフを考慮するなら、「まずはエスケープする」べし。
お前の考え方は「まずはエスケープしない」になっている。
721nobodyさん:2006/12/16(土) 15:20:39 ID:???
フェイルセーフって何ですか?
722nobodyさん:2006/12/16(土) 16:12:02 ID:???
レンタルブログの更新を文字列で抽出して
題名、URL、記事をHTML形式で出力したいんですが、どうすればいいですか?
723nobodyさん:2006/12/16(土) 16:49:47 ID:???
RSSよめよww
724722:2006/12/16(土) 16:55:08 ID:???
>>723
私ですか?
725nobodyさん:2006/12/16(土) 16:57:32 ID:???
そうだな
726713:2006/12/16(土) 17:41:32 ID:???
>>720
<と>と'と"を置換するだけじゃ危険なのですか?
727nobodyさん:2006/12/16(土) 17:51:14 ID:???
>>721>>726
まずフェイルセーフの概念をよく理解しろ。用語の意味くらい自分でググれ。
で、その概念をシステム制作に当てはめて考えろ。
そしたら>>713のやり方がいかに危なっかしいかが分かる。

重要なのは「優先順位」だ。どんな処理を優先させるのか。
安全対策に万が一「抜け・ミス」があったときにでも危険を防ぐにはどうしたらいいのか。
よく考えろ。考えても分からなければ、危険なので難しいことはやろうとするな。
728nobodyさん:2006/12/16(土) 17:54:20 ID:???
>>726
っていうかお前さ、>>720をよく読めよチンカス。
せっかく重要な答えをズバリ書いてやってんのにそれを無視して、
「<と>と'と"を置換するだけじゃ危険なのですか?」などと的外れな質問を繰り返しやがって。

何をエスケープするかじゃねぇんだよ。どのように、どの順番でエスケープするかが大事なんだよ。
729nobodyさん:2006/12/16(土) 18:03:48 ID:???
>>727

721だけど、意味自分で調べた。サンクス!一つ勉強になった。
730563:2006/12/16(土) 18:03:51 ID:???
>>619
ありがと〜
逆順はできたのですが、ちょっと意図したものと違いました。

CSVから整形して出力してるのですが、これを、例えば5番目の配列を基準に逆順にソートして出力させたいのです。
rsortだと、そういった指定ができなくて。
<table>
<?php
$Data=file('db.csv');
for($i=0;$i<sizeof($Data);$i++){
$line=explode(",", $Data[$i]);
?>
<tr><td><?=$line[0]?></td><td><?=$line[3]?></td></tr>
<?php
}
?>
</table>
言葉足らずで申し訳ありませんでした。
731nobodyさん:2006/12/16(土) 18:09:01 ID:???
MySQL使う場合、
普通はリレーション使うと思うのですが、
phpからの操作が非常に面倒になりませんか?

リレーション使わずに
一旦あるフィールド値を取得してから
そのフィールド値で別テーブルを検索して値を取得、
とかやってる人っていますか?

今までリレーションの存在を知らずに(涙)
この方法でやってたのですが、
リレーションを使うのもかなりだるく(慣れていないだけの可能性もありますが)、
過去の手段もかなりだるくなってきました・・・

他に良い方法がありましたらきぼんぬです。
732nobodyさん:2006/12/16(土) 19:29:26 ID:vIgGXUoj
配列Aと配列Bを比較して、一致している要素が5つ以上あったら
配列Bの[0]の要素を表示するということをしたいのですが・・

$common_word = array_intersect($array_A,$array_B);
$array_count = count($common_word);
if($array_count >= 5)
{

}
いまのところ、このようになっておりますが、どのようにしたら良いのか
分からなくなりまして。。。よろしければ、ご教授願いたいのですが。
733nobodyさん:2006/12/16(土) 19:40:38 ID:???
>>731
プログラムとか、やめちゃえば?
734713:2006/12/16(土) 19:47:29 ID:???
用心するのに越したことはないってことでしょ
言いたいことは大体わかるよ。
でも具体的に言ってもらわないとわからない。
<と>と'と"を置換するだけで問題ないでしょ?
>>728みたいな、どうでもいい薀蓄みたいなこと言う人はレスしないでください。
735nobodyさん:2006/12/16(土) 21:11:07 ID:a8ebIslZ
phpMyAdminを設定して実行したのですが、
『扱えない拡張子です,<br />PHPの設定をチェックしてください。』
と表示されます。

PHP.iniでは
extension=php_mysql.dll
と設定して再起動も完了しました。
ですが、同じエラーのままです。

何か他に考えられることがありますでしょうか?
736732:2006/12/16(土) 21:23:54 ID:vIgGXUoj
何でもありません。
わざわざ人に聞くようなレベルの話ではありませんでした。
737nobodyさん:2006/12/16(土) 21:26:45 ID:???
>>735
mysql関数使えないっしょ
738nobodyさん:2006/12/16(土) 21:30:39 ID:???
>>726
結論から言うと危険

「マルチバイト XSS」 でぐぐってみ

あとはHTTPヘッダーで文字コード宣言を必ずすること
これがXSS対策の基本
739696:2006/12/16(土) 21:44:32 ID:HXTFaSG2
>>701
ピクセル単位ですか・・・
俺もそうかと思ったんですが、
だとすると1インチあたりのピクセル数の指定が
どこかにあると思うんです。

PDF って印刷物指向ですよね。
740735:2006/12/16(土) 21:54:02 ID:a8ebIslZ
>>737
え?どういうことですか?
741nobodyさん:2006/12/16(土) 22:12:27 ID:???
>>735
php.iniの設定だろうね
俺はここでちゃんとできたよ
http://www.srvmap.com/windows/php5.html
742nobodyさん:2006/12/16(土) 23:21:34 ID:???
>>741
すみません、解決しませんでした。
真剣に悩んでおります・・・。
743nobodyさん:2006/12/17(日) 00:24:20 ID:???
OS:Win2K
Apache2.2
PHP5.2
MySQL5.0.27

文字化けで困っています。
MySQLはSJISに設定しています。

コマンドプロンプトからMYSQLを使用すると正常出力
phpMyAdminを使用すると正常出力
PHPをブラウザで使用すると文字化け(mysql_client_encodingで調べるとlatin1)
   →2バイト文字が?と表示されます。

解決策をご存知の方助けて下さい。
744nobodyさん:2006/12/17(日) 00:41:20 ID:???
>>714
できる。
そもそも、基本的なHTML(CHTML・XHTML)などは3キャリア側のサーバーで
自動変換してくれるから問題ないと思いますよ。
ただし、HDML(古いAU端末とTuka端末)のform処理などは対応できていないので注意!
うちは、HTMLを各ノード単位で分割してコンバーター(HTML・CHTML・XHTML・HDNL変換)を通して
表示するようなフレームワークを作って使ってます。
745nobodyさん:2006/12/17(日) 00:44:02 ID:ilUpD26l
SQLに接続するとき
set name sift-jis
みたいにすればいいんじゃね?
746nobodyさん:2006/12/17(日) 03:44:42 ID:irlLnY56
なんでPHPのロゴに雪が積もってるんだ?
747nobodyさん:2006/12/17(日) 03:47:19 ID:???
>>734
お前、どうしようもねぇバカでクズだな。
何様のつもりだ。

せっかくもらったアドバイスを無視した挙句に、逆に批判かよ。
お前マジで氏んだほうがいいよ。
748nobodyさん:2006/12/17(日) 04:34:15 ID:???
>>746
ぉ、ほんとだ。

冬だねぇ
749nobodyさん:2006/12/17(日) 07:56:55 ID:fDowNRkw
すみません、phpはじめたばかりなんですが、現在秀和システムの
「きょうから使えるphpサンプル500」っていう本で php.ini の設定しています。

そのなかで、mbstring.script_encoding=EUC-JP という設定を変更するように
書いてあったんですが、ファイルのソースを見たら mbstring.script_encoding が
ありません。
これは追加で書き足していいものでしょうか?
また、デフォルトで ; でコメントアウトされてるmbstringパラメータは全部コメントアウト解除
すべきですか?

あと、phpではないんですが、httpd.confの設定で、
AddDefaultCharset none という項目を編集するように書いてあるんですが、
この項目もhttpd.conf にありません。やはり追加書き足しすべきでしょうか?

phpのバージョンはphp-5.2.0 OSはwinXP Apache2.2です
750nobodyさん:2006/12/17(日) 08:09:42 ID:???
>>749
まずはデフォルトで起動してみて以後自分の設定に変えていけば
あなたの設定したい項目は文字コードにかかわる部分なので
設定しないと起動しないような項目ではない

FA : 書き足す必要は無い
751nobodyさん:2006/12/17(日) 08:19:09 ID:fDowNRkw
>>750
すばやい回答ありがとうございます
そうですか、とりあえず、書き足さないで出来るところからやろうと思います。
いま、環境変数を返すphpを作って(サンプルにしたがって)見たんですが、
ブラウザに表示しないでファイルをダウンロードしてしまいます。
これはなぜですか 

かなりショボイ質問だと思いますが、、php.iniの設定がおかしいんでしょうか
752nobodyさん:2006/12/17(日) 08:57:15 ID:???
>>751
Apache の設定の方に
AddType application/x-httpd-php .php
これを書き加える
753nobodyさん:2006/12/17(日) 09:11:25 ID:???
○○.phpにしてないって落ちだろw
754nobodyさん:2006/12/17(日) 09:43:07 ID:fDowNRkw
>>752
うおっ 動きました!
httpd.confをみたら、AddType application/x-httpd-php .phpが
AddType application/x-hpppd-php .php
になってました
サンキューです助かりました! よかったー
今年中にアンケート管理と掲示板とメールフォームまで出来るようになろう

ありがとー
755nobodyさん:2006/12/17(日) 11:20:29 ID:cjUGVVxQ
タイトル:string年度 の"タイトル:"と"年度"の間にある部分だけを取り
出したいのですが。

$title = mb_ereg('/"タイトル:"([^"]*)"年度/',$str_contents , $match_title);
$str_title = $match_title[0];
print($str_title);

このようにしているのですが、うまくとりだせません。
どのようにすべきか、教えていただけないでしょうか。。。
756nobodyさん:2006/12/17(日) 11:39:59 ID:???
>>755
正規表現を勉強すべき
757nobodyさん:2006/12/17(日) 11:47:52 ID:???
>>755

mb_regex_encoding('sjis'/*必要だったら変更して*/);
$title = 'タイトル:string年度';
mb_ereg('タイトル:([^"]+)年度', $title, $matches);
print_r($matches);

できれば、文字コードをはっきりさせてpreg_match()と16進エスケープを
使ったほうがいいと思うけど。
758nobodyさん:2006/12/17(日) 11:55:39 ID:???
>>756
>正規表現を勉強すべき
お前がな。
759nobodyさん:2006/12/17(日) 12:09:24 ID:???
>>747といい
>>756といい
こいつらは、アドバイスしてあげてるつもりなんだろうな。
誰も聞いてないけどw
760nobodyさん:2006/12/17(日) 13:21:27 ID:ssFbcwFM
会員登録ページを作っています。
流れとしては、
入力 → 確認画面 → 修正or登録
な感じです。

入力項目の中にはドロップダウン形式のものや、チェックボックス形式のものがあります。
確認画面から修正画面に戻るときに入力された値を表示させるためにはどうすればいいでしょうか?

自分で考えた方法はフォームを
例:血液型
<select name="blood_type" size="1" tabindex="0">
<option value=1 '.$_POST['blood1'].'>A</option>
<option value=2 '.$_POST['blood2'].'>B</option>
<option value=3 '.$_POST['blood3'].'>AB</option>
<option value=4 '.$_POST['blood4'].'>O</option>
</select>
のようにして、確認画面からhiddenでひっぱって来るものです。
これだとかなり手間がかかって無駄が多いような気がします。
他にもっと賢い方法があるようでしたら教えてくれませんか?
761755:2006/12/17(日) 13:24:37 ID:iRROmMBS
>>757
解決しました。どうもありがとうございます。
762nobodyさん:2006/12/17(日) 13:44:40 ID:???
>>760
$_POST['blood1']
これは何の意味があるんだ?
そこにselectedとか入るわけか?
763nobodyさん:2006/12/17(日) 13:50:17 ID:???
ちっともphpの話じゃないだろw
764nobodyさん:2006/12/17(日) 13:52:21 ID:ssFbcwFM
>>762
そうです。
765nobodyさん:2006/12/17(日) 13:53:20 ID:???
>>760
>他にもっと賢い方法
まず公式マニュアルを読んで、
次に巷の解説サイトをいくつか見ればわかるよ
766nobodyさん:2006/12/17(日) 14:00:11 ID:irlLnY56
>>748
北半球ではね。
こういう北半球中心視点は良くないと思う。
767nobodyさん:2006/12/17(日) 14:13:32 ID:???
>>760
そのやり方でいいよ
そのやり方がベスト

>>766
そう思ってるのはおまえだけ
768nobodyさん:2006/12/17(日) 14:41:40 ID:ssFbcwFM
>>763
javascript使ったら簡単にできました。
サンクス子
769nobodyさん:2006/12/17(日) 14:44:53 ID:???
>>768
どうやったの?
770nobodyさん:2006/12/17(日) 14:48:11 ID:ssFbcwFM
修正ボタンをこれにしました。
<input type="submit" onclick="javascript:history.back();" value="修正">
771nobodyさん:2006/12/17(日) 15:38:59 ID:???
デザインとロジックの分離において、処理をファイルにまとめて
メインファイルからロジックをincludeしたら、
テンプレートつかわなくてもデザインがスッキリすると思うのですが、
どうでしょうか?
772nobodyさん:2006/12/17(日) 15:42:37 ID:???
そうだね
773nobodyさん:2006/12/17(日) 15:44:37 ID:???
スレ違いばかり・・・
774nobodyさん:2006/12/17(日) 15:59:14 ID:8qXdAMYD
教えてください!
www.xxx.com/aaa.php?id=1&next=1
nextの1で処理を行っているのですが
リロードでも有効になってしまいます。
これを回避する方法などありますでしょうか。

submitからなら対策できるのですが、埋め込んだURLからは
どうしたら回避できるかわからず詰まっています。
775nobodyさん:2006/12/17(日) 16:26:11 ID:???
>>774
アダルトの宣伝おつ
776nobodyさん:2006/12/17(日) 16:43:39 ID:???
>>774
POSTでやってる対策をGETでもやれば良い
777nobodyさん:2006/12/17(日) 16:49:09 ID:ttycNJ+p
変数.txtってファイルを指定したいんですが
どのように書けばいいのでしょうか?
↓こんな感じなんですけど
$text = 12;
$hantei = file_exists($text.'.txt');//ここでエラーでます
778nobodyさん:2006/12/17(日) 16:51:21 ID:???
>>775
例で適当にうったのはアダルトだったのね すません。
>>776
ありがとう!
779nobodyさん:2006/12/17(日) 17:23:12 ID:???
>>777
$hantei = file_exists($text.".txt");
780nobodyさん:2006/12/17(日) 17:35:56 ID:???
同じだろ?
それよりまず何てエラーが出てるのかくらい書こうよ
781nobodyさん:2006/12/17(日) 17:40:18 ID:???
>>777
もしくは
$text = "12";
782nobodyさん:2006/12/17(日) 17:57:37 ID:ttycNJ+p
Parse error: parse error, unexpected T_VARIABLE in 〜〜〜〜こんなエラーです
783nobodyさん:2006/12/17(日) 18:21:53 ID:???
>>777の記述は問題ないからその行の前あたりに;や""のつけかた等みなおしてこい
784nobodyさん:2006/12/17(日) 18:27:41 ID:???
ポスティングスレで自分から進んで作ったんですがセキュリティみてもらえませんか?
ttp://posting.is.land.to/
785nobodyさん:2006/12/17(日) 18:49:28 ID:???
CSVファイルのなかに <a href="yahoo.co.jp" title="トップ,ヤフー">のように”があった場合や、カンマがあった場合、

"<a=""yahoo.co.jo"" title=""トップ,ヤフー"">"となってしまうのですが、これをPHPで読み込むときに、外の"を外して、””を”に変換するにはどうしたらいいでしょうか?

それと勝手に””が就かないようにするにはどうしたらよいかアドバイス頂けないでしょうか?
786nobodyさん:2006/12/17(日) 18:59:05 ID:???
変換するしなくていいじゃん。そういう設定にしてあるだけだから
php.iniの設定をたしかめろ。入門者向け教本にたいてい書いてある設定外の項目いじっただろ?
787nobodyさん:2006/12/17(日) 20:12:06 ID:???
>>785
意味がわからん。それはCSVファイルを保存する時にそうなってるだけじゃねーの?PHPで読み込む前の話。
788nobodyさん:2006/12/17(日) 20:19:48 ID:???
よくわからんけどreplaceすればいいんじゃないのか?
789nobodyさん:2006/12/17(日) 20:31:33 ID:a5bdt7ul
hiddenは絶対に使わないほうが無難でしょうか?
かわりにセッションを使うほうがいいですか?
セッションの場合、クッキーとURL埋め合わせがありますけど、
firefox等のブラウザの設定でセッションを受け入れない場合、
クッキーもURLも無効となってしまうのでしょうか?
あと、セッションはサーバにゴミがたまりますよね?
そのゴミは勝手に削除してくれますか?たとえばクッキーに時間制限があるような感じで。
どなたかお願いいたします。
790735:2006/12/17(日) 20:48:39 ID:EKx6N1fN
すみません、解決しないのでどなたか答えていただけると嬉しいです。

ググったところでは、mysql/mysqliエクステンションが組み込まれていないとのこと。
php_mysql.dll、php_mysqli.dllがあり、extension=php_mbstring.dllもコメントアウトしています。
その他何か原因があるようなのですが、思いつきもしません。
791nobodyさん:2006/12/17(日) 20:52:22 ID:???
windowsで動かしてんの?
792735:2006/12/17(日) 20:55:58 ID:EKx6N1fN
>>791
はい、Windowsです。

WindowsXP SP2
Apache 2.0.58
PHP 5.0.4
MySQL 3.23.58

2台PCがあり、片方は設定して動くのですが、
ノートパソコンの方がエラーが出る状態です。
793nobodyさん:2006/12/17(日) 21:00:31 ID:???
片方動くならそれと比較してみれ。
phpinfoでMysqlの欄とか表示されてるかい?
dllファイルちゃんとあるよね?
794735:2006/12/17(日) 21:01:18 ID:EKx6N1fN
あー、今infoで「MySQL」を検索しても見つかりませんでした。

つまり、php_mysqlを読み込んでいないということですよね・・・^^;
php_mysql.dllの位置がデフォルトのままなのですが、どこへコピーすれば良いのでしょうか?
795743:2006/12/17(日) 21:03:26 ID:???
誰か>>743頼む
796785:2006/12/17(日) 21:05:23 ID:???
>>787
そうです。CSV保存の時に勝手に””がついてしまうのです。
保存の都度””を置換・削除すればいいのですが、結構な量がある上に、頻繁にデータを書き換えるので、いちいちするのは非常に面倒なのです。

>>788
有り難うございます。ただ、置き換えと削除の両方をしたいのです。
"<a〜 の部分は "を削除したいし、""は"に置き換えたい

皆さん、,や"があるCSVファイルを読み出すときはどうされてるのでしょう?
797735:2006/12/17(日) 21:08:24 ID:EKx6N1fN
何度もすみません。
extensionのディレクトリパスを指定していなかったです。
Apacheを再起動しましたが、エラーは解決されずのままです・・・。
phpinfoでMysqlの欄を見たのですが、まだ表示されません。
798nobodyさん:2006/12/17(日) 21:10:52 ID:???
>>796
"(ダブルクオート)の2個の連続は、ダブルクオート1個を表す。その動作は普通。
799nobodyさん:2006/12/17(日) 21:19:17 ID:???
だから737書いたのに
800nobodyさん:2006/12/17(日) 21:21:27 ID:???
>>797
phpinfoに表示されているphp.iniが修正しているphp.iniと同じか確認した ?
801nobodyさん:2006/12/17(日) 21:22:23 ID:???
802735:2006/12/17(日) 21:23:56 ID:EKx6N1fN
>>800
あ・・・、全然違っていました・・・
php.iniの場所を変えるのじゃなくって、
パスを変更することは可能なのでしょうか?
803nobodyさん:2006/12/17(日) 21:28:18 ID:fhT0kY1a
質問です。
インストールしたソフトの実行出力の結果を取得したくてsystem関数を使ったのですが、
1とか2とかの数字しか返ってきません。具体的には、
<?php
$rtn = system("/usr/local/bin/lame", $retval);
echo "retval=$retval";
echo '<br>';
echo "rtn=$rtn";
?>

実行結果
retval=1
rtn=

となります。rtnには結果すら返ってきてません。
しかし、lsなどのシステムコマンドだときちんと結果が返ってきます。
ちなみにpassthru関数でも同じでした。

どうすれば結果を取得できるのでしょうか?
PHP 4.4.4 with Suhosin-Patch 0.9.5 (cgi-fcgi)
804nobodyさん:2006/12/17(日) 21:32:01 ID:???
805nobodyさん:2006/12/17(日) 21:38:08 ID:???
806735:2006/12/17(日) 21:39:20 ID:EKx6N1fN
>>804
有難うございます、解決しました。
最初に設定できて余裕をもっていたのが間違いですね、
こんな初歩的なとこから間違えるとは・・・
お答えいただいた皆様、有難うございました
807nobodyさん:2006/12/17(日) 21:58:04 ID:???
こんばんは、ひとつ質問させてください。

$result = mysql_query("SELECT * FROM account WHERE name = '$name'");

この場合は、name=$nameであればTRUEを返すということなのでしょうか。
name=$nameのとき、そのnameがある行を取得したいのですが、どのようにすれば良いのでしょうか?
808nobodyさん:2006/12/17(日) 22:05:26 ID:???
せめてマニュアルくらいみようよ

ttp://us2.php.net/mysql_query
809nobodyさん:2006/12/17(日) 22:07:20 ID:???
>>807
TRUE/FALSEを返すとかではなくて、リソースを返すのだ。マニュアルを見よ。

行を連想配列に格納するには mysql_fetch_arry。
810nobodyさん:2006/12/17(日) 22:18:23 ID:fhT0kY1a
>>805
ありがとうございました。
早速以下のように書いてみたのですが、何も出てきませんでした。
なぜかコンソール画面には出力されてきましたが…

<?php
$handle = popen("/usr/local/bin/lame", 'r');
if ($handle){
while (!feof($handle)){
$line = fgets($handle);
echo $line;
}
pclose($handle);
}
?>
811nobodyさん:2006/12/17(日) 22:27:26 ID:???
function test($str1,$str2){

echo $str1."<br />\n";
echo $str2."<br />\n";

}

$str1 = "ホゲホゲ";
$str2 = "あいうえお";

test($str1,$str2);

このように、functionに2つの関数を送るのはできないのでしょうか?
812nobodyさん:2006/12/17(日) 22:29:07 ID:???
すみません、できましたが、function内で
mysql_select_db($db);
mysql_query($sql);
を使うのは不可能でしょうか?

mysql_fetch_assoc(): supplied argument is not a valid MySQL result resource in

とエラーがでます;;
813nobodyさん:2006/12/17(日) 22:30:31 ID:???
>>811
それを実行してみろ。
814nobodyさん:2006/12/17(日) 22:36:06 ID:???
>>812
エラーメッセージを読め。
ヒント: mysql_connect( )
815nobodyさん:2006/12/17(日) 22:48:19 ID:???
>>810
lameに引数を渡していないとすると、helpがエラー出力に表示されているじゃないの?
816nobodyさん:2006/12/17(日) 23:01:56 ID:1O1pcw5Y
$_GET, $_POST, $_COOKIE を 変数$varで参照できるようにしたいのです。

つまり $var["id"] = $_GET["id"] = $_POST["id"] = $_COOKIE["id"] ということ。
どのようにすれば効率良くできるのでしょうか?
817nobodyさん:2006/12/17(日) 23:05:10 ID:???
request
818nobodyさん:2006/12/17(日) 23:06:24 ID:fhT0kY1a
>>815
引数に --helpを渡したら出ました!
まさかエラー出力だとは…
ありがとうございました。
819nobodyさん:2006/12/17(日) 23:08:32 ID:???
掲示板などで、POSTで大量に送られてくるデータ
$hogehoge1 = $_POST['hogehoge1'];
$hogehoge2 = $_POST['hogehoge2'];
$hogehoge3 = $_POST['hogehoge3'];
$hogehoge4 = $_POST['hogehoge4'];
$hogehoge5 = $_POST['hogehoge5'];

これを、一括して$hogehoge[1]〜$hogehoge[7]
に格納する方法などはないのでしょうか?
820nobodyさん:2006/12/17(日) 23:11:57 ID:1O1pcw5Y
>>817
詳しくたにょむ。
821796:2006/12/17(日) 23:15:30 ID:???
>>798
動作が正常なのはわかるのですが、"<a=""〜""となるとリンクが使えなくなってしまったりしませんか?

とんちんかんなこときいてるでしょうか?
自分の環境では、そのまま読み出すとリンクが使えなくなってしまうのでなんとか""を"に変えて邪魔な"を削除したいと考えているのですが。
822nobodyさん:2006/12/17(日) 23:17:10 ID:???
"を\"にすればいいんじゃね?
823nobodyさん:2006/12/17(日) 23:17:57 ID:MMBQG3mK
よくDB接続の際にPEARを使っている例を見かけるのですが
普通にPHPで接続するのとPEAR使うのとではなにが違うのでしょうか?
利点などあれば教えていただきたいのですが・・・
824nobodyさん:2006/12/17(日) 23:20:57 ID:1O1pcw5Y
>>817
あぁ、$_REQUEST ね……。
ありがとうございました。
825nobodyさん:2006/12/17(日) 23:23:22 ID:???
>>819
name="hogehoge[]"
826nobodyさん:2006/12/17(日) 23:26:53 ID:???
>>816
ttp://jp2.php.net/manual/ja/reserved.variables.php#reserved.variables.request

$_REQUEST[""id"]って感じでそれら同じ名前の値をとることができる
827nobodyさん:2006/12/18(月) 00:02:49 ID:???
PHPからプログラミングを始めて1年ちょっと。
最近はやっとクラスやフレームワークを使用し、
見た目にもある程度のスクリプトが組めるようになってきたかな
と自分では思ってます。

windows用のアプリを作りたい理由があり、
visual C#を始める準備をしてるのですが、
敷居って結構高いでしょうか?

質問自体がアバウトなんで、
アバウトな返答でいいのできぼんぬ
828nobodyさん:2006/12/18(月) 00:09:18 ID:Nj+uTZZ4
PHPとC#は全然違うけど、まあ結局は作りたいものがあるかってことで、
目標に進んでいけるかどうかだ。
単になんとなくやってみたいな、ぐらいだと無理かもしれない。

C#は全てがクラス。何でもクラス。とにかくクラス。.NET Frameworkの習得必須。
PHPみたいに関数主体でクラスはおまけってのとは全然違うから、頑張ってね。
829nobodyさん:2006/12/18(月) 00:15:56 ID:???
>>827
phpから入っちゃったか・・・逆だと楽だったのにな。
ま、何事もやる気と根気。敷居の高さなんざ気にしてたら何もできん。
830nobodyさん:2006/12/18(月) 00:53:44 ID:???
>>828
C#なんかよりVC++.netにしとけ
831nobodyさん:2006/12/18(月) 00:57:51 ID:???
>>823
ある程度DB使わないと、PEARとかの使い勝手の良さはわからないかも。

例えばDB使うのってSELECTがほとんどってことが多いけど、接続して
クエリ投げてリソース受け取ってループとかで値受け取ってって流れは
ほとんど共通してる。
なのでこれをSELECTするごとに毎回やるんじゃなくて、関数とかクラス
とか作って、引数にクエリ投げたら配列で結果取れるようにしよう、
とか考えるよね。

んでそういったものがもうPEARとかADOdbとかですでに用意されている
ならそれ使おうって話になるってところかなあ。
デバッグしやすい環境がすでに整えてあったりとか、使いやすいように
工夫されてるし、多くの人が使ってる実績があるから使い方さえ間違え
なきゃちゃんと動くって安心感もあるしね。

他にもいろいろあると思うけど、一番大きなメリットはこの辺じゃないかな。
832nobodyさん:2006/12/18(月) 01:02:19 ID:Nj+uTZZ4
>>830
釣りですか?
833nobodyさん:2006/12/18(月) 02:18:42 ID:5VuKWrp+
みんなphpMyAdminのバージョンって何使っている?
最新の2.9.1.1?

つーか、2.8以降のデザインが好きになれないので未だに2.7.0-pl2使っているよ。
俺と似たような人居る?
834nobodyさん:2006/12/18(月) 07:39:52 ID:???
それ聞いてなんになるの?
835nobodyさん:2006/12/18(月) 08:07:35 ID:???
ヒント:スレタイ
836nobodyさん:2006/12/18(月) 08:46:32 ID:???
バグもないし安定した2.6使ってますが何か
837nobodyさん:2006/12/18(月) 13:57:06 ID:???
$var = "テストです";
function test(){

echo $var;
}
test();

これで「テストです」と表示したいのですが、
function内で外部の変数を持ってくるのは
test($test)でしか持ってこれないのでしょうか?
838nobodyさん:2006/12/18(月) 14:10:41 ID:???
global
839837:2006/12/18(月) 14:36:19 ID:???
>>838
global $var;
で解決できました。ありがとうございます。
840nobodyさん:2006/12/18(月) 14:48:42 ID:???
>>714
ウイルコムのこともたまには思い出してあげてください><
841nobodyさん:2006/12/18(月) 15:12:14 ID:???
PHPでモザイクの解除をすることになりました。
GDが入っていますので、やり方やヒントをお願いします。
842nobodyさん:2006/12/18(月) 15:21:23 ID:???
目を細くして
843nobodyさん:2006/12/18(月) 15:29:54 ID:???
8448411:2006/12/18(月) 15:31:51 ID:???
WEBでアップされた動画のモザイクを除去しなければならないのです。
できなければ、大変なことになりますよ?
845nobodyさん:2006/12/18(月) 15:34:22 ID:???
できちゃった方が大変だと思うんだが。
846nobodyさん:2006/12/18(月) 15:41:31 ID:???
>>844
そうか、大変だな。
できたら教えてくれ。
847nobodyさん:2006/12/18(月) 15:43:50 ID:???
>>831
なるほど。
ありがとうございました。
848nobodyさん:2006/12/18(月) 15:45:49 ID:???
@$result = $db->query($sql);
A$result = mysql_query($db,$sql);

上記2つは同じ意味なのでしょうか?
何か違いなどがあれば教えてください、
849nobodyさん:2006/12/18(月) 15:49:36 ID:???
>>848
その$dbを定義した部分を見て見れ。
850848:2006/12/18(月) 15:51:39 ID:???
>>849
あー、@は$dbで接続してるのか
Aはデータベース名か、把握

ちなみにどっちですると効率がいいのかな?
851nobodyさん:2006/12/18(月) 15:56:48 ID:???
>>848
1の$dbはたぶんユーザーが作ったクラスをインスタンス化したのを
変数にいれて、そのクラスのqueryメソッドを使ってる。

2はPHP側が用意してるmysql関数。

1のクラスの中身がわからないとこたえられない。
1のソースの上のほうで、$db = new HogeHoge;
となってるなら、HogeHogeがクラス。
852848:2006/12/18(月) 15:59:28 ID:???
@は

$username = "dbuser";
$password = "dbpass";
$host = "dbhost";
$database = "dbname";
$db = DB::connect("mysql://$username:$password@$host/$database");

となっていました
(phpspot)
853nobodyさん:2006/12/18(月) 16:01:59 ID:???
>>852
>$db = DB::connect("mysql://$username:$password@$host/$database");

DBクラスのconnect変数を見れ。
854nobodyさん:2006/12/18(月) 16:07:39 ID:???
mysql_queryって引数sql文だけじゃなかったっけ?
@はPEAR接続だよね
8558411:2006/12/18(月) 16:33:48 ID:???
皆さんのおかげで助かりました。
どうにかなりそうです。
856nobodyさん:2006/12/18(月) 17:02:36 ID:dkU1jlj9
ファイルにhtmlのタグを書き込もうとしてるんですが
日本語の部分が文字化けして書き込まれてしまいます
なぜなんでしょうか?

ちなみにこんなかんじで書いているのですが「さんのページ」ってとこが
文字化けしてしまいます
$text=12;
$test = '<P>id'.$text.'さんのページ</P>';
fwrite($fp,$test);
857nobodyさん:2006/12/18(月) 17:03:21 ID:???
文字コードが違ってるから
858nobodyさん:2006/12/18(月) 17:04:40 ID:???
エンコードの問題としか思えないけど・・・・
859856:2006/12/18(月) 17:12:32 ID:dkU1jlj9
プログラムは文字コードEUCなんですが
書き込まれるときのコードが違うってことですよね
どうすれば直すことができるんでしょうか?
860nobodyさん:2006/12/18(月) 17:12:33 ID:HkDghXE6
8スレ先から登場した未来人
861nobodyさん:2006/12/18(月) 17:15:47 ID:???
>>859
metaタグで文字コード指定してる?
また、表示⇒エンコードでEUC指定してる?
862nobodyさん:2006/12/18(月) 17:16:08 ID:???
>>859
とりあえず切り分けしてみれ。
htmlはどのコードで表示された時にどの文字列が化けているか。
どの文字列はEUCでどの文字列がどんな文字コードになってるのか
863856:2006/12/18(月) 17:34:56 ID:dkU1jlj9
metaタグでEUCに指定したらできました!
みなさんありがとうございました
864nobodyさん:2006/12/18(月) 17:44:32 ID:???
(゚д゚)
865nobodyさん:2006/12/18(月) 19:08:44 ID:???
META・・・タグ・・・で・・・
866nobodyさん:2006/12/18(月) 19:30:54 ID:2g+3BvDA
大規模なサイトでは会員登録などあると思いますが、
ログインを簡単に行うために、URLにログインIDを埋め込みたいのですが、
携帯ユーザーに限定して行ったほうがよろしいでしょうか?
867nobodyさん:2006/12/18(月) 19:52:37 ID:???
>>854
だよね。

>>848
PEAR:DBは、DBの違いを吸収して統一的に扱えるようにすることを
目指す(※)ライブラリ。DB:::connectでPostgreSQLのDSNを指定すると、
ソースを変更することなくDBをスイッチできる。

※PEAR::DBで用意されてるメソッドだけを使っていれば、MySQL特有の方言(SQL)を
使用してると当然駄目。

似たようなクラスにはMDBとかMDB2とかあり、DBは歴史が古い分パフォーマンスは
いまいちといわれる。でもMDBにしたってオーバヘッドはあるから、DBを変える予定が
なく、パフォーマンス優先ならMySQL関数使えばいいのでは。

あともうひとつPDOのようにDBアクセス部分をCで書いたやつので、これならPHPの
MySQL関数より早いということもあるかと。

簡潔に書くため一部不正確なところもあり。できることは同じでも目的は異なるので、
良く考えてチョイスすればよろし。
868nobodyさん:2006/12/18(月) 20:04:08 ID:???
>>866
クッキー使えばいいんじゃね?
869nobodyさん:2006/12/18(月) 20:32:03 ID:???
>>868
携帯はクッキー使えないのあるぜ
870nobodyさん:2006/12/18(月) 20:34:25 ID:???
URLがログインIDになってるくらいなら別にいいんじゃないか?
パスワード認証後のログイン状態のフラグが別途セッションに記録されてれば。
871nobodyさん:2006/12/18(月) 20:38:07 ID:S0EIOHKJ
>>869
ほとんどの携帯がクッキー対応してるってどっかでみたような気がするんだぜ
872nobodyさん:2006/12/18(月) 20:43:10 ID:???
DoCoMoは最新でも対応してない
873nobodyさん:2006/12/18(月) 20:49:48 ID:???
DoCoMo糞
874nobodyさん:2006/12/18(月) 20:55:05 ID:HkDghXE6
ドコモはutn送信させればオケー。
875nobodyさん:2006/12/18(月) 21:12:23 ID:2g+3BvDA
携帯ユーザーのみに限定して、utnはユニークなものなのでしょうか?
たとえば、全国のp902ユーザーが同じ識別情報になることはありませんよね?
876nobodyさん:2006/12/18(月) 21:13:04 ID:???
>>844
Pear::FLmask
877nobodyさん:2006/12/18(月) 21:29:36 ID:???
>>875
ないよ
っていうか、どこがPHP?
878nobodyさん:2006/12/18(月) 21:31:52 ID:???
>>875ユニークなものだから安心しろ。
>>877みたいなバカはほっといていいよ。
879nobodyさん:2006/12/18(月) 21:33:23 ID:???
                         「 ̄i
                   「 ̄ ̄ ̄ ̄`!: : :! ̄ ̄ ̄ ̄.|
                  |       ^~^         |
                  |    .ノ     _,_  土  |
                 |    ヽ     米   し   .|
               |   十_゙  ナ 、  -    |
              |   l ‐   ょ  ⌒) .|
              |.    +   i 、      |
                   |    ⊂   `       .|
                  |    { )  て``    |
                 |              |
                |               |
                |__________|
880nobodyさん:2006/12/18(月) 22:39:42 ID:HkDghXE6
utn後のUSER AGENTの
serXXX…;
serXXX…
XXX…の部分取得でおけー。
881 ◆TmZMmKDjC6 :2006/12/18(月) 22:50:58 ID:???
WindowsXpSP2でApache2.0/59、PHP5.2で
mb_send_mailの行で以下のエラーが返されたのですが、
マイネットワーク→プロパティの「ブリッジ接続」を削除したら問題なく実行できるのですが、
ブリッジ接続を有効にすると以下のエラーが返されます。
ブリッジ接続を使いながら以下のエラーをださないようにするにはどうしたらよろしいのでしょうか?

Warning: mb_send_mail() [function.mb-send-mail]:
Failed to connect to mailserver at "myhomes" port 25,
verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in
882nobodyさん:2006/12/18(月) 22:52:35 ID:MrE6rWZc
<input name="file" type="file" size="40" />
というタグでメールに添付ファイルを付けられるフォームを作っています。

php側で2Mの容量制限をかけたのですが、phpinfo()で表示される容量の制限が2Mとなっており、2M以上のファイルだとphpのチェックを受けず、
実際に送信する際にエラーが出てしまいます。

こういう場合は、phpの制限を無制限にしたりするものなのでしょうか?
883nobodyさん:2006/12/18(月) 23:00:39 ID:???
>>882
php.iniで設定
884nobodyさん:2006/12/18(月) 23:02:58 ID:???
>>882
無制限なんてしたらOSのイメージ送りつけられたらどうするyo。
885882:2006/12/18(月) 23:13:28 ID:MrE6rWZc
ありがとうございます。
upload_max_filesize以外に設定する箇所があるのでしょうか?

現在upload_max_filesizeが2Mになっており、php側で2Mのチェックを
記載しているにも関わらず、2Mを超えると、その制限が効いてくれないようなんです。

886nobodyさん:2006/12/18(月) 23:32:15 ID:???
pache2.2以降つかったほうがいいよ。ファイルサイズの制限が見直されてるから
887nobodyさん:2006/12/18(月) 23:45:06 ID:lM2dvpvb
>>880
foma番号と端末製造番号、どっちがええの?
888nobodyさん:2006/12/18(月) 23:45:23 ID:???
PDOStatementで実際に実行したSQLの取得ってできねーのかな
889nobodyさん:2006/12/19(火) 02:55:06 ID:???
指定したディレクトリ以下(サブディレクトリ含む)にあるファイル全てのリストを作成するにはどうしたらいいでしょうか。
890nobodyさん:2006/12/19(火) 03:59:54 ID:???
dir
891nobodyさん:2006/12/19(火) 09:04:00 ID:???
ロジック的な質問させて下さい!
コミュニティーサイトなどで、相手の会員番号の隠蔽はどうやってやっているんでしょうか?

一覧表示からmember.php?user=****の様に
詳細を見れる様にしてたんだけど、これだと会員番号が丸出しだから
member.php?list=0&area=1&etc=n...
member.php?list=1&area=1&etc=n...
って連番と検索条件をパラメーターで渡して、
Mysqlで
limit 0,1
limit 1,1
参考サイトが連番を振っていたので、そうなのかなと思ってやってみたけど
ロジック的にどうなのか自信なくなってきました・・・orz

こんなまどろっこしい事しないで、相手の会員番号をセッションに登録すればいいだけでしょうか?




892891:2006/12/19(火) 09:12:11 ID:???
あ、一覧表示の場合はセッションに登録してもダメですね;
一覧表示→詳細表示→何かしらのアクション(使うとしたらここですね)
893nobodyさん:2006/12/19(火) 09:18:46 ID:???
>>891
何をしたいのか今一つ判らんのだが
会員番号をログインIDとかに使っていなければ
まんま引数指定で良いんじゃない?
セッションとか言ってるのが引っかかるが…
894nobodyさん:2006/12/19(火) 09:21:58 ID:???
>>891
つまり、会員番号=IDってこと?

番号/ID
0001/test
0002/guest
0003/hogehoge
0004/php
0005/cgi

こんな感じにIDごとに番号振り分けたらいいんじゃまいか?
895891:2006/12/19(火) 09:32:33 ID:???
>893
要は会員サイト内で相手の会員IDを分からなくしたいんですよ。
検索かけて会員リストがずらっと出て、その会員の詳細をみる時に
パラメーターで会員番号渡したら簡単なんですが、隠蔽するにはどうしたらいいのかなと・・・。

>894
そういう風にはしてるんですが、詳細見るときに会員番号をパラメーターで渡したくないんです。
896nobodyさん:2006/12/19(火) 09:35:59 ID:???
http://example.com/?id=00001

これを

http://example.com/

これでできるようにってこと?

だったらセッション
897891:2006/12/19(火) 10:06:00 ID:???
>896
うーむ。それは分かるんですが・・・。

<a href="member.php?list=0">亀田</a>
<a href="member.php?list=1">やくみつる</a>
<a href="member.php?list=2">ガッツ</a>
と、ページに会員の詳細表示のリンクをアクセス順に
ソートして並べるとします。

上の様にリンクには連番を振ってパラメータで渡す様にしておきます。

それで、
$listNum = $_GET['list'];
SELECT * user ORDER BY access_time DESC LIMIT $listNum,1
(エスケープは今は無視)

とすれば、会員番号をパラメーターで渡さなくても
リストから詳細表示できます。

ここまではいいとして・・・
上の例で言えばアクセスでソートしてるんで会員リストをみている間に、
誰かがアクセスをしたらソート順が変わってしまい
正しく表示されない事が発生するかと途方にくれてまして・・・orz
898nobodyさん:2006/12/19(火) 10:23:00 ID:???
そのlist=0ってのは、アクセス順で
0がアクセス多い、10がアクセス少ないってこと?
で、アクセス数で順位が入れ替わるから、参照ページが変わるってことでおkなのかな?

元々登録順にでも番号割り当てといて
0/abc
1/hogehoge
2/papa
3/awawa

で、順位に並べてみるのは?
高↑ <a href="member.php?list=2">亀田</a>
    <a href="member.php?list=0">やくみつる</a>
    <a href="member.php?list=1">ガッツ</a>
低↓ <a href="member.php?list=3">アントニオ</a>
899nobodyさん:2006/12/19(火) 10:32:47 ID:n9T52ppY
ある配列を空文字ではさんでひとつの文字列にしたいと考えています。
implode("",$hoge)でも実現可能なのですが
マニュアルには「好ましい使用法ではありません。」と書かれています。

implodeを使わずにこれを実現するためにはどうすればいいでしょうか?
900891:2006/12/19(火) 10:35:32 ID:???
>898
アクセスっていうのは、最終アクセス時間を降順でソートしてます。
まぁ、アクセス回数でもロジック的には同じ様なもんですね。

だもんで、
<a href="member.php?list=0">亀田</a>
<a href="member.php?list=1">やくみつる</a>
<a href="member.php?list=2">ガッツ</a>
を見てる間にやくみつるがアクセスしたとしたら、

<a href="member.php?list=0">やくみつる</a>
<a href="member.php?list=1">亀田</a>
<a href="member.php?list=2">ガッツ</a>
こうなってしまう可能性があります・・・。

今はおっしゃる様に、登録降順でソートしてるんですが
見てる間に誰かが登録したらこれも変わりますよね。
まーそんな激しく登録はないはずなんで大丈夫かと思うのですが・・・。

たまにそーなった時はご愛嬌ってことでいいのかなw
901nobodyさん:2006/12/19(火) 10:40:35 ID:???
>>899
好ましくないだけで使用に問題なければ使っていいよ。
それがいやならforeachで.使って連結しろ
902891:2006/12/19(火) 10:41:13 ID:???
>899
$str = $hoge['0'].$hoge['1'];
普通に文字連結だとダメなのかな?

903891:2006/12/19(火) 10:44:33 ID:???
あ、'' いらんしw
寝不足でバグ連発中・・・orz
904nobodyさん:2006/12/19(火) 12:11:03 ID:???
>>899
$array = ("文字A","文字B","文字C","文字D","文字E");
foreach ($array as $value){

$str .= $value;
}

echo $str;


こういうこと?
905nobodyさん:2006/12/19(火) 12:41:15 ID:n9T52ppY
($array as $value)を
($array as $key => $value)で
906nobodyさん:2006/12/19(火) 13:04:40 ID:???
多重配列ならそういえやゴルァ
907nobodyさん:2006/12/19(火) 13:20:17 ID:???
>>905
答えはでてんだから自分でやれよ。甘えるな
908nobodyさん:2006/12/19(火) 13:57:58 ID:???
そもそも、なんで会員番号を隠匿したいのかが判らん…
909nobodyさん:2006/12/19(火) 14:06:07 ID:0YQ9Kyi3
Aページのformのinputへ入力した文字列を、
Bページへpostして表示するコードを書いたのですが
これをセッションで管理しようと思っています。

セッションに関する記述はbページに
session_start();$_session['aaa]=$_post['aaa'];echo $_session['aaa'];
と入力したのですが、もともとpostで送信しているのでセキュリティが甘いと思っています。
Aページ→Bページの間をセッションで受け渡すにはどうしたらよろしいのでしょうか?
910nobodyさん:2006/12/19(火) 14:10:56 ID:???
それは無理じゃね?
SSLにでもするかとかしか・・
911nobodyさん:2006/12/19(火) 14:22:47 ID:???
>>909
何を意味不明なこと言ってんだお前は。
ユーザーからのinputをセッションで管理するにしても、
必ず一度はPOSTしてもらわなきゃ受け取れないだろうが。

>>910
>>909の問題(POSTじゃなくsessionで値を渡したい)については
SSLとか一切関係ないし。
912nobodyさん:2006/12/19(火) 14:27:23 ID:???
>>911
いやいやそれはわかってはいるんだが
セキュリティが甘いとか言ってたからせめて通信でもセキュリティ高めたほうがと思っただけだ。
なんかおかしいこと言ってるなら謝るが・・。
913nobodyさん:2006/12/19(火) 14:56:05 ID:???
一度はPOSTせなあかんセッションなんざtelnetつかえば穴になっちまうぞ
914nobodyさん:2006/12/19(火) 16:00:04 ID:???
もうGETにしとけカス
915nobodyさん:2006/12/19(火) 17:00:40 ID:jG1wL3dB
関数内で、変数の初期化をしたいのですが、
どのように書けばいいのでしょうか?

$a = "";
$a;
916nobodyさん:2006/12/19(火) 17:01:58 ID:???
>>915
unset?
917nobodyさん:2006/12/19(火) 17:07:44 ID:jG1wL3dB
>>916
こんな関数があったのですね。
どうもありがとうございます。
918nobodyさん:2006/12/19(火) 17:51:13 ID:Bk1c9Up1
function sort($a, $b){
global $sort_tgt;
if($a[$sort_tgt] < $b[$sort_tgt]){
return -1; }
else if($a[$sort_tgt] > $b[$sort_tgt]){
return 1; }
else{
return 0;}
}

usort($dispdata, "sort");

id,val,str
-----------------
0,5,あ
1,2,い
2,4,あ
3,3,あ
4,1,い

という感じのシンプルな二次元配列用のソート関数をサンプルを参考に使っているのですが
ソート対象の値が同一のものであった場合(今回の場合はstr)、さらにid順でソートをかけたいのですが
どなたか、良い解決法をご教示願えないでしょうか・・・。
よろしくお願いいたします。
919nobodyさん:2006/12/19(火) 17:53:43 ID:???
>>917
unsetはやめろ
920nobodyさん:2006/12/19(火) 18:23:26 ID:EZ7cfRuw
phpからmysqlにアクセスして、DBの情報を更新したいんですけど
データ型がtextの「introduction」というフィールドの値が変更されません。

日本語や半角英語を入力したものをPOSTで受け取ったものでは変更されませんでしたが
半角数字のみを入力してPOSTで受け取ったものだと変更されました。

また、sql文のintroduction = $textの部分をintroduction = 'よろしく'などとすると変更することが出来ました。

原因がよく分かりません。よろしくお願いします。

<?php
$dbHandle = mysql_connect("localhost","root","tengonran");
if($dbHandle == False){
print("can not connect db\n");
exit;
}
$db = "sns";

$text = $HTTP_POST_VARS["introduction"];
$uid = $myAuth->getAuthData("uid");
$sql = "UPDATE usr SET introduction = $text WHERE uid = $uid";
$rs = mysql_db_query($db,$sql);

mysql_close($dbHandle);

print("登録情報を変更しました");
?>
921nobodyさん:2006/12/19(火) 18:27:19 ID:???
$sql = "UPDATE usr SET introduction = '$text' WHERE uid = $uid";
922920:2006/12/19(火) 18:45:41 ID:???
>>921

ありがとうございます。
変更することが出来ました。

文字列の入った変数を'で括るとおかしいのかと
思ってましたがそれでよかったんですね。
923nobodyさん:2006/12/19(火) 19:44:16 ID:???
>>922
変数はクリーニングしてからクエリーに埋め込んだ方が良いよ
924nobodyさん:2006/12/19(火) 20:04:47 ID:4CUCrx49
文字列内urlの数を数えたいのですが、

$count = eregi("http?", $message);
print $count

としても、1しか帰ってこない・・・


PHP 基礎編9 - 正規表現、マッチ、置き換え、ereg、eregi、eregi_replace - SAK Streets
http://homepage2.nifty.com/sak/w_sak3/doc/sysbrd/php_k09.htm

こちらには、マッチ数と書いてあるのですが・・・
925nobodyさん:2006/12/19(火) 20:15:03 ID:???
>>924
そのサイトの書き間違いでしょ。

公式のマニュアルによると
ttp://www.php.net/manual/ja/function.ereg.php
> int ereg ( string pattern, string string [, array ®s] )
> string の中で pattern がマッチした場合にはマッチした文字列の長さを返し、
> マッチしなかった場合 またはエラーとなった場合は FALSE を返します。
> オプションのパラメータ regs が渡されなかったり マッチした文字列の長さが
> 0 だったりした場合は、この関数は 1 を返します。
と、1もしくは、第3引数を渡した場合に限りマッチした文字列の長さを返すことになっている。

PHPの説明って市販の書籍も含めて「誤り」または「情報が古い」ことが多いので
疑問に思ったら公式マニュアルを参照した方がいい。

あと基本的にはereg()に同じパターンがいくつ含まれているかという検索機能は無いので、
数をカウントすると必ず1個にしかならない。
「httpがいくつ含まれているか」を調べたいならpreg_match_all()を使う。
ttp://www.php.net/manual/ja/function.preg-match-all.php
926nobodyさん:2006/12/19(火) 20:34:31 ID:4CUCrx49
>>925
書き間違えかよ!!!!('A`)
メチャメチャサンクス。
preg_match_all やってみます。

公式見た方がいいのな・・・
927nobodyさん:2006/12/19(火) 20:46:59 ID:???
>>923
クリーニング屋に出すってことか?
例のキャンペーンのせいで、変な用語が飛び出てきたな。
928nobodyさん:2006/12/19(火) 21:17:54 ID:???
>>927
サ●タ●ズとか言うと、
またアフォの自己主張が始まるから、
洗濯でいいんじゃねぇの?
929nobodyさん:2006/12/19(火) 21:25:12 ID:???
ちゃんと乾燥機に入れてくれな
930nobodyさん:2006/12/19(火) 21:47:50 ID:???
ttp://php.s3.to/tt/tt6.php

によるとWEBページを表示する方法として7種類サンプルがありますが、
みなさんはどれを使いますか?それとそれぞれのメリット・デメリットがあれば教えて下さい
931nobodyさん:2006/12/19(火) 22:17:39 ID:???
>>930
1.PHPスクリプトとして評価される→ファイル読み込みも可能だが普通は他の方法で読み込む
2.そのまま出力したい時
3.一度に全て変数に読み込む必要がない時
4.1行ずつ配列に読み込みたい時
5.変数に読み込みたい時
6.ソケットを開いて(略)
7.6とやってる事は同じ。fsockopen使うのが面倒で楽したい時
932nobodyさん:2006/12/19(火) 22:23:14 ID:???
>>930
「取得する方法」でなくて「表示する方法」?
無加工で単に表示するだけならそのサイトに直接飛ばすのが早いんじゃ…

という突っ込みはとりあえず置いとくとして、
とにかく表示(出力)がしたいだけならreadfile()。そのための関数だし。
無加工で取得したいならfile_get_contents()。
行単位に何かしら加工したいならfile()。
加工するけど行単位でないならやっぱりfile_get_contents()。
POST処理とかタイムアウト処理とかが必要ならHTTP_Request。
PEARを使えないケース(って滅多に無いが)ならfsockopen()。
ってとこ。

includeやrequireはPHPとして文法パース&実行を行うんで
そういうのが必要な特殊な用途じゃない限り使わない。
また、そんなのが必要なケースに自分はお目にかかったことがない。

fopenは対象ページがよっぽどでかいとかいうわけじゃなきゃ必要を感じない。
WEBページでなくアーカイブファイルとか動画ファイルとかのダウンロードなら
メモリ確保がシビアになるケースがあるのでこれを使う。
933nobodyさん:2006/12/20(水) 00:09:03 ID:???
>相手の会員番号をセッションに登録すればいいだけでしょうか?

うん。
934nobodyさん:2006/12/20(水) 03:13:58 ID:Cie7izus
try catchをPHPマニュアルでひいてるんですがHITしません。
なんとなく重要な関数(?)っぽいので、
どういう時に使うのかを知りたいのですが、
マニュアルに書いてあるなら誘導していただけませんでしょうか?
ちなみにどういうものなのかも教えていただければ嬉しいです。
935nobodyさん:2006/12/20(水) 03:20:38 ID:???
>934
関数じゃなくて「サイト内全検索(all php.net sites)」で
ttp://www.php.net/manual/ja/language.exceptions.php
936nobodyさん:2006/12/20(水) 03:27:32 ID:s+1rE1pc
PHPのド素人です

クライアントアプリケーションがCGI(PHP)に対して
octet-streamのデータをPOSTした場合、
PHPではどうやって値を取得すればよいのでしょうか?
URLエンコードされているデータの場合だと_POSTで
nameを指定すれば取得できることは知っているのですが
バイナリだとどうすればよいのでしょうか。
よろしくおながいします
937nobodyさん:2006/12/20(水) 04:28:33 ID:???
php-v 4.4.4 mysql-v 4.0.27
nullを許可しているlongtextスペースに UPDATEを使って70000バイトほどの文字列を
入力したいのですがエラーになります。
10000以下位では入力出来ました。
何が原因でしょう?
ヒントください。
938nobodyさん:2006/12/20(水) 08:30:06 ID:???
PHPのプロです
>>936
質問が難しすぎてわかりません
>>937
スレ違い
939nobodyさん:2006/12/20(水) 08:33:35 ID:???
>>936
$data = '';
$fp = fopen('php://input', 'rb');
while (!feof($fp)) {
    $data .= fread($fp, 1024);
}
fclose($fp);
940930:2006/12/20(水) 10:30:25 ID:???
>>931,932
ありがとうございました、勉強になりました。
941936:2006/12/20(水) 11:04:10 ID:s+1rE1pc
>>939
まさにそれです!!
つたない説明文を理解していただき
最大級に感謝します
942nobodyさん:2006/12/20(水) 15:00:15 ID:???
そろそろPHP5.2+MySQL5+Apache2.2あたりに移行しようかと思いました。
2年程ブランクがあるので、全てのアプリがメジャーバージョンUPされてて(泣

昔はPear::DB使っていたのですが、
PDO_MYSQLが使えるものかと思い、
マニュアルを確認すると、MySQL4.Xと書いてあります。
PDO_MYSQLはMySQL5でも使えますでしょうか?
943nobodyさん:2006/12/20(水) 15:03:20 ID:???
ためしてみればいいじゃん
944nobodyさん:2006/12/20(水) 15:31:53 ID:???
全機能全パターンを試せるわけじゃないんだし
それは質問に対する回答になってないよ
945942:2006/12/20(水) 15:44:32 ID:???
今、インストール中です…
PHP5.2の場合、PDO_MYSQLをインストールするのは
configureのオプションに以下を追加するだけでいいのかにも躓いてます…。
--with-mysql=/usr/local/mysql --with-pdo-mysql=/usr/local/mysql
946nobodyさん:2006/12/20(水) 15:46:00 ID:???
入力に応じてfunctionの引数の数を増やしたいのですが、
そんなことってできますでしょうか?
どういう風にかけばいいのかわからなくて・・・

function A($a, $b){
echo $a+$b;
}

function B($a, $b, $c){
echo $a+$b+$c;
}

こんな感じのを1つにできたらなぁと。
947nobodyさん:2006/12/20(水) 15:50:08 ID:???
>>946
配列を引数にする。
948942:2006/12/20(水) 15:54:52 ID:???
>>946
func_get_args() func_num_args() func_get_arg()

俺だったら、連想配列で渡しちゃいます。
949946:2006/12/20(水) 15:55:52 ID:???
>>947-948
どうもありがとうございます。
早速試してみたいと思います。
950nobodyさん:2006/12/20(水) 16:01:23 ID:ar7H9Wcq
C++ で処理した結果をPHPで書いたページで表示させたいのですが、
ネイティブなライブラリを呼び出す仕組みってあるんでしょうか?
Javaのネイティブメソッド呼び出しのような規約が
決められているのでしょうか?
951nobodyさん:2006/12/20(水) 16:02:34 ID:???
1.<input type="text" name="hoge[]">
〜〜
20.<input type="text" name="hoge[]">
このクエリを1個ずつデータベースに入れる際、空白(何もかかれていない)の場合、その変数を消したいのですがどのような方法が良いでしょうか?

こんなのしか思いつきません…
foreach($hoge as $h_arr) {
if(empty$h_arr)) {
unset($h_arr);
}
952nobodyさん:2006/12/20(水) 16:08:27 ID:???
よくわからんけど空白じゃなければ挿入処理を行うってしたらだめなのか?
953nobodyさん:2006/12/20(水) 16:09:28 ID:???
>>952さん
…石頭な漏れですた…
ありがとう…(;ω;)
954nobodyさん:2006/12/20(水) 16:15:01 ID:???
変数ごと消そうとしてたのかw
955nobodyさん:2006/12/20(水) 17:37:39 ID:Vi7URSua
$date = YYYY-MM-DD
の形から
1ヵ月後は 「YYYY-MM-DDである」
5ヵ月後は 「YYYY-MM-DDである」
1年後は 「YYYY-MM-DDである」…
と出したいのですが何か良い方法はありますか?
分解して精製するしかないのでしょうか?
956nobodyさん:2006/12/20(水) 17:52:03 ID:???
>>955
strtotime()
957nobodyさん:2006/12/20(水) 18:01:10 ID:???
>>955
$d = getdate(strtotime($date));
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 1,$d["mday"],$d["year"]);
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 5,$d["mday"],$d["year"]);
mktime($d["hours"],$d["minutes"],$d["seconds"],$d["mon"] + 1,$d["mday"],$d["year"] + 1);
958nobodyさん:2006/12/20(水) 18:29:56 ID:0HPzhBAY
つecho
959nobodyさん:2006/12/20(水) 18:37:29 ID:Vi7URSua
>>956,>>957両氏
ありがとうございます。
[strtotime],[getdate]初めてしりました。勉強になります。
date('Y-m-d'strtotime('+1 month', strttime($date)));
date('Y-m-d'strtotime('+1 year', strttime($date)));
でできました!
ただ、来週とかができないのです…
date('Y-m-d'strtotime('next week', strttime($date)));
今一度、お力お貸しくださいませ。
960959:2006/12/20(水) 18:38:32 ID:Vi7URSua
訂正です。
来週末、今月末等ができません。
宜しくお願い致します。
961nobodyさん:2006/12/20(水) 18:47:44 ID:???
なんでマニュアル読まないのか…
ttp://jp2.php.net/manual/ja/function.strtotime.php
962nobodyさん:2006/12/20(水) 18:52:36 ID:???
そんな面白い関数があったのか、初めて知った
ってか日時関数あまり使わなかったから知る機会なかっただけかな?

>>960
<?php
echo date('Y-m-d',strtotime("now")), "<br />\n";
echo date('Y-m-d',strtotime("10 September 2000")), "<br />\n";
echo date('Y-m-d',strtotime("+1 day")), "<br />\n";
echo date('Y-m-d',strtotime("+1 week")), "<br />\n";
echo date('Y-m-d',strtotime("+1 week 2 days 4 hours 2 seconds")), "<br />\n";
echo date('Y-m-d',strtotime("next Thursday")), "<br />\n";
echo date('Y-m-d',strtotime("last Monday")), "<br />\n";
?>
963nobodyさん:2006/12/20(水) 18:53:06 ID:???
DB接続抽象オブジェクトのPDOを使っているのですが、

$dbh->prepare($sql);

このprepareメソッドでフリーズしてるぽいとこまでは分かったのですが
(前後でvar_dump("hoge")を試したところ、前は成功、後は失敗(ずっと応答待ち))
対処の仕方がわかりません・・・せめてどういうエラーか分かればいいのですが方法あるんでしょうか?
よろしくお願いします
964nobodyさん:2006/12/20(水) 18:54:02 ID:???
>>963
mysql_error()
965nobodyさん:2006/12/20(水) 18:56:22 ID:???
>>963
例外処理やった?
966963:2006/12/20(水) 19:08:08 ID:XG/2ezlL
ありがとうございます。

>>例外処理
try~catchで囲んでみたんですが拾えませんでした。
原因が違うところにあるとしても、その前後では動いてるの確認(var_dump)してるので
エラーだとしたら何かしら拾えると考えたのですが・・・
応答待ちになってると考えて探った方がいいのでしょうか
967959:2006/12/20(水) 19:18:57 ID:Vi7URSua
>>962
せっくっす
968nobodyさん:2006/12/20(水) 19:46:27 ID:???
>>962
それでも来週末・今月末はできない
969nobodyさん:2006/12/20(水) 20:03:17 ID:???
>>968
来週末=来週の土曜日でいいのか?
だったら
echo date('Y-m-d-H:i:s',strtotime("+1 week Saturday")), "<br />\n";
970nobodyさん:2006/12/20(水) 20:08:50 ID:???
関係ないが
>>967の明らかな適当な御礼か何かわからないのがウザい
971nobodyさん:2006/12/20(水) 20:30:59 ID:t+vbPSXB
imagettftextを使って入力文字を画像にさせたのですが
機種依存文字である@ABCなどを画像にすることができません
いろいろなフォントで試してもだめでした。
imagettftextで機種依存文字を画像にするのは無理なのでしょうか
phpのバージョンは5.1です
972nobodyさん:2006/12/20(水) 21:04:46 ID:???
今月末
$d = getdate(strtotime($date));
mktime(0,0,0,$d["mon"] + 1,0,$d["year"]);
973nobodyさん:2006/12/20(水) 21:39:34 ID:???
外部コマンドのオプションって配列で渡せばいいだけ?
974nobodyさん:2006/12/20(水) 21:42:13 ID:???
>>973
日本語でおk
975超初心者:2006/12/20(水) 22:15:46 ID:???
phpをyumでインストールしてみたのですが、
何処にインストールされたのか分からなくなってしまいました。orz
(/usr/local/lib/php.iniも見当たらない)
ファイルを検索する方法を教えてもらえないでしょうか。

レベル低すぎる質問でもうしわけないです。
976超初心者:2006/12/20(水) 22:28:01 ID:???
ごめ、今のなし。
phpinfoで確認できることを思い出しました。
スレ汚してスンマソン。
977nobodyさん:2006/12/20(水) 23:21:20 ID:???
php云々ではなくて、わからないならunix系を無理に使うなって話ですね。
978nobodyさん:2006/12/21(木) 02:29:17 ID:???
windowsの起動の仕方とシャットダウンを勉強してこい。話はそれからだ。
979nobodyさん:2006/12/21(木) 04:28:53 ID:???
よくURL抽出のプログラムとかを見かけるのですが、
指定したURLから<object>〜</object>や<title>〜</title>などのタグを指定して抽出するものはありませんか?。

参考になるサイトだけでもいいので知っている方教えてください。
980nobodyさん:2006/12/21(木) 04:54:54 ID:???
>>979
正規表現。あとは自分でググレカス。
981nobodyさん:2006/12/21(木) 06:01:18 ID:???
DBから取得したデータで「\n」を表示させると、
「\n」と直接表示されてしまいます。
ソース内で改行させたいのですが、どのように記述すれば良いのでしょうか?
str_replace("\n","\r\n",$str);
で置き換えようと思ったのですが、置き換えることができませんでした。
982981:2006/12/21(木) 06:03:58 ID:???
書き込んだ瞬間ひらめき
str_replace("\\n","\r\n",$str);
で解決することができました。
983942:2006/12/21(木) 11:18:27 ID:???
>>966
try-catchなら、下の設定は必要かも。
setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
984nobodyさん:2006/12/21(木) 12:17:01 ID:QeRiyNxN
アクセスしてきた人がPCか携帯か判別して、それぞれのサイトに
割り振るCGIやスクリプトってあるんでしょうか?
サーバが対応してくれないので困ってます…。
985nobodyさん:2006/12/21(木) 12:19:19 ID:???
検索って知ってる?
986nobodyさん:2006/12/21(木) 12:19:45 ID:???
普通にアクセス元解析して振り分けたらだめなのかい?
987nobodyさん:2006/12/21(木) 12:41:12 ID:KBdj5Zxx
メールアドレスの入力欄で、全角入力の場合にエラーを
表示したいと考えております。
以下の条件文の*******をどう表記すればよいでしょうか?
お願い致します。

 if(ereg("*******", $var)){
  $errm .= "<span class=mj>E-mail入力値が不正です。</span><BR>\n";
 }
988nobodyさん:2006/12/21(木) 12:47:29 ID:???
989nobodyさん:2006/12/21(木) 13:07:55 ID:???
988様ありがとう御座います。
上記サイトで気になったのが、メールアドレスチェックの際
半角英数字と.と-のみのチェックしかしていませんでした。
もしメールアドレスに!や#などが使用されていた場合このスクリプト
だと誤ったメールアドレスとして認識されてしまいます。
メールアドレスのチェックは一般的に半角英数字と.と-のみで
良いのでしょうか?
990nobodyさん:2006/12/21(木) 13:11:56 ID:???
>>989
if(!preg_match('/^[a-zA-Z0-9_\-]+$/', $_var)){

}

メールアドレスに使えるのは
A〜Zと-_.と数値だけ
991nobodyさん:2006/12/21(木) 13:13:12 ID:???
一般的に!や#が入ったメアドを見たことないのだが・・
もしそれらの文字がでてくるならその時にスクリプトも変更すればよいと思う
992nobodyさん:2006/12/21(木) 13:20:23 ID:???
厳密なE-mailアドレスチェックを書こうと思うと酷いことになる。

preg_match('/^(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:"
.\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*(?:\\\\[^\x80-\xff]
[^\\\\\x80-\xff\n\015"]*)*")(?:\.(?:[^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff]
+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|"[^\\\\\x80-\xff\n\015"]*
(?:\\\\[^\x80-\xff][^\\\\\x80-\xff\n\015"]*)*"))*@(?:[^(\040)<>@,;:".\\\\\[\]
\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|
\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\])(?:\.(?:[^(\040)<>@,;:"
.\\\\\[\]\000-\037\x80-\xff]+(?![^(\040)<>@,;:".\\\\\[\]\000-\037\x80-\xff])|
\[(?:[^\\\\\x80-\xff\n\015\[\]]|\\\\[^\x80-\xff])*\]))*$/', $email);
993nobodyさん:2006/12/21(木) 13:21:17 ID:???
>>992
どこから拾ってきたんだよwww

そういえば、携帯用IPでアクセス制限できるプログラム載ってるサイト無かったっけ?
994軟式PHP:2006/12/21(木) 13:29:18 ID:???
メールチェック正規表現はだいぶ昔だけどこれ見て吐き気がした。
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
995nobodyさん:2006/12/21(木) 13:34:51 ID:???
ttp://www.din.or.jp/~ohzaki/perl.htm#Mail
このaddr-specだけのものを引っ張ってきたんだろうかね。

実用的には @ の前後とも>>990のregex(と \. )で表される文字だけで成り立ってたら
いいことにしよう、ぐらいでいいのかも。
996nobodyさん:2006/12/21(木) 13:46:14 ID:???
次スレ立ててきた。本スレあった頃ってテンプレこんなに長かったっけ?

【PHP】下らねぇ質問はここに書き込みやがれ 35
http://pc8.2ch.net/test/read.cgi/php/1166676139/
997nobodyさん:2006/12/21(木) 13:49:18 ID:1NDthtg1
スレも残り少なくなってきたので下らない(と思われる)質問。
以前から気になってしようがなかったんだけど....

$int = 5;
if($int > 0) echo "0より大きいらしい";
$int = "string";
if($int > 0) echo "これなんでエラーにならないの?";
998nobodyさん:2006/12/21(木) 13:56:54 ID:???
>>997
string > 0 じゃないから『これなんでエラーにならないの?』が表示されない
999nobodyさん:2006/12/21(木) 13:58:56 ID:???
999?
1000nobodyさん:2006/12/21(木) 13:59:30 ID:???
;;;;;ヾ);;;)            (;:;ヾ;;;ヾ
;;;;;ヾ);;;)  ゆったりと   ((;::ヾ;;;ヾ
;;;;;ヾ);;;)   1000げと     (;::ヾ;;;;ヾ
!l ;||}、   ._,,..,,,,_        ;{ll;;;l
;::ll;.| ~ヽxx./ ,' 3  `ヽーっ.xxノ~.|!!;;:
;;;!l }   ミ三三三三三三彡'   };!;;l|
|l !|   `^`゛゛''"""~~゛゛"´~    ノ;;:;:;l
ヘハヘゞ             "^ハブヘ
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。