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

このエントリーをはてなブックマークに追加
1nobodyさん
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

◆質問する時の注意
・ sage進行(メール欄にsageと記入すること)「sage進行」とはスレを目立つ上部に上げないことによって、荒らしが発見できないようにすることです
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
・ 書き込むときには、「公式マニュアル、リファレンス本は読みました」と明記すること
(でないと、公式マニュアル読めと煽られます)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
・質問者が「公式マニュアル読んだ」と書いていないからといって、
公式マニュアルに書いてもいないのに、公式マニュアルよめと適当なことを言わないこと。
質問者は公式マニュアルを読んでいるかもしれない。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
2nobodyさん:2007/10/11(木) 17:58:19 ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 54
http://pc11.2ch.net/test/read.cgi/php/1189309377/
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
【PHP】下らねぇ質問はここに書き込みやがれ 51
http://pc11.2ch.net/test/read.cgi/php/1185521566/
【PHP】下らねぇ質問はここに書き込みやがれ 50
http://pc11.2ch.net/test/read.cgi/php/1184143801/
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/
【PHP】下らねぇ質問はここに書き込みやがれ 45 (※実質48)
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 47
http://pc11.2ch.net/test/read.cgi/php/1180181033/
【PHP】下らねぇ質問はここに書き込みやがれ 46
http://pc11.2ch.net/test/read.cgi/php/1178955837/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1178955768/
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
【PHP】下らねぇ質問はここに書き込みやがれ 44
http://pc11.2ch.net/test/read.cgi/php/1176364487/
【PHP】下らねぇ質問はここに書き込みやがれ 43
http://pc11.2ch.net/test/read.cgi/php/1175368910/
【PHP】下らねぇ質問はここに書き込みやがれ 42
http://pc11.2ch.net/test/read.cgi/php/1174217841/
【PHP】下らねぇ質問はここに書き込みやがれ 41
http://pc11.2ch.net/test/read.cgi/php/1173163186/
3nobodyさん:2007/10/11(木) 18:01:01 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/
■CakePHP      http://www.cakephp.org/
■Code Igniter    http://www.codeigniter.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
4nobodyさん:2007/10/11(木) 18:04:32 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プログラムとして実行された結果になる。
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
5nobodyさん:2007/10/11(木) 18:07:38 ID:???
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に保存?
 → 好きにしてください
23. もっと楽に開発したい。
 → フレームワークを使ってください
24. PHP用のフレームワークって何があるの?
 → 公式ならZend Framework、PHP4にも対応させるのならCakePHPかCode Igniter
6nobodyさん:2007/10/11(木) 18:40:37 ID:???
                    _,.. -‐  ̄`ヽ──-、
                ,. -<   ※    }}    \
                 /    \       {{   ::..  \
            /   /   \  ※   》 :::     \
             //   /    l   ヽ     }} .::::    ::.. \
          〃! !  /  / //    ヽ ※ 》:::     :::..  ヽ
          || | ||  i| /// !     ゙,   }}:   _,,..  --─一>
          |! | l! |l/-/─゙、     i   》  /   |  , '´
     ,..、     ヽヽ乂 | ,ニ,.--ァヽ、!   ! 〃/     |/
    〈rヘ,ゝ、      \ ノ .{リ!/   /   ./ _」!´      |
    ('A`)7 !      く   ̄ __,ノ   ノ ,」!  |:      !   下らねぇ質問はここに書き込みやがれって
    ノ( ヘヘ{ |       ! _,  ``ー‐ァ´ l「   |:      l   言っておいたはずですぅ
     r‐〉  |┐     `1     /※r┘.   |:         !
    〈{rヘNヘj!ヲ         ヽ-r一{  /{.:.:.:.:   |:.      i
    〈ヾニニイコ        ,⊥ニ|/  ゙、.:.:..   l:.:..      !
    〈フしヘ_rV´|     ,..イ  / |rュ_,r‐-ヘ.:.:..   !:.:.      ',
      |     |ヽ‐-<  /   /)},.イnニトつ:   i.:.:..     ゙,
     |     ^i |ヽ`ヽ〃 ※ 〃_/( し'    i.:.  ゙、.:.:.       ゙、
     〈 |        !l|.   }}    {{〈、r┘      l.:.:  ゙、.:.:..     ヽ
     ヽ      | !!  〃 ※ }}/、フ|         |.:.:.  ヽ.:.:...     ヽ
      \    | ||. 〃   〃!V |        |、.:.:..  ヽ.:.:..     ヽ
      | |`ー一' || }} ※ {{/_l」 ,|       |、ヽ.:.:.. ヽ:.:.:..     ヽ
        ! ! ∨/ | |{{   〃┘ / !         |ヘ::ヽ.:.:.. ヽ:.:.:.     \
       | | /  _,.ノ}} ※ }}   /  |        ハ:.ヽ
7nobodyさん:2007/10/11(木) 18:59:23 ID:???
PHPって小数点誤差が出ないライブラリって無いの?
10進浮動小数点数っていうの?そんなの
8nobodyさん:2007/10/11(木) 19:55:32 ID:???
数学関数とかにあるんじゃねぇの?
9nobodyさん:2007/10/11(木) 20:01:36 ID:???
bcmath?
コンパイルオプションが必要じゃん。
PHPだけで作られたのってないの?
10nobodyさん:2007/10/11(木) 20:53:22 ID:???
PHPでそんなのやったら遅すぎて使い物にならんだろ。
11nobodyさん:2007/10/11(木) 21:06:33 ID:???
bcmathはPHPじゃないんだ。
12nobodyさん:2007/10/11(木) 21:10:35 ID:???
は?Cでコンパイル済みのライブラリだろ?
13nobodyさん:2007/10/11(木) 21:13:48 ID:???
PHPはCとは一切関係ないんだ。
14nobodyさん:2007/10/11(木) 22:24:14 ID:Y4cbxz38
まあ叔父さんぐらいな関係だろ
中の人的には

どこまで心を許すかは場合によるけどな
15nobodyさん:2007/10/11(木) 22:41:21 ID:???
つーかがっつりCだし
16nobodyさん:2007/10/11(木) 23:30:12 ID:???
PHPのフリースクリプトで参考になるのがあり弄ってさまざまな付加機能を作り、今は元のコードは基本的な部分だけです。
構造は理解でき、フロムスクラッチから作った場合、相手のコピーライトははずしてもいいんですか?
17nobodyさん:2007/10/12(金) 00:02:38 ID:???
>>16
よくない
18nobodyさん:2007/10/12(金) 00:05:06 ID:???
>>16
参考ならOK
まねるならNG
19nobodyさん:2007/10/12(金) 00:06:07 ID:2uLJDe9D
>>16
君を育ててくれたスクリプト制作者を足蹴にする行為
20nobodyさん:2007/10/12(金) 00:08:38 ID:???
住所解析のライブラリ探したけどなかった
自分で作ってみようと思ったが、これは無理だwwww
21nobodyさん:2007/10/12(金) 00:30:14 ID:???
>>18
法律的にはどうなのか全く知らないけど
オープンソースのスクリプト言語で著作権もコピーライトもくそもない気がする。

それほど独創的なコードがあるわけでもないし、
そんなもん主張されても、同じ処理をするものって
根本的な処理は基本的に似てくるんじゃないの?

アルゴリズムだって、例えばデザインパターンを使っていたって、偉大な先人のアイデアを
真似して、いただいて作ってるんしょ?

16のケースはもう原形をとどめていなさそうだし問題ないんじゃん?

あくまで法律は知らんけど・・
心情的に・・・
22nobodyさん:2007/10/12(金) 00:33:06 ID:???
一番いいのは相手に聞くこと

俺はウダウダ言うなら公開してんじゃねーよGPL教のクズがと思ってるけどな
23nobodyさん:2007/10/12(金) 01:01:44 ID:???
というより、”どのように作ったか”ではなく”何を作ったか”なんだよ、ビジネスの世界では。
そんなことPGオタクで経営感覚ゼロの人間には、ワケ分からんだろうけどなw
24nobodyさん:2007/10/12(金) 01:03:50 ID:???
著作権表示を消すか消さないかなんてこと気にする前にプログラミングの腕を上げろ
25nobodyさん:2007/10/12(金) 01:04:46 ID:???
いつビジネスの話をしたんだと小一時(ry
26nobodyさん:2007/10/12(金) 01:12:13 ID:???
Apacheのhttpd.confの設定で拡張子htmlでphpの実行を許可し、.htaccessでその設定を無効にすることって出来ますか?
逆については検索でたくさんヒットするけど、上記はヒットしなかったので教えて下さい。

目的は特定のフォルダでのみ拡張子htmlでphpが動作しない環境を構築したい為です(大半のフォルダでは拡張子htmlでphpの実行を許可したいです)。

よろしくお願いします。
27nobodyさん:2007/10/12(金) 01:29:53 ID:???
http.conf内でドキュメントルートに対してAllowOverride設定してる所を探してAllに書き換える

あとは.htaccessにphp実行不許可のオプションを書けば上書きされる
28nobodyさん:2007/10/12(金) 02:38:42 ID:???
>>26
試せばわかる、何事も
29nobodyさん:2007/10/12(金) 03:16:18 ID:???
sage
3026:2007/10/12(金) 09:09:50 ID:???
自己解決しました
有難う御座いました
31nobodyさん:2007/10/12(金) 10:50:50 ID:???
テスト
32nobodyさん:2007/10/12(金) 10:54:13 ID:???
何のテストですぅ?
33nobodyさん:2007/10/12(金) 11:04:20 ID:???
>>32
昨日の夕方ごろ規制かかってたから
今日は大丈夫なのかなと
34nobodyさん:2007/10/12(金) 13:02:38 ID:SObbbYi1
こんにちは
変数の中の「行」の数を数えたいのですが

特定の文字の出現回数を返すような関数
もしくは良くあるサンプルなどはあるのでしょうか?
35nobodyさん:2007/10/12(金) 13:04:01 ID:???
>>34
型は?
配列ならcount($str)
改行区切りならcount(explode(array("\r\n","\r","\n"), $str))
36nobodyさん:2007/10/12(金) 13:14:58 ID:???
>>34
>>35もありだが
STRING型なら普通はpreg_match_allで改行コードの
正規表現書いて使うと思う
37nobodyさん:2007/10/12(金) 13:52:19 ID:JDHSb9UC
38nobodyさん:2007/10/12(金) 13:55:57 ID:???
>>37
header関数でリダイレクト処理すればいい。
39nobodyさん:2007/10/12(金) 13:58:18 ID:JDHSb9UC
>>37
ん〜、PHP関係じゃなくてApache関係で
htaccess使ってそういう方法があったんです。
http://xxx.example.com/自体のURLがもともと無効なんですけど
何かの設定でhttp://example.com/xxx/をhttp://xxx.example.com/にできたんです
40nobodyさん:2007/10/12(金) 14:01:22 ID:???
>>39
ないよw
そもそもHTTPレベルの話であって、ApacheはTCP/IPレベルの制御しかできない。
Apacheでそうなったというのは、ApacheのバグかルーターかDNSサーバーが異常をきたしていたとしか考えられない。
41nobodyさん:2007/10/12(金) 14:03:52 ID:JDHSb9UC
mod_rewriteでできたと思ったのですが、
どうやらURL直下しか無理みたいです。
サブドメインの設定はまた別で必要なのですね。
有難うございました。
42nobodyさん:2007/10/12(金) 14:06:06 ID:???
>>51
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
つ 【PHP】下らねぇ質問はここに書き込みやがれ 56
43nobodyさん:2007/10/12(金) 14:17:19 ID:???
>>41
どういたまして。
44nobodyさん:2007/10/12(金) 14:33:18 ID:???
>>43
誰だよ、お前。答えたのは俺様だろうが。
それからツリー構造はDBでも出来るとかいってんじゃねーぞ。
DBとの接続処理も含めたパフォーマンスを考慮してメモリー上でツリー構造にすればいい、
って言っているのに、DBでも出来るとか、意味不明だよ。
もっと多角的な面からどの技術を使うのが最適解になるのか、よく考えろ。
45nobodyさん:2007/10/12(金) 14:45:45 ID:???
最近はスレタイすら読まないのか
46nobodyさん:2007/10/12(金) 15:05:12 ID:???
>>45
最近は質問すら読まないのか・・・
47nobodyさん:2007/10/12(金) 16:17:11 ID:JDHSb9UC
クラス内のfunction内で$thisって使えないのですか?
48nobodyさん:2007/10/12(金) 16:26:07 ID:???
>>44
なんか懐かしい話題が出たな。
49nobodyさん:2007/10/12(金) 16:26:56 ID:???
>>47
使えるよ。というかそこで使わずに$thisをどこで使う気なんだ。
50nobodyさん:2007/10/12(金) 16:32:39 ID:JDHSb9UC
>>49
サンクス
何か使い方が間違っていたみたいでした。

class Hogehoge {
  public $aaa;
  public $bbb;
}

$obj = new Hogehoge('xxx','xxx');

とすると、勝手に$objの中に
$obj['aaa'] = NULL
$obj['bbb'] = NULL

ができているのですが、仕様でしょうか?
また、unsetなどで削除しても大丈夫でしょうか?
51nobodyさん:2007/10/12(金) 16:42:48 ID:???
>>50
つregister_globals
5251:2007/10/12(金) 16:44:40 ID:???
すまん。間違った。。

>>50
クラス内のpublicメンバはそのクラスのプロパティになる
ので仕様でつ
53nobodyさん:2007/10/12(金) 16:47:25 ID:???
>>50
PHPでのクラスの実装が連想配列みたいな仕組みになってるだけ。
$obj['aaa']がpublic $aaaの実体ってこった。
別にunsetしたきゃしてもいいが、メンバ変数を使えばまた再生成されるし、
メンバ変数に値を格納した状態でunsetしちゃったら値も消えちゃうぞ。
>>51
は?
54nobodyさん:2007/10/12(金) 16:49:58 ID:JDHSb9UC
有難うございます
>>51で頑張って探していたのですが、サッパリでした・・・
コンストラクトで最初にunsetしてから格納してみたところ大丈夫のようでした。
55nobodyさん:2007/10/12(金) 16:52:09 ID:???
>>54
それ、大丈夫って言うのか…
56nobodyさん:2007/10/12(金) 16:58:45 ID:JDHSb9UC
class GPS {

public $lat;
public $lon;

function __construct ($lat = FALSE, $lon = FALSE)
{
unset($this->lat);
unset($this->lon);

$this->lat = $lat;
$this->lon = $lon;

このような感じで入れ替えてますが、まずいですかね・・・汗
57nobodyさん:2007/10/12(金) 17:07:00 ID:???
>>56
まずいというか「全くの無駄」
58nobodyさん:2007/10/12(金) 17:33:51 ID:???
>>56
public $lat;
public $lon;

private $lat;
private $lon;
59nobodyさん:2007/10/12(金) 19:16:36 ID:???
なんのためにクラス使ってんだ?
60nobodyさん:2007/10/12(金) 23:20:32 ID:cR3DAsP9
function HogeHoge(){

   echo Example();
   echo PHP();

   function Example(){

   }

   function PHP(){

   }

}

このようにfunction内のfunctionをfuntionで呼び出すようなことはできないのでしょうか?
すごく簡単な内容なのですが、クラス化したほうが良いのでしょうか。
61nobodyさん:2007/10/12(金) 23:37:49 ID:???
>>27>>28
アドバイスを参考に書いてみましたが、結果はNGでした。
試した事は下記です。

httpd.confの記述(一部抜粋)
<Directory />
Options FollowSymLinks
AllowOverride All
</Directory>
AddType application/x-httpd-php .php .html

/var/www/html/.htaccessの記述
AddType application/x-httpd-php .php

上記の記述では/var/www/html/test.htmlファイルでphpinfoが実行出来てしまいました。
そのため、上記のどこに問題があるか(多分>>27のphp実行不許可の記述の仕方だと思いますが)ご指定いただければと思います。
62nobodyさん:2007/10/13(土) 00:57:16 ID:???
>>60
可能
63nobodyさん:2007/10/13(土) 01:23:48 ID:???
>>60
function内のfunctionをPHPにおいて呼び出すのはあまり意味がないのでは?
そのfunctionを外に出してもそんなに問題ないでしょう。

>>61
最初に許可しないでディレクトリごとにphpファイルとして解釈するものを加えればいいと思う。
.htaccessは重いので、なるべく使わないに越したことはないのですが。
64nobodyさん:2007/10/13(土) 01:36:04 ID:???
関数のスコープ別に取りたいなら意味あるでしょ
無駄にOOでないクラス化するよりよっぽど有用
65nobodyさん:2007/10/13(土) 01:59:08 ID:???
ん?オブジェクト指向にならないクラスを書くのは、オブジェクト指向の思想が分かってないからであって、
分かってない人が書いたら、関数内関数も(普通より余計に)スパゲッチーソースになるのでわ?
オブジェクト指向の思想を理解してるなら、素直にクラス化した方がいいと思う。
66nobodyさん:2007/10/13(土) 04:49:24 ID:???
>>60
可能だけどfunctionの呼び出しより先に定義しなきゃ。
クラスはインスタンス→中身のメソッド定義全部実行→それからコンストラクタ実行
って順番で動くけど、そのHogeHoge()は頭から順に実行されるんだから。

あと、function内functionも1度定義した時点でグローバルな関数になることさえ
気をつければ別にそういう使い方はありだよ。
67nobodyさん:2007/10/13(土) 04:52:41 ID:???
>>63>>65
やってることはぶっちゃけ
if(条件) {
 function a() {処理1}
} else {
 function a() {処理2}
}
にHogeHogeって名前付けてるだけだと思うんだけどね、これ。
そういう意図でやってるなら別にクラス化するほどのもんでもない。
68nobodyさん:2007/10/13(土) 07:28:36 ID:JyEmfHgt
質問です。
PEARのXML_Serializerで、連想配列からXMLを出力するとき
一つのノードに複数の属性(Attribute)を設定して、XMLにシリアライズすると
設定した属性が、その属性の名前で昇順に並び変わって出力されてしまうのですが、
これを並び変わらないように設定することは出来ないでしょうか?
自分としては連想配列に代入した順番に出力されて欲しいのですが・・・・・・。

何か良い方法を知っていたら教えてください。

ちなみに環境はWindowsのxampp1.6.4です。
6968:2007/10/13(土) 07:42:44 ID:???
あー、今気づいたんですが、質問するときのルールがID表示からsage進行になってたんですね
上のレスは思いっきりageてしまいました、すみません。
7068:2007/10/13(土) 07:48:20 ID:???
書き込んだあとドキュメントをよく読んでみたら該当箇所が見つかりました。
お騒がせしてすみませんでした。
71nobodyさん:2007/10/13(土) 07:54:29 ID:???
>>69
あ、ホントだ。いつの間にw
7268:2007/10/13(土) 08:17:33 ID:JyEmfHgt
>>70は自分では無いです、一応ID表示のためageておきます。

>>70
PEARのドキュメントに質問の答えとなるような項目があるということですか?
一応目を通してみたのですが、まだBeta版だからか、XML_Serializerに関しては完全なオプションのリストに記載すら無かったのですが・・・・・・
ほかに詳細な内容が載っている記事ということで
http://www.sitepoint.com/article/xml-php-pear-xml_serializer
あたりも読んでみたのですが、質問の答えとなるような記述は無かったように思います。
(読み逃しがあったらすみません。)

もし「昇順に並び替えない」という設定が無いまでも、何か良い問題の解消方法を知っている方が居れば
教えていただきたいと思っています。
恥ずかしながら自分では「出力されたXMLを文字列として処理し、該当箇所を全て並び替え」という、
かなり手間のかかりそうな方法くらいしか思いつかないもので・・・・・・

どうかよろしくお願いします。
73nobodyさん:2007/10/13(土) 08:59:16 ID:???
ageなくても鳥でも付けたら良いよ
74nobodyさん:2007/10/13(土) 09:34:44 ID:???
並び替えない方法があるかどうかは知らないけど、
XMLなんだから、順序に依存するような仕組みではだめだろ。
75nobodyさん:2007/10/13(土) 09:46:33 ID:HZ6cGKF0
スレ違い承知で質問します。
xamlスレってないのでしょうか?。
76nobodyさん:2007/10/13(土) 09:57:05 ID:???
>>63
フォルダ数が多く1つのフォルダでのみ.htmlでphpの実行を許可しないようにしたい(それ以外のフォルダは.htmlでphpの実行を許可したい)です。

そのため>>26に書いたように、デフォルトでは.htmlでphpの実行を許可し、
特定のフォルダのみ.htmlでphpの実行を許可しないように出来れば一番作業量が少なく楽かなと思ったので質問しました。

最初に許可しないで.htaccessで制御出来る事は確認済みですが、
.htaccessを作らなければいけない量の多さに作業する事を躊躇している所です。
77nobodyさん:2007/10/13(土) 10:29:00 ID:???
>>76
検索エンジン用に拡張子を選ぶという話は結構あるけど・・・
何がしたいのかよくわからない

PHPを記述しなければ良いだけのような気がするし第三者にアップロードさせるなら
その時点でチェックすれば良いだけの話

拡張子が同一である限り判別材料は必要でどちらにしても負荷はかかる
78nobodyさん:2007/10/13(土) 11:14:13 ID:Vu/tyyyN
79nobodyさん:2007/10/13(土) 11:59:23 ID:brAyXwH5
DB::connectでクラス内の関数をそのまま呼び出してオブジェクト化していますが、
どうやって、new DB()をしないでオブジェクト化しているのですか?
8079:2007/10/13(土) 12:09:56 ID:brAyXwH5
$thisがオブジェクトでないときに、オブジェクトを返す方法で自己解決しました。
(果たして解決しているどうかも少しなぞですが)

if(!is_object($this)){

    $obj = new Hoge();

}else{

    $obj = $this;
    unset($this);

}

return $obj;
81nobodyさん:2007/10/13(土) 12:39:21 ID:Qhys5rK+
アクセス解析を作りたいと思ってます。
ログはファイルで管理したいと考えているのですが、
今考えてるのはログファイルを一日単位で分けようと考えてるのですが、
セーフモードの場合だとあらかじめファイルを用意しなければならないのがツライです。
ログファイルは一個で管理するのが妥当でしょうか?
82nobodyさん:2007/10/13(土) 13:27:08 ID:???
>>81
まぁ、普通は分けるんじゃないの。
何でセーフモードを意識しなきゃいけなくなったのかがちと謎だけど、
日が変わる直前にcronで他のスクリプトとか使ってファイル生成させとけば?
一般に、ログ吐く側は単一ファイルにそのまま吐き続けさせといて
logrotateとか使ってファイル切り替えるもんだと思うけど。
83nobodyさん:2007/10/13(土) 13:42:17 ID:???
>>80
四角い車輪の再発明
84nobodyさん:2007/10/13(土) 14:10:59 ID:???
>>77
開発環境での話です。
だから負荷は気にしてません

要は同じ階層のフォルダ内に
1. Aフォルダ(.htmlでphp実行可能)、この手のフォルダが複数あり
2. Bフォルダ(.htmlでphp実行不可能)、この手のフォルダは一つのみ
という環境を作りたいのですが、大多数が1に該当する以上、
1をデフォルトの動作とし、例外的な2に対し別途設定を施す事で環境を構築したいと思っています。
85nobodyさん:2007/10/13(土) 14:15:40 ID:???
>>76
Apacheのモジュール版PHPでなら簡単にできるよ
動作させたくないディレクトリのhtaccessに
php_flag engine off
と書けば良い


>>80
「デザインパターン シングルトン」
をグーグルさんで検索してみると良い

86nobodyさん:2007/10/13(土) 14:23:25 ID:???
>>84
負荷を気にしないならPHP環境下で普通にタグだけ書けば良いでしょ
87nobodyさん:2007/10/13(土) 14:24:32 ID:???
>>85
>>>80
>「デザインパターン シングルトン」
前にもあったけど、phpはメモリーを共有できないから、
シングルトンは使えないよ。javaなら大丈夫だけどね。
88nobodyさん:2007/10/13(土) 14:29:19 ID:???
共有できるよ
89nobodyさん:2007/10/13(土) 14:30:55 ID:???
>>88
お前、ツリー構造の奴だろwww
90nobodyさん:2007/10/13(土) 14:45:50 ID:???
phpの場合メモリの共有までは普通考えないと思うんだが
規模のでかさにもよるが・・・

メモリ空間の共有も前ツリー構造の人が
メモリ空間共有用の関数がどれかを書いてたし・・・・
91nobodyさん:2007/10/13(土) 14:47:06 ID:???
>>85
試してみましたが駄目でした。
多分モジュール版PHPを使用していないのだと思いますが、
モジュール版が何か分かりませんでした。

>>86
言っている意味が分からないのですが。

開発環境は1つのサーバーで行っています
一方外部公開用のサーバーは複数あります。
そしてそのうち一つのサーバーでは拡張子htmlでphpが使えません。

そのため、開発環境のデフォルトは拡張子htmlでphpを動作可能にし、
特定のフォルダのみ、外部公開用のサーバーの仕様にあわせ拡張子htmlでphpを動作不可能にしたいと思っています。

理由はこれが開発環境の変更点が最も少なく、外部公開用のサーバーにそのまま適用できると思われる為です。
92nobodyさん:2007/10/13(土) 14:56:42 ID:???
>>91
> 多分モジュール版PHPを使用していないのだと思いますが、
> モジュール版が何か分かりませんでした。

.htaccessでPHPの設定をできるやつがモジュール版で一般的なPHPのこと。
それ以外はCGI版かコマンドライン版。

しかしengine offにしたら.htmlだけじゃなく.phpでもPHP実行できなくなるような…

> そしてそのうち一つのサーバーでは拡張子htmlでphpが使えません。
環境を実機と可能な限り合わせたい、という意図は分かるんだけど、
あくまで自分の開発環境の話なら、単に.htmlのファイルの中に
PHPコードを入れないだけでもいいんじゃないの?
他のユーザに使わせたくない、って話ならともかく。
それとも、PHPの実行をさせないだけで.html中にPHPコードは埋め込んじゃうの?
93nobodyさん:2007/10/13(土) 15:07:41 ID:???
>一方外部公開用のサーバーは複数あります。
>そしてそのうち一つのサーバーでは拡張子htmlでphpが使えません。

中途半端な説明ばかりしているからややこしくなるんだ。
これに尽きるんだろ。

.htaccessが使えるなら.htaccessをトップディレクトリにおいけば良いだけ、
httpd.confが弄れるなら弄れば良いだけ。両方だめなら無理だから諦めろ。
意地でもやるなら拡張子とスクリプトの内容をまとめて書きかえれるような
ソフトを自作して書き換えるしかないだろう。
94nobodyさん:2007/10/13(土) 15:08:18 ID:???
>>92
ありがとうございます。
となると私の環境はモジュール版のはずですが、何故phpが動いてしまうんだろう?
それと今回の件だけに限って言えば、そのフォルダでは拡張子php自体使用していないので、
特定のフォルダ直下ではphpが実行できなくなってもかまわないです。

後、本件の目的はミス防止の為です。
他の開発で使用したものを多数流用している為、phpが間違って混入してしまう可能性があるからです。
ご指摘のとおり、入れなければ良いのですが、上記のような過程で間違って入れてしまい、
それを本番に上げて始めて気づいてあわてると言うミスを未然に防ぐ環境を構築したいと思っています。
95nobodyさん:2007/10/13(土) 15:14:22 ID:???
>>93
そのレンタルサーバーでは.htaccessが使用不可です。
またhttpd.confは弄れません。

ただし自分の開発環境はhttpd.confも.htaccessも使用可能です。
現状開発環境では、httpd.confで一時的に拡張子htmlでphpが実行出来ないようにし、
拡張子htmlでphpが実行できないといけないフォルダ毎に.htaccessを設置していますが、
可能であれば、httpd.confでは拡張子htmlでphpが実行出来るようにし、
特定のフォルダでのみ.htaccessで拡張子htmlでphpを実行できないようにするのが一番スマートかなと思いました。
96nobodyさん:2007/10/13(土) 15:14:23 ID:???
PHPのプログラムでExcelのグラフを呼び出すことってできる?
web上で値を使う人がその都度変えてもいけるようなものが作りたいんだけど…
97nobodyさん:2007/10/13(土) 15:14:27 ID:???
>>94
この辺が原因かも。
http://slashdot.jp/~elf2000/journal/105773
> なんてこった…apache2でphp_flagって使えないの?
> php_flag engine off
に対するコメント
> VirtualHostディレクティブ使ってません?
> 使ってたらその中にDirectoryディレクティブを書いてやらないと認識しないようです。
98nobodyさん:2007/10/13(土) 15:17:15 ID:???
>>94
htaccess使えるようになってるの?
99nobodyさん:2007/10/13(土) 15:19:22 ID:???
>>98
>>95で.htaccessで設定やってるって書いてるよ。
100nobodyさん:2007/10/13(土) 15:20:54 ID:???
>>96
Excelの出力形式が
スプレッドシートっていう形式なら可能
10196:2007/10/13(土) 15:30:57 ID:???
>>100
スプレッドシートだと表じゃなくて円グラフとかのグラフの表示も
PHPの中でできるの?
102nobodyさん:2007/10/13(土) 15:31:23 ID:???
開発環境がどうであろうと結局は自分の管理次第。
アクセスしないファイルが紛れ込めばどちらにしろわからない。
103nobodyさん:2007/10/13(土) 15:38:30 ID:???
>>96
あ、すまんグラフか・・・・
グラフはGDかなんかで生成してやらんとだめかも
104nobodyさん:2007/10/13(土) 15:42:40 ID:???
>>97>>98>>99
レスありがとうございます。

>>85の記述で(一応)思い通りの動作が出来ました。
理由は>>98でした
こちらのミスです。スイマセン。
今環境をいろいろ触っている中で、そのフォルダの.htaccess使えるようにするのを忘れてましたorz

ただ、>>92に記述されているように、engine offにすると.phpでもphpが実行できなくなりました。
今回はこれで大丈夫なのですが、このレンタルサーバーにメールフォームをつけたいとかの要望があると、
このままでは問題があるので、engine off以外の対応法があればそちらを適用してみたいと思います。

>>102
まあそうなんだけど、人間ミスするのは避けられないと思うから、可能性を低くする事だけはしておきたいと思ってね。
105nobodyさん:2007/10/13(土) 15:48:08 ID:???
最後だけ偉そうな口調ワラタ
106nobodyさん:2007/10/13(土) 15:51:24 ID:???
>>104
.htaccessで特定のフォルダだけphp使用出来るようにすればいいんじぇねぇの・・
107nobodyさん:2007/10/13(土) 15:53:19 ID:???
どういう形であれできたのならそれで良いのではないかな。
スレ違いをここまで粘りこむ自分勝手さにこれ以上付き合う事もないだろ。
108nobodyさん:2007/10/13(土) 16:04:07 ID:???
>>104
*.phpの時以外はengin offにできるように書けばいいだけだよ
あとはapacheの設定のconfファイルの書き方だからスレ違い
109nobodyさん:2007/10/13(土) 16:14:15 ID:c/lxCBKk
PHPでSQLServerに接続ってできるの?
110nobodyさん:2007/10/13(土) 16:15:31 ID:Qhys5rK+
>>82
ありがとうございます。いろんなレンタルサーバで動かせるようにしたいと思いまして、
ファイルをわけることにします。
111nobodyさん:2007/10/13(土) 16:17:48 ID:???
>>107>>108
すまん、すれ違いだったのね
これ以上の事は別スレ探して聞いてきます。
アドバイスいただいた皆さんどうもです。
112nobodyさん:2007/10/13(土) 16:18:12 ID:Qhys5rK+
アクセス解析でモニタの解像度800x600とかそういうのを取得したいのですが、
SSIを使わず、jsで取得したものをPHPに渡したいと思います。
しかし、jsで取得したデータをPHPに渡す方法がわかりません。
どなたかヒントをいただけないでしょうか?
113nobodyさん:2007/10/13(土) 16:20:22 ID:???
>>109
普通に可能
>>112
クライアントサイドスクリプト、サーバサイドスクリプト
114nobodyさん:2007/10/13(土) 16:37:23 ID:???
>>112
<inpu type=hidden name="diplaysize">
みたいな送信フォームを仕込んどいて、これのvalueをJavaScriptで設定すれば
ページ送信時に現在の画面サイズを拾えるんじゃない?
フォームを使いたくない場合はJavaScriptでcookieに値を格納させて
それをPHPで取得する、って手もある。
115nobodyさん:2007/10/13(土) 16:54:07 ID:ZZVUcY03
現在時刻からデーターベースに"Y/M/D H:I:S"という形で登録されている日時が
何分前なのかを取得したいのですが、どのようにしたら出来ますか?
11696:2007/10/13(土) 17:10:08 ID:???
>>103
なるほど。サンキューとりあえずやってみるわ。
117nobodyさん:2007/10/13(土) 17:18:34 ID:???
>>115
タイムスタンプに変換
118115:2007/10/13(土) 17:21:38 ID:ZZVUcY03
mktime関数で変換しようと思うんですが、Y/M/D H:I:Sの形式から簡単にタイムスタンプに変換できる方法ってないですか?
explode使って配列にする方法しか思い浮かばないんですが・・
119nobodyさん:2007/10/13(土) 17:27:11 ID:???
>>115
俺ならSQLで書く
120nobodyさん:2007/10/13(土) 17:29:39 ID:???
>>118
strtotime()
121nobodyさん:2007/10/13(土) 17:51:46 ID:???
日付時刻関数のところくらい見ろよ・・・・
122nobodyさん:2007/10/13(土) 17:54:19 ID:???
どうせ、ヘボいその辺のリファレンス本読みで、
本に載ってませんでしたとかじゃないの?
123115:2007/10/13(土) 18:00:17 ID:???
>>120
ありがとうございます、出来ました。
>>121-122
リファレスを読んでいませんでした
出直してきます
124nobodyさん:2007/10/13(土) 18:09:22 ID:4PtcrD/P
ファイルが破壊されないカウンターでかつ簡単に作りたいのですが、
このようなロジックってどうでしょうか?
ローカルでテストしている分には大丈夫なのですが、
負荷がものすごくかかったときにどうなのかと思ってお聞きしました。
宜しくお願いします。

1. カウント書き込み部分
ユーザーがアクセスしてきたら、fopen($counter_file, "a");で開いて「*」をwriteして閉じる

2. カウンタ取得部分
$counter_fileのファイルサイズを取得して表示する。(byte数がカウント数)
125nobodyさん:2007/10/13(土) 18:15:15 ID:???
>>124
斬新だw
面白いんじゃなかろうか。
結構いけるんじゃね?
126nobodyさん:2007/10/13(土) 18:30:04 ID:???
>>124
確かに斬新だけど連続リロード対策は無し?
それと結局色々機能付けたくなるんじゃない?
純粋にカウンタだけならいいかもだけどそんな負荷かかるページなのか。
捕らぬ狸の皮算用じゃあ…
127nobodyさん:2007/10/13(土) 18:33:57 ID:???
124だとアクセスの度に*増えると思うんですが・・・
128nobodyさん:2007/10/13(土) 18:35:58 ID:???
別にそういう仕様のカウンタもアリだとは思うけど。
129nobodyさん:2007/10/13(土) 18:42:50 ID:???
ならファイル名でカウンターを作るとかどうよ?
130nobodyさん:2007/10/13(土) 18:42:58 ID:???
普通のカウンタでも1日4000程度のアクセスなら問題ない
5000~1万とかいくとファイルに数字しか書いてなくても壊れる

カウント時に*を書いて閉じるというが
アクセスあるたびにファイルサイズでかくなって大変になるな
131nobodyさん:2007/10/13(土) 18:44:51 ID:4PtcrD/P
>>125-128
レスありがとうございます。
前は、DBに保存していたんですけど、1日に多い時で数十万PVの日もありまして、
そのような時に、DBのコネクションエラーが発生して困っていました。

htmlをキャッシュしたり工夫しているのですが、カウンターのところはどうしても
リアルタイムで処理しないといけないので、その部分もDBではなくファイルでと考えています。
壊れなければ連続リロードされてもいいです。

又、アクセス1回で1byteしか消費しないので、1日ごとに$counter_fileを変えて、
cronで一日一回、昨日の$counter_fileのサイズを別の集計ファイルに加算した後削除することで、
ディスクサイズを圧迫することなく、かつtotalのアクセス数も計算できるかなぁとも思っています。

最終的に、この追加書き込みのロジックでファイルが壊れないかが一番の心配です。
132nobodyさん:2007/10/13(土) 18:47:38 ID:???
でも累計5000万アクセスとかあっても
ファイルサイズは50MBだろ?
でかいっつっても大した問題じゃないんじゃ?
ファイルの中身を読み込むわけでもないし。
その程度のファイルサイズはログファイルでもよく見るぞ。
そんなんで困るほどちっこいHDDでもあるまい。
133nobodyさん:2007/10/13(土) 18:48:24 ID:???
>>131
数十万ごときでコネクションエラーってインデックスはれてないとか
別の所に問題ありそうな気がするがな(鯖がしょぼいとか)
134nobodyさん:2007/10/13(土) 18:48:53 ID:???
>>131
なあ?ロックってしってるか?
135nobodyさん:2007/10/13(土) 18:49:57 ID:???
問題はピーク時の秒間アクセス量だとは思うが。
でもアクセスカウンタごときのためにサーバー増強とかありえねー。
136nobodyさん:2007/10/13(土) 18:51:36 ID:???
>>124
最初にカウンター作った時(shellスクリプト)、
やりかたが良く判らなかったのでその方法でやった。"1"の羅列
特にファイルが飛ぶとかなかった(PHPだとどうかな)けど、
ファイル容量が当たり前だが肥大してきて、普通のロックタイプにしてしまった。
定期的に"差分"にすれば良いかもね。でもカウンターとか最近使わなくないか?
137nobodyさん:2007/10/13(土) 19:47:17 ID:???
>>131
appendはOSが保証してくれるので安全。
当然ロックは不要。

集計するときは同時に他のが集計を始めないように他にロックファイル作るなりして排他処理をかけ、
まずrename(OS保証の安全な退避法になる)し、fstatのキャッシュをフラッシュしてからやること。

要はapacheログのローテーションと同じだからググれ




138nobodyさん:2007/10/13(土) 20:10:31 ID:???
>>130
げっ! そんなに簡単に壊れるものなの?
計算してみたら素人考えだと結構余裕だと思うんだがダメ?
1日4000アクセス: 21.6秒に1回
1日5000アクセス: 17.28秒に1回
1日1万アクセス: 8.64秒に1回

1日数十万PVってスゴイですね>>131
139nobodyさん:2007/10/13(土) 20:14:09 ID:???
アクセスが集中する時間ってあるから平均を求めると違和感あるかもね
ファイルロックが確りしてないとF5連打だけで壊れる事がありますよ
140nobodyさん:2007/10/14(日) 01:24:53 ID:???
セッション変数で管理して更新時間とかのチェックでひっかかったらカウンタ操作しない
141130:2007/10/14(日) 01:27:30 ID:???
>>138
うちのサイトは21時〜24時がアクセスの6割ぐらいを占めてる

プログラムあんま知らん頃だったとはいえ
flockとかかけても壊れたな・・・・
142nobodyさん:2007/10/14(日) 01:54:06 ID:???
>>141
数字だけでも2〜3秒でダメですか。結構シビアですね。
Cを少し勉強した時シェアード(共有)メモリってのがあったけどPHPでも出来ない?
http://jp2.php.net/manual/ja/ref.shmop.php
ファイル扱うよりいいのかどうか判りませんが。
143nobodyさん:2007/10/14(日) 02:18:24 ID:???
memcache
144nobodyさん:2007/10/14(日) 02:25:22 ID:???
>>142
それ使えばいいじゃん
145nobodyさん:2007/10/14(日) 02:42:08 ID:???
>>124
デブになったらどうすんのさ?
146nobodyさん:2007/10/14(日) 02:51:14 ID:TEnpd0OZ
セーフモードが効いてるサーバで
fopen($filename, "a");
でファイルがなかった場合、作成されますか?
UIDがなんたらかんたらとマニュアルに書いてあったので不安です。
winサーバでは問題なく作成されたんですが、linuxではどうなんでしょうか?
147nobodyさん:2007/10/14(日) 03:38:03 ID:???
まずそのなんたらかんたらの部分をちゃんと読むことから始めよう
148nobodyさん:2007/10/14(日) 03:54:52 ID:zCinDJDY
質問

パスワードをSESSIONで渡してるけどバレちゃいますか?
149nobodyさん:2007/10/14(日) 04:02:37 ID:???
セッションは暗号化する訳ではないから
生のパスワードをやりとりしてたら盗聴可能

何のためのセッション変数だw
150nobodyさん:2007/10/14(日) 04:52:42 ID:???
問題なのはセッションじゃなくて”生のパスワード”
151nobodyさん:2007/10/14(日) 08:41:50 ID:???
誰も生のパスワード渡してるとは言ってない
152nobodyさん:2007/10/14(日) 09:10:35 ID:???
共有サーバーで読まれる事を気にするくらいならユーザー権限で動かした方が良い
153nobodyさん:2007/10/14(日) 10:13:40 ID:???
んな設定、共有サーバーで勝手にできんのか?
154nobodyさん:2007/10/14(日) 10:18:30 ID:???
>>142
共有メモリでも結局ロックはしないといけないぞ。
それにファイルロックでも負荷が問題になって変な動きになる事はたぶんあんまりないはず。

ウェブアプリだと、いつ接続が切られて死ぬかもしれないから、
ロックファイルつくれば安心、ということはない。
ロックしたあと死ねばロックされっぱなしになる。
いつ死んでもいいようにするか、接続きられてもすぐに殺されないようにするか。
それでも生き死にはApache次第だから、ロックが変になる事はあり得る。

でもPHPのある共有サーバならデータベース位あるはずだから、
そっちを使った方がたぶん速くて強い、かつ設定に依存しないポータブルなものが出来ると思う。
155nobodyさん:2007/10/14(日) 10:25:34 ID:???
そこまで頑張るくらいならリロード対策はクッキーでやって
カウンタ自体は1バイトアペンドでやっちゃっても良さそう。
156131:2007/10/14(日) 10:36:00 ID:U7e4W6gp
昨日は、カウンターの件で沢山のレスを頂きましてありがとうございました。

ファイルが壊れるのが一番心配だったのですが、
実際に同じことをやられていた人や、appendはOSが保証してくれるというので安心しました。

業務でやっているわけじゃないので、絶対に壊れてはダメというわけではないのですが、
さすがに毎日のように壊れていては話にならないので、試行錯誤中でした。

頂いたレスで、
> 要はapacheログのローテーションと同じだからググれ
とありましたが、このappendのロジックを思いついたのも、
毎日のapacheのアクセスログが何で破損しないんだろう、という点からでした。
ファイルのサイズも何GBもあっても一瞬で計算できるのも利点だと思います。

とりあえず、やり方で本番環境に乗せる予定です。
どうもありがとうございました。
157nobodyさん:2007/10/14(日) 10:36:02 ID:???
たしかにカウンタ程度でサーバーの負荷高くするのもなぁ。
データベースへの接続は負荷高いし。

俺も1バイトアペンドでいいんじゃないかと思ってきたw

1バイトアペンドで何が問題?
ファイルサイズ?

一日ごとにファイルわければ問題なし。
そして、過去の日付は、ファイルサイズによるカウンタ法から
数値を入れたファイルに変換すればいいだろう。
158nobodyさん:2007/10/14(日) 10:49:09 ID:???
数値を入れたファイルから、ファイル名に数値を入れたら
さすがに吹き出すだろうか?w

today.dat ・・・・ファイルサイズでカウントする
2007-10-13-12345.dat・・・アクセス数12345 ファイルサイズは0
2007-10-12-44444.dat・・・アクセス数44444 ファイルサイズは0

ってな感じで。いや、中身読むより早いかなぁと思って。


ここでひらめいた! ファイル名カウンタ法!
アクセスがあるたびに、ファイル名でカウンタする。つまり
77777.dat ・・・ 77777がアクセス数
で、アクセスがあればリネーム。
リネームが成功すればカウント成功。失敗すれば
他プロセスがカウントしていたということでリトライ。
159nobodyさん:2007/10/14(日) 10:54:49 ID:???
タイムスタンプだと悪いのかな?
更新にラグが出るんだっけ?
160nobodyさん:2007/10/14(日) 12:30:32 ID:TEnpd0OZ
掲示板の記事Noはログファイルに記録するものなんでしょうか?
それともforでNoを作っていくものなんでしょうか?
161nobodyさん:2007/10/14(日) 12:35:47 ID:???
>>160
ログに記録している人の方が多いいと思われ、Noと記事の内容の不一致が起きると
都合の悪い事も出てくるからね。
162nobodyさん:2007/10/14(日) 12:46:10 ID:???
なるほど、Noも記録するようにします
163nobodyさん:2007/10/14(日) 12:49:51 ID:rdw+jS+b
>>154
flockは接続が途絶えれば解除されるような?
164nobodyさん:2007/10/14(日) 12:50:59 ID:???
DB接続をリソースプールに畜えておくわけにはいかんのか?
165nobodyさん:2007/10/14(日) 12:52:11 ID:???
指定した時間に自動で掲示板に書込みしてくれるスクリプトってないですか?
画像掲示板に連続投稿とか出来たら最高なんですけど。
166nobodyさん:2007/10/14(日) 12:56:42 ID:???
本当にくだらねぇ質問だなw
167nobodyさん:2007/10/14(日) 13:20:04 ID:???
>>165
スクリプト探しは他所で〜
難しくないから自分で作れ
168nobodyさん:2007/10/14(日) 13:26:30 ID:???
俺作ったよ。
2ちゃんねるに書き込むスクリプト。
169nobodyさん:2007/10/14(日) 13:52:38 ID:???
どうやって?
170nobodyさん:2007/10/14(日) 13:56:37 ID:???
秀丸で
171nobodyさん:2007/10/14(日) 14:11:23 ID:???
うそだ
172nobodyさん:2007/10/14(日) 15:02:40 ID:???
言うのはタダだからw

しかしカウンタでDB使っている日とってそんなにいるのか・・・
カウントするだけなのによ
173nobodyさん:2007/10/14(日) 15:03:30 ID:???
まぁまぁ、そう暑くならずに自分のおならの臭いを嗅いでエクスタシー感じようよ。
174nobodyさん:2007/10/14(日) 15:22:09 ID:???
PHPでuse strictみたいなのってないの?
175nobodyさん:2007/10/14(日) 15:42:30 ID:???
あるよ
176nobodyさん:2007/10/14(日) 16:42:04 ID:???
>>174
E_STRICTですかね
177nobodyさん:2007/10/14(日) 17:41:50 ID:???
>>172
個人で純粋にTOPのPVだけ取りたい人はテキストベースの方が多いんじゃない?
仕事で組む場合100%DBに頼ってる
178nobodyさん:2007/10/14(日) 17:45:07 ID:???
>>177
それは、独自のロジックを組んで問題になったら、責任が自分の所にくるけど、
DBでやってトラブったら、Oracleの営業を呼んで扱き下ろしてやれば良いという姑息な打算から???
179nobodyさん:2007/10/14(日) 17:47:11 ID:???
>>178
ごめんPostgresなんだw Oracleやりたいぜorz
180nobodyさん:2007/10/14(日) 18:05:50 ID:???
たまにはこういうゲームやろうぜ
http://game13.2ch.net/test/read.cgi/mmo/1191276517/
181nobodyさん:2007/10/14(日) 18:56:39 ID:???
画期的なPHPゲームでも何かないかね
182nobodyさん:2007/10/14(日) 19:07:44 ID:???
>>181
つ 脳内メーカー
183nobodyさん:2007/10/14(日) 20:07:50 ID:???
>>178
アクセスログをDBに放り込んで、解析結果のひとつとして
トップページのアクセスカウントとか得てるからじゃないの。
184nobodyさん:2007/10/14(日) 20:21:43 ID:???
PHP 5.1.6で以下を参考に、mcrypt_genericで暗号化復号化をしているのですが、
ttp://weblog.riok.net/2006/09/mcrypt.php

復号化した際、データの最後にゴミが残ってしまいます。
このゴミを取り除く方法はありますでしょうか?
185nobodyさん:2007/10/14(日) 20:37:28 ID:???
とりあえず5.1系からバージョンうpしろよ
186nobodyさん:2007/10/14(日) 22:25:46 ID:T+RuNK/v
PHP4.4です。
30個ほどある$_POST{"***"}をfunctionに入れて各スクリプトより使いたいんですが

function ($_POST){
$a = $_POST{"a"};
$b = $_POST{"b"};
$c = nl2br($_POST{"c"});
$d = round($_POST["d"});
 〜
return true;
}

こういう風に書いたんですけど、returnで返って来ません。
return $a,$b,$c…っていう風に書くとエラー出ますし
return array($a,$b,$c…)って風に配列に入れる以外方法無いんでしょうか?
187nobodyさん:2007/10/14(日) 22:31:27 ID:???
関数の外で
$a〜$dを初期化しといて

function hoge() {
global $a;

global $d;
  (処理)
return;
}

とすればいいんじゃないか?
ちなみに$_POSTは引数として与えなくてもスーパーグローバルだから。
188nobodyさん:2007/10/14(日) 22:33:01 ID:???
>>187
関数の中では無理って事ですね。了解
189nobodyさん:2007/10/14(日) 22:34:06 ID:???
>>188
ならクラスを使いなさい
190nobodyさん:2007/10/14(日) 22:35:42 ID:???
そこでグローバル変数かよw
191nobodyさん:2007/10/14(日) 22:36:09 ID:???
>>189
調べてみます
Javascriptだとreturn[a,b,c,d]が効いたのに
なかなかPHPは難しいすねー
192nobodyさん:2007/10/14(日) 22:37:34 ID:???
return array($a, $b, $c, $d);
すりゃいいじゃん
193nobodyさん:2007/10/14(日) 22:38:39 ID:???
3ヵ月後に自分でソース見直して後悔するのは>>186だしw
最初から$arr['a']〜$arr['b']とかしといた方がまだマシだろうけどねw
194nobodyさん:2007/10/14(日) 22:43:19 ID:???
思い付いたんだが
return $a;
return $b;
return $c;
って書けば完璧じゃね?
195nobodyさん:2007/10/14(日) 22:43:35 ID:???
天才現る
196nobodyさん:2007/10/14(日) 22:43:36 ID:rdw+jS+b
hoge($a,$b,c);
function hoge(&$a,&$b,&$c) {
$a=$_POST["a"];
$b=$_POST["b"];
$c=$_POST["c];
}

参照だろ
197nobodyさん:2007/10/14(日) 22:44:49 ID:???
引数30個も書かせる気かよw
198nobodyさん:2007/10/14(日) 22:46:14 ID:???
何が何だか分からなくなってきた
199nobodyさん:2007/10/14(日) 22:48:15 ID:???
素直に連想配列でやり取りすべき。
200nobodyさん:2007/10/14(日) 22:48:56 ID:???
抽象クラスでやり取りすべき。
201186:2007/10/14(日) 22:49:24 ID:???
>>194
と思ったんですがスマートじゃないなと
>>196
完璧っす!!これで行きます。
ありがとうございました!
202nobodyさん:2007/10/14(日) 22:50:05 ID:???
PHP4.4で抽象クラス使えたっけ?
203nobodyさん:2007/10/14(日) 22:51:54 ID:???
1行だけとんでもない長さの行が出来そうなやり方だな
204nobodyさん:2007/10/14(日) 22:52:34 ID:???
>>203
呼び出しと関数定義の2行だ
205nobodyさん:2007/10/14(日) 23:17:05 ID:???
function hoge(&$a,&$b,&$c,&$d,&$e,&$f,&$g,&$h,&$i,&$j,&$k,&$l,&$m,&$n,&$o,&$p,&$q,&$r,&$s,&$t,&$u,&$v,&$w,&$y,&$x,&$z,&$a1,&$a2,&$a3,&$a4) {
$a = $_POST["a"];
$b = $_POST["b"];
$c = $_POST["c"];
$d = $_POST["d"];
$e = $_POST["e"];
$f = $_POST["f"];
$g = $_POST["g"];
$h = $_POST["h"];
$i = $_POST["i"];
$j = $_POST["j"];
$k = $_POST["k"];
$l = $_POST["l"];
$m = $_POST["m"];
$n = $_POST["n"];
$o = $_POST["o"];
$p = $_POST["p"];
$q = $_POST["q"];
$r = $_POST["r"];
$s = $_POST["s"];
$t = $_POST["t"];
$u = $_POST["u"];
$v = $_POST["v"];
$w = $_POST["w"];
$x = $_POST["y"];
$y = $_POST["x"];
$z = $_POST["z"];
$a1 = $_POST["a1"];
$a2 = $_POST["a2"];
$a3 = $_POST["a3"];
$a4 = $_POST["a4"];
return true; }}   # 30個の例。どう考えてもおかしいだろ。(行多すぎてここにしかコメント書けんw)
206nobodyさん:2007/10/14(日) 23:18:20 ID:???
これでも変数名2文字までなんだぜ?
207184:2007/10/14(日) 23:20:28 ID:???
>>185
アップしてきます
ありがとうございました。

ちなみにテンプレsage進行になってるんだけど、
やっぱりあげるべきだった?
208nobodyさん:2007/10/14(日) 23:21:23 ID:???
そのとおりです
209nobodyさん:2007/10/14(日) 23:58:32 ID:???
よく考えたらreturn array($a, 〜)も30個並べるんだよなw
return array($a,$b,$c,$d,$e,$f,$g,$h,$i,$j,$k,$l,$m,$n,$o,$p,$q,$r,$s,$t,$u,$v,$w,$y,$x,$z,$a1,$a2,$a3,$a4);

これ↓はダメなの?(エラー?)
function hoge(){
$hash["a"] = $_POST["a"];
$hash["b"] = $_POST["b"];
(中略)
$hash["a4"] = $_POST["a4"];
return $hash;
}

210nobodyさん:2007/10/15(月) 00:19:40 ID:???
大人しくクラス使えよ。
馬鹿じゃねえのおまえら。
211nobodyさん:2007/10/15(月) 00:36:06 ID:???
extract関数使えばいいじゃん。
212nobodyさん:2007/10/15(月) 00:37:32 ID:???
>>209
だったら最初から$_POSTのままでアクセスすりゃいいのでは…
どうしてもグローバル変数に入れたいってなら
function hoge() {
 foreach($_POST as $k => $v) {
  $GLOBALS[$k] = $_POST[$v];
 }
}
とか。
つーかこれ、ぶっちゃけextract()でいいじゃん。
ま、上の関数ならちょっといじればキーに制限とかも加えられるけど。
213nobodyさん:2007/10/15(月) 00:51:10 ID:???
レベルひき〜。。
214nobodyさん:2007/10/15(月) 00:52:21 ID:???
>>213
>>スレタイ
215nobodyさん:2007/10/15(月) 00:53:44 ID:pvBXefed
会社で(といってもIT系じゃなくて普通の会社)で、web担当をしています。

こんど新しいサービスを始めるってことで、会員登録ができるように
システムの変更を任されたのですが、ユーザーIDを漢字でも平仮名でも
いける様にしろと役員からの命令で作っているのですが、
こんな仕様で支障はないですか?

ユーザーIDに漢字を使った記憶が私自身無いので、違和感が多少あります。
普通にはあまりないけど、特に問題ないってことであれば良いとは思うんですが。
216nobodyさん:2007/10/15(月) 01:21:30 ID:???
漢字OKにする=漢字で本名入力する=ログインの都度ネットに本名が流れる
気持ちがいいとは思えないが、まぁいいんじゃない
それでいいなら
217nobodyさん:2007/10/15(月) 01:22:02 ID:???
きちんとエスケープ忘れなければ大丈夫だろ
218nobodyさん:2007/10/15(月) 01:24:27 ID:???
嫌なら役員の顔にうんこ塗ってやめる。
多分技術知らん役員が、指示してるんだから、言葉通りじゃなく意味を察してやればいい。
おそらく、IDっていうかニックネームくらいの意味合いでしょ。
実際のIDは別に数字で作っておけば仕様変更に耐えて拡張できるじゃない。
219nobodyさん:2007/10/15(月) 01:37:38 ID:???
>嫌なら役員の顔にうんこ塗ってやめる。

鬼子乙
220nobodyさん:2007/10/15(月) 01:46:20 ID:???
もういまから5.2系でかけるようになったほうがいいぜ
221nobodyさん:2007/10/15(月) 02:22:54 ID:???
今日はネタ的な質問ばかりだなw
222nobodyさん:2007/10/15(月) 02:44:11 ID:???
レスポンスヘッダーに下記がついてしまうが、
これを
---------------------------------------
Date: Sun, 14 Oct 2007 17:40:56 GMT
Server: ***
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Content-Length: 4486
Connection: close
Content-Type: text/html; charset=utf-8

200 OK
---------------------------------------

下記のようにしたい。

---------------------------------------
Date: Sun, 14 Oct 2007 17:36:23 GMT
Server: ***
Etag: f55e173eaf6d08418edc18ac4df2752d
Content-Type: text/html; charset=utf-8

200 OK
---------------------------------------

session_start();
するとついてしまうものですか?
223nobodyさん:2007/10/15(月) 02:47:04 ID:???
どう考えても動作上必須
224nobodyさん:2007/10/15(月) 02:50:55 ID:???
HTTPから勉強しろw
225nobodyさん:2007/10/15(月) 03:17:06 ID:???
>>223-224
ネタ乙。
226nobodyさん:2007/10/15(月) 05:41:13 ID:tolXaTNQ
$array = array("あああ","いいい","ううう");

という配列があったとして、配列の指定番号を
別の文字列に置き換えるには、どうしたらいいのでしょうか?
227nobodyさん:2007/10/15(月) 05:57:15 ID:rCD/KqUy
朝っぱらから申し訳ありませんが質問させてください

<br>&copy;
これを
%3Cbr%3E%26copy%3B
このようにcookieに保存させたい場合どのようにしたらいいですか?
228227:2007/10/15(月) 06:04:35 ID:rCD/KqUy
質問間違えました。
cookieに%3Cbr%3E%26copy%3Bを保存したのですがhtmlに表示するにはどうしたらいいですか?
htmlspecialcharsをやってみたのですが<br>だけ表示され、&copy;が表示されません。
229227:2007/10/15(月) 06:09:03 ID:rCD/KqUy
解決しました。
ありがとうございました☆
230227:2007/10/15(月) 06:23:10 ID:rCD/KqUy
解決してませんでした!
また別の問題でした><シクシク
231nobodyさん:2007/10/15(月) 06:23:13 ID:???
>>226
まずはマニュアル見なよ
>>1のマニュアルで「配列」あたりで探してみな。

右上の検索窓で array で検索するのもいいかもね。
232nobodyさん:2007/10/15(月) 06:34:03 ID:???
>>227
とりあえずもちつこう。
で、結局何が質問で何が解決した部分なんだ?
233227:2007/10/15(月) 06:51:00 ID:rCD/KqUy
>>232
ありがとう!
配列で検索したら解決しました☆
234nobodyさん:2007/10/15(月) 08:29:23 ID:rCD/KqUy
また質問が・・・
235435:2007/10/15(月) 09:12:11 ID:???
>>226
$array = array("別のkey1" => "あああ", "別のkey2" => "いいい", "別のkey3" => "ううう");
236nobodyさん:2007/10/15(月) 09:40:03 ID:???
PHP4.3xですが
$valueに日本語が含まれていない場合の処理はどの様に書くんでしょうか?
ググってもMTのコメントスパムモジュールみたいな物しか載ってなくて…。

とりあえず
#半角英数字しか$valueに無い場合はエラー
if(!mb_ereg('[^0-9a-zA-Z]',$value){〜
って風に書いてますが、この場合空白文字や改行を含むと通ってしまいます。
237nobodyさん:2007/10/15(月) 10:04:25 ID:YXxNHMi3
$this->hoge()
といちいちやるのがめんどうだ。。。
なんか関数や変数を参照する前にフックさせて、$this->と書かなくてもいいようにできないのかなぁ。
238236:2007/10/15(月) 10:18:49 ID:???
>>236の自己レス
if(preg_match("/^[!-~\r\n ]+$/",$value)){

これで行けそうな気がしましたが大丈夫かな…
239nobodyさん:2007/10/15(月) 10:19:59 ID:wektbLJ2
functionの名前付けで
setは値をセット、getは値を返すようにしているけど
値を書き換えるときはどんな名前をつけたほうがいいですか?
240nobodyさん:2007/10/15(月) 10:22:15 ID:???
PHP6の名前空間に無意味に期待!
241nobodyさん:2007/10/15(月) 10:29:37 ID:???
>>239
setで値書き換えたらいいんじゃない?
242nobodyさん:2007/10/15(月) 10:33:16 ID:wektbLJ2
>>241
サンクス
setにしてみます。

changeにしようと思ったが思いとどまってよかった・・・
243nobodyさん:2007/10/15(月) 15:59:36 ID:???
プログラミングより
細かい正規表現を作れる奴の方が凄いよ
http抜出とか、人の見ても理解できないよ
ひらがな・カタカナ抽出とか
記号だけHITさせるなんて書けるやついる?
244nobodyさん:2007/10/15(月) 16:02:41 ID:???
細かい正規表現より、細かい性器表現の方が凄いよ。
245nobodyさん:2007/10/15(月) 16:03:05 ID:???
沢山いる
246nobodyさん:2007/10/15(月) 16:10:55 ID:???
>>243
アドレスはURIの知識があれば書ける
平仮名片仮名記号は[]内に書いておけば事足りる
文字コードで範囲指定しても良いけど

正規表現で重要なのは表現したい対象を構成するデータパターンを把握する能力
アドレス抜き出しはURIの知識が無かったら書けない

パターンの最適解を求める話はしてないので念の為
247nobodyさん:2007/10/15(月) 16:41:08 ID:???
>>222
ぐぐりました?
248nobodyさん:2007/10/15(月) 16:43:09 ID:???
>>243
正規表現はPHPとは独立してる話だから
249nobodyさん:2007/10/15(月) 16:57:06 ID:oAeMasT7
まさに正規表現なんですが
コード座標が違うOS依存文字を強調表示にする
書き方がちんぷんかんぷんです
どういった手続きが良いんでしょうか?
なんでwinとmacで(1)とかVIとか場所が違うんでしょうね…
250nobodyさん:2007/10/15(月) 17:00:25 ID:???
スレ違い、専用スレいけクズ
251nobodyさん:2007/10/15(月) 17:00:30 ID:???
Unicode使えば解決
252nobodyさん:2007/10/15(月) 17:25:05 ID:oAeMasT7
・入稿フォーム→添付メール→MACで開く→ユニコードない→文字化けアッー

・添付する前に保存したものをブラウザで見る→ブラウザのユニコードで記号ok→イラレにコピペ→文字化けアッー

です。

もう警告表示つけて入力抑止しようかなと…
253nobodyさん:2007/10/15(月) 17:28:36 ID:xzfwn/e8
function 0(){
・・・・
}
から
function 20(){
・・・・
}
0();

20();
って書いて読んでるんですが何か楽な方法ないでしょうか。forがよく分からなくて・・
254nobodyさん:2007/10/15(月) 17:30:58 ID:???
っていうかOS依存文字何か使ってるのがもうね(ry
255nobodyさん:2007/10/15(月) 17:33:00 ID:???
>>253
えヴぁlでいいんじゃね?

>>252
機種依存文字を使う馬鹿のサポートなんてしなくていいよ。
256nobodyさん:2007/10/15(月) 17:54:25 ID:???
>>253
関数名の先頭に数字は付けられないはずだが
257nobodyさん:2007/10/15(月) 18:07:58 ID:xzfwn/e8
>>256
あ。レスありがとう。先頭が数字なのは例のつもりでした。
実際は
sitemap0〜sitemap50とかです。
少ないし別に並べて書いてもいいかな。。。w
258nobodyさん:2007/10/15(月) 18:12:04 ID:???
>>257
可変変数でグぐれ。
可変関数でももしかしたらでるかもしれん
259nobodyさん:2007/10/15(月) 18:21:41 ID:???
>>253
昨日30個の$_POSTの処理の質問出たけどそれの続き?
今度は30個の$_POSTを個別に関数で処理するとか
260nobodyさん:2007/10/15(月) 18:22:47 ID:???
同じような処理で30個も関数使いわける必要がある時点で何かおかしい
261nobodyさん:2007/10/15(月) 18:30:49 ID:???
PHP5&smartyで開発してるんだけど、
tplに組み込むソースをバイナリエディタで見る→おK
hoge.tplに組み込んでhoge.php表示→レイアウト崩れ
ソース見る→半角スペース入る(バイナリエディタだと文字化け)
って現象に悩まされてるんだが。
正:
<!DOCTYPE
現在:
\<!DOCTYPE
↑ここが文字化け(見た目は半角スペース)

原因不明です。誰か教えてください。
よろしくお願いします。
262nobodyさん:2007/10/15(月) 18:32:44 ID:???
文字コード変換する時にゴミが混じってる悪寒
263nobodyさん:2007/10/15(月) 18:34:48 ID:???
BOM
264nobodyさん:2007/10/15(月) 18:36:21 ID:???
>>261
Unicodeならそれ普通
265nobodyさん:2007/10/15(月) 18:37:59 ID:xzfwn/e8
みなさんレスありがとうございます。
>>258 可変関数などでぐぐってみます〜
>>259 自分じゃないですよ。サイトマップを半自動で作るようにしたいのです。
>>260 おかしいですよね・・・動的ページのサイトマップを自動で作りたいんだけど、
何か方法ないものかいろいろ試してるんですよ。

みんなどうやってサイトマップ作ってるんだろ。
266nobodyさん:2007/10/15(月) 18:39:19 ID:???
俺だったら再帰関数でページ一覧でも出力する
267nobodyさん:2007/10/15(月) 19:49:40 ID:tolXaTNQ
226ですが、ちょっと質問の仕方が悪かったです。

$array = array("あああ","いいい","ううう");

$array = array("あああ","","ううう");

というように、連想配列ではなく、
配列の一部を変更出来る方法を教えていただければと思います。
268nobodyさん:2007/10/15(月) 19:53:28 ID:???
>>267
どの時点で変更するの? 代入時? 代入後?
$array["いいい"] = "";だとダメ?
269nobodyさん:2007/10/15(月) 19:53:37 ID:???
>>267
array_search
270nobodyさん:2007/10/15(月) 20:05:29 ID:???
>>267
一体何をしたいかサパーリわからんからみんな困ってるよ
271nobodyさん:2007/10/15(月) 20:41:07 ID:???
>>267
$array[1] = "";
272nobodyさん:2007/10/15(月) 21:01:56 ID:???
みなさんクッキーにデータ保存するときどうしてますか?
生データ入れてる?
273nobodyさん:2007/10/15(月) 21:19:19 ID:???
生データもあればハッシュ値もあったり
場面場面によって違う
274nobodyさん:2007/10/15(月) 21:20:44 ID:???
>>273
普通の掲示板、例えば2chの名前とE-mailのデータを入れたい場合はどうしますか?
275nobodyさん:2007/10/15(月) 21:31:55 ID:???
>>274
md5でok
276nobodyさん:2007/10/15(月) 21:46:53 ID:???
>>275
ありがとう!いい人だ。
277nobodyさん:2007/10/15(月) 21:52:35 ID:???
md5は不可逆(md5した値から元のデータを取り出せない)だが、いいのか?
278nobodyさん:2007/10/15(月) 22:11:18 ID:???
mcrypt
279nobodyさん:2007/10/15(月) 23:11:35 ID:PdW9cMRB
くだらない質問ですがよろしくお願いします。

今現在CSVファイルのデータをもとにフリー検索できるようにしてるのですが、
サイズが膨大すぎて時々上手く作動しません。

データは  $Data=file("datacsv"); こんな感じで読み込んでます。
そこで質問なんですが、特定の列だけを対象に読み込ませることは可能でしょうか?

例えばCSVのデータの縦列6行目の商品名のみを対象にとか

お願いします。
280nobodyさん:2007/10/15(月) 23:12:50 ID:???
>>277
そうなんですか?

>>275
嘘教えないでください
281nobodyさん:2007/10/15(月) 23:18:35 ID:???
>>279
$array = split(',',$Data['5']);# 6列目
print $array[2];# 前から3番目に商品名が入ってるとして

こんなんでどう?
ていうか、サイズが膨大すぎて時々上手く動作しませんってのはおかしい
282nobodyさん:2007/10/15(月) 23:21:34 ID:???
>>280
>>278使えば可逆できるみたいよ。
(mcryptのマニュアル見たけど難しくて理解できなかったけど)

掲示板の名前やメアドくらいなら生でもいいんじゃいの? またはhttps使うとか
md5はDB使ってて照合する場合(認証等)ならいいと思います。
283nobodyさん:2007/10/15(月) 23:44:35 ID:???
>>279
特定列(行?)だけを対象ってのは関数自作しないとダメと思う。
$Data=file("datacsv")だとファイル丸ごと読み込んでるから重いんだと思う。
1行ごと読み込んで必要な列だけ別配列に移しファイル閉じてから配列ぶん回して検索すればどう?
284279:2007/10/15(月) 23:54:30 ID:???
>281
ありがとうございます。試してみましたが、なかなか上手くいきません・・・
スキル不足でしょうか・・

>283
そうなんです。ファイルが膨大なため上手く読み込めなくて文字化けしたり、挙動がたまにおきます。
問題はピンスポットで検索できず、余計なものまで読み込んでることにあります。
商品名だけ検索対象にしたいのですが・・・

おっしゃってることは理解できるのですが、関数が簡単に自作できないもんで・・・
285nobodyさん:2007/10/15(月) 23:59:44 ID:???
>>284

勉強してからきてね♪

286nobodyさん:2007/10/16(火) 00:04:24 ID:???
>>284
ファイルが膨大ってどれぐらいのサイズ?
郵便局のH.P.で配布されてる郵便番号のデータ読み込んで
住所の一部から郵便番号とか、郵便番号から住所とか検索するの作ったけど
データファイルが10MB以上あるけどちゃんと動くよ?
差し支えなけりゃそのデータファイルうpよろ
プログラムに原因があるんじゃなくデータファイルに原因あるかも
287nobodyさん:2007/10/16(火) 00:10:56 ID:???
300MBに10ペリカ
288nobodyさん:2007/10/16(火) 00:16:15 ID:???
技術ないくせに技術とかWebを語るやつはよく挙動がおかしいというな。お前がおかしい(スキルが低い)と(ry
289nobodyさん:2007/10/16(火) 00:17:07 ID:???
>>284
努力を見せてくれ
話はそれからだ
290283:2007/10/16(火) 00:26:41 ID:???
こんなのはどう? うまく動くかは知らんが。

$csvfile = "data.csv";
$search_field = 6; # n番目の列を検索(1スタート)
$search_word = "xxx";

function search_csv($csvfile, $search_word, $search_field){
 $row = 0;
 $field = $search_field - 1 ;
 $handle = fopen($csvfile, "r");
 while (($data = fgetcsv($handle, 1000)) !== FALSE) {
  if((strpos($data[$field],$search_word)) === true){ # 検索処理
   $hit[$row++] = $data[$field];
  }
 }
 return $hit;
}

実際の検索処理はstrposじゃダメだと思うけど。
もし検索対象列以外の情報も欲しいならその列番号を引数($field_id)にして
 $hit[$row][0] = $data[$field_id - 1];
 $hit[$row++][1] = $data[$field];
とでもして。
291nobodyさん:2007/10/16(火) 00:37:31 ID:???
DB使えばいいのにと思ってしまう
292279:2007/10/16(火) 00:43:26 ID:???
>>290

ありがとうございます。
今日じっくり試してみます。

>>291

DBがベストですね。 CSVをmySQLにインポートしてから・・・ も最終的には
考えています。

みなさんありがとう。またきます。
293nobodyさん:2007/10/16(火) 00:51:29 ID:???
>>292
>>CSVをmySQLにインポートしてから・・・ も最終的には考えています。

処理重いなら最初に考えてくれ
そしたら対象列のみの検索関数なんていらないのに。(DB使えない事情あるのかと思ってたよ)
294nobodyさん:2007/10/16(火) 12:42:40 ID:???
昨日は、アドバイス頂きましてどうもありがとうございました。
頂いたアドバイスは大して役に立たなかったのですが、
自分でその後色々試してみてできるようになりました。

ただ、アドバイス頂いたことをキッカケで解決の糸口になったので、
その点については感謝します。どうもありがとうございました。
295nobodyさん:2007/10/16(火) 13:00:30 ID:???

       , - ,----、 
      (U(    ) 
      | |∨T∨
      (__)_) お役に立てなくて本当に申し訳ありませんでした。
296nobodyさん:2007/10/16(火) 13:03:14 ID:???

             / ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ./ / | もう来るなよ!>>294
           / /  \          / ̄ ̄ ̄
           / /     ̄|/ ̄ ̄ ̄ ̄|  ウワアアン!
         ./ /       , -つ     \       
         / / `Д´)  ./__ノ        ̄∨ ̄ ̄ ̄ ̄
        /    \ / /   ⊂_ヽ、
        .|    へ/ /      .\\ 
        |    レ'  /、二つ       \ ( `Д´)
        |     /.          . >  ⌒ヽ
       /   /             /    へ \
       /  /               /    /   \\
      /  /               レ  ノ     ヽ_つ
     / ノ               /  /
   _/ /                /  /|
  ノ /                 ( ( 、
⊂ -'                    |  |、 \
                     .  | / \ ⌒l
                       | |   ) /
                      ノ  )   し'
                     (_/
297nobodyさん:2007/10/16(火) 13:10:49 ID:???
>頂いたアドバイスは大して役に立たなかったのですが、
>自分でその後色々試してみてできるようになりました。
>
>ただ、アドバイス頂いたことをキッカケで解決の糸口になったので、
>その点については感謝します。どうもありがとうございました。


なにこの糞厨房?
自分の技術のなさとやりたいことを伝える能力のなさを棚に上げて何言ってんの?


298nobodyさん:2007/10/16(火) 13:47:35 ID:???
>>296>>297
は?何、キモイレスしてんの?
ワザワザ時間を使ってお礼のレスを書いているのに、お前こそ何様?
そもそも、お前がアドバイスしてくれた本人じゃないだろ。
お前が消えろ。
299nobodyさん:2007/10/16(火) 13:57:58 ID:???
うるさいっすよ( ^ω^)
300nobodyさん:2007/10/16(火) 13:59:55 ID:???
>>294=>>298

ウザ厨房は早く消えろ
もうくるなよ
301nobodyさん:2007/10/16(火) 14:00:27 ID:???

ここは気持ちの綺麗な初心者がくだらねえ質問を書くスレであって、くだらねえ性格の持ち主が来る場所じゃない
よって、お前はもう来るなよ!
302nobodyさん:2007/10/16(火) 14:44:20 ID:???
>>294,298 = >>279だよね?
では大して役に立たなかったアドバイスをした私(>>283,290)から一言、

             / ) / ̄ ̄ ̄ ̄ ̄ ̄ ̄
            ./ / | もう来るなよ!>>294 >>298
           / /  \          / ̄ ̄ ̄
           / /     ̄|/ ̄ ̄ ̄ ̄|  ウワアアン!
         ./ /       , -つ     \       
         / / `Д?)  ./__ノ        ̄? ̄ ̄ ̄ ̄
        /    \ / /   ?_ヽ、
        .|    へ/ /      .\\ 
        |    レ'  /、二つ       \ ( `Д?)
        |     /.          . >  ⌒ヽ
       /   /             /    へ \
       /  /               /    /   \\
      /  /               レ  ノ     ヽ_つ
     / ノ               /  /
   _/ /                /  /|
  ノ /                 ( ( 、
? -'                    |  |、 \
                     .  | / \ ⌒l
                       | |   ) /
                      ノ  )   し'
                     (_/
303nobodyさん:2007/10/16(火) 14:53:41 ID:???
  /::::::::::::::::::::::::::\〜プーン
  /:::::::::::::::::::::::::::::::::::::::\〜プーン
  |:::::::::::::;;;;;;|_|_|_|_|〜プーン
  |;;;;;;;;;;ノ∪  \,) ,,/ ヽ〜
  |::( 6∪ ー─◎─◎ )〜        
  |ノ  (∵∴ ( o o)∴)〜      
  | ∪< ∵∵   3 ∵> <は?何、キモイレスしてんの? 
  \        ⌒ ノ_____
    \_____/ |  | ̄ ̄\ \
___/      \   |  |    | ̄ ̄|
|:::::::/  \___ | \|  |    |__|
|:::::::| \____|つ⊂|__|__/ /
|:::::/        | ̄ ̄ ̄ ̄|  〔 ̄ ̄〕

顔真っ赤な>>298
304nobodyさん:2007/10/16(火) 16:08:57 ID:6XgRK9pl
東京都港区芝公園4-2-8


都道府県
市区町村
○○丁目
○番地

のように解析するようなライブラリとかありませんか?
305nobodyさん:2007/10/16(火) 16:10:33 ID:???
質問なんですけど
クラスでmysqlを使うときに
$this->mysqli->query("show tables")
みたいに書いても動かないんですけど
やっぱり->が二つ以上あるのはだめなんですか?
クラスでmysql使うにはどうしたらいいんでしょうか?
やっぱり、手続き型ですか?
306305:2007/10/16(火) 16:12:44 ID:???
->はオブジェクトのみだったんですね
自己解決しました。
307nobodyさん:2007/10/16(火) 16:16:36 ID:???
PHP4.3系+MySQL4.0でデータの変更フォームを作っています。

変更フォーム画面にアクセスした時、
既に登録されているデータをフォーム内に配置したいと思っています。

テキストボックスの値やテキストエリアの値は変数をそのまま出力するだけで簡単でしたが、
セレクトメニューの項目の場合、皆さんはどういう風に登録値を当て嵌めてますか?
308305:2007/10/16(火) 16:17:07 ID:???
解決していません;;
309307:2007/10/16(火) 16:19:13 ID:???
キーワードごとに条件分担すればできました。
解決しました。
310nobodyさん:2007/10/16(火) 16:28:14 ID:???
>>307
嵌めてるだなんて…イヤラシイ
311nobodyさん:2007/10/16(火) 17:25:19 ID:???
>>309
ちょ・・・>>307俺なんだけど・・
312nobodyさん:2007/10/16(火) 17:29:04 ID:???
>>304
その話は、確か1週間前に荒れた話題・・・
313nobodyさん:2007/10/16(火) 17:31:08 ID:HcNoY8tx
classの質問です。

$func = 'Test';
$this->'user'.$func.'Warp'();
こんな形で
userTestWarpファンクションを通過させたいのですがうまく行きません。
どのような書き方でうまく動作するでしょうか?
宜しくお願いします
314nobodyさん:2007/10/16(火) 17:34:15 ID:6XgRK9pl
>>312
そうなのですか、すみませんでした。
住所を検索して位置情報を取得したいのですが、
Geocoding使う以外に何か方法はないものかと思っていたら
国土交通省に各住所と位置情報のデータベースがあったので、
そこから検索しようと思い入力された住所を解析しようと思いました。
315nobodyさん:2007/10/16(火) 17:36:57 ID:???
>>313
$this->{'user'.$func.'Warp'}();
$this->{"user{$func}Warp"}();
など。
316nobodyさん:2007/10/16(火) 17:37:16 ID:???
>>311
ちょww俺だっつーのwww
317nobodyさん:2007/10/16(火) 17:42:49 ID:???
当スレではID表示は強制ではないが、ID非表示=回答は無くても構わない
という意思表示とみなされます。
318nobodyさん:2007/10/16(火) 17:45:25 ID:???
ってか何でテンプレ変えたの?
319nobodyさん:2007/10/16(火) 17:56:42 ID:???
荒れるからでしょ。

ID出さずに自滅するのは質問者の勝手、ってことにすれば
喧嘩は質問者とその騙りだけで閉じて回答者は参加しなくなるから。
320nobodyさん:2007/10/16(火) 18:40:10 ID:NYdItq6K
天皇には、民事裁判権は及ばないとのことですが、
皇后についてはどうでしょうか?

例えば、天皇皇后が終戦記念日の祝典に出たときに、
皇后が何もお言葉を述べなかったのは、
戦没者を不当に軽視するもので、精神的な苦痛を受けたとして、
皇后を被告に民事裁判を申し立てることはできますか?
321nobodyさん:2007/10/16(火) 18:41:33 ID:???
なんでしゃべらんだけで訴えられなきゃいかんのだ
322nobodyさん:2007/10/16(火) 18:41:56 ID:???
さきほどPHPの教書みながらオナニーしました。 つい・・・

323nobodyさん:2007/10/16(火) 18:43:35 ID:???
PHPってよく見るとおっぱいみたいだよね
324320:2007/10/16(火) 18:44:51 ID:NYdItq6K
失礼、ミスしました。無視して下さい。
325nobodyさん:2007/10/16(火) 18:53:29 ID:???
>>320
皇后さまがカワイソっす。
326nobodyさん:2007/10/16(火) 18:57:31 ID:CHj8ujM0
配列をcookieに保存する方法を教えてください。
setcookieを配列の数実行したらいいのでしょうか?
327nobodyさん:2007/10/16(火) 19:09:25 ID:???
シリアライズして格納すれば?
328nobodyさん:2007/10/16(火) 21:27:56 ID:CHj8ujM0
$a = '山田';
$b = '山本';
これをシリアライズしてcookieに保存する方法をおしえてください。
329nobodyさん:2007/10/16(火) 21:33:25 ID:???
マニュアル見れ
330nobodyさん:2007/10/16(火) 22:09:57 ID:???
>>328
シリアライズする必要ないじゃん。そのまま格納しれ。
331nobodyさん:2007/10/16(火) 22:32:03 ID:opvWCKV/
mysqlリソースを一行ずつ処理する関数はありますが、
リソースを一工程で連想配列として扱う方法はありますか?
332nobodyさん:2007/10/16(火) 22:42:05 ID:???
>>331
なんでまた連想配列?
ちなみにそれ、配列のキーは何になるの。
333nobodyさん:2007/10/16(火) 23:50:39 ID:opvWCKV/
すみません、連想配列じゃなくて二次元配列でした、
返ってきた結果を色々弄るのにリソースより配列にする
方が楽なので(今は自作関数で処理してます)。
334nobodyさん:2007/10/17(水) 00:10:09 ID:???
何をさせたいのか知らんが多次元なら再帰関数にすればいいのでは
335nobodyさん:2007/10/17(水) 00:17:42 ID:???
>>333
何かライブラリ使うぐらいしか無いんじゃないかな
1つの関数で一発でとってきたいってことでしょ?
336nobodyさん:2007/10/17(水) 00:26:04 ID:???
>>333
データ件数が多すぎるときに破綻するから
そういうやり方はあんまやらん方がいいと思うけどね。
337nobodyさん:2007/10/17(水) 01:41:10 ID:???
$tmp = array();
とするべき所を
$tmp = NULL;
と間違って初期化してしまったために、
array_pushのコードの箇所でエラーが発生して、今日業務が止まってしまったのですが、
素直に上司に報告したところ、笑って許してくれました。

これも普段からの人徳からなのかもしれない。
普通の人だったら首になってもおかしくないですから。
338nobodyさん:2007/10/17(水) 01:48:29 ID:???
業務内容にもよるかな
339nobodyさん:2007/10/17(水) 02:09:07 ID:???
その分上司が責任ひっかぶってくれてんだよ
340nobodyさん:2007/10/17(水) 07:48:12 ID:pDVA8Q4W
普段はEUCでコードを書いているのですが、携帯サイトの場合にShift-JIS
にしたところ、PHPの関数ファイルなどがすべて文字化けしました。

こういう用途の場合、どうやって文字化け回避したらよいのでしょうか?
一括で出来る方法を教えて下さい。
(ちなみに、サーバもEUCです)
341nobodyさん:2007/10/17(水) 07:54:03 ID:???
>>340
HTML出力をSJIS変換すればいい。
プログラムまでSJISにする必要なんてない。
342340:2007/10/17(水) 07:58:09 ID:???
>>341
表示ページ→Shift-JIS
関数ファイル→EUC-JP

で、表示ページにrequireで関数ファイルを読み込んでいるのですが、
どの部分に変換すればいいのでしょうか?
また、mb_convart_encodingではないですよね?
343nobodyさん:2007/10/17(水) 08:17:59 ID:???
>>341
無知乙

まぁ、内部コードがSJISなのはありえないけどな
344nobodyさん:2007/10/17(水) 08:51:53 ID:???
実は携帯ページはEUC-JPでも問題ない
345nobodyさん:2007/10/17(水) 10:23:44 ID:???
>>337
その程度でクビってどこのブラックだよ
346nobodyさん:2007/10/17(水) 11:00:32 ID:Y8aoqXAI
md5について質問です
指定したファイルのmd5を取得したくて下のようにしました
しかし ./test.jpg が渡されていてファイルのmd5が取得できませんでした

$target = "./test.jpg";
$md5_name = md5($target);
print "md5 $md5_name";

次にこのようにしてファイルを読み込ませて、それを元にmd5を得ようと思いましたが
でてきた結果が空白でこれも失敗しました

$target = file("./test.jpg");
$md5_name = md5($target);
print "md5 $md5_name";

ファイルのmd5はどうやったら取得できるのでしょうか?
347nobodyさん:2007/10/17(水) 11:04:50 ID:???
>>346
マニュアル見れ
348nobodyさん:2007/10/17(水) 11:14:29 ID:Y8aoqXAI
>>347
http://jp.php.net/manual/ja/function.md5.php
ここですよね?
文字列からのは理解できましたがファイルからのが理解できなかったんです
349nobodyさん:2007/10/17(水) 11:18:29 ID:???
文字列関数のページを見れ
あるいは左の関数一覧を見れ
350nobodyさん:2007/10/17(水) 11:26:48 ID:Y8aoqXAI
>>349
うほっ、関数あったw
ありがとうございました
351nobodyさん:2007/10/17(水) 12:00:23 ID:???
md5_file
352nobodyさん:2007/10/17(水) 17:21:33 ID:???


  マニュアル見れ坊しね

353nobodyさん:2007/10/17(水) 17:26:54 ID:Y7gFjXGG
いろんな入力フォームについてですが
jsのヒストリーバックや、ブラウザのバックを使うと
修正しようと戻ると、入力欄が空白になる場合があります。
毎回ならわかるのですが、何故なんでしょう?

ヒストリーバックなボタンは使わず
hiddenで変数を埋め込んだ方がいいのでしょうか?
354nobodyさん:2007/10/17(水) 18:07:47 ID:???
hiddenじゃなくてセッションの方が簡単
355nobodyさん:2007/10/17(水) 18:16:25 ID:???
PHP4での質問です。
$a[0][0] = 1;
$a[0][1] = 2;
$a[0][2] = 1;
という多次元配列を作っておいて、
$a[0][0] の値と $a[0][2] の値を if 文で比較処理したいと思っています。
そこで
if ( $a[0][0] == $a[0][2] ) {
処理内容
}
と書いても評価してくれません。
そこで「{$a[0][0]}」のように波括弧で囲まないと
希望の挙動にならないのかとも思ったのですが、
if ( {$a[0][0]} == {$a[0][2]} ){ ……
とすると文法エラーになってしまいます。
if の条件文の中で、直接に多次元配列の値を比較するには
どのようにすればいいのでしょうか?
よろしくご教示ください。
356nobodyさん:2007/10/17(水) 18:18:12 ID:???
>>353
ブラウザの一時メモリキャッシュが残ってるかどうかじゃないのかな。
ヒストリーバックに頼るのは良くないと思うよ。
>>354
セッションは簡単だけど2画面開かれたときにおかしな挙動になることもあるからTPOで。
357nobodyさん:2007/10/17(水) 18:20:15 ID:???
>>355
$a[0][0] = 1;
$a[0][1] = 2;
$a[0][2] = 1;
if ( $a[0][0] == $a[0][2] ) {
 echo "一致した\n";
}
実行結果:
一致した

普通に動いてると思うんだが確認方法をどっか間違ってないか?
358nobodyさん:2007/10/17(水) 18:58:54 ID:???
test
359355:2007/10/17(水) 19:01:12 ID:???
>>357
すみません。おっしゃっられた通り、確認方法を間違えていました。
きちんと動作します。
わざわざ検証していただいてありがとうございました。

// ああ、こんなことに3時間も悩んで、俺はバカだ orz
360nobodyさん:2007/10/17(水) 19:10:49 ID:Y7gFjXGG
>>356 >>354

ありがとうございます。
hiddenで対応しました。今まで入力項目が少なくて
校正のない者ばかりだったので気が付きませんでした。
そして新たに発覚したのが送信者、本分内の旧字の名前が?に化けるのですが…
UTF-8→ISO-2022-JP MINE→アウトルック

どの時点でおかしくなっているのでしょうか…
361nobodyさん:2007/10/17(水) 19:28:20 ID:???
>>359>>355
どこがどうバカだったかを書いといた方が他のバカを作らず親切かと思うんだが
362nobodyさん:2007/10/17(水) 19:40:39 ID:bsL4C361
第三者が編集可能なリンク集を作っています。
登録用ページ(A.php)と、登録したものを表示するページ(B.php)と、
リンク先を確認&表示するページ(C.php)の3つがあります。(2chのime.nuのようなもの)
A.phpでURLをエンコードしたものをデータにいれ、
C.phpにGETでエンコード済みURLを渡すリンクをB.phpに表示し、、
C.phpで、受け取ったエンコード済みURLをデコードしたものを表示しようと思っています。
携帯対応のページなのでリファラが使えないので、
C.phpでのXSS対策の1つとして、
GETで受け取ったデータがエンコード済みのURLかどうかをチェックしたいのですが、
何か良い方法ありませんでしょうか?

それともう1つ質問なんですが、
URL登録が日本語ドメインだった場合、文字コードを考えないといけなくなるので面倒になります。
日本語ドメイン(2バイト文字ドメイン)自体使ってる人はあまりいないと思うのですが、
切り捨てるべきだと思いますか?
363nobodyさん:2007/10/17(水) 19:57:19 ID:???
別にGETで渡す必要もないんじゃ?
SESSION使えば解決な気がしなくもない
364362:2007/10/17(水) 20:33:44 ID:bsL4C361
>>363
レスありがとうございます。
セッションは使ったことないので思いつきませんでした。
今からセッションについて調べてみたいと思います。
365nobodyさん:2007/10/17(水) 21:30:56 ID:???
array_searchを使うメリットってなんなんだ?
366nobodyさん:2007/10/17(水) 21:57:34 ID:???
>>365
簡単かつ高速に検索できる。
組み込み関数のメリットはそれに尽きると思うけど。
367nobodyさん:2007/10/17(水) 22:39:24 ID:DjVZ7nbd
ご教授お願いします。
PHPで、ログファイルを開き、特定の文字列が含まれる
行番号を取得したいと考えています。
以下の記述で、サイズの小さいログファイルでは
正常に行番号が取得出来ましたが、ログファイルが大きくなると
ファイルの読み込み自体が出来ていないようでした。
fopen関数で大きなサイズのファイルを扱うにはどのようにすれば
良いでしょうか。よろしくお願いいたします。

$file = fopen("log", "r");

$i = 1;
while( $i < 10000 ) {

$line[$i] = fgets($file);

if ($line[$i] == $str) {
$start = $i;
} else {
}


if ($line[$i] == $str2) {
$end = $i;
} else {
}

$i++;
}
368nobodyさん:2007/10/17(水) 22:44:08 ID:???
>>367
> $line[$i] = fgets($file);
これを
$line = fgets($file);
に変える。
1行ずつ読み込みながら処理の終わった行はどんどん捨てていけば
途中でメモリが足りなくなるようなことにはならない。
369nobodyさん:2007/10/17(水) 23:16:33 ID:???
ほんと、ここのスレ当てにならないわww
370nobodyさん:2007/10/17(水) 23:20:50 ID:???
>>369
今更何を・・・
371nobodyさん:2007/10/17(水) 23:38:56 ID:???
どの回答が?
372nobodyさん:2007/10/17(水) 23:48:11 ID:???
>>367
大きいファイルの処理は>>368の通りだけどいろいろ意味不明な個所が…
・else文は不要
・while($i < 10000)よりwhile(!feof($file))。10行のファイルでも10000回まわす気?
・$line[$i]==$str だと完全一致のみ。しかも改行文字削除してないから多分一致しない
・特定文字列を含む行が複数ある場合は最後の行しか残らない
373nobodyさん:2007/10/17(水) 23:50:33 ID:???
単なる抜粋サンプルコードだろ。
374nobodyさん:2007/10/18(木) 00:26:18 ID:eHdvp5u0
俺は山田だ!バカのおまえらのいうことなど当てにならん!おれの言う事しか聞くな!
375nobodyさん:2007/10/18(木) 00:41:45 ID:???
学校の宿題じゃねーのか?w
376nobodyさん:2007/10/18(木) 00:43:57 ID:???
この程度だったら、他人の意味不明のコードをデバッグするより、
「ログファイルを開き、特定の文字列が含まれる行番号を取得」する
プログラムを自分で書いた方が早いなw
377nobodyさん:2007/10/18(木) 00:48:49 ID:???
>>376
他人のことだから、あれだけど、そういう驕り昂ぶった態度が、
日本信号のような事故を招くんだよ。気をつけてね。
378nobodyさん:2007/10/18(木) 00:50:24 ID:vC0YRi3P
>>377
おまえ、なにをひとりで偉そうなんだ?
379nobodyさん:2007/10/18(木) 00:51:49 ID:???
>>373
抜粋サンプルコードでwhile($i < 10000)はないだろw
380nobodyさん:2007/10/18(木) 00:52:49 ID:???
つgrep
381nobodyさん:2007/10/18(木) 00:54:58 ID:???
>>378
いや別に偉そうに言っているわけじゃないよ。
ただ、この業界、悦に入っている奴が多く独善的に失敗するまで気付かない、
いや失敗しても人のせいにして自己防衛に徹する人が多いから、
アドバイスをしただけだよ。大失敗する前に気付こうね。
382nobodyさん:2007/10/18(木) 00:55:56 ID:???
>>381
ひとりよがりなレスはやめようねw
383nobodyさん:2007/10/18(木) 00:59:38 ID:???
>>381
そもそも、そういう説教はスレ違いだから巣にカエレ
384nobodyさん:2007/10/18(木) 01:05:27 ID:???
>>382>>383
まぁ、まだ若いから耳に痛いことを受け入れがたいんだろうね。
俺もそんな時代があったからね。失敗して自らを省みるときがあったら、またおいで。
385nobodyさん:2007/10/18(木) 01:23:20 ID:???
>>384
まずは鏡を見ろ
周りの同僚はその鏡に映っている勘違い野郎に困り果てているんだ
先輩のお前ならどうしたらいいと思う?
386nobodyさん:2007/10/18(木) 01:40:20 ID:???
>>385
そうやって、すぐ攻撃的になるのが若いんだよ。
歳が若いというより脳が若いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。秋の夜長、考える時間はいくらだってあるぞ(笑)
387nobodyさん:2007/10/18(木) 01:46:37 ID:???
喧嘩をやめてぇぇ〜二人を止めてぇぇ〜わたしぃぃ〜のためぇぇ〜に争わないでぇぇ〜もうこぉぉ〜れぇぇ〜以上ぉぉ〜♪
388nobodyさん:2007/10/18(木) 01:59:05 ID:???

亀父ってインパルス堤下にソクーリだよな

389nobodyさん:2007/10/18(木) 01:59:57 ID:???
山陽、九州両新幹線直通運転へ=新大阪〜鹿児島中央約4時間
http://headlines.yahoo.co.jp/hl?a=20071017-00000139-jij-bus_all
390nobodyさん:2007/10/18(木) 02:10:50 ID:???
可哀相に
391nobodyさん:2007/10/18(木) 02:19:39 ID:fFRrKZqA
課題でリンク先をクリックしたら、appleと出るソースを作んないといけなくて$_GET['?'];の?の部分に何か入れたら出来るらしいんですけど、何いれたらいいですか?教えて下さい。お願いします。色々試してみますたが無理でした○| ̄|_
<?php
echo "<a href'".$_SERVER['script_name']."?food=apple'>好きな食べ物はりんごです</a>";
echo $_GET['?'];
?>
392nobodyさん:2007/10/18(木) 02:21:35 ID:???
食べ物
393nobodyさん:2007/10/18(木) 02:25:26 ID:???
どんだけ(笑)
すげえレベル低そうな専門 or DQN大学だな
394nobodyさん:2007/10/18(木) 02:33:25 ID:???
色々試してみたものを書いてみろ
話はそれからだ
395nobodyさん:2007/10/18(木) 02:34:31 ID:???
   ∩___∩         |
   | ノ\     ヽ        |
  /  ●゛  ● |        |
  | ∪  ( _●_) ミ       j
 彡、   |∪|   |       >>391
/     ∩ノ ⊃  ヽ  
(  \ / _ノ |  |
.\ “  /__|  |
  \ /___ /
396nobodyさん:2007/10/18(木) 02:37:42 ID:???
別にそういうのが専門とかいうわけじゃないんだろ。
俺も英語の大学だったがCの初歩やらされたし似たようなもんだと思うが。
で本題だが、宿題をきくんじゃねーよ。
397nobodyさん:2007/10/18(木) 02:40:58 ID:hsdJKY1+
globalを使いたくないのですが、そのためだけにclassを使うのはおかしいですか?
もともとそういうためにclassはあるんでしょうか?
オブジェクト指向は知らないんですがclassでglobalみたいなことができる程度の知識はあります。

$hoge;
function Hoge() {
global $hoge;
}

class Hoge {
398397:2007/10/18(木) 02:42:01 ID:hsdJKY1+
途中で送信してしまったorz

class Hoge {
var $hoge;
function Hoge() {
$this->hoge;
}
}
こんなかんじですよね?
399391:2007/10/18(木) 02:55:24 ID:fFRrKZqA
>>394

action
script_name
food
apple

などです。。

まだ入門の授業で初歩的な事とは思うのですが…。先生が不親切なんでサッパリです。
どうぞ宜しくお願いします。
400釣られたクマー:2007/10/18(木) 03:04:57 ID:???
>>391>>399
問題を良く熟読しろ!本当にそれであってるのか?
href 近辺で間違えはないか?話はそれからだ
401nobodyさん:2007/10/18(木) 03:09:55 ID:???
何か、ここ深夜に質問すると荒れるねww
深夜に変な粘着が住み着いているんじゃねーか。
それもいつも決まった2人か3人のキモいやつだと思うんだが。
402nobodyさん:2007/10/18(木) 03:18:26 ID:???
>>399
>>400の言ってる通りなんだけどエスケープ処理とかちゃんとやらないと。
というかそもそもhtmlがおかしいし・・・

<?php
echo "<a href=\"{$_SERVER['PHP_SELF']}?food=apple\">好きな食べ物はりんごです</a>\n";
echo $_GET['food'];
?>

見るからにviewなので、こういうのはhtmlに埋め込んで書くのがわかりやすい。

<a href="<?php echo $_SERVER['PHP_SELF']; ?>?food=apple">好きな食べ物はりんごです</a>
<p><?echo $_GET['food']; ?></p>

このスクリプト名がhoge.phpだとすると、やっていることは、
<a href="hoge.php?food=apple">好きな食べ物はりんごです</a>
これをクリックすると、hoge.phpにGETメソッドで変数foodにappleという値を入れたのが送信される
これは$_GET['food'] = "apple"と表すことが出来る。
403nobodyさん:2007/10/18(木) 03:29:33 ID:9nEaD6jD
動的ページでIf-Modified-Sinceを送信するのに
何か簡単な方法ないでしょうか。
404nobodyさん:2007/10/18(木) 03:30:46 ID:???
>>397
>もともとそういうためにclassはあるんでしょうか?
違います
>globalを使いたくないのですが、そのためだけにclassを使うのはおかしいですか?
何をどう使うかは君の自由だが、忠告しておくなら「無意味だからやめとけ」
405nobodyさん:2007/10/18(木) 03:32:06 ID:???
>>403
header関数でk\送ればいいのでは?
406nobodyさん:2007/10/18(木) 04:45:13 ID:???
>>405
レスありがとうございます。

書き込み前に、headerだけ送ってみたのですがうまくいかず
ttp://www.avoidnote.com/archives/2005/07/modified_since.php
を参考にさせてもらったのですが、
HTTP headerで確認すると、最初はIf-Modified-Since: xxxxx GMT
と出るようになりました。キャッシュ後は、HTTP/1.x 304 Not Modified になってます。これでいいのかな?w

実はサイトも動的なのですが、rssも動的で
ttp://feedanalyzer.com/
で見るとIf-Modified-Sinceがどうたらこうたら言われてたので作業してました。

お騒がせしました。



407nobodyさん:2007/10/18(木) 05:19:55 ID:9nEaD6jD
自己レス。勘違いで ログを見ると
キャッシュ後もHTTP/1.x 200 OK
となってます。うん。。
408nobodyさん:2007/10/18(木) 06:05:37 ID:4uVZrR94
セッションの安全性について教えて下さい。
いつも$_SESSIONに、当たり前のように保存しているのですが、
トランザクション単位でセッションって保証されているのでしょうか?

たとえば、セッション変数をAとBを設定しても、
取り出すときに、Aだけ取り出せないとかありますか?

セッションも実体はファイルで実装されていたような気がするのですが、
もしそうだとすると、ファイルが壊れたときなどのときに、
トランザクション内で不整合が生じる場合もありえるのかと思いました。

phpに限ったことではないのですが、今回高額の金額を扱うシステムなので、
少し不安です。ご教授お願い致します。
409408:2007/10/18(木) 06:34:50 ID:4uVZrR94
あ、すみません、分かりにくかったかもしれません。

例えば、A画面からB画面へ遷移する場合に、
A画面から送られたデータを
$_SESSION["A"]="a";
$_SESSION["B"]="b";
とMODELクラスでセットした後、

B画面を表示するときにVIEWクラスで、
$x = $_SESSION["A"];
$y = $_SESSION["B"];
とセッションから取り出したときに、
$yは"b"と入っているのに、$xは""だったみたいなことってありますでしょうか?
というのが質問の趣旨です。

もし、その可能性があるとすると、トランザクション単位で全ての変数の有効性をチェックしてから
でないと、取得した値を使うのはまずいのかなぁと思っています。

宜しくお願いします。
410nobodyさん:2007/10/18(木) 06:51:24 ID:+ZcK0GoE
引数チェックを下記のようにしています。もんだいありますですですか?

if ( id > 2147483647 ) // エラー
411nobodyさん:2007/10/18(木) 08:24:26 ID:???
>>386
そうやって、スルーできないのが年寄りなんだよ。
歳がいってるというより頭が固いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。先は短いから、考える時間ももう少ないぞ(笑)

#冷静さを装っているけど、ぜんぜん冷静じゃない>>386(笑)
412nobodyさん:2007/10/18(木) 09:06:26 ID:dUvBQY0o
クラス内で自身のメソッドをob_startのコールバックに
使用したいのですがどのようにしたらいいのでしょうか?
PHPは4.4.7を使用しています
以下現状

class test{
function test(){
}

function output(){
ob_start("collback");
echo "おはよう。<!--{aaa}-->";
ob_end_flush();
}

function collback($buffer){
$ary1 = "<!--{aaa}-->";
$ary2 = "フェルプス君";
return str_replace($ary1,$ary2,$buffer);
}
}

$hage = new output();
$hoge->output();
413nobodyさん:2007/10/18(木) 09:33:06 ID:???
class test{

  function test(){}

  function output() {
    ob_start(array($this, "collback"));
    echo "おはよう。<!--{aaa}-->";
    ob_end_flush();
  }

  function collback($buffer) {
    $ary1 = "<!--{aaa}-->";
    $ary2 = "フェルプス君";
    return str_replace($ary1,$ary2,$buffer);
  }
}

$hoge = new test();
$hoge->output();
414nobodyさん:2007/10/18(木) 09:53:40 ID:dUvBQY0o
>>413
できました
ありがとうございます
415nobodyさん:2007/10/18(木) 10:07:26 ID:???
>>410
>if ( id > 2147483647 ) // エラー
idは文字列ですか?それとも変数ですか?
416403:2007/10/18(木) 10:37:17 ID:9nEaD6jD
少し質問を変えます。
ttp://www.avoidnote.com/archives/2005/07/modified_since.php
でIf-Modified-Sinceが使えるように追加したのですが、
session を使ってるのですが、なんどブラウザーをリロードしても304が返ってこず200のままです。
//session_start(); としみると、304が返ってくるのですが。

sessionを使ってると仕方ないのでしょうか?
417nobodyさん:2007/10/18(木) 10:45:17 ID:+ZcK0GoE BE:1308470786-2BP(0)
>>415
idは変数です。$idです。間違えました。
1以上の整数が入るはずなのです。
MySQLのInteger型になってるです。
autoincrementされるのです。
418nobodyさん:2007/10/18(木) 11:34:35 ID:mbbw0WwD
質問させてください。
testlogという200行のデータが書き込まれたログファイルがあります。
$start = 20;と、$end = 50;という変数をあらかじめ設定し、
testlogの20行目から50行目までの内容を、printlogという別ファイルに
保存するには、どのようにすれば良いでしょうか。
419nobodyさん:2007/10/18(木) 11:48:12 ID:vnSZjWJQ
PHP初心者です。質問させてください。
フォームで入力されたテキストボックスの値を
送信後も残すにはどうすればいいでしょう?

運用はテキストボックスのキーワードで、あるデータを検索して、
そのテキストボックスの下に、結果を表示するようにしています。
絞込みが必要になると何度も検索するのですが、
テキストボックス内の文字が毎回消えてしまうのが不便です。

テキストボックスの値を受け取ったPHPから
テキストボックスに書き出せればよいと思うのですが、
方法がわかりません。
420nobodyさん:2007/10/18(木) 11:48:17 ID:???
>>408-409
セッションをシステム的に安全且つ汎用的に使いたいならDB利用をお奨めする
421nobodyさん:2007/10/18(木) 11:53:30 ID:???
>>418
200行読込んで20〜50行だけを別ファイルに書出せばいいんじゃね
その内容の質問で何を答えて欲しいのかと・・

>>419
>テキストボックスの値を受け取ったPHPから
<input type="text" name="hoge" value="受取った値" />
でいいんじゃね
難しく考えるな 思ったようにやってみる これ大事
422419:2007/10/18(木) 12:16:39 ID:???
>>421
即答ありがとうございます。
a.phpファイルの構成はこうなってます。

<form action="a.php" ---

<input type="text" name="key" size="20" value=” ??? ”> ← ??? に $_POST["key"] を入れる方法はうまくいきません。

</form>

<?php

← この中でなにかせよということでしょうか?

?>
423nobodyさん:2007/10/18(木) 12:27:27 ID:???
>>422
><input type="text" name="key" size="20" value=” ??? ”> ← ??? に $_POST["key"] を入れる方法はうまくいきません。
<input type="text" name="key" size="20" value=” <? echo $_POST["key"]; ?>”>

次からはマニュアル嫁よ
424nobodyさん:2007/10/18(木) 12:36:12 ID:???
PHP初心者です。
文字化けの解消について質問です。

テンプレート使ってて、テンプレートに渡す為に全ての変数を
配列で一括して一つの変数に収めているのですが、
携帯用に文字コードを一括でSJISに変換すると
一部分だけ(他はちゃんと変換されている)変換されなくて困ってます。

仕方ないので、foreach使って中身を一つずつ変換・・・とか、
一度あえてEUCにしてから変換・・・とかもやってみたのですが、
その部分だけがどうしても文字化けしています。
どうしたら解消できるでしょうか?
425424:2007/10/18(木) 12:37:46 ID:???
自己解決しました
426419:2007/10/18(木) 12:40:31 ID:???
>>423
できました。ありがとうございました。
427nobodyさん:2007/10/18(木) 12:44:12 ID:???
>>424
SJIS→CP932
428nobodyさん:2007/10/18(木) 13:01:45 ID:???
>>418
$fin = @fopen("testlog", "r");
$fout = @fopen("printlog", "w");
$start = 20;
$end = 50;
$n = 1;
while (!feof($fin)) {
 $line = fgets($fin);
 if($n >= $start && $n <= $end)
  fwrite($fout,$line);
 $n++;
}
fclose($fin);
fclose($fout);
429nobodyさん:2007/10/18(木) 14:04:16 ID:pYJCyy1z
mb_send_mailでメールを送ると、メールの本文の先頭に
From: ・・・・
Mime-Version: 1.0
Content-Type: text/plain; charset=ISO-2022-JP
Content-Transfer-Encoding: 7bit
こういうヘッダのようなものが付加されるんですが、いったいどうしてでしょうか?
430nobodyさん:2007/10/18(木) 14:08:07 ID:???
>>429
自動的に付加されるようにmb_sendmailがそうなってるんじゃね?
嫌なら「mail()」使え、設定も自分でな
431nobodyさん:2007/10/18(木) 14:18:04 ID:pYJCyy1z
>>430
ヘッダとして付加してくれるならありがたいんですが、
メールの本文に出力されてしまってるんですよ・・・。
こういうものなんですか??
432nobodyさん:2007/10/18(木) 14:22:26 ID:???
>>431
普通に使えばそうはならなかったはず
433nobodyさん:2007/10/18(木) 14:23:06 ID:???
>>431
違うと思うぞ
mb_send_mail に一致する日本語のページ 約 9,360 件中 1 - 30 件目 (0.28 秒)
434nobodyさん:2007/10/18(木) 14:23:35 ID:???
mb_send_mail($to, $subject, $body, $header)
の$bodyと$headerの間のカンマがドットになってたりしない?
435nobodyさん:2007/10/18(木) 14:32:20 ID:pYJCyy1z
みなさんありがとうございます。
Toに改行が含まれてて、それが原因みたいでしたorz
436403:2007/10/18(木) 15:31:29 ID:9nEaD6jD
>>416 分かる人いませんか?
437397:2007/10/18(木) 15:32:10 ID:hsdJKY1+
>>404
遅くなりましたがレスありがとうございます。
globalは使わないほうがいいと(スパゲティになったり外部から書き換えられる危険性があるとかなんとか)
いくつかのページで書いていたのですが、
それでもglobal(もしくは$GLOBALS)は普通に使われているものなのでしょうか?
外部から書き換えられないといえばOOPのカプセル化という言葉が思いつくのですが、
それでclassを使ったほうがいいのではないかな?と自分の中では思ってました。(OOP知らないんですけどね・・)
438nobodyさん:2007/10/18(木) 15:46:45 ID:???
こういうレベルの質問だと、皆分かるから荒れないんだよな。w
439nobodyさん:2007/10/18(木) 15:51:14 ID:OvH6obTW
前から気になっていたswitchの質問・・・。

$iが50文字以上場合のときに処理する場合はifでしてますけど、
switchですることは可能でしょうか?

switch ($i){
    case ($iが50以上の場合): break;
    default:
}

この場合、caseで比較するときは、===のみの比較なんですか?
440nobodyさん:2007/10/18(木) 16:15:13 ID:???
>>439
==と同じ

>>436
あてずっぽで答えてあれなのだが
session.cache_limiterあたりが影響してるんじゃ?
441nobodyさん:2007/10/18(木) 16:20:45 ID:???
>>439
何をしたいんだか何をいってるんだかよくわからない

とりあえずifでできることは基本的にswitchでもできる
===ってのは型の比較まで行う演算子
$iが50文字っていうのが謎
switchの中では50以上の場合と書いてるし
文字列の長さ(strlen)なのか数値なのかはっきりしてほしい
442nobodyさん:2007/10/18(木) 16:36:17 ID:???
自分の年齢じゃね?w
443nobodyさん:2007/10/18(木) 16:38:01 ID:???
不覚にも
444nobodyさん:2007/10/18(木) 16:48:02 ID:???
>>441
phpって不等号の比較までswitchでできるのか?
445nobodyさん:2007/10/18(木) 17:15:34 ID:ELaqevO/
$value = htmlspecialchars($value, ENT_QUOTES, DEF_HTTP_ENC );
シングルクォート→? とエスケープして

$value = strtr( $value, array_flip( get_html_translation_table( HTML_SPECIALCHARS, ENT_QUOTES) ));
その後、戻す処理は ?→'

シングルクォートだけ取り残されてしまうのですが
なぜ039 39と違う表記にズレているのでしょうか?

php4環境で、元に戻す方法がおかしいでしょうか?
446nobodyさん:2007/10/18(木) 17:15:55 ID:???
>>444
俺も気になったのでやってみたらデキタ

$dispMode = 0;
if (isset($_GET['mode'])) {
    $dispMode = intval($_GET['mode']);
}

switch ($dispMode) {
   
    case (10 < $dispMode) :
        echo '10ue';
        break;
    case 5:
        echo '5';
        break;
    default:
        echo 'oth';
        break;
}
447nobodyさん:2007/10/18(木) 17:16:44 ID:ELaqevO/
エンティティ
シングルクォート→&#039;

戻す対象
&#39;→'
448nobodyさん:2007/10/18(木) 17:38:20 ID:???
エスケープ(笑)
449nobodyさん:2007/10/18(木) 17:47:09 ID:???
今日パパ、エスケープしちゃうぞぉ!
450nobodyさん:2007/10/18(木) 18:05:45 ID:???
逃げちゃだめだ 逃げちゃだめだ
451nobodyさん:2007/10/18(木) 18:46:24 ID:???
>>446
むむ、確かに動くな。
こんな仕様あったんだっけ。

foreach(array(1,2,3,4,5,6,7,8,9,10) as $dispMode) {
 echo "$dispMode: ";
 switch($dispMode) {
  case (5 > $dispMode) :
   echo "0-4\n";
   break;
  case (5 < $dispMode && $dispMode < 10) :
   echo "6-10\n";
   break;
  case 5:
   echo "5\n";
   break;
  default:
   echo "other\n";
   break;
 }
}
実行結果:
1: 0-4
2: 0-4
3: 0-4
4: 0-4
5: 5
6: 6-10
7: 6-10
8: 6-10
9: 6-10
10: other
452nobodyさん:2007/10/18(木) 18:52:27 ID:???
453nobodyさん:2007/10/18(木) 20:02:58 ID:???
まぁPHPは適当ですから普通じゃないことが普通なんです
454nobodyさん:2007/10/18(木) 21:51:56 ID:???
>>451
すげえ、こんなんできたんだ。
微妙に便利かもしれない
455nobodyさん:2007/10/18(木) 21:55:26 ID:???
>>451
PHPって気持ち悪いなー
456nobodyさん:2007/10/18(木) 22:01:11 ID:???
お前にとっての普通などどうでもいい。

■[javascript]switch文のcaseは色々なものが書ける
http://d.hatena.ne.jp/ofk/20070627/1182919776
457nobodyさん:2007/10/18(木) 22:04:07 ID:???
>>456
お前のレスもどうでもいいけどな
458nobodyさん:2007/10/18(木) 22:06:07 ID:???
>>457
重要だろw

普通とか言っているやつが、単に無知なだけとばらす。すごく重要なレスだw
459nobodyさん:2007/10/18(木) 22:06:51 ID:???
昨日といい、今日といい、
なんでこのスレって人を見下げたようなレスをする奴がわいて来るんだろうな?
460nobodyさん:2007/10/18(木) 22:07:48 ID:???
PHPは気持ち悪いとか普通じゃないとかそういう事言うやつのことね。
461nobodyさん:2007/10/18(木) 22:10:39 ID:???
>>459
2ちゃんねるってそういうところだしw

いやなら、他の大人な対応してくれる掲示板に行ったら?w
462nobodyさん:2007/10/18(木) 22:11:10 ID:???
得意がって実際に使ったら可読性が下がった挙げ句、周りにバカにされるだけ
463nobodyさん:2007/10/18(木) 22:12:00 ID:???
>>461って病院に言った方がいいんじゃね?w
464nobodyさん:2007/10/18(木) 22:12:52 ID:???
>>458
すごく重要なレス(笑)
465nobodyさん:2007/10/18(木) 22:13:22 ID:???
>>462
クラスのことを教えたら、
そんなものつかったら可読性が下がるとか
言い出すコボラーですか?w

どんな構文でも適切に使えばいいだけの話でしょう。
466nobodyさん:2007/10/18(木) 22:15:35 ID:???
>>463
行かないしw

だから、君はまた俺のレスを見ることになるよ。

ぐちぐちいうなよ? お前が消える以外に見ない方法なんて無いんだからw
467nobodyさん:2007/10/18(木) 22:17:27 ID:???
>>466
お前が死ねば全て解決w
468nobodyさん:2007/10/18(木) 22:18:09 ID:???
死なないから解決しないねwww
469nobodyさん:2007/10/18(木) 22:19:14 ID:???
PHP"だけ"の閉じた世界で一生を終えるんなら構わんけど
他の言語でこんな書き方して
「動きません」とか「エラーになるんですけど」とか
言われたら正直泣いちゃうかも
470nobodyさん:2007/10/18(木) 22:19:24 ID:???
>>465
それは、おまえの教えかたがヘタクソなんだよw
人に理解してもらえないからってボロクソに言う前に、
お前がクラスを理解するほうが先なんじゃね?
471nobodyさん:2007/10/18(木) 22:21:00 ID:???
>>469
>他の言語でこんな書き方して
>「動きません」とか「エラーになるんですけど」とか
まさに>>468がそんな感じだな
定数しか書けないことを知って、だから○○はクソなんだ、とか言いそうw
472nobodyさん:2007/10/18(木) 22:21:08 ID:???
>>469
あー、あなたのレスは実は、
PHPとあと一つ(?)の言語しか知らずに
「PHPが普通じゃない!」といったら
実は他にもそういう言語があって、
恥をかいたやつを笑っているんだな?w
473nobodyさん:2007/10/18(木) 22:22:18 ID:???
PHPがいろんな意味で適当で普通じゃないのは
メジャーなところでCやJavaやったことある人間なら痛感してるだろ
ここでPHPを執拗に擁護してるのはPHPしかやったことないだけちゃうんかと
474nobodyさん:2007/10/18(木) 22:22:19 ID:???
>>472
最初から使わないから恥じゃないよw
475nobodyさん:2007/10/18(木) 22:23:10 ID:???
ブレス10であわせてるかもしれないから敵にもブレスな
476nobodyさん:2007/10/18(木) 22:23:25 ID:???
>>471

まあ、現実は、他にも使える言語があるのに、
「だからPHPはクソなんだ。」と言っているやつが
いまここで恥かいているんだけどなw
477nobodyさん:2007/10/18(木) 22:24:17 ID:???
>>476
>「だからPHPはクソなんだ。」
どこに書いてあるのかな?
眼科にいったほうがいいよ、君w
478nobodyさん:2007/10/18(木) 22:25:33 ID:???
>>477
うん、クソとは書いてないね。
同じような事言っているがw

453 名前:nobodyさん[sage] 投稿日:2007/10/18(木) 20:02:58 ID:???
まぁPHPは適当ですから普通じゃないことが普通なんです

455 名前:nobodyさん[sage] 投稿日:2007/10/18(木) 21:55:26 ID:???
>>451
PHPって気持ち悪いなー
479nobodyさん:2007/10/18(木) 22:25:33 ID:???
switch文で条件式書けたほうが書けないほうより明らかに便利じゃん。
なんで他の言語使うときにそういう質問したらだめなんだ?
不便で融通が利かない他の言語が悪いんだろ。
480nobodyさん:2007/10/18(木) 22:26:58 ID:???
>>478
わかったら、さっさと消えろよwww
481nobodyさん:2007/10/18(木) 22:27:06 ID:???
>>479
便利だから何でも実装すればいいってもんじゃないんだよ
482nobodyさん:2007/10/18(木) 22:27:42 ID:???
>>481
でも、JavaScriptでも実装されているよな?
483nobodyさん:2007/10/18(木) 22:29:23 ID:???
そもそもcaseに条件式が書いてたら、
switchのところの変数って意味がないよね
484nobodyさん:2007/10/18(木) 22:30:01 ID:???
>>481
実装することによってどんな弊害が?
485nobodyさん:2007/10/18(木) 22:32:14 ID:???
>>479
最初からif文で書いたほうがすっきりする
486nobodyさん:2007/10/18(木) 22:35:13 ID:???
まぁまぁ、喧嘩すんなよ
手元のコンパイラで確かめてみた-> C & C++
case 2-1:
こういう書き方でも判定してるね
487nobodyさん:2007/10/18(木) 22:36:43 ID:???
>>486
それは、コンパイラが2-1を計算して、定数として扱っているからだろう
488nobodyさん:2007/10/18(木) 22:41:22 ID:???
>>483
お前馬鹿か?
↓これのswitchのカッコの所をtrue/falseに切り替えて実行してみろ。

foreach(array(1,2,3,4,5,6,7,8,9,10) as $dispMode) {
echo "$dispMode: ";
switch(true) {
case (5 > $dispMode) :
echo "OK\n";
break;
default:
echo "\n";
}
}

caseに定数だけではなく、式が使用できることの何が悪いんだが、
489nobodyさん:2007/10/18(木) 22:52:59 ID:???
何かにつけて言語の優劣つけたがる奴いるよね
言語なんて所詮道具なのにな
490nobodyさん:2007/10/18(木) 22:56:03 ID:???
>>488
パズルとしては面白いかもしれないが、
どこが便利なのかさっぱりだな
491nobodyさん:2007/10/18(木) 22:57:32 ID:???
>>490
うん。初心者ほどよくそういう。
それ、ifがあるからswitchなんていらないと言っているのと同じね。
492nobodyさん:2007/10/18(木) 22:57:53 ID:???
>>484
言語構造自体がスパゲティーになる
PHPはあれもこれもとC,Perl,Javaからとってきた感じで
それらのユーザに合わせるため関数名が違うだけで
同じ挙動するものとかがいくつかあったりで統一性がなかったり
493nobodyさん:2007/10/18(木) 22:58:29 ID:???
>>492
それは、ただの一般論
494nobodyさん:2007/10/18(木) 22:58:57 ID:???
>>491
初心者じゃないなら、>>488の適切に利用できる例がすぐに浮かぶよな?
495nobodyさん:2007/10/18(木) 23:00:42 ID:???
>>493
一般論なら>>492はPHPやJavascriptにも適用できるってことだろw
496nobodyさん:2007/10/18(木) 23:02:11 ID:???
>>494
なぜ、ifがあるのにswitchがあるか?
それはswitchのほうが見通しがいい場合があるから。
ここまでヒント言えばわかるだろ?
497nobodyさん:2007/10/18(木) 23:04:52 ID:???
それなりにプログラム言語をやっていれば、
caseのあとに、定数だけじゃなくて、
文字列や関数を書きたくなったことあると思うんだがねぇ?
まだまだだな。
498nobodyさん:2007/10/18(木) 23:06:07 ID:???
>>496
例がうかばないから、ヒントとかいって誤魔化しにかかりましたw

switch-caseは同じ変数との比較が多い場合に、ifより見通しがいいからだろ
例が出せないなら消えろよw
499nobodyさん:2007/10/18(木) 23:07:25 ID:???
>>498
おまえさ、本気でcaseのあとに
文字列や関数を書きたいと思ったこと無いの?
経験不足だな。
500nobodyさん:2007/10/18(木) 23:07:32 ID:???
>>497
文字列が書けるのは便利だが、関数が書けるのは便利だとは思わない
この違いがわからないよではまだまだだな
501nobodyさん:2007/10/18(木) 23:09:03 ID:???
数値の範囲を書きたくなることは結構あるかな。
502nobodyさん:2007/10/18(木) 23:09:54 ID:???
>>501
それはあるね
503nobodyさん:2007/10/18(木) 23:10:09 ID:???
数値が1の場合、
数値が2の場合、
数値が3の場合、
数値が4の場合、
数値が5〜10の場合、
数値が11〜20の場合、
数値が21の場合、
数値が22の場合、

俺ならswitch使いたくなるな。
504nobodyさん:2007/10/18(木) 23:10:25 ID:???
醜い争いだな(笑)
505nobodyさん:2007/10/18(木) 23:12:52 ID:???
ほら。見つけた。たしかにこれならswitchを使いたくなる。
http://blog.zuzara.com/2006/06/14/85/
506nobodyさん:2007/10/18(木) 23:13:12 ID:???
Cなどで出来ないのは言語が機械に合わせてるからじゃね?
その代償として様々な決まりというか制限がある。
範囲指定しての多岐分岐なんて人間には普通の表現。PHPやJSなどは人間に合わせてるからそれが出来るとか。

スレチだが勉強中のRubyでしてみたら不等式はダメだが別の方法でOKだった(ちなみに浮動小数点でもOK)。

(1..10).each {|dm|
 print "#{dm}: "
 case dm
  when 5
   puts "5"
  when 0...5
   puts "0-4 (0 <= dm < 5)"
  when 5...10
   puts "6-10 (5 < dm < 10)"
  else
   puts "other"
 end
}

実行結果:
1: 0-4 (0 <= dm < 5)
2: 0-4 (0 <= dm < 5)
3: 0-4 (0 <= dm < 5)
4: 0-4 (0 <= dm < 5)
5: 5
6: 6-10 (5 < dm < 10)
7: 6-10 (5 < dm < 10)
8: 6-10 (5 < dm < 10)
9: 6-10 (5 < dm < 10)
10: other
507nobodyさん:2007/10/18(木) 23:13:28 ID:???
自称「初心者でない」奴がいるけど、そのわりには例も出せないんだなあw
508nobodyさん:2007/10/18(木) 23:15:50 ID:???
>>505
ぐぐらないとわからない経験者ってw
509nobodyさん:2007/10/18(木) 23:16:47 ID:???
>>506
そうそう。

この問題は本質的には、
caseの後に数値定数しか指定できないか、
(数値定数+文字列しか指定できないか、)
数値や文字列を含めた式すべてを指定できるかという話でしかない。

わざわざ数値や文字列に限定する必要は無いだろう。
その結果式として扱えるものならなんでも指定できる。
そういうことでしかない。

ちょっと詳しくなった程度のやつが、変だ変だというほど
変な仕様ではない。現にJavaScriptでも使える。
510nobodyさん:2007/10/18(木) 23:17:34 ID:???
PHPって言語仕様コロコロ変更するから気をつけないとねぇ〜
511nobodyさん:2007/10/18(木) 23:18:31 ID:???
言語をたたいているやつは、
たいてい中途半端な知識しか
持ち合わせていない罠。
512nobodyさん:2007/10/18(木) 23:20:08 ID:???
>>506
それは「ひとつの変数に対して何かと比較する」という意味で文法が一貫してるよね
phpの場合は、caseの中にぜんぜん関係ない変数が比較対象として持ち込めるのがねー
513nobodyさん:2007/10/18(木) 23:20:23 ID:???
PHPはユーザの質が低いからいけないんだよ
ほんと餓鬼ばっか
514nobodyさん:2007/10/18(木) 23:21:06 ID:???
いいじゃん持ち込めて。
自分が嫌なら使わなければすむこと
515nobodyさん:2007/10/18(木) 23:21:28 ID:???
すれ違いかもしれないんですが、
NOVAが明日まで給料日の支払を延ばしたということは、
もしかして、いよいよ明日がNOVAのXデーっていうことも考えられるかな?
516nobodyさん:2007/10/18(木) 23:22:17 ID:???
if ( a() == null ) {
} elseif ( b() == null ) {
} elseif ( c() == null ) {
} elseif ( d() == null ) {
}

俺なら、== null は一度しか書きたくないな。
うん。switchつかう。

switch(null) {
case a() :
case b() :
case c() :
case d() :
}
517nobodyさん:2007/10/18(木) 23:23:42 ID:???
>>514
だから俺は使ってないよ
518nobodyさん:2007/10/18(木) 23:24:17 ID:???
>>512

> phpの場合は、caseの中にぜんぜん関係ない変数が比較対象として持ち込めるのがねー

ばーかばーか。関係ない変数? それが比較対象?
caseに中に式を入れられるって事でしかないんだよ。
難しくかんがえんなw
519nobodyさん:2007/10/18(木) 23:25:47 ID:???
そうやって>>518はスパゲティプログラムを増やしていくのであったw
520nobodyさん:2007/10/18(木) 23:26:26 ID:???
>>519
お前はなに使ってもスパゲティにしてるだろw
521nobodyさん:2007/10/18(木) 23:28:07 ID:???
>>520
自分で例も出せない経験者がでしゃばっているスレでそんなことを言われてもねw
522nobodyさん:2007/10/18(木) 23:28:27 ID:???
いくつも出したが?w
523nobodyさん:2007/10/18(木) 23:31:00 ID:???
>>522
俺は>488が適切に使える例を希望した(>>494)が結局出てないようだが。
switchにtrue/falseを指定する例ってどこに出てたっけ?w
524nobodyさん:2007/10/18(木) 23:31:06 ID:???
>>522
そうやって、すぐ攻撃的になるのが若いんだよ。
歳が若いというより脳が若いといった方が正確かもしれないが。
もっと冷静に自分を見つめ直しなさいね。秋の夜長、考える時間はいくらだってあるぞ(笑)
525nobodyさん:2007/10/18(木) 23:31:26 ID:???
もう「変態プログラミング言語万歳!!」でいいじゃん
526nobodyさん:2007/10/18(木) 23:31:44 ID:???
>>524
(爆)
527nobodyさん:2007/10/18(木) 23:32:12 ID:???
>>524
ほう。攻撃的に見えるのかw
528nobodyさん:2007/10/18(木) 23:33:45 ID:???
>>523
まるで、それ以外の例はあるが
「見たくない!」と言っているかのようだw
529nobodyさん:2007/10/18(木) 23:36:55 ID:???
>>528
>まるで、それ以外の例はあるが
確かにcaseに関数をおいて適切に使えそうな例はあったけどな


結局、>>488の例は、ヒントで誤魔化して出せなかったんだろw
530nobodyさん:2007/10/18(木) 23:38:09 ID:???
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな
確かにcaseに関数をおいて適切に使えそうな例はあったけどな


これで終了じゃんw
531nobodyさん:2007/10/18(木) 23:39:38 ID:???
>>530
何を言ってるんだ?お前は?
プログラム言語を勉強するより、日本語を勉強してこいw
532nobodyさん:2007/10/18(木) 23:40:02 ID:???
>>517
>phpの場合は、caseの中にぜんぜん関係ない変数が比較対象として持ち込めるのがねー
じゃあ持ち込めるのが、何なのよ
533nobodyさん:2007/10/18(木) 23:41:13 ID:???
語尾にwつけてる2人が争ってるんだろ?
どっか逝ってくれ
534nobodyさん:2007/10/18(木) 23:41:59 ID:???
>>533
2ちゃんではいつものこと
嫌ならお前がどっかに逝けよ
535nobodyさん:2007/10/18(木) 23:54:25 ID:???
switch(プログラミング経験)
{
  case "PHP Only":
   print "この人、地雷かも…";
   break;
  default:
   print "セーフティじゃね?";
}

こういう構図にさえならなければ、どうでもいいよ
536nobodyさん:2007/10/18(木) 23:54:36 ID:???
今の争いは、
>>483
>>そもそもcaseに条件式が書いてたら、
>>switchのところの変数って意味がないよね
が原因だろ?
case (5 > $dispMode) のような範囲指定(条件式)や
case is_float($test) みたいな関数使わざるを得ないこともあれば、単純に
case 5 のようなそのものズバリの場合もあるんだからswitchの場所に変数あってもいいでしょ。
仮に全てが条件式でもswitchに変数あった方が何を分岐させたいのかわかりやすいじゃん。
537nobodyさん:2007/10/18(木) 23:56:16 ID:???
>>535
経験が全く無い人でもセーフティなのか。
538nobodyさん:2007/10/18(木) 23:56:59 ID:???
>>537
ワロタw
539nobodyさん:2007/10/18(木) 23:57:53 ID:???
>>536
こうして話をむし返すバカがまた出てきたよ・・・
540536:2007/10/19(金) 00:01:10 ID:???
>>539
スマンな。もう争いは終わったのか?
541nobodyさん:2007/10/19(金) 00:05:22 ID:???
>>518
式なら式でいいけど、その式に渡される値はあくまで
switch(変数)で指定した変数であって欲しいと思わん?
switch()部分と無関係な内容のcaseは読みにくいでしょ。
542nobodyさん:2007/10/19(金) 00:05:48 ID:???
なんかすげー盛り上がってる
俺も範囲指定はしたくなることあるな
こんな風に書くのめんどくせー

 switch($dispMode) {
  case 0:
  case 1:
  case 2:
  case 3:
  case 4:
   echo "0-4\n";
   break;
  case 6:
  case 7:
  case 8:
  case 9:
  case 10:
   echo "6-10\n";
   break;
  case 5:
   echo "5\n";
   break;
  default:
   echo "other\n";
   break;
 }
543nobodyさん:2007/10/19(金) 00:06:31 ID:???
>>537
何色にも染まっていない無垢なままの方が良いケースもある
中途半端な知識の実装は邪魔なばかりか邪悪でさえある
544nobodyさん:2007/10/19(金) 00:07:32 ID:???
>>542
そんなあなたにRubyがおすすめ
>>506
545nobodyさん:2007/10/19(金) 00:07:49 ID:???
>>542
それしかできないCならif使うわな。
546nobodyさん:2007/10/19(金) 00:13:19 ID:???
>>542
Rubyだと横に並べれます

case dispMode
 when 0,1,2,3,4
  puts "0-4"
 when 6,7,8,9,10
  puts "6-10"
 when 5
  puts "5"
 else
  puts "other"
end
547nobodyさん:2007/10/19(金) 00:34:26 ID:???
注意:  switch/case が行うのは、 緩やかな比較  であることに注意しましょう。
548nobodyさん:2007/10/19(金) 00:44:59 ID:???
>>547
NOVAが給料日を今日にしたのは訳がある、まで読んだ。
549nobodyさん:2007/10/19(金) 01:04:04 ID:???
おまえに訳などない!
550nobodyさん:2007/10/19(金) 01:23:00 ID:ftfft438
すみません、明日までの課題終わる気配ないんですが、
ここのスレの住民総動員して代わりにやってもらうことは可能ですか?

課題は、全部で7種類あるんで、自分は1種類はやるんで、
残りの6種類やって欲しいんですけど。
551nobodyさん:2007/10/19(金) 01:26:01 ID:ftfft438
まず、一個目。

phpと他の3つ以上のweb系言語を比較して、各言語の特性を分析考察し、
その特徴が最も分かるコードを各50行から100行までで簡潔に示せ。
552nobodyさん:2007/10/19(金) 01:30:54 ID:ftfft438
次。

phpの例外処理の機構と、例外処理に対する留意点を体系化して論じよ。
553nobodyさん:2007/10/19(金) 01:33:02 ID:???
あまりの図々しさに不覚にもワラタw
554nobodyさん:2007/10/19(金) 01:33:28 ID:???
>>550
可能かどうかまだ返信すらしてないのに勝手に始めないで下さい。
それで本題ですがそういったことはここではできませんのでお引取り下さい。
555nobodyさん:2007/10/19(金) 01:36:42 ID:ftfft438
>>554
ちょwwwwww使えねーこのスレ!!!
市ね!!!!!!!!!!!!!!!
556nobodyさん:2007/10/19(金) 01:42:12 ID:???
まずは礼儀として学校名と学年を述べなさい
話はそれからだ
557nobodyさん:2007/10/19(金) 01:45:59 ID:???
お前PHP以前にプログラマ的思考向いてないから諦めろww
558nobodyさん:2007/10/19(金) 01:57:34 ID:???
課題を見てみたいので最後まで載せろw
559nobodyさん:2007/10/19(金) 02:02:01 ID:???
throw new SurechiException();
560nobodyさん:2007/10/19(金) 02:03:02 ID:???
>>550
>ここのスレの住民総動員

これがそもそも無理
このスレの成分分析すりゃわかるけど俺の自作自演だからな
561nobodyさん:2007/10/19(金) 02:13:28 ID:???
>>550
とりあえず最後まで質問載せてみ?
俺が相手してやんよ。
562nobodyさん:2007/10/19(金) 02:16:33 ID:???
>>551
なんかこの課題の時点でスレ違いって気がww
563nobodyさん:2007/10/19(金) 02:23:47 ID:ftfft438
>>561
では、お言葉に甘えさせて頂きます。

3番目。
phpの主なバージョンの変遷について、当時のwebの背景に触れつつ論じよ。
564nobodyさん:2007/10/19(金) 02:25:03 ID:???
自分でやる1問ってどんなの?
565nobodyさん:2007/10/19(金) 02:27:40 ID:ftfft438
4番目。

phpが初心者に対して敷居が低いと言われる理由を説明し、同時にその副作用について論じよ。
566nobodyさん:2007/10/19(金) 02:31:13 ID:ftfft438
>>564

俺のこれです!ぐぐったら、それらしいのがあった

プログラムの実装に当たって、変更管理をする必要性について論ぜよ。
567nobodyさん:2007/10/19(金) 02:31:53 ID:???
ほうほう、それは何て書くことにしたの?
568nobodyさん:2007/10/19(金) 02:33:56 ID:ftfft438
ってか、本当にやってくれるんだよね??
569nobodyさん:2007/10/19(金) 02:35:11 ID:Xylg84BY
なんだ、PHPに関する課題って言っても言語の設計思想とか論じなきゃいけないんすか。
中卒ヒキニートの僕には無理でっすwwwwwwwwwwwwww
570nobodyさん:2007/10/19(金) 02:35:22 ID:ftfft438
571nobodyさん:2007/10/19(金) 02:37:47 ID:???
何の役にも立ちそうにないその課題ってなんの講義?
572561:2007/10/19(金) 02:41:24 ID:???
>>550
速く全部書けよ。
俺も今日は昼から授業があんだよ、寝るぞ。
573nobodyさん:2007/10/19(金) 02:43:12 ID:ftfft438
>>571
高2の情報Bでやってます。
中間テストが来週月曜日からなのにやってられないっす。
574nobodyさん:2007/10/19(金) 02:52:01 ID:ftfft438
近くにコンビニに行って、「あいすまんじゅう」買ってきた!!
これ最近のお気に入り。

で、のこり3つは、これ。

phpのモジュール版とCGI版との違いを説明し、運用上のリスク管理の相違点ついて述べよ。
実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。
575nobodyさん:2007/10/19(金) 02:57:59 ID:Xylg84BY
>phpのモジュール版とCGI版との違いを説明し、運用上のリスク管理の相違点ついて述べよ。
ゆとりの俺でもこれは分かりそう・・!でもググれば見つかるだろうな!
576561:2007/10/19(金) 02:59:14 ID:???
酷い宿題だなw
先生がキモイやつだって事が容易に想像付くわ。

こんな宿題やんなくていいよ。
高校生はもっと遊んどけ。
577nobodyさん:2007/10/19(金) 03:12:14 ID:ftfft438
>>
おいおいおい!!!!!
答えは?????????????????
578nobodyさん:2007/10/19(金) 03:12:20 ID:???
授業でやってきた内容じゃないのか?
それとも夏休みの宿題か?
579nobodyさん:2007/10/19(金) 03:17:53 ID:ftfft438
>>578
授業でやってないよ。授業を聞いていれば、応用力で分かるはずだ、って言っている。

授業も教科書は殆ど使わずに、先生が書いた分厚い著書を使って説明するから、復習がやっと。
予習なんて出来ねーよ。
580nobodyさん:2007/10/19(金) 03:21:18 ID:???
ID:ftfft438さん消えろカス^^
581nobodyさん:2007/10/19(金) 03:21:52 ID:???
>> ID:ftfft438
ここはお前の宿題をみんながやるスレじゃねーんだよ
別スレ立ててやれよこの糞餓鬼
582nobodyさん:2007/10/19(金) 03:23:30 ID:???
嘘はよくないよ
高校の授業でPHPに関連した課題が出るわけがない
教育向けの言語ではないし専門的にやるのは専門学校のみ
大学でもPHPは授業としては普通やらない
583nobodyさん:2007/10/19(金) 03:23:59 ID:???
いや別スレ立てられても困るから。
偉そうに聞いていいスレに池クズ
584nobodyさん:2007/10/19(金) 03:25:04 ID:???
くだらない質問でもど偉そうに聞いていいスレ
http://pc11.2ch.net/test/read.cgi/php/1158647441/
585nobodyさん:2007/10/19(金) 03:30:31 ID:ftfft438
ちょwwww
やっぱ、マジ使えねー奴らばっか。中卒の集まりじゃねーの。
586nobodyさん:2007/10/19(金) 03:32:51 ID:Xylg84BY
>>585
俺は分からないから答えられない訳なんだけどさ、分かるけど答えないって奴って
結構いると思うぜ?俺も分かる質問全部に答えてる訳じゃないしな。
587nobodyさん:2007/10/19(金) 03:46:27 ID:???
> 授業を聞いていれば、応用力で分かるはずだ、って言っている。
じゃあ授業での先生の話を基にすれば分かるだろ。
588nobodyさん:2007/10/19(金) 04:19:10 ID:???
>> ID:ftfft438
別に使えなくても中卒でもいいからとっとと消えろカス
589nobodyさん:2007/10/19(金) 04:26:03 ID:???
釣りなら釣りって言ってくれ
590nobodyさん:2007/10/19(金) 04:38:15 ID:R8rHP9Yl
質問です。先に理想を書きます。
.rdfをphpで作ってるのですが、
//xxx.php
$html = '<p>あるひあるひ<span>おじいさんと</span>・・・・いきました</p>';

@include_once("../xxx.php");

$site_rdf = <<<_EOD_
<item rdf:about="$url">
<title>$contents_title</title>
<link>$url</link>
<description>$html</description>
<dc:date>$lastupdate</dc:date>
</item>
_EOD_;
ブラウザーでxxx.phpは問題なく表示しています。
しかしヒアドキュメント内の$html 以外は取得できてるのですが$htmlが取得出来ません。
そこで<description>$html</description>を
<description><![CDATA[<? echo $html; ?>]]></description>
とすればよさそうなのですが、ヒアドキュメント内なので出来ないし
何かいい方法ないでしょうか?最終的にはsubstrを使って部分的に取得しようと思ってます。
591nobodyさん:2007/10/19(金) 04:54:51 ID:???
>>590
えっと。自己レスです・・・
""とするとこを''となってたのが原因でした。失礼しました。
592nobodyさん:2007/10/19(金) 08:40:54 ID:???
ID:ftfft438の学校の先生って、
phpをろくに理解してなさそうだなw
593nobodyさん:2007/10/19(金) 09:08:24 ID:???
いやかなり理解してると思うが。
594nobodyさん:2007/10/19(金) 09:16:06 ID:???
高校生への課題としては重過ぎるんじゃね
近頃のガッコはphp教えるのか
595nobodyさん:2007/10/19(金) 09:58:31 ID:???
>phpのモジュール版とCGI版との違いを説明し、運用上のリスク管理の相違点ついて述べよ。
>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。

高専でもやんねーぞこんなの
相当キてる狂死だな
596nobodyさん:2007/10/19(金) 10:34:08 ID:???
>>593
教え方が下手糞ってことか
現にここに課題を聞いてくるバカ生徒がいるわけだからw
597nobodyさん:2007/10/19(金) 10:35:47 ID:???
あと、この教師の授業を受けてもアプリが作れるようになる気がしない
598nobodyさん:2007/10/19(金) 10:38:58 ID:???
>phpのモジュール版とCGI版との違いを説明し、運用上のリスク管理の相違点ついて述べよ。
>実装段階のphpプログラムコードを運用段階へ遷移させる場合の留意すべき事項を列挙せよ。
>phpのセキュリティー管理のあり方について設計、実装、運用の各断面において実施すべき事項を述べよ。

三つまとめて答えると
客のレベルとニーズと納期と金次第

これ以上も無ければこれ以下もないと思うが…
599nobodyさん:2007/10/19(金) 10:43:23 ID:???
上司の理解度と社員のモチベーションもねw
600nobodyさん:2007/10/19(金) 10:56:41 ID:???
>>579
>授業も教科書は殆ど使わずに、先生が書いた分厚い著書を使って説明するから
日本の法律に定める高等学校だとしたら、この時点で教師失格だな
大学じゃあるまいに、検定済み教科書を使うことが法律で決まっている
601nobodyさん:2007/10/19(金) 10:59:39 ID:???
>>598
「客のレベル」はちょっと違うだろ
技術的なことを知っている客は多くないから、
どっちかというとSEが客に提案しないといけない
602nobodyさん:2007/10/19(金) 11:30:51 ID:???
オマエら余所でやれ
603nobodyさん:2007/10/19(金) 11:59:05 ID:???
>>602
お前がくるな
604nobodyさん:2007/10/19(金) 12:14:25 ID:???
失せろ><
605nobodyさん:2007/10/19(金) 13:00:51 ID:???
ばか、ばっか
606nobodyさん:2007/10/19(金) 13:08:02 ID:r5ngcnDV
真面目な質問です。「MySQLに接続できませんでした」状態で、困っています。

状況は…
LAN内の「192.168.1.2」に、CentOS5 + Apache + PHP5.1.6を起動。
同じく「192.168.1.3」に、CentOS5 + MySQL5.0.22を起動。

…で、「192.168.1.2」上で、以下のPHPを記述し実行。
<?php
$con = mysql_connect("192.168.1.3", "root", "xxx");
if ($con) {
echo "MySQLに接続しました";
} else {
die("MySQLに接続できませんでした");
}
?>

で、実行してみると「MySQLに接続できませんでした」と出力されます。

「192.168.1.2」にMySQLを立ち上げていた時は問題なかったのですが…。
"localhost"のところを、"192.168.1.3"にするだけじゃ、ダメなんでしょうか?
607nobodyさん:2007/10/19(金) 13:13:13 ID:???
ルーターのせいじゃねーの

ポート開いてる?
608nobodyさん:2007/10/19(金) 13:18:19 ID:???
>>607
ローカル内で実行してますから、ポートは関係ないでしょう。
もちろんポート空けて、外から実行しても同じく接続できません。
609nobodyさん:2007/10/19(金) 13:25:06 ID:???
>>608
そもそも192.168.1.3のサーバ自体のポートは空いてるのか?
俺はMySQLを知らんけど、MySQL自体がアクセスをはじいていないか?
>>607が言っていることからこのくらいの連想ができないようじゃやめといたほうがいいぞ
610nobodyさん:2007/10/19(金) 13:28:30 ID:???
そもそもシェルからデータテーブル操作できるのか?
phpでやる以前に他のPCから操作できるのかを先に確認したほうがいい
611nobodyさん:2007/10/19(金) 14:02:21 ID:???
>>606
原因になりそうな事はたくさんあるから問題切り分けましょう。
ローカルで接続してもlocalhostや127.0.0.1はOKでも192.168.1.2でダメなことある。
MySQL側のポート、DBやOSの各種アクセス制限、Apacheの実行ユーザの問題…

>>606のソースだとPHPからのエラーメッセージ出力されないのだっけ?
出力されないなら
<?php mysql_connect("192.168.1.3", "root", "xxx"); ?>
だけで実行してエラーみるとか。

・apacheのログみる
・192.168.1.3でmysqlコマンドをホスト指定して実行(localhost,192.168.1.3)
・192.168.1.2でmysqlコマンドを実行
・192.168.1.2でphpスクリプトをコマンドライン実行
ほかに何かあったっけ?
612nobodyさん:2007/10/19(金) 14:04:46 ID:???
>ほかに何かあったっけ?
PCを投げ捨てる
2階の窓から飛び降りる
613nobodyさん:2007/10/19(金) 14:36:40 ID:???
>>608
LAN内であってもhosts.allowとかで開けてやらんといけない場合とかあるけどな。
コマンドラインのmysqlクライアントで接続できるかどうかをまず確認すべき。
それで繋がらないならDB板池。
614nobodyさん:2007/10/19(金) 14:56:38 ID:???
ポート開いてることが確実なら、
mysql側ではじいてるんじゃないか
my.cnf
bind-address
615nobodyさん:2007/10/19(金) 15:27:56 ID:???
PHPからバッチファイルを呼んでるけど動かないんです(PHP5

test.php
┗test←フォルダ
  ┗test.bat
PHPは、exec("test/test.bat");
と書いてるのですが何が悪いのでしょうか?
616606:2007/10/19(金) 15:30:45 ID:???
途中報告です。

とりあえず、192.168.1.3(MySQLが稼動中)上で…
mysql > GRANT ALL PRIVILEGES ON *.* TO 'root'@'192.168.1.2' IDENTIFIED BY 'xxx';
mysql > SELECT user,host,password FROM mysql.user;
+------+----------------------+------------------+
| user | host | password |
+------+----------------------+------------------+

| root | 192.168.1.2 | xxxxxxxxxxxxxxxx |
+------+----------------------+------------------+

…という具合に確認もしてから、192.168.1.2(Apache+PHP稼動中)上で…
$ mysql -u root -p -h 192.168.1.3
mysql >

…おっ!192.168.1.2から192.168.1.3のMySQLを操作できるようにはなりましたよ。

でも、まだ>>606のコードを実行すると「MySQLに接続できませんでした」と出力されます。
(MySQLは、上記のユーザー追加作業後にrestart済みです)

う〜む…
617606:2007/10/19(金) 15:33:37 ID:???
すみません、>>616の作業でうまくいきました!
618606:2007/10/19(金) 15:36:40 ID:???
遅ればせながら、皆さんありがとうございました。
助かりました。
619nobodyさん:2007/10/19(金) 15:44:59 ID:???
>>618
>>606のコードで上手く接続できたのかな?
オメデト。
ただrootユーザって192.168.1.2のrootのこと? だとヤバくね? 
620nobodyさん:2007/10/19(金) 15:54:36 ID:???
全然PHP関係ねぇ・・・・
621606:2007/10/19(金) 16:02:00 ID:???
>>619
やっぱりですか。
>>606>>616ともにrootはやめて、適当なユーザー名に変更しました。
622nobodyさん:2007/10/19(金) 16:05:26 ID:???
>>615
Windowsならexecのユーザノート見れ
Linuxならセーフモードかかってるならcgiで動かさないと無理
623nobodyさん:2007/10/19(金) 16:25:38 ID:KOAwsoai
掲示板のログを読み込んで表示させる処理のところで詰まってます。
ログファイルをfile関数で読み込むとき、ログファイルが存在しなかった場合、
エラーになりますよね。

そこで、@でエラーを出力しないって方法と、is_fileで存在チェックを置く方法、
どちらが正攻法でしょうか?
624nobodyさん:2007/10/19(金) 16:27:53 ID:???
@はエラーを強引にもみ消してるだけ
ちゃんとファイルがあるか確認すべき
625nobodyさん:2007/10/19(金) 16:36:09 ID:???
ありがとうございます。
エラーを出さない書き方を心がけます
626nobodyさん:2007/10/19(金) 16:36:43 ID:???
PHPに限らずエラー処理はちゃんとしといたほうがいいよ
627nobodyさん:2007/10/19(金) 16:45:27 ID:???
>>623
例外処理
628nobodyさん:2007/10/19(金) 16:50:43 ID:???
>>623
@使うのはどんな場合でも正攻法とは言えない。
629nobodyさん:2007/10/19(金) 16:51:45 ID:???
>>627
623じゃないけどエラー処理はやっぱり例外処理でした方がいいんですかね?
ソースも見やすくなるし。
630nobodyさん:2007/10/19(金) 16:55:27 ID:???
エラー=例外じゃないよ
例外は想定外なことがあったときの処理機構
631nobodyさん:2007/10/19(金) 17:15:02 ID:T1qgNKd7
mb_send_mailは自動でエンコード変換を行ってくれるということですが、
引数で渡したもの全てエンコードしてくれるんでしょうか?
なぜか本文以外が文字化けしてしまうんですが・・・
632nobodyさん:2007/10/19(金) 17:22:04 ID:???
mb_send_mail に一致する日本語のページ 約 24,000 件中 1 - 30 件目 (0.27 秒)
633nobodyさん:2007/10/19(金) 17:23:01 ID:???
>>623
is_fileの判別だけでは不十分。
ロックされて読み取りできない場合でもtrueを返すし、本当にその時読み取りできても、fileを呼ぶ時には削除されているかもしれない。
読み取りエラーと、ファイルの存在がない場合を区別する必要がなく、エラーをログに取る必要がないなら、
$data = @file('foo.log');
if ($data === FALSE) { echo '読み取り失敗'; }
else { do something }
>>631
mb_internal_encodingとmb_languageを設定
634nobodyさん:2007/10/19(金) 17:24:00 ID:???
mb_send_mail で検索した結果 1〜10件目 / 約61,700件 - 0.04秒
635nobodyさん:2007/10/19(金) 17:37:25 ID:???
そういえばfalseって"でかこまなくていいんですね。
誰だよ、前に"で囲むとか教えた奴
636nobodyさん:2007/10/19(金) 17:40:59 ID:???
>>633
俺は file_exists を好んで使うが
637nobodyさん:2007/10/19(金) 17:42:14 ID:???
>>636
セーフモードでトラブルからつかわない
638nobodyさん:2007/10/19(金) 17:42:31 ID:???
>>635
「いつも誰かに教えてもらう」っていう姿勢はよくないぞクソ厨房
639nobodyさん:2007/10/19(金) 17:45:07 ID:???
でた。クソ呼ばわり。
640nobodyさん:2007/10/19(金) 17:45:49 ID:???
>>635
ここの回答が常に正しいとは限らない
641nobodyさん:2007/10/19(金) 18:03:23 ID:TMxSN4fU
テスト
642nobodyさん:2007/10/19(金) 18:03:57 ID:???
>>631
まずはマニュアルに目を通そうぜ
・To句 -> 自動的にはエンコードしない
・ヘッダ、本文 -> エンコードする

但しだ、ヘッダに含むFrom句を 俺だよ<[email protected]> の様にした場合
"俺だよ"の部分はそのままじゃ化けるからな
正しいかどうかは別として"俺だよ"の部分をMIMEエンコードで逃げとく
643nobodyさん:2007/10/19(金) 18:05:00 ID:TMxSN4fU
UTF-8の日本語一覧の載っているサイトとかないですか?

MySQLの「居酒屋」という文字の「居」だけ検索できなくって・・・
「安い居酒屋があります!」→「居酒屋」→ノーヒット
「安い居酒屋があります!」→「屋」→ヒット
「安い居酒屋があります!」→「酒屋」→ヒット
「安い居酒屋があります!」→「居酒」→ノーヒット
「安い居酒屋があります!」→「居」→ノーヒット
644nobodyさん:2007/10/19(金) 18:10:36 ID:???
「居」 に一致する日本語のページ 約 3,580,000 件中 1 - 30 件目 (0.24 秒)
645nobodyさん:2007/10/19(金) 18:14:02 ID:???
>>643
その質問とphpの間にどう深い関係があるのか、そこから説明してもらおうか
646nobodyさん:2007/10/19(金) 18:16:01 ID:???
もう面倒くさいから答えてさっさと退散してもらうか徹底無視にしようよ。
またファビョって粘着されるのかと思うと・・。
647nobodyさん:2007/10/19(金) 18:18:02 ID:???
>>646
>>645みたいなやつも無視しようよ
ただ煽るの好きなやつでしょ
648643:2007/10/19(金) 18:18:50 ID:TMxSN4fU
すみません、文字コード関係のスレが見当たらなかったので・・・。
649nobodyさん:2007/10/19(金) 18:19:36 ID:T1qgNKd7
>>642
mb_encode_mimeheader()使っても文字化けしちゃいました。
謎の文字列っぽいのが、???????????になってしまった。(2回エンコードされたかんじ)
650nobodyさん:2007/10/19(金) 18:22:51 ID:???
>>647
お前がいちばん無視できていないわけだが
651nobodyさん:2007/10/19(金) 18:26:05 ID:???
>>648
>>643の質問なら、DB板のMySQLスレできいたほうがいい
652nobodyさん:2007/10/19(金) 18:27:49 ID:TMxSN4fU
>>651
有難う御座います
MySQLスレにいってきます
653nobodyさん:2007/10/19(金) 18:28:48 ID:???
>>649
使ってみました、できませんでした、じゃ何もわからない
mb_encode_mimeheaderというキーワードがあるんだから、
ぐぐってサンプルになりそうな解説を探すべき
654nobodyさん:2007/10/19(金) 18:44:16 ID:???
でもそんなの関係ねえ
655nobodyさん:2007/10/19(金) 18:46:04 ID:???
>>649
自分の手の内を明かさないのは死んだお爺ちゃんの遺言かな?
まずはどういう処理をして駄目だったのか表に晒そうよ
そうじゃないと他人には何が原因なのかわからない
656nobodyさん:2007/10/19(金) 18:47:03 ID:???
mb_encode_mimeheader で検索した結果 1〜10件目 / 約27,200件 - 0.54秒
657nobodyさん:2007/10/19(金) 19:03:17 ID:???
フレームワークつくってるんだけど、
http://example.com/index.php/controller_name
として、$_SERVER['PATH_INFO']からcontroller名取得してクラス生成してるんだけど、
index.php/ってやっているからか、1個下の階層として認識されちゃうんだよな。
index.phpを基準にデザインしたHTMLの画像が表示されなくなった。解決法plz
658nobodyさん:2007/10/19(金) 19:04:32 ID:???
>>657
絶対パス
659nobodyさん:2007/10/19(金) 19:23:29 ID:???
> フレームワークつくってるんだけど、

お前程度のレベルのやつが作るなw

ほかのフレームワークを使って勉強しろ。
660nobodyさん:2007/10/19(金) 19:26:04 ID:???
作るのは自由だし勉強にもなるんだから、別にいいんじゃね。
まあ作った本人以外、誰も使わんだろうけど。
661nobodyさん:2007/10/19(金) 19:26:13 ID:???
みなさん偉いんですねw
662nobodyさん:2007/10/19(金) 19:41:00 ID:???
独自フレームワークとかすげーな
会社で使うぐらいだぜ
PHPじゃないけど
663nobodyさん:2007/10/19(金) 20:34:22 ID:xPmGrIJ2
お願いします!
あるブログの新着記事が投稿されたら、そのタイトルと日付を
自サイトのトップページにIFRAMEで新着情報のスペースを作り
自動で反映されるようにしているのですが、「dc:date」の中の
日付だけを表示させたいのですが、行き詰っています。

↓がrssv.phpというファイルをいただいて、今の状態です。

−−−−−−−−−−−−−−−−−−−−−−−−−−
A;

$num = ($_GET['n']) ? $_GET['n'] : count($r->getItems());
for ($i=0; $i<$num; $i++) {
$val = $r->getItems();
$title = mb_convert_encoding(strip_tags($val[$i]['title']), $code, "UTF-8,EUC-JP,SJIS");
$link = htmlspecialchars($val[$i]['link']);
$date = $val[$i]['dc:date'];
// 内容
echo <<<B
<tr bgcolor="#ffffff"><td><small>
$date<br>
<a href="$link" target=_new>$title</a><br>
$desc
</small></td></tr>
B;
}
//フッタ
echo <<<C
−−−−−−−−−−−−−−−−−−−−−−−−−−
664nobodyさん:2007/10/19(金) 20:37:56 ID:???
>>663
var_dump($val);
665663:2007/10/19(金) 20:39:31 ID:xPmGrIJ2
substringというものを使って、substring-before(dc:date, 'T')
とすればできるというのを見つけましたが、できませんでした。。
phpなのでsubstrというものを使って設定すれば・・と思いましたが
↑662の中にどう記述すればできるのか・・行き詰ってます。

どうすれば、<dc:date>の日付部分だけを表示させることができるの
でしょうか?どうぞよろしくお願い致します。


666663:2007/10/19(金) 20:46:26 ID:xPmGrIJ2
>>664
早速のレスありがとうございます。
var_dump($val); というものを記述すれば可能なんですか?
↑のどこに記述すればいいのでしょうか?ぜひ教えてください!
667nobodyさん:2007/10/19(金) 20:52:29 ID:X7lKhvjy
>>666
var_dump()はデバッグ手法であって解決策じゃないよ
668nobodyさん:2007/10/19(金) 20:55:00 ID:???
>>666
$valの中にアンタが欲しいデータが入ってきているか目視しろってことでしょ
669nobodyさん:2007/10/19(金) 20:57:43 ID:???
言われた関数についてリファレンスで調べてみようともしない、
実行しようともしないような人には無理だ。
670nobodyさん:2007/10/19(金) 21:00:18 ID:???
もらったっていうぐらいだしPHPに関してはまるっきりわかってないんだろ
スクリプト作ってくれっていってるような質問だろうし放置でおk
671nobodyさん:2007/10/19(金) 21:13:24 ID:38gaNyWe
purl.org/dc/elements/1.1/
672663:2007/10/19(金) 21:23:52 ID:???
そうっすか・・確かにPHPに関しては名前を昨日知ったばかりで
書き方なんか勘で弄くってるだけで、全然分かってないっす
php入門から始めます。。。
673nobodyさん:2007/10/19(金) 21:31:59 ID:???
つまり端から自分が楽したい代わりに人に労力使わせるつもりだったのか
674nobodyさん:2007/10/19(金) 21:32:54 ID:???
>>673
そういうスレだろ?ここはw
675nobodyさん:2007/10/19(金) 21:33:37 ID:???
ちげーよボケが
676nobodyさん:2007/10/19(金) 21:34:10 ID:???
質問の仕方見ただけでどこかのスクリプトのコピペだと分かるだろ
もっと経験積んでる人は肝心な部分を特定してその場所のみ貼り付ける

あと、自分で試してみたことも書くのが普通ぐらい
677663:2007/10/19(金) 21:37:39 ID:???
失礼しました。ただ、あとは日付の表示を直すだけだから
知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
と思ってました。。実際に、今回以外にphpを自分で書くこと
なんか恐らく二度とないでしょうし・・
ただ単にdc:dateの日付だけを表示させることって大変なんですね。。
もう拘らずに、全て表示で自分を納得させます。お騒がせしました。。
678nobodyさん:2007/10/19(金) 21:41:31 ID:???
文体がきめぇ
679nobodyさん:2007/10/19(金) 21:44:17 ID:???
>>678
お前の方がよっぽどキモいから
680nobodyさん:2007/10/19(金) 21:44:43 ID:???
自分自身がきめぇ奴が、他人の文体wきめぇって書き込んでるぜw 鏡見て来いボケww
681nobodyさん:2007/10/19(金) 21:45:46 ID:???
>>680
>>678のことかw
682nobodyさん:2007/10/19(金) 21:52:37 ID:???
683nobodyさん:2007/10/19(金) 21:58:51 ID:???
>失礼しました。ただ、あとは日付の表示を直すだけだから
>知ってる人にどこを直せばいいか聞けば、簡単にできるだろう
>と思ってました。。実際に、今回以外にphpを自分で書くこと

なんの根拠も無しにこう思えちゃうのが素晴らしいと言うか
頭のネジが2, 3本外れていると言うか
684nobodyさん:2007/10/19(金) 22:01:01 ID:???
>>677は稚拙で呆れるばかりだが。
スレタイを死守すべくエスパーしてみる>俺
$date = $val[$i]['dc:date'];
の後に、
$data = substr($data, 0, 10);
みたいなことやればいいんじゃね?
685nobodyさん:2007/10/19(金) 22:03:46 ID:???
つーか、ココは自分が分からない質問をされると、逆ギレしてアホ扱いするような
どうしようもない奴しかいねーのかよw 俺には難しくて分かりませんって素直に言えばいいのにww
686nobodyさん:2007/10/19(金) 22:06:10 ID:???
>>682
認定厨のお前には残念だろうが違うw
687nobodyさん:2007/10/19(金) 22:06:45 ID:???
つかオブジェクトだからだろ
688nobodyさん:2007/10/19(金) 22:11:11 ID:???
>>685
このスレは俺様の自作自演だからな
689nobodyさん:2007/10/19(金) 22:15:07 ID:???
いや、俺だ
690nobodyさん:2007/10/19(金) 22:16:54 ID:???
鯖は俺の足元にあるFMVだがな
691nobodyさん:2007/10/19(金) 22:20:10 ID:???
>>685
実際、アホしか紛れ込んでこないだろ

・"エラーになりました", "動きません"
なんて言って欲しいんだ?「で?」って言って欲しいのか?

・スクリプトの欠片貼り付けて"どこ直せばいいですか"
一体ナニ喰わせてるんだ?それだけで何をわかれと?
692nobodyさん:2007/10/19(金) 22:22:33 ID:???
なんでそんなにいきりたってるの?
693nobodyさん:2007/10/19(金) 22:28:49 ID:???
言ってる事は正論だけど、クダスレで何を熱く語ってるんだか
煽りすぎるのは逆効果だぞ
淡々とやればいいじゃん
694nobodyさん:2007/10/19(金) 22:28:54 ID:???
ようは>>663は簡易RSSリーダーみたいなものが作りたいわけだろ?
対象のブログのRSSのURLをはっつけるか、
それがいやならどのブログサービスの種類(ライブドアとか)・どのブログツール(MovableTypeとか)をつかってるのか書けば
もれなく書いてみてもいい。
695nobodyさん:2007/10/19(金) 22:29:20 ID:???
>>692
真向かいの席に座ってる姉ちゃんのぱんちぃが見えそで見えなさそうで…
もうビンビンだぜ!!
696nobodyさん:2007/10/19(金) 22:32:06 ID:???
くだすれで質問者の意図を摘み取ろうとしない解答者にも問題があるだろ。
要するに>>663は文字列の一部を抽出したいだけなんだから、サンプル示せばいいだけのこと。
毎度ダラダラよくやるよなホントw
697nobodyさん:2007/10/19(金) 22:46:40 ID:???
FrontPage2002という古いホームページ作成ソフトを使ってて
ファイルをShift-Jisでしか更新できないんで新しいソフトを買おうと思うんだが
PHPを使う上でお勧めなのはどれだろう?

698nobodyさん:2007/10/19(金) 22:49:40 ID:???
ググればなんぼでも見つかるだろ
699nobodyさん:2007/10/19(金) 22:49:59 ID:???
FrontPageとPHPは関係ないと思うが
700nobodyさん:2007/10/19(金) 22:52:53 ID:???
買う必要ないだろ
htmlとphpは切り離して考えろ
デバッグ機能があるIDEでも使え
701nobodyさん:2007/10/19(金) 22:54:18 ID:???
702nobodyさん:2007/10/19(金) 22:55:58 ID:???
つ メモ帳
703663:2007/10/19(金) 22:58:26 ID:???
>>684
おおおーーーー!!できました!マジでありがとうございます!!

なんだか騒ぎの元になっちゃってるな・・失礼こきました。
704nobodyさん:2007/10/19(金) 23:00:56 ID:???
これだけ人に迷惑かけて最後までへらへらしてるとかふざけんな。
705nobodyさん:2007/10/19(金) 23:04:12 ID:???
消えたと思ったらシッカリ張りついていやがる
706nobodyさん:2007/10/19(金) 23:10:35 ID:???
めるぽ
707nobodyさん:2007/10/19(金) 23:45:41 ID:64rGyn5n
すいません質問です。
コーディングに関することではないんですが、phpのCGIモードと
モジュールモードというのはどう違うんでしょう?
レンタルサーバを借りる上で、CGIモードはokだけどモジュールモードでの
利用ができないサーバがあり、どのような不都合になるのか知りたくて質問しました。

普段はwinXPにapache2 php5で自宅でテストしてる程度なんですが、
モードというのは意識していません。 何か出来なくなる処理があるんでしょうか?
708nobodyさん:2007/10/20(土) 00:12:43 ID:KSBr51Dv
他所に誤爆してしまったので再度こちらへ。

trim(strip_tags((substr($main_txt,0,300)), '<p>'));
としてhtml文章を取得してるのですが、
途中にタグとかあると文字列の最後が ? になる場合があるので
($main_txt,0,300) の300を調整してますが、調整しないで最後の ? となってしまった部分を
削除って出来ないもでしょうか?

それと、取得した文字列にstrip_tagsの残骸のような感じで、空白が出来るのですが、その空白も削除したいのですが。
709nobodyさん:2007/10/20(土) 00:14:31 ID:???
ヒント:UTF BOM
710nobodyさん:2007/10/20(土) 00:31:03 ID:POR/JvMA
UTF BOMB
711nobodyさん:2007/10/20(土) 00:50:24 ID:???
>>709-710
私へのレスかな? ありがとうございます。
utf BOMで調べてみます。
712nobodyさん:2007/10/20(土) 01:05:50 ID:pJAmMZYu
<?php
$ua = $_SERVER["HTTP_USER_AGENT"];
header("Content-type: image/gif");
if(!strtr($ua,"Opera")){
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
}else{
$dd = imagecreatefromgif("bc.gif");
imagegif($dd);
}
?>


uaにoperaが含まれる人はad.gifを、それ以外はbc.gifを表示させるために、このようなスクリプトを書いたのですが、
html上に貼っても直接アクセスしても画像が表示されません。設置サーバーはxreaです。エラーなどは吐かず、
「リンクの切れた画像を貼っている」状態と同じ表示になります(IEでいうバッテン印)
ちなみにif文を書かずに直接
header("Content-type: image/gif");
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
だけ記述した場合はまともに作動するので、GDなどの問題ではないと思います(詳しくはわかりませんが・・・)
説明下手ですいません、原因わかる方いたらよろしくおねがいします。
713nobodyさん:2007/10/20(土) 01:11:01 ID:???
>>712
直接アクセスした場合はどうなる?
あと最後の?>は消した方がいい
714nobodyさん:2007/10/20(土) 01:19:03 ID:???
あぁ、あとついでに
strtrはstrposにするかeregとかpreg_matchにした方が良い
strtrは置換用

もう1個余計なこと言うと
if句の中でimagegifとか呼んでるけど

$img = 'ad.gif';
if (strpos($ua,'Opera') == false) {
    $img = 'bc.gif';
}
$dd = imagecreatefromgif($img);
imagegif($dd);

こんな感じの方がすっきりする
715nobodyさん:2007/10/20(土) 01:19:24 ID:???
即レスありがとうございます。
直接というのはこのphpファイルに直接、ということですよね?
その場合も同様にバッテン印です。

ad.gif bc.gifに直接、ということでしたら正常に表示されます

?>消しましたがダメでした。


ためしに

if(!strtr($ua,"Opera")){
$ss = imagecreatefromgif("ad.gif");
imagegif($ss);
}else{
echo "あいうえお";
}

このように書き換えてみたのですが、これでuaにOperaが含まれてなくても"あいうえお"ではなく画像を出力しようとしてしまうようです。
うーん、なんでだろう
716nobodyさん:2007/10/20(土) 01:25:52 ID:???
>>707
そのまえにマニュアル読みましょう。
それでも見つからないのであればここにきてください
717nobodyさん:2007/10/20(土) 01:26:10 ID:???
>>714
あ、これで書き直したら直りました!ありがとうございます!!

原因はよくわかんないけど、
>if句の中でimagegifとか呼んでるけど
これがまずかったんでしょうかね・・・

すっきりという意味でも、
独学でプログラム始めたばかりで、自分で見ても無駄の多いコードだなぁ…とは思うんですが、そう簡単に矯正できなくて…
こうしたことを教えていただくと実に勉強になります。

本当にありがとうございました。
718nobodyさん:2007/10/20(土) 01:30:05 ID:???
>>717
>>if句の中でimagegifとか呼んでるけど
>これがまずかったんでしょうかね・・・

こういうのが原因では無い
これは書き方だけ

多分なんらかの文字列とかが出力されて
出力された画像ファイルが壊れてたんじゃないかなと思う
719nobodyさん:2007/10/20(土) 04:32:47 ID:???
なぜ>>714のアドバイスを受けたうえで>>715の条件判定のままなのだろうか?
・文字列が含まれるかを判定したいはず
 strtr()は見つかった文字列を別の文字列に置き換える関数だわ
・関数の使い方に誤りがある
 strtr($ua,"Opera") 引数が足りないよ Warning:出るよ
 きっとレンタル屋さんが display_errors = off で運営してるから
 エラーや警告を確認できないんだろうね
・関数の戻り値は常に false である
 使い方に誤りがあるから $ua に何を突っ込もうが結果は常に false のみ
 ゆえに if文の判定は true の否定だから常に 真 のみ

まずは何が誤りであるかを自分で認識する力をつけないと成長しないよ?
720nobodyさん:2007/10/20(土) 04:43:38 ID:???
たまに Fatal error(databaseの読み込み失敗とか)をズラズラと表示してくれる
のを放置したままのWebサイトに出くわすことがあって萎え…
721nobodyさん:2007/10/20(土) 04:57:51 ID:???
おれはエラーをださない完璧なコードを書く練習のために
if文でこんにちはを出力する処理を何通りも書いて練習してる
722nobodyさん:2007/10/20(土) 05:00:27 ID:???
気になる。どんなコード書いてるのか見せてくれないか
723nobodyさん:2007/10/20(土) 05:24:39 ID:???
if文の処理で間違いを犯す人間は、基本的に論理的思考がない人。
もしくは、不注意な人。
724nobodyさん:2007/10/20(土) 05:52:03 ID:???
だからif文でみんなも練習しようぜ
725nobodyさん:2007/10/20(土) 09:35:20 ID:???
if文マニア?
726nobodyさん:2007/10/20(土) 09:40:01 ID:???
>>724
うちの会社では自販機のつり銭のロジックを書かせるのが、
入社試験で必ず出している。まずは基本だから、それをまずやってみればいい。
意外に難しくて、正答率は20%以下。
727nobodyさん:2007/10/20(土) 10:08:16 ID:???
>>726
まず、自販機のつり銭のロジックの要求仕様を出せ
728nobodyさん:2007/10/20(土) 10:39:25 ID:???
その問題は、いくつか小問から構成されるんだが、
if文の練習をする題材としてなら、改題してこんな感じかな。

投入金額と購入金額からつり銭の枚数を計算しないさい。

かな。
条件としては、つり銭の枚数は最小限の枚数にすること。
投入金額は10円単位で1000円まで。
つり銭につかう硬貨・紙幣は、10円、50円、100円、500円、1000円。

function get_tsurisen($tonyu_kingaku, $konyu_kingaku) {
$tsurisen_maisu = NULL;
// つり銭ロジック
return $tsurisen_maisu;
}
729nobodyさん:2007/10/20(土) 11:17:12 ID:2lqi/a9O
すみません mb_convert_encodingで文字をエンコードしようとしたら
Call to undefined function mb_convert_encoding()と出たのです

この場合いったいどうすればいいでしょうか
730nobodyさん:2007/10/20(土) 11:37:29 ID:???
>>729
phpのconfigureのオプションにmbstringが入ってないと思われる
オプションをつけてphpを再コンパイルする

>>728
ロジックの主な部分でif文いらないんだが

$tsurisen_maisu = array();

$tsurisen_maisu['1000'] = floor($tsuri/1000);
$tsuri = $tsuri%1000;

$tsurisen_maisu['500'] = floor($tsuri/500);
$tsuri = $tsuri%500;

$tsurisen_maisu['100'] = floor($tsuri/100);
$tsuri = $tsuri%100;

$tsurisen_maisu['50'] = floor($tsuri/50);
$tsuri = $tsuri%50;

$tsurisen_maisu['10'] = floor($tsuri/10);
$tsuri = $tsuri%10;
731nobodyさん:2007/10/20(土) 11:38:50 ID:2lqi/a9O
>>730
ありがとうございます
732nobodyさん:2007/10/20(土) 11:56:43 ID:???
>>730
>>ロジックの主な部分でif文いらないんだが

偽造硬貨対策 >>if文

if(is_gizocoin($tonyu_kingaku)){
tuuhoo(110);
} else {
// つり銭ロジック
}

733nobodyさん:2007/10/20(土) 13:10:48 ID:???
>>730
凄いあれなコードだなw
734nobodyさん:2007/10/20(土) 13:17:01 ID:???
@CMSでXOOPSをレンタルしているのですが、mainfile.PHPをいじって失敗しました。
なので再インストールしたいのですが、@CMSのデータベース名やテーブル接頭語はどう設定すればいいのでしょうか?
大変困っています。
735nobodyさん:2007/10/20(土) 13:21:52 ID:???
再インストールなら再インストールしろよ
736nobodyさん:2007/10/20(土) 13:27:18 ID:???
日本語をアルファベットにするのは止めてくれ・・・(てか、辞めてくれ・・)

ぎぞこいん  ぎぞコイン  ぎぞうコイン  OK!把握した!偽造コインか!
とんゆ_きんがく  (きんがくは金額だな)  とんゆ金額  とにゅ金額  とうにゅう金額 OK(略)
つうほお  (これまでの試練で読めるようになった俺にはチョロイぜ!) つうほう 通報だな!

110  (´・ω・`)  通報というからには、110のはずだがここで引数があるのには理由がある筈だ。。
そうか、通報先を電話番号で指定するんだな! でも、0から始まる場合は数値扱いでいいのか。。。
737nobodyさん:2007/10/20(土) 13:28:41 ID:???
>>733
仕事でその程度のコードでお金貰えるなんて、素人からみると安心できます。
738nobodyさん:2007/10/20(土) 13:34:13 ID:???
>>737
多分アンカミスだとは思うが
730みたいなコード書く奴は実際にいるよ

ただ後で修正する時大変だなーと
思うことしばしばあるけど・・・


739nobodyさん:2007/10/20(土) 14:19:30 ID:0NCrF6x5
$_GETや$_POSTを使うと、必ずNOTICE Undefined indexが出るんですけど、
無視していいですか?というより出さないかきかたはあるんでしょうか?
740nobodyさん:2007/10/20(土) 14:20:12 ID:???
>>739
マニュアル読め
741nobodyさん:2007/10/20(土) 14:26:19 ID:???
>>728
作ってみた
改行上限で読みにくくはなってる
class Turi {
    var $coinMapDef = array(1000,500,100,50,10);
    var $coinMap = array();
    var $turiCoinMap = array();
    function Turi($coinMap = null) {
        $this->coinMap = $this->coinMapDef;
        if (is_array($coinMap) == true) {$this->coinMap = $coinMap;}
    }
    function calc($inMoney, $buyPrice) {
        $turi = $inMoney - $buyPrice;
        if ($turi < 0) {return false;}
        elseif ($turi === 0) {return array();}
        $this->getEachCoinCount($turi);
        return $this->turiCoinMap;
    }
    function getEachCoinCount($money) {
        $turiCoin = $this->getEachCoin($money);
        if ($turiCoin === false) {return;}
        $count = floor($money / $turiCoin);
        $this->turiCoinMap[$turiCoin] = $count;
        $nokoriMoney = $money - $count * $turiCoin;
        $this->getEachCoinCount($nokoriMoney);
    }
    function getEachCoin($money) {
        foreach ($this->coinMap as $value)
            if ($value <= $money) {return $value;}
        return false;
    }
}
742nobodyさん:2007/10/20(土) 14:29:14 ID:???
>>739
<?php
$hoge = $_GET['hoge']

こんな感じにいきなり書いてるからNOTICEが出る
理由はGETでhogeが投げられてもいないのに値を取得しようとしてるから
こういう場合は必ず値がセットされてるか確認してから入れる

if (isset($_GET['hoge'])) {
    $hoge = $_GET['hoge'];
}

743739:2007/10/20(土) 14:34:43 ID:0NCrF6x5
>>742
どうもご丁寧にありがとうございます。
納得いきました。
これからはそのような書き方にします。
744nobodyさん:2007/10/20(土) 14:51:53 ID:???
(is_array($coinMap) == true)
== trueは冗長だろ
745nobodyさん:2007/10/20(土) 15:04:48 ID:???
>>741 の function Turi は三項演算子ですっきり書けるね >>742 もまた然り
746nobodyさん:2007/10/20(土) 15:06:12 ID:???
三項演算子なんて読みにくいしイラネ
747nobodyさん:2007/10/20(土) 15:06:45 ID:???
三項演算子はソースが読みにくくなる
748nobodyさん:2007/10/20(土) 15:30:01 ID:???
いや俺は頭いいから普通に読める
749nobodyさん:2007/10/20(土) 15:46:53 ID:???
一昔前なら三項演算子で御飯三杯いけたけど今はちょっとね…
過去に自分で書いたものすら読めないほど退化してるから
750nobodyさん:2007/10/20(土) 15:48:52 ID:???
やっぱし、ホラ、三項演算子って萌えの要素が無いからさ
751nobodyさん:2007/10/20(土) 17:06:17 ID:???
aaaaaaaaaaaaaaa
752nobodyさん:2007/10/20(土) 17:25:49 ID:???
人のソース見て馬鹿にすることしかできない奴って、
ろくなコード書けないんだろう
自分じゃソースすら晒せないんだからwww
753nobodyさん:2007/10/20(土) 17:28:01 ID:???
三項演算子って三原順子みたいだな
754nobodyさん:2007/10/20(土) 17:30:43 ID:???
三項演算子イラネとか即レスしちゃうようなレベルの人間が張り付いてるような板なんだからお察しwww
755nobodyさん:2007/10/20(土) 17:35:43 ID:???
サンプルと実務を混同して批判している奴は
はっきり言ってアフォ
756nobodyさん:2007/10/20(土) 17:58:13 ID:???
>>754
お前のほうがよほどお察しだろ
読みにくいからイラネっていってるだけだし歪曲するなよヴォケ
読みにくいっていうのは正論
仕事でも三項演算子なんて使わん
757nobodyさん:2007/10/20(土) 18:05:18 ID:???
>>757
読みくいのは正論だとしても、読みにくいからって即イラネとか極論持ってくるような奴はただのいアホ
758nobodyさん:2007/10/20(土) 18:06:42 ID:???
あ、俺アホw 上のレス756ねw おまけに編集中だったw
759757:2007/10/20(土) 18:07:43 ID:???
あ、俺アホw 編集中な上にレス番間違ったwww まさにお察しwww
760nobodyさん:2007/10/20(土) 18:09:42 ID:???
半年ROMってから書き込むようにw
761nobodyさん:2007/10/20(土) 18:10:50 ID:???
三項演算子とかこういうところで変なものおしえるから
後々生まれるわけわからんこと主張する変なアホが出てくるんだ
コーディング規約で使わないことになってる三項演算子をかっこいいと思ってるらしく
何で使わないんですかね?
チームで開発するんだから可読性考えるのは当たり前
え?可読性よくないですか?わかりやすいと思うけどな
とか俺様に意見する駆け出しがふえるんだよヴォケ
ここは初心者スレであると同時に未来の実務PGが生まれる可能性がある場所なんだから
余計なこと教え込むな
入ってきたときこっちが矯正するのに無駄な時間がかかる
762nobodyさん:2007/10/20(土) 18:12:30 ID:???
今日もアフォが多いね
763nobodyさん:2007/10/20(土) 18:15:26 ID:???
じゃ、ちょっと話題変えて皆 PHPの(Cの)ソースって一通り目を通してる?
挙動が気になる関数ってあるじゃん
mb_send_mail()とかmb_send_mail()とかmb_send_mail()とか
764nobodyさん:2007/10/20(土) 18:21:46 ID:???
>>762
しょうがないよ。世間一般の目を通したら基地外と紙一重に映るのがこの業界の人間だから
765nobodyさん:2007/10/20(土) 18:21:52 ID:???
>>744
>(is_array($coinMap) == true)
>== trueは冗長だろ
冗長だけど、おれもそう書くよ。可読性が向上する。
俺の場合は、== TRUEって書くけどな。
766nobodyさん:2007/10/20(土) 18:24:26 ID:???
>>763
俺は目は通さない
通した所で動作が変とかあったとしても
phpのコミッタでないから修正できないし
それにローカルだけ修正とか変更したら
バージョンアップ毎に書き換えないといけないから

inとoutとどういう動作をするかの仕様が解れば
それにあわせて作ってる
767nobodyさん:2007/10/20(土) 18:39:10 ID:???
>>763
pearのソースは見ても、わざわざPHPのCのソースまで見る人は少ない気が・・・理由は概ね766と同じ

>>765
俺の場合 ture false が必ず返ってくることが約束されてる組込み関数は冗長だと思うので書かない派かな
だけど if ($fp) { とか if ($db) { みたいな書き方は気分的に好きになれない
768nobodyさん:2007/10/20(土) 18:47:13 ID:???
>>767
>俺の場合 ture false が必ず返ってくることが約束されてる組込み関数は冗長だと思うので書かない派かな
組み込み関数は書かないが、逆に自作の関数だったら書くってことか?

大量のコードの中で瞬時に組み込みか自作か分かりにくい場合もあるし、
そもそも区別する意味がない気がする。

コーディング規約として、制御文の条件判定の際はTRUE又はFALSEを明示すること。って決めた方がすっきりすると思うけど。
769nobodyさん:2007/10/20(土) 18:53:04 ID:???
if (!$isCorrect) {
//false時の処理
}

と書く奴がいるが、

if ($isCorrect == true) {
//true時は処理をしない
} else {
//false時の処理
}

と書くようにな!!
770nobodyさん:2007/10/20(土) 18:59:06 ID:???
コーディングの話は板荒れる原因になるから、よほどのバッドノウハウでないかぎり
「自分はこうです」「私はこう思います」で留めておいたほうがいい気がする
771nobodyさん:2007/10/20(土) 19:04:26 ID:???
>>769
trueの時は空で通すのか?w
772nobodyさん:2007/10/20(土) 19:08:52 ID:???
このスレ、レベルの高さがよくわかるなwww
773nobodyさん:2007/10/20(土) 19:22:53 ID:???
>>772
レベルの高さじゃなくて、レベルの低さじゃなくて?
774nobodyさん:2007/10/20(土) 19:23:29 ID:???
>>766-767
なるほど、徒労と言えばそうなんだけど。
興味本位で深層部まで探索する人は少ないか。
775nobodyさん:2007/10/20(土) 19:25:26 ID:???
>>772
安心しろお前が底辺だ
776nobodyさん:2007/10/20(土) 19:26:23 ID:???
>>772-773
レベルの高低を分ける基点は何?
777nobodyさん:2007/10/20(土) 19:29:07 ID:???
>>775
いや底辺においては俺様の右に出る者はいない
778nobodyさん:2007/10/20(土) 20:19:05 ID:???
>>773
日本語のニュアンスの違い
「レベルの低さ」と言うと「低い」ことを臭わせているけど、
「レベルの高さ」と言うと>>773が思っているように「高い」ことを匂わせることもあるけど、
「縦・横・高さ」と同じで、高い・低いを想像させない中立的な言い方でもある
779nobodyさん:2007/10/20(土) 20:38:58 ID:???
778
日本語が変になった

日本語のニュアンスの違い
「レベルの低さ」と言うと「低い」ことを臭わせているが、
「レベルの高さ」と言うと>>773が思っているように「高い」ことを匂わせることもあるけど、
「縦・横・高さ」と同じで、高い・低いを想像させない中立的な言い方でもある
780nobodyさん:2007/10/20(土) 20:41:31 ID:???
どうでもいい
781nobodyさん:2007/10/20(土) 20:45:31 ID:???
>>780のほうがどうでもいい
782nobodyさん:2007/10/20(土) 20:59:39 ID:???
>>741
再帰がめずらしくて使ってみたかったのか?w
末尾再帰にするくらいならループにすべきところ

つり銭がないときのチェックはあるのに
$inMoneyに10円未満があったときは無視して正常に返すのかw

しかし、なんでこう難しくつくろうとするのかね・・・

あと>>741が悪いんじゃないけど、
private,public,protectedのついてないクラスってほとんど意味ないよね
783nobodyさん:2007/10/20(土) 21:14:20 ID:???
>>781
そうやってむきになってどうでもいいレスにレス返すから
レベルがどうたらといわれるんだよ
ほんと君みたいなやつは消えてくれていい
784nobodyさん:2007/10/20(土) 21:17:55 ID:???
>>782
オブジェクト指向のふいんき(←なぜか変換できない)を味わいたかったんじゃない?
785nobodyさん:2007/10/20(土) 21:20:24 ID:???
>>783
おまえ頭悪すぎw
786nobodyさん:2007/10/20(土) 21:22:23 ID:???
>>741
使用例も挙げてくれ。
787nobodyさん:2007/10/20(土) 21:23:14 ID:???
>>784
phpのソースってメンバとかメソッドにアクセス修飾子がついてないクラスをよく見かけるんだよ
Log4phpもそうだったような気がする
788nobodyさん:2007/10/20(土) 21:24:34 ID:???
>>786
それくらいソースから判断しろよ
インスタンス化して、calc()を呼び出す
789nobodyさん:2007/10/20(土) 21:27:57 ID:???
>>788
じゃあ処理を分化してる意味が全く無いな
790nobodyさん:2007/10/20(土) 21:30:57 ID:???
>>789
それは作者に言ってくれ
俺には>>789の意味するところがよくわからないんだが
791nobodyさん:2007/10/20(土) 21:31:28 ID:???
作者じゃないならぐだぐだ言うな
792nobodyさん:2007/10/20(土) 21:33:41 ID:???
>>791
>>733とか>>738あたりにも同じことを言っておけ
793nobodyさん:2007/10/20(土) 21:34:55 ID:???
もしかして>>791って他人のソースも追えないほどアホなのか?
794nobodyさん:2007/10/20(土) 21:36:23 ID:???
>>728
こんなんどうでしょうか?

function get_tsurisen($tonyu_kingaku, $konyu_kingaku) {
 $tsurisen_maisu = 0;
 $list = array(1000, 500, 100, 50, 10);
 $tsuri = $tonyu_kingaku - $konyu_kingaku;
 for ($i = 0; $i < count($list); ++$i) {
  while ($tsuri >= $list[$i]) {
   $tsurisen_maisu++;
   $tsuri -= $list[$i];
  }
 }
 return $tsurisen_maisu;
}
795nobodyさん:2007/10/20(土) 21:38:00 ID:???
>>787
php4までは修飾子使えない
php5では使えるからその差

因みに例外処理も5から
796nobodyさん:2007/10/20(土) 21:39:45 ID:???
>>795
そういうことか、サンクス
797nobodyさん:2007/10/20(土) 21:43:03 ID:???
使用する側が便利じゃなきゃオブジェクト化する意味がないな
798nobodyさん:2007/10/20(土) 21:44:02 ID:???
貼りまちがい

function get_tsurisen($tonyu_kingaku, $konyu_kingaku) {
 $tsurisen_maisu = null;
 $list = array(1000, 500, 100, 50, 10);
 $tsuri = $tonyu_kingaku - $konyu_kingaku;
 for ($i = 0; $i < count($list); ++$i) {
  $tsurisen_maisu[$list[$i]] = 0;
  while ($tsuri >= $list[$i]) {
   $tsurisen_maisu[$list[$i]]++;
   $tsuri -= $list[$i];
  }
 }
 return $tsurisen_maisu;
}
799nobodyさん:2007/10/20(土) 21:44:36 ID:???
>>794
たぶんアウトw
それだとつり銭枚数の合計しか出てこないんじゃないか?
800nobodyさん:2007/10/20(土) 21:50:48 ID:???
>>798
あとは$tsuri <0とかチェックをいれたら終わりかな

while文をつかわないで>>730にある商と剰余に置き換えたほうがすっきりする
あと小さいことだけど、毎回count($list)呼び出されるのは嫌なので
$list_cnt = count($list);
for ($i = 0; $i < $list_cnt; ++$i) {
にする

801nobodyさん:2007/10/20(土) 22:00:07 ID:???
まともな話をすると急に静かになったなw
802nobodyさん:2007/10/20(土) 22:01:10 ID:???
そもそも$tsuri <0だったら、どう返すべきなんだ?
0で返すのか、それともNULL、それとも投入金額分だけ返すのか?
803nobodyさん:2007/10/20(土) 22:03:30 ID:???
>>802
俺ならfalseで返す
804nobodyさん:2007/10/20(土) 22:04:09 ID:???
つり銭の枚数とか出す所で
投入された金の妥当性とか
買える金額が範囲内なのかを判断するのって変じゃないか?

それは外部ですべきだと思うんだが
もし変な値でつり銭出そうとするなら
それは例外処理にすべきと思う
805nobodyさん:2007/10/20(土) 22:05:15 ID:???
>>803
false?phpってfalseで返すの?
javaならnull値で返すのが暗黙の了解事項だけど。
806nobodyさん:2007/10/20(土) 22:07:35 ID:???
Cなら0ってなるからなんでもいいんじゃね?
807nobodyさん:2007/10/20(土) 22:08:23 ID:???
>>804
外部からメソッドに入ってくる値の妥当性を検査するのは、そのメソッドの仕事
そういう検査していない値を信用して使うのは危ない
エラーを戻り値で対応するのかエラーで対応するのかはプログラミングの規約とかに依る
808nobodyさん:2007/10/20(土) 22:09:49 ID:???
>>805
phpは何でも返せるから、エラーのときだけbooleanでそれ以外はarrayとかできる
809nobodyさん:2007/10/20(土) 22:09:54 ID:???
>>806
数値を返すところで、0で返すのはまずいだろ。
それじゃ、正常処理か異常処理か分からなくなる。つまり、隠れたバグの原因になる。
810nobodyさん:2007/10/20(土) 22:10:49 ID:???
>>807
>エラーを戻り値で対応するのかエラーで対応するのかは
エラーを戻り値で対応するのか例外で対応するのかは
811nobodyさん:2007/10/20(土) 22:11:57 ID:???
>>809
phpのソースを見て研究をしたほうがいいと思う
812nobodyさん:2007/10/20(土) 22:17:13 ID:???
>>809の問題だと、
f()==falseでは確かにまずいので、0とfalseを厳密に区別するために
f()===falseにするしかないな
(f()は数値を返すメソッド)


http://php.benscom.com/manual/ja/types.comparisons.php
813nobodyさん:2007/10/20(土) 22:23:46 ID:???
釣銭勘定モジュールに渡すパラメータの定義が緩い
・購入金額は0円以上
・最低単位は10円であり1円単位の端数は無い
・購入金額は投入金額と等しいかそれ以下

購入キャンセルによる返金は親が面倒見る
814nobodyさん:2007/10/20(土) 23:38:01 ID:???
>>813
うんうん、そうだね
815nobodyさん:2007/10/20(土) 23:40:56 ID:???
なにいってんだよ
定義はあえて緩くしてるんだろ
その方が実力を測れるじゃねーか
816nobodyさん:2007/10/20(土) 23:41:20 ID:???
>>813
ちょっとワロタ。
ちょっとだけだからな!
817sage:2007/10/21(日) 00:43:39 ID:???
FreeBSDに、phpをインストールしたのですが、
phpの初期設定ファイルであるpnp.iniが見つかりません。

このファイルは、無い場合は自分で作るのでしょうか?
自分で作る場合は、インストールしたディレクトリと同じ場所におけばよいのでしょうか?

環境情報は、以下の通りです。
・OSは、5.4
・PHPは、5.2

よろしくお願いししす。
818nobodyさん:2007/10/21(日) 01:03:52 ID:???
掲示板を制作しており htmlspecialchars に関する質問です。

1.意見をPOSTで送る
2.確認画面で確認
3.それから書込

2.の時点でhtmlspecialchars を入れており確認画面のソースは
<input type="hidden" name="contents" value="&lt;img src=&quot;&quot;&gt;">
(全角にしております)

でここからが問題。
こいつをまた送信すると$_POST['contents']の中身が元の「<img src="">」に
なっちゃうのはなんででしょうか?

$_POST['contents']="&lt;img src=&quot;&quot;&gt;" にならないの??
819nobodyさん:2007/10/21(日) 01:10:23 ID:???
>>817
<? phpinfo(); ?> でファイル作りブラウザからでもコマンドライン実行でも見れば載ってない?
大体自分でOSインスコしたならfindとか使えないのか?
820nobodyさん:2007/10/21(日) 01:19:58 ID:???
>>818
再送信で何故元に戻るかは知らないけど確認画面にhidden入れない方がいいと思う。
確認画面は表示用のみにして、送信内容(1の意見)自体はセッション関数に入れて3でそれを書き込んだ方がいい
821nobodyさん:2007/10/21(日) 01:34:05 ID:???
>>817
慣れないOS使うからだよ
デフォルトのファイル名はphp.ini-dist
これをcpしてphp.iniにリネームしたのを同じ場所に置く
locatedb更新して検索してください
822nobodyさん:2007/10/21(日) 02:05:22 ID:???
>>818
&をエスケープしてみろ、てかPHP関係ねぇしオパピ
823nobodyさん:2007/10/21(日) 03:47:36 ID:???
でもそんなの関係ねえ
824818:2007/10/21(日) 03:54:49 ID:???
レスどうも。

$strForm = <<<EOF
<form method=POST action={$_SERVER['PHP_SELF']}>
{$_POST['hoge']}
<input type=submit value="ok">
<input type=hidden name=hoge value="&lt;"> ←掲示板対策で&大文字 &lt;=<
</form>
EOF;

echo $strForm;

これを動かすと「&lt;」ではなく「<」が表示された。

これ以上はスレ違いの気がするので最後に質問。
特殊文字を HTMLエンティティした場合、それを送信しちゃうと自動的に元に戻るってこと?
825nobodyさん:2007/10/21(日) 03:57:50 ID:???
lol なんのためにエンティティ化するんだ
826nobodyさん:2007/10/21(日) 04:00:43 ID:???
hiddenで送るなよ
827818:2007/10/21(日) 04:06:00 ID:???
>>825
>>なんのためにエンティティ化するんだ

ウハ! もっともなご意見(^^;
確認画面ですので入力したデータがそのまま表示されてもいい気がするんですが。

でも2ちゃんの確認画面もちゃんとエンティティ化してますよね。
そこらへんどうなんでしょ?
828nobodyさん:2007/10/21(日) 04:14:05 ID:???
確認画面に出力したデータを書き込むんじゃない。
確認画面に入力したデータを書き込むんだ。
829nobodyさん:2007/10/21(日) 04:49:54 ID:???
>>817
portsからぶち込んだ場合は/usr/local/etcにphp.ini-recommendedとphp.ini-distがある
いづれかをphp.iniとしてコピー
野良makeならphpのマニュアルに沿って解凍ディレクトリ下のphp.ini-recommendedか
php.ini-distをphp.iniとして/usr/local/libにコピー

推奨はphp.ini-recommendedなんだけどエラーメッセージ吐かなかったりと不自由するかも
しれないのでテスト環境ではphp.ini-distを利用するのがいいかも
830nobodyさん:2007/10/21(日) 09:59:43 ID:???
>>827
2chで書き込み試したら確かにエンティティ化してhidden使ってるね
セッション使わないのは鯖負荷軽減のため?

ただ普通は、
ユーザが入力(最初)
 ↓
入力データをセッション変数へ保存
表示用にエンティティ化してHTML出力
 ↓
ユーザが確認し書き込みボタン押す
 ↓
セッション変数に保存したものをファイルやDBへ保存
(勿論DB用にエスケープする)

hiddenだろうがテキストエリアに入った文字列だろうがHTML出力する分はすべてHTMLエンティティするのは当然。
問題視してるのは書き込むデータをhiddenで送り返してまたそれを受け取りDB登録しようとしてる点。
831nobodyさん:2007/10/21(日) 10:17:27 ID:???
mixi日記もhidden使ってたw こっちはエンティティ化してなかった
832nobodyさん:2007/10/21(日) 10:23:29 ID:???
このスレの普通は、普通じゃなさそうだなw
833nobodyさん:2007/10/21(日) 10:38:03 ID:???
所変われば常識も変わるってところか
834nobodyさん:2007/10/21(日) 12:10:29 ID:k0cThTxS
自宅鯖のPHPがPHP 5.2.4で
sakuraサーバーのPHPがPHP 4.2.2で

php 5.2.4ではclass内でのrequire_once等の使用ができるのに
php 4.2.2だとつかえないみたいなんですけど
これはそういうものなんですか?
includeでも同じでした;;
なにか他に取り込む方法ってないですか?
835nobodyさん:2007/10/21(日) 12:19:55 ID:???
そんな話きいたことないしソースみないとわからないが、クラスの外にだしてもどうせクラスが含まれたファイルをよみこむんだから問題ない気がするよ
836PHPでパスワード付きExcelファイルを読み込みたい:2007/10/21(日) 13:11:20 ID:SzVd/yWp
Windows上でPHP5を使っています。
そのマシンにはExcelがインストールされておらず、
Excelファイルには、Excelのパスワードがかかっています。

で、そのExcelファイルをバッチ処理か何かで読み込みたいと考えています。

Perlだと、Win32::OLEかSpreadsheet::ParseExcelを使って読み込むそうですが、
前者はExcelがインストールされていないtダメですし、
後者はパスワードで保護されたExcelには対応していないんだそうです。

そこで、PHPを使おうと思っています。
ここで質問です。

調べたところによると、PHPでは、PHPExcelを使うと思うのですが、
パスワード付きのExcelは読み込めるのでしょうか?

あるいは、ほかに簡単に読み込める方法があれば、教えてください。
よろしくお願いします。
837>>817:2007/10/21(日) 14:20:59 ID:???
>>819
>>821
>>829
できました!
ありがとうございます!

838nobodyさん:2007/10/21(日) 15:16:08 ID:???
どういたまして
839nobodyさん:2007/10/21(日) 15:52:06 ID:???
>>836
OOoを使う
あれならパスワードつきも普通に開けるだろ
840nobodyさん:2007/10/21(日) 17:04:17 ID:???
>>839
ためしてからいえ
841nobodyさん:2007/10/21(日) 17:41:02 ID:KqyRsNL6
質問です。
住所録みたいなツールを作って、データを登録するとします。
で、DB側ではid(自動インクリメント)を持たせてるとして、
たった今登録したデータのidを拾いたいときってどうしたらいいんですか?
phpから実行するsql文で最新のデータのidを拾えばいいと思ったんですが、
複数人から同じテーブルに次々書き込みがあった場合、自分の書き込み後に
他人が登録したデータを拾ってしまうということはないでしょうか?
842nobodyさん:2007/10/21(日) 17:51:15 ID:???
>>841
マニュアルのmysqlのページ。
DB側でもできるけど。
843nobodyさん:2007/10/21(日) 18:37:14 ID:???
>>840
試してから言ってるわぼけ
844836:2007/10/21(日) 18:38:11 ID:???
すこしだまっててくださいね、偽ってる暇人訓^^
845nobodyさん:2007/10/21(日) 18:49:34 ID:???
846nobodyさん:2007/10/21(日) 18:59:57 ID:???
メールフォームで送信した後、
「送信しました(2ちゃんだと『書き込みました』)」というページを表示するじゃないですか。
この際にブラウザーで戻れなくする方法ってないですかね?

何がしたいかというと二重送信を防ぎたいわけですが
チェック用のファイルを用意して防ぐようにもします。
ですがブラウザーそのものが戻らないようにできないもんですかね?

header("Location :http://example.com")でいけるかと思ったんですがダメでした…
アドバイスを。
847nobodyさん:2007/10/21(日) 19:05:00 ID:???
戻った場合の責任は負いかねますとか書いとけばok
848nobodyさん:2007/10/21(日) 19:07:21 ID:???
>>846
>二重送信を防ぎたい
ぐぐればやり方はいくつか載ってるよ
ただクライアント側で何とかしようとするのは感心しない
やるならサーバ側
このへんの理由もぐぐれば書いてある
849nobodyさん:2007/10/21(日) 19:13:54 ID:???
>>846
セッションに前いたページを覚えさせておいて
戻ったページで正しい遷移でなければ、前いたページにリダイレクトとか。
850nobodyさん:2007/10/21(日) 19:24:28 ID:???
>>849
二画面開いてたらややこしいことにならないか?
851846:2007/10/21(日) 19:40:55 ID:???
レスあり〜

>ただクライアント側で何とかしようとするのは感心しない
>やるならサーバ側
そそ、書くの忘れていた。
クライアント側、たとえばJavaScriptとかでするんじゃなくて
サーバー側で処理をしたいんですよね。

「PHP 二重送信 防止」ぐらいでググッてるんですが
『クライアントサイドのスクリプトで二重送信を防止するのは難しい』
とか言われている俺ガイルww
852846:2007/10/21(日) 19:45:54 ID:???
ググった結果、よさそうな方法が見つかりましたw
回答ありがとうございました。
853846:2007/10/21(日) 19:51:46 ID:???
>>852
ちょ!必死に探しているのに詐称すんのやめて(つд`;)
つーか解決法がみつからない。
(ページの間に別のphpファイルを挟んで実行・header処理している人がいて感動)

ここって前まで上げてID表示していなかったっけ?
荒らされたんかな?
854nobodyさん:2007/10/21(日) 19:53:39 ID:???
ずっとIDを出してないと意味ねーし
855nobodyさん:2007/10/21(日) 19:58:07 ID:???
とりっぷつければイイノに
856nobodyさん:2007/10/21(日) 20:19:58 ID:???
>>853
いや、ID出したきゃ出せばいいじゃん。
出さずに詐称すんなとかバカの言い分。
857846:2007/10/21(日) 20:34:37 ID:???
>>853
ちょっと待て!お前誰だよw
まぁ解決方法が見つからないのは本当なんだけどさ…。

もう少しググッてみたいと思います!
偽者が出てきたのでもう書き込まないようにします。迷惑かけてごめんなさい!
858846:2007/10/21(日) 20:36:02 ID:???
ちなみに852も偽者です。言い忘れました…。
859846 ◆yBEncckFOU :2007/10/21(日) 20:41:35 ID:???
>>857-858
ちょっと騙るのやめてくんない?こっちは真剣なんです!
860846:2007/10/21(日) 20:41:49 ID:???
偽者ばっかりで困っています
どうすれば良いですか?
861846:2007/10/21(日) 20:41:56 ID:???
めるぽ
862nobodyさん:2007/10/21(日) 20:45:25 ID:???
ばか、ばっか
863nobodyさん:2007/10/21(日) 20:58:29 ID:???
たまにこういうことがあるから面白い
864nobodyさん:2007/10/21(日) 21:07:02 ID:???
最近はほぼ毎日じゃねーか
865nobodyさん:2007/10/21(日) 21:10:16 ID:???
二重送信はsessionやJavaScriptで防げるが
ブラウザーのボタン制御は無理だろ?
866nobodyさん:2007/10/21(日) 21:12:26 ID:???
過疎りすぎて人もよりつかないスレよりはマシだと思うよ
脱線し過ぎるのはアレだけど
867836:2007/10/21(日) 21:26:20 ID:SzVd/yWp
偽者がいますね(´・ω・`)

>>839
OpenOfficeでパス付きExcelが開けるのは知っていますが、
手で開くのではく、自動処理(バッチ処理等)で読み込みたいと考えています。

OOoでそういう使い方ができるのでしょうか?
868nobodyさん:2007/10/21(日) 21:43:50 ID:???
>>865
送信元画面をPOSTで生成しとくとか。

いっそ送信元画面にJavaScript仕込んどいて送信完了時に
発行したCookieを発見したら強制Locationかけちゃうとかw
869nobodyさん:2007/10/21(日) 22:01:51 ID:???
>>867
必要にせまられてるのはアンタだから試してみればいいんでないの?
良かったじゃん、人柱になれて
870nobodyさん:2007/10/21(日) 22:25:47 ID:MevNDFNf
カレンダーを作っていますが
PHPの日付関数はunixタイムスタンプを使うので
2038年?以降のカレンダーは表示できなくなります。
unixタイムスタンプ問題を回避してカレンダーを作るには
どうすればいいですか?
871nobodyさん:2007/10/21(日) 22:28:44 ID:???
>>870
日付も曜日も自分で管理したらいい

だが、そもそも30年以上も先のカレンダーを表示する必要があるのか?
872nobodyさん:2007/10/21(日) 22:47:48 ID:???
>>846
まあ送信とか戻るのはユーザが行うことだからWebサーバで禁止できることじゃないとおもうけど。

期限切れで表示できないのとかあるね。
どうやっているのか知らないけど。

送信してしまった対策として一定時間内のIPや内容のハッシュでも記録しておいて
同じのがあったら無視するとか。
しつこい書き込みはIPを2chみたいにバーボンにするとか。
873nobodyさん:2007/10/21(日) 23:52:14 ID:mLa5/CiA
動的ページのsitemapや更新のあったページをのせるrssを自動で発行するものを作りたいのですが、
どんな流れで作ればいいんでしょ。
874nobodyさん:2007/10/21(日) 23:55:29 ID:???
更新内容→DB登録

RSS出力
875nobodyさん:2007/10/22(月) 00:02:30 ID:???
>>873
またおまえか
876nobodyさん:2007/10/22(月) 00:07:13 ID:???
>>870>>873も表現がおかしい
それはもう暗黙に作ってくださいとお願いしているようなもの
877nobodyさん:2007/10/22(月) 00:11:31 ID:???
そうか・・?
878nobodyさん:2007/10/22(月) 00:17:27 ID:???
>>876
そういう直接的な注意は不粋というものだ
どんな質問にも答えることはできる
質問者が気づくかどうかは知らんけど

879nobodyさん:2007/10/22(月) 00:19:42 ID:???
>>876
870は問題ないような?
873は全然ダメだと思うけど。
880nobodyさん:2007/10/22(月) 01:31:08 ID:???
プログラミング系スレで一番低レベルなスレ
881nobodyさん:2007/10/22(月) 01:34:58 ID:???
2chでレベルとか言っちゃう奴って恥ずかしくないのかなぁ
882nobodyさん:2007/10/22(月) 01:41:18 ID:b3zF2Ui7
またかといわれても初めて質問するのにどうすればいいんだろう。
883nobodyさん:2007/10/22(月) 01:46:50 ID:???
>>880
タイトルがスレの有様を物語ってるからいいんだよ
884nobodyさん:2007/10/22(月) 01:55:22 ID:???
>>882
以前に別の人間が質問して叩かれた内容と類似してるんじゃねえの
それだけ質問の内容が快く思われていないんだと思う
885nobodyさん:2007/10/22(月) 02:08:22 ID:???
まあ2chに期待するなってことだ。いる人間のレベルや性格も様々。無償だしな
886nobodyさん:2007/10/22(月) 02:35:00 ID:byAZxbU8
答えられないときの逃げ口上か
887nobodyさん:2007/10/22(月) 02:58:01 ID:???
>>870
うる覚えなので間違ってるかも知れんが、DBを使って回避みたいなのを本で読んだ記憶がある。
time関数の範囲より広いんだと。
たしかpostgresのシーラカンス本
888nobodyさん:2007/10/22(月) 04:48:06 ID:b3zF2Ui7
まーここで聞くよりぐぐったほうが正確だからな。
スレが落ちないようにたまに質問してやるだけって感じだし。
どうせ回答者もぐぐって答えさがしてんだし。
889nobodyさん:2007/10/22(月) 04:55:36 ID:???
http://php.benscom.com/manual/ja/ref.calendar.php
これ組み込んだらいいんじゃね
PHPで出来たブログシステム結構あるけどどうやってんだろうな
890nobodyさん:2007/10/22(月) 04:55:37 ID:???
どうしてこのスレの住人は高慢になってるんでしょ。
皆もっと寛大な心を持たないかい。
891nobodyさん:2007/10/22(月) 05:01:20 ID:???
>>890
どの辺が?
892nobodyさん:2007/10/22(月) 05:25:37 ID:???
初心者に初心者が教えあうスレなんだからほうっといてくれよ
893nobodyさん:2007/10/22(月) 06:59:37 ID:???
例えるなら宿題丸投げの様な、いかにも「叩いて下さい」と言わんばかりの
質問を投げる奴を寛大な心で迎え入れるコミュニティは存在しない
それに気づかない奴がバカなんだよ
894nobodyさん:2007/10/22(月) 07:59:33 ID:???
>>892
バカいうな、このスレは全部俺様の自作自演なんだ
895nobodyさん:2007/10/22(月) 08:15:57 ID:???
>>870
PEAR::Date
896nobodyさん:2007/10/22(月) 09:13:30 ID:???
>>888
>>882との態度の違いにフイタw
お前は立派な2ちゃんねる脳
897nobodyさん
下らなくない質問スレはどこですか?