5ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

■ このスレッドは過去ログ倉庫に格納されています

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

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

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

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

◆質問後の注意
・偽者防止に必ずIDを表示(メール欄に何も記述しない)、若しくはトリップをつける事。
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

2 :nobodyさん:2008/02/24(日) 21:03:50 ID:???
【簡易FAQ】 (1/3)
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)、起動&再起動あたり

3 :nobodyさん:2008/02/24(日) 21:04:03 ID:???
【簡易FAQ】 (2/3)
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.を参照

4 :nobodyさん:2008/02/24(日) 21:04:16 ID:???
【簡易FAQ】 (3/3)
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください

5 :nobodyさん:2008/02/24(日) 21:04:30 ID:???
関連リンク
■本家マニュアル   http://www.php.net/manual/ja/
■日本PHPユーザ会 http://www.php.gr.jp/
■PEARマニュアル  http://pear.php.net/manual/ja/
■メーリングリスト   http://ns1.php.gr.jp/mailman/listinfo/
■ZFマニュアル    http://framework.zend.com/manual/ja/

(以下英語)
■Smarty       http://smarty.php.net/
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/

6 :nobodyさん:2008/02/24(日) 21:05:01 ID:???
■過去ログ
【PHP】下らねぇ質問はここに書き込みやがれ 64
http://pc11.2ch.net/test/read.cgi/php/1202536271/
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1201425479/
【PHP】下らねぇ質問はここに書き込みやがれ 62
http://pc11.2ch.net/test/read.cgi/php/1199956159/
【PHP】下らねぇ質問はここに書き込みやがれ 61
http://pc11.2ch.net/test/read.cgi/php/1198002831/
【PHP】下らねぇ質問はここに書き込みやがれ 60
http://pc11.2ch.net/test/read.cgi/php/1196511516/
【PHP】下らねぇ質問はここに書き込みやがれ 59
http://pc11.2ch.net/test/read.cgi/php/1195204145/
【PHP】下らねぇ質問はここに書き込みやがれ 58
http://pc11.2ch.net/test/read.cgi/php/1194084457/
【PHP】下らねぇ質問はここに書き込みやがれ 57
http://pc11.2ch.net/test/read.cgi/php/1193062236/
【PHP】下らねぇ質問はここに書き込みやがれ 56
http://pc11.2ch.net/test/read.cgi/php/1192092941/
【PHP】下らねぇ質問はここに書き込みやがれ 55
http://pc11.2ch.net/test/read.cgi/php/1191058556/
【PHP】下らねぇ質問はここに書き込みやがれ 54
http://pc11.2ch.net/test/read.cgi/php/1189309377/
【PHP】下らねぇ質問はここに書き込みやがれ 53
http://pc11.2ch.net/test/read.cgi/php/1188047468/

7 :nobodyさん:2008/02/24(日) 21:23:37 ID:???
>>1 死ね。何回テンプレ間違えたら気が済むんだ?

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

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

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

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

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで

8 :nobodyさん:2008/02/24(日) 23:43:55 ID:u17cTLyd
質問です

redhat 8
apache 2.0.40
PHP Version 4.2.2

下記のようにメインルーチンでfopenをして、そのファイルハンドラを
関数に引き継いだ場合、関数側でそのファイルハンドラに対して、書き込みができないのですが、
これは仕様でしょうか?


//メインルーチン
<?
if (!($fno = fopen("dbg.txt", 'w'))) {
die;}
//関数コール
Au($fno);
//関数
function Au($fno){
fputs($fno, hoge);
}

fclose($fno);

?>





9 :nobodyさん:2008/02/24(日) 23:50:24 ID:???
>>8
普通に動くが・・・


10 :8:2008/02/25(月) 00:18:18 ID:67ayJX2Z
>>9

逆にパラメータの引き継ぎをしなければ、ファイルアクセスできないのですか?

11 :nobodyさん:2008/02/25(月) 00:23:45 ID:???
パラメータ渡さないと何に書き込むか解らんだろ
直近のファイルポインタに対して書き込みたいとかってーなら
クラス化とかして俺俺クラス作れば良い

12 :8:2008/02/25(月) 00:30:18 ID:67ayJX2Z
>>11
了解しました
サンクス子

13 :nobodyさん:2008/02/25(月) 00:44:33 ID:???
ひとまず前スレ埋めような
http://pc11.2ch.net/test/read.cgi/php/1202536271/

14 :nobodyさん:2008/02/25(月) 00:45:30 ID:???
  シュッ
      シュッ
 シュッ   ハ,,ハ  シュッ
 ハ,,ハ彡( ゚ω゚ ),ハ
( ゚ω゚ )彡ミ( ゚ω゚ ) お断りします
_(__つ/ ̄ ̄ ̄/_
  \/      /

15 :nobodyさん:2008/02/25(月) 12:05:43 ID:???
                    ___
               , 二¨-―-- 、`丶、
               /_ ..-――-.. 、十ヽ\
            //::.::,:.:.:./::/::.::.l::.::`ヽ、\ヽ
               〃::/:::/:.:.:/::/::.:/::|::.:、:.::.::ヽ ハ `、
           l::.:::l:: ,':l:::/::/::.:/::;小:::l::ト、::.:V l ヽ
            {::.:::|:::l::|::l::/::.:/::/:/:_j⊥l::ヽ:!}  \
.           ハ::.::l:::|┼く:/::/ /'´ノ ヽ:∨::.:l |  /
           〈 l::.:|:::l::|∠、ノ   , =≡V::.::/|/
           ヽヘ::ヽ::V⌒゙  ,   "゙ / :::,'  l〔    下らねぇ質問は
           /rヘ::\ ゛゛ rーヘ  彡: /  /:::Y⌒i  ここに書き込みやがれ
            l冫/ }`ヽミヽ、ヽ、ノ, イ:`7十/::.::.:l |  ですぅ
           // /:::_rヘ_`二√ __〉/  レヘ::}  |
             //  ,'/夕r==、∨---/、/ f==ミフ  厂ト、
.        //  〃r7,イ|   >トマ ̄〉 7ヽ厶ィ {ヽ 」__/ / 〉
     , -‐'7/ /:.rク/ {ニ=彳/ ハ ∨,  / ̄:{八_‐-┴勹
   /   /  /: :/7/  /,イ/ / /、/_ /: : : :|:厶 `^´ 人
   ヽ冫< /   {: : :Y〈__ //〃 ,' / 7ヽ ,仆、: : :|| : :`¨¨´: :冫、

16 :nobodyさん:2008/02/25(月) 14:32:22 ID:???
>>13
半年ROMってろ

17 :nobodyさん:2008/02/25(月) 19:54:35 ID:VX5+CaAR
簡単なグラフを出力したいのですが、GDやMing(Flash)ライブラリがインストールされていません。
他にグラフを出力する良い方法はありませんか?
CSSとかHTMLのimg要素を使って、HTMLのソースを動的に出力する方法しか思い浮かびません。
他にもっと何か方法があれば教えてください。

18 :nobodyさん:2008/02/25(月) 20:00:32 ID:???
>>17
棒グラフなら<hr>で代用可能

19 :nobodyさん:2008/02/25(月) 20:01:45 ID:igqyKmSz
質問です。
header()関数の前でechoとかで文字列を出力しています。
仕様上header()関数の前でechoで出力しているもの(テンプレートのヘッダー)は出力しないようにするのは無理なんですが、
header()関数が呼び出されたらheader情報をクリアしてからheader()関数を実行するようにはできないでしょうか?


20 :nobodyさん:2008/02/25(月) 20:06:03 ID:???
>>19
> 仕様上header()関数の前でechoで出力している
仕様を見直した方が良いと思うよ。

21 :nobodyさん:2008/02/25(月) 20:09:46 ID:igqyKmSz
>>20
テンプレート側で、ヘッダーとフッターを標準で出力するようにしています。
ボディーが動的に変わるようにしており、問題が起こっているところがボディーで呼び出しているheader関数のところなんです。
仕様を見直したほうが、ということは、作り直しということですか?


22 :nobodyさん:2008/02/25(月) 20:13:05 ID:???
phpの何たらっつー設定で回避できたはず。

ところでそういう「ヘッダー+コンテンツ+フッター」じゃなくて
「総枠組み+コンテンツ」とかいう方式なんて言ったっけ?そっちのほうがいいんじゃね。

23 :nobodyさん:2008/02/25(月) 20:16:13 ID:???
PHP: 出力制御 - Manual
http://jp.php.net/manual/ja/ref.outcontrol.php

仕様上出力しないようにするのが無理なら無理だけどな

24 :nobodyさん:2008/02/25(月) 20:23:18 ID:???
>>21
header()で何を出力してるの?

25 :nobodyさん:2008/02/25(月) 20:44:03 ID:igqyKmSz
>>23
ありがとうございます。
ちょっとサーバの設定を見直してみます。

>>24
header()関数で出力しているものはサーバ上のファイルです。

header ("Content-Disposition: attachment; filename=".$file);
header ("Content-type: application/octet-stream")
readfile ("file/".$file);
exit;

上記を実行する前にテンプレート側のヘッダーを呼び出してしまっているので、
ダウンロードするデータの中にはテンプレート(ヘッダー)+ダウンロードファイルとなってしまっている状態です。


26 :25:2008/02/25(月) 21:29:37 ID:???
とりあえず出力系のものは全て1つの関数にまとめ、bodyを呼び出すときに作成した関数を呼び出し引数を与え、テンプレートを出力することで回避できました。
回答して下さった方々、ありがとうございました。


27 :nobodyさん:2008/02/25(月) 21:33:03 ID:???
mbstring.script_encodingはスクリプトの文字コードだと思うんですが、
mbstring.strict_encodingというのは何なんですか?


28 :nobodyさん:2008/02/25(月) 21:34:01 ID:???
>>7

29 :nobodyさん:2008/02/26(火) 22:39:54 ID:AjWFGOA4
file_get_contentsなどで取りに行ったファイルが404だったり503だったりした場合
そのレスポンスコードを判別する方法はありますか?

30 :nobodyさん:2008/02/27(水) 03:39:18 ID:???
>>29
できないですね。
レスポンスを取得したいならHTTPリクエスト投げたほうが良いかと

31 :nobodyさん:2008/02/27(水) 06:04:23 ID:1t015U4G
・2つのサービス(A,B)で同じDB(同じユーザ情報)を参照
・ドメインは異なる

この場合、Aにログインした状態でBにアクセスすると自動的にログインが
行われるようにしたいのですが、どのようにしたらいいのでしょうか?
よろしくお願いします。

32 :nobodyさん:2008/02/27(水) 06:16:41 ID:???
>>31
dbでsession管理するとか
dbにログイン情報持たせるとか

33 :31:2008/02/27(水) 07:34:17 ID:???
>>32
ありがとうございます。
重ねてすみませんが、DBにセッションを格納する場合、
ドメインが違うとsession_idが異なってしまうみたいなのですが
どうしたらいいのでしょう、、、

34 :nobodyさん:2008/02/27(水) 08:01:59 ID:???
DBにセッションを格納するんならsession idが変わっても問題無いだろ。

35 :nobodyさん:2008/02/27(水) 08:16:25 ID:sItN3geE
質問します
あるディレクトリに特定の文字列で名前が始まるJPGがあるか確認したいんですが
どうしたらいいでしょう?

20080227_100で始まるファイル名を例にして教えてください
よろしくお願いします

36 :nobodyさん:2008/02/27(水) 08:26:02 ID:???
>>31
ログイン中かどうか程度の情報ならクッキーに入れとけば?

37 :nobodyさん:2008/02/27(水) 08:37:38 ID:???
>>35
glob('dirname/20080227_100*.jpg')
とか。

38 :nobodyさん:2008/02/27(水) 08:46:09 ID:???
>>36
異ドメインだと言っている

39 :35:2008/02/27(水) 08:56:42 ID:???
>>37
おおおっ こういうやり方かぁー
きっと正規表現の基礎なんですね ありがとう、勉強します

40 :nobodyさん:2008/02/27(水) 09:38:03 ID:???
正規表現以前だよ。Linuxも勉強したほうがよい

41 :29:2008/02/27(水) 11:31:12 ID:???
>>30
了解です。ありがとうございます。

42 :nobodyさん:2008/02/27(水) 12:06:56 ID:YQJ5tlSl
php://stdinで取得できる入力って、
スクリプトが実行されている間はいつでも取得できるのですか?

43 :nobodyさん:2008/02/27(水) 12:15:22 ID:???
終盤は取得できない

44 :nobodyさん:2008/02/27(水) 13:16:40 ID:???
function foo(&$obj) { $obj->data = 123; }

という関数に対して、

foo($obj); と foo(&$obj); で
呼び出すのでは結果が違うんですね。
意味がわかりません。

45 :nobodyさん:2008/02/27(水) 13:22:18 ID:???
>>44
同じに見えるけど、どう結果が違うの?
PHP5.2 WinXP

class Boo {}

$obj1 = new Boo();
foo($obj1);
print_r($obj1);

$obj2 = new Boo();
foo(&$obj2);
print_r($obj2);

function foo(&$obj) {
$obj->data = 123;
}


46 :nobodyさん:2008/02/27(水) 13:33:28 ID:???
>>44
>>7

47 :nobodyさん:2008/02/27(水) 13:41:47 ID:???
pho4と5ではそこらへん挙動が変わってる
でも呼び出す側でfoo(&$obj);ってする事は
無いと思うんだけど

48 :nobodyさん:2008/02/27(水) 14:34:18 ID:???
おかしいなぁ。確かに、$thisと&$thisで挙動が変わっているんだよ。
PHP4ね。フレームワークでいろいろ実行される一部分の処理だから
具体的にどこが問題なのかわからないや。

49 :nobodyさん:2008/02/27(水) 15:20:59 ID:???
CakePHPの問題だったよ。
PHP4でoverloadを使ったとき(多くのクラスで使われている)の問題。
バグなのか仕様なのかわからんけど。

class A extends overloadable {
function foo(&$obj) {
$obj->value=2;
}
}
class B {}

$a = new A();
$b = new B();
$b->value=1;
$a->foo($b);

print_r($b);

これを実行すると1が表示される。
$a->foo($b); を $a->foo(&$b) ; に変更すると
2が表示される


50 :nobodyさん:2008/02/27(水) 15:33:09 ID:???
CakePHP部分を取り除いて通常のPHPにしました。

これと似たような問題?バグであり回避は不可能なのかな?

php4で overload() して __call() を定義するとリファレンスで返せなくなる?
http://blog.livedoor.jp/a_day_in_the_radio/archives/50660248.html

class A {
function foo(&$obj) {
$obj->value=2;
}

function __call($method, $params, &$return) {
return true;
}
}
overload('A');
class B {}

$a = new A();
$b = new B();
$b->value=1;
$a->foo($b);
print_r($b);

51 :nobodyさん:2008/02/27(水) 15:37:55 ID:lCPSweHG
どうにも不可解な事が起こったのでお時間ある方試していただけないでしょうか?
(長文なので3つに分けます。コード部分は2つです。すいません)
コードをさらします。UTF-8で保存してください。

session_start();
if(!isset($_SESSION['test'])){
$_SESSION['test'] = array(
array("name"=>"ほげ","age"=>32,"date"=>"2008-02-27 13:03:24.999999"),
array("name"=>"ふが","age"=>23,"date"=>"2008-02-27 13:03:24.333333"),
array("name"=>"おおおええええ","age"=>23,"date"=>"2008-02-27 13:03:24.999999"),
array("name"=>"文字化け","age"=>25,"date"=>"2008-02-27 13:03:24.333333"),
array("name"=>"最新","age"=>26,"date"=>"2008-02-27 13:03:24.111111"),
array("name"=>"ぼえぼえ","age"=>32,"date"=>"2008-02-27 13:03:24.666666"),
array("name"=>"おろろろ","age"=>25,"date"=>"2008-02-27 13:03:24.111111"),
array("name"=>"おえ","age"=>26,"date"=>"2008-02-27 13:03:24.666666"),
);
}
$order = array("age"=>SORT_DESC,"date"=>SORT_ASC);
_2KeySort($_SESSION['test'], $order);
$temp = $_SESSION['test'];
foreach($temp as $key=>$value){
$value['name'] = mb_convert_encoding($value['name'], 'SJIS', 'UTF-8');
$temp[$key] = $value;
}
echo "<pre>";
print_r($temp);
echo "</pre>";
echo "<pre style='background-color:#EEEEEE;'>";
print_r($_SESSION);
echo "</pre>";
//続く>>

52 :51:2008/02/27(水) 15:38:37 ID:lCPSweHG
//51の続き
function _2KeySort(array &$array, array &$columns_order){
$array_sort = array();
$array_order = array();
$i=0;
foreach($columns_order as $column => &$order){

if(!array_key_exists($column,reset($array))){
require_once 'Sd/Exception.php';
throw new Sd_Exception("ソートに指定されたキー[{$column}]がありません。");
}

foreach ($array as $key => &$row)
$array_sort[$i][] = $row[$column];

$array_order[$i] = $order;
++$i;
}

array_multisort($array_sort[0], $array_order[0], $array_sort[1], $array_order[1], $array);
}

53 :51:2008/02/27(水) 15:39:26 ID:???
>>51の続き
@まず、セッションに配列を保存。
Aセッションの配列をソート
Bセッションを別の変数に代入し文字コードを変換。
C代入した変数とセッションを表示

という流れです。
なぜか、セッションのデータも文字コードが変わってしまいます。しかも、全部ではありません。うちの環境では「おえ
」だけがUTF-8のままです。なので、表示の度に、めちゃめちゃに文字化けしていきます。

ちなみに、ソートする関数をコメントアウトすると、セッションの文字コードは変わらなくなります。
$temp = $_SESSION['test']というのは参照ではなく値のコピーですよね?
ソートする関数で、参照渡しにしなくていいところもありそうですが、それ以前に、セッションの文字コードに影響が出るのはおかしくないでしょうか?

実際には、Zend_Frameworkと、出力部分にSmartyを使用した、そこそこ大きなアプリで起こったことなのですが、
いろいろ試して、やっとここまで問題を切り分けました。

ソートする関数の参照渡しをやめるか、セッションに保存する前にSJISに変換して、出力の度に変換するのをやめれば
この問題は解決できるのですが、根本的な解決というか、理解になっていないので、気になります。たすけてください。
PHP Version 5.1.6です。

長文すいません。

54 :nobodyさん:2008/02/27(水) 15:47:14 ID:???
なんで肝心なとこだけ書かないの?
わざわざ回答者が全部見ると思う?

55 :51:2008/02/27(水) 16:05:29 ID:???
今、またいろいろ試してたのですが

ソートする関数内で、
array_multisortの為に、ソート対象カラムの配列を作るところのforeachで
foreach ($array as $key => &$row)

foreach ($array as $key => $row)
と参照をやめると、文字化けしないようです。
ここはソート対象カラムの配列のために、代入してる場所なので参照にする必要はなかったです。

なんかarray_multisortまわりか、参照渡しのバグっぽくないですか?

>>54
すいません。
これでもかなり問題を切り分けて、まとめて、要点のみ書いたんです。
ソースをそのまま実行できるように書いたほうが、いいのかなあ、なんて・・

せめて、53を最初に書いたほうがよかったかな。

読むのうざいと思いますが、そこを何とかお願いします

56 :nobodyさん:2008/02/27(水) 16:06:20 ID:???
>>51
たぶんmb_convert_encoding出来て無いんだと思う。

mb_language('Japanese');
$value['name'] = mb_convert_encoding($value['name'], 'SJIS', 'auto');

こうするとどうなる?

57 :nobodyさん:2008/02/27(水) 16:09:21 ID:???
autoはダメだろjk
ってか、なんでまたID隠し始めたんだ?51は

>>55
> なんかarray_multisortまわりか、参照渡しのバグっぽくないですか?
自分のソースをまず疑え
とPHPのえらい人が言ってました

どこで文字化けが起きてるかprint_rなどで各場所で文字化けがおきていないかチェックしたら?

58 :nobodyさん:2008/02/27(水) 16:19:18 ID:???
>>57
ダメだけど、ひょっとしたら自動変換してたら、と思って。

59 :nobodyさん:2008/02/27(水) 16:48:18 ID:???
未だに jk とか使ってる奴いるんだな。
生きてて恥ずかしくないか?

60 :nobodyさん:2008/02/27(水) 17:05:32 ID:???
j 女子
k 高生



61 :nobodyさん:2008/02/27(水) 17:06:25 ID:???
「常識的に考えて」

62 :nobodyさん:2008/02/27(水) 17:27:05 ID:???
>>61
KYは知っていたけどね。
おぢさん、初めて知ったよ。
ありがとう。早速今度の会議で使ってみるよ。

63 :nobodyさん:2008/02/27(水) 17:31:36 ID:???
危険予知は現場労働の基本だからな。

64 :nobodyさん:2008/02/27(水) 17:33:00 ID:???
>>62
おじさんごめんね
これ2ch発なんだ

65 :nobodyさん:2008/02/27(水) 18:00:03 ID:???
>>64
これがKYの良い例

66 :nobodyさん:2008/02/27(水) 18:03:18 ID:n+zWmSsJ
WindowsXP
apache 2.2
PHP Version 5.25

ttp://www.standpower.com/php_environment2.html

↑ここを見て導入しました。

ファイル名 info.php

<?php
$hello="Hello World";
print ($hello);
?>

を作って
http://localhost/info.php
を見てみると、「このファイルをダウンロードしますか?」となってinfo.phpをダウンロード
するかどうかのウィンドウが出てきます。どこか間違っているのでしょうか。

67 :nobodyさん:2008/02/27(水) 18:06:22 ID:???
Apacheの設定がおかしいんだろうから、とりあえず Apacheのエラーログ見れ。

68 :nobodyさん:2008/02/27(水) 18:14:24 ID:???
なんと分かりやすい

69 :66:2008/02/27(水) 18:21:44 ID:???
>>67

httpd.confの書き換えが間違っていたようです。
ありがとうございました。

70 :51:2008/02/27(水) 18:29:48 ID:lCPSweHG
>>56
$value['name'] = 'hogehoge';
でも元のセッションが変わってしまします。(同じく一部を除いて)

>>57
文字コードを変換してるforeachのなかで、元のセッションかわちゃってます。
IDは隠したわけじゃなく、連続で上げたら怒られるかなとおもって、sageにしちゃいました。


ためしに5.2.5が入ってるサーバーで試したら元のセッションは一切変わらず、問題なく動きました。
サーバーの設定かもしれませんが、基本php.iniはデフォルトのままで、.htaccessで設定してるので
見比べた感じ原因と思われるような違いはありません・・・

71 :nobodyさん:2008/02/27(水) 18:38:00 ID:???
欧文ならマトモに動作するんだよね?
sessionファイルをtmpから引きずり出して覗いて見るのは、さすがにキツい?

72 :nobodyさん:2008/02/27(水) 20:26:06 ID:???
解説サイト見てもよくわからんのですが
ログファイルを使ったページ分割のロジックはどういうものなんでしょうか?
記事数を1ページ辺りの記事表示数で割って表示しますよね。
その後の前のページに戻るとかのロジックがまったくよくわかりません。
スーパーグローバル関数のGETとか使うんですよね?

73 :nobodyさん:2008/02/27(水) 20:30:05 ID:???
>>7

74 :nobodyさん:2008/02/27(水) 20:40:28 ID:???
>>72
どこの解説サイト見てんの?

75 :nobodyさん:2008/02/27(水) 21:25:22 ID:???
http://www.phppro.jp/school/phpschool/vol24/1
ここなんですがユーザー関数とかに構造が分離されてて
自分の作りたいモノに流用すると複雑怪奇になりすぎて・・・

76 :nobodyさん:2008/02/27(水) 22:10:24 ID:???
前のページに戻る機能は現在のページから1引いた数をアンカーに付ければいいだけだと思うが。
そういう話じゃない?
全74件あって10件ずつ表示するなら、ページ5でリクエストが来たら41〜50件目の内容を、ページ4では31〜40件目の内容を取得すればいい。
ページごとに独立して考えればそんなに難しくないと思うけども。

77 :nobodyさん:2008/02/27(水) 22:17:53 ID:???
そのページ5で指示が来た時に該当件数を表示する
書き方がよく・・・・・・・
すべての投稿数数えて一ページあたりの表示数で割って
それから具体的にどうするんでしたっけ?
単に基礎知識足りなさ過ぎるだけなのか
頭が猛烈に足りないのか・・・・・・
htmlなら直感的にイメージ出切るぐらいまでそこそこわかるんですが
こういう二重、三重のロジックだとどうしても思考停止状態に陥ってしまうんですよね・・

78 :nobodyさん:2008/02/27(水) 22:27:56 ID:???
例えば総ページ数を番号で出すには
全体の投稿数を1ページ辺りの投稿数で割り余り分のためにページをプラス1して
表示するんですよね?
今度は表示したリンクをクリックした後に該当の投稿行をピックアップするように
またプログラムを用意すると・・・・あああ、ややこしい。

79 :nobodyさん:2008/02/27(水) 22:35:21 ID:???
君は向いてないね

80 :nobodyさん:2008/02/27(水) 22:36:30 ID:???
だと思います・・・・・
直感的なデザイン畑の人間ですし・・・・・

81 :nobodyさん:2008/02/27(水) 22:38:42 ID:???
はなむけに現在のページ数の受け取り方だけ教えてもらえませんか。

82 :nobodyさん:2008/02/27(水) 22:41:10 ID:???
>>7

83 :nobodyさん:2008/02/27(水) 22:41:49 ID:???
<?php

$page = $_GET['page'] ? $_GET['page'] : 1;

$all = countArticles();
$one = 10;

$start = ($page - 1) * $one + 1;
$end = $page * $one;

$articles = getArticles($start, $end);

こんな感じ?検証してないけど

84 :nobodyさん:2008/02/27(水) 22:51:20 ID:???
$allPages = cell(($all / $one));

echo "<p>総記事数は $all 件です</p>";
echo "<p>全部で $allPages ページあります</p>";
echo "<p>現在 $start 件目〜 $end 件目を表示しています</p>";
for($i=1; $i<$all; $i+=10){
if ($i == $page) {
echo '<a href="?page='.$i.'">['.$i.'] </a>';
} else {
echo '['.$i.'] ';
}
}

ついでにこんな感じ

85 :nobodyさん:2008/02/27(水) 22:56:10 ID:rbJ5iPpD
DBに保存してある画像のバイナリデータ(形式はjpeg,gif,png)をリサイズしたい場合はどうすればよいのでしょうか。
php4.3のGD入ってます

一旦ファイルに保存してimagecreatefromjpegとかするしかないのでしょうか。
そんな馬鹿な。

86 :nobodyさん:2008/02/27(水) 22:56:22 ID:???
間違えた。最後のfor文は素直に
for($i=1; $i <= $allPages; $i++){
でokだ。
全ページ数を使わないで出力するなら$iのインクリメント用と記事数比較用の2変数使えばできる。まぁ蛇足だが。

87 :nobodyさん:2008/02/27(水) 22:57:21 ID:???
>>85
お怒りはごもっともですが
現在、この世界のいたるところで
あなたの言う『ばかなこと』が起きています

88 :nobodyさん:2008/02/27(水) 22:59:30 ID:rbJ5iPpD
めっけた。
imagecreatefromstring

これでいい気がしてきた。

89 :nobodyさん:2008/02/27(水) 23:17:29 ID:???
課題だとか勉強用だとかじゃなければ素直にそのへんのpager使えばいいのに

90 :nobodyさん:2008/02/28(木) 00:03:25 ID:???
WebARENA SuiteX
PHP5
で、次のアップロードスクリプトを設置しています。
http://hellogirls.myphotos.cc/hellogirls/manual/index.html

Suite2 PHP4の時は問題なく動作していたのですが、SuiteXにしたらアップロードファイルにつけるコメントに日本語が含まれていると文字化けするようになりました。
色々、調べてみましたがちんぷんかんぷんで解決策がわかりません。
この辺りのソースをいじれば良さそうな気がするのですが…

どなたかアドバイスやヒントでもいいのでいただけないでしょうか。
PHPやCGIの設置はできるけど、プログラムの具体的なことは何も理解できてません。
こんな私ですがどうかよろしくお願いします。

コメント
<input type="text" size="45" name="com" value="'.($c_comu ? $input_comment : '').'">

//ファイルリスト表示
if($c_com) echo '<td class="column_comment">'.$com.'</td>';

//項目読み取り
list($id,$ext,$com,$host,$now,$size,$mtype,,$orig,,$img_width,$img_height) = explode("\t",$logline);

91 :nobodyさん:2008/02/28(木) 00:13:47 ID:???
>>90
めんどくさいから見てないけど少なくとも出されてるソースは関係ない。
スクリプト改造依頼スレがあるからそっちいくよろし。

http://pc11.2ch.net/test/read.cgi/php/1157787046/
http://pc11.2ch.net/test/read.cgi/php/1143834740/
この辺かな

92 :nobodyさん:2008/02/28(木) 00:22:13 ID:???
PHP4からPHP5の仕様変更が文字化けの原因みたいで、それでこちらのスレに誘導されてきたのですが。
改造スレに行ったら、それは改造ではなくPHPの仕様の問題だからPHPスレで聞けと言われそうです。

93 :nobodyさん:2008/02/28(木) 00:46:33 ID:???
>>90
PHP4.4.x(PHP5では動作確認していません)
と書いてあるので諦めろ……

ソースみたけど、PHP4に依存してる場所はなさそうだったけどね。
form_upload_file.phpをいじってるのなら、文字コードがSJISになっていないか確認。
きちんとEUC-JPになっているか?

ログファイルをエディタで開いて見て、EUC-JPで文字化けしないかどうか。

そのあたり確認して報告しろ。 寝るのでまた明日。

94 :nobodyさん:2008/02/28(木) 06:33:06 ID:???
ありがとうございます。

form_upload_file.phpはEUC-JPになっていました。
ログファイルを確認したところ、日本語で文字化けしているコメント部分もログファイルではまだ文字化けしていませんでした。

ログファイルを読み出して表示するまでの過程で文字化けがおこっているようです。

95 :nobodyさん:2008/02/28(木) 09:55:35 ID:OSai0GdG
PEAR::DBを使ってデータをINSERTする作業をしているのですが、
debug_backtrace();の部分で、エラーが出ます。
数万〜数十万ほどINSERTを繰り返すループなのですが・・・

96 :nobodyさん:2008/02/28(木) 11:14:01 ID:hOKfamSR
質問です。
CentOS5のディストリビューションを使って環境構築したのですが、画像やファイル情報をphpを使用して、PostgreSQLにbyteaでコミットをする時にmemory_limitが不足する現象が起きています。

<確認している現象>
・2MBの画像のコミット時にはmemory_limitに53MB以上が必要
・4MBの場合は、128MB以上
・8MBの場合は、400MB以上
といった具合です。

<環境>

OS :CentOS5
WEB:Apache/2.2.3 (CentOS)
PHP:PHP Version 5.1.6
DB :PostgreSQL8.1.9

windowsやRedhatで同じphpなどで構成し、モジュールを実行した際には8MBのファイルでもデフォルトのmemory_limitの設定である16MBで問題なくコミットできました。
他の環境でも検証していきますが、この原因って何が考えられますでしょうか。

97 :nobodyさん:2008/02/28(木) 11:50:28 ID:???
質問です。

$word = $_GET[WORD];
$word = mb_convert_encoding($word,"SJIS","UTF-8");

PHP5(WebARENA SuiteX)なのですが、大部分はこれでデータの受け渡しは問題あり
ません。

しかし、"90's"を受け渡す際に"90\'s"になってしまいます。stripslashesを使え
ば解決できることはできるのですが、今度はこれを使うと"ソニー"を受け渡す際
に文字化けしてしまいます。

"90's"も"ソニー"も問題なく受け渡す方法を教えていただけないでしょうか。

98 :nobodyさん:2008/02/28(木) 11:53:14 ID:???
>>97
>>7

99 :97:2008/02/28(木) 11:59:15 ID:AxRhgNfU
>>98
申し訳ない。「自分のIDを表示させること。」というのを見逃してました。

100 :nobodyさん:2008/02/28(木) 12:00:27 ID:???
>>99
php.iniの設定でクオートが自動でされる設定になってるんじゃまいか?
auto_magic_quoteだっけ?

101 :nobodyさん:2008/02/28(木) 12:02:50 ID:z722MoHc
ttp://niwango.jp/pc/niwanews/search.php?id=17695 にある

現在の評価は
Good![2] Bad![0]

的なPHPってどんな仕組みなんだろ・・・

102 :nobodyさん:2008/02/28(木) 12:12:19 ID:AxRhgNfU
SuiteXは共有サーバーなのでphp.iniをいじれないんですよ…。
何かプログラム的に逃げる手があればいいのですが…。


103 :nobodyさん:2008/02/28(木) 12:13:59 ID:???
PHP内で一時的にPHP.iniの設定を変更できるini_set()関数がある

104 :nobodyさん:2008/02/28(木) 12:49:43 ID:???
>>100
magic quotes gpc じゃないか?

>>103
>magic_quotes_gpcは 実行時にセットしても反映されないことに 留意してください。
って書いてあるけど、できるの?
http://www.php.net/manual/ja/function.get-magic-quotes-gpc.php

stripslashes してから UTF-8に変換しても化けるのかな?よくわからん。

105 :nobodyさん:2008/02/28(木) 12:53:22 ID:???
たぶん受け取る前に書けばできるはず
不安だったらhtaccessで設定すればいいし・・・

106 :nobodyさん:2008/02/28(木) 12:57:37 ID:???
>>105
受け取る前っていつ?
PHPのモジュールが呼び出された時点では $_GET / $_POST に値が設定されてるんじゃないの?

107 :nobodyさん:2008/02/28(木) 13:15:22 ID:???
試したけど、やっぱムリじゃね。(PHP5.2 WinXP)

ini_set('magic_quotes_gpc', 'Off');
print_r($_GET);

マニュアル見ると

magic_quotes_gpc
 PHP_INI_PERDIR
 PHP <= 4.2.3 では PHP_INI_ALL。PHP 6.0.0 で削除。
http://jp2.php.net/manual/ja/ini.php#ini.list

ってなってるけど、PHP4はPHP_INI_ALLだから出来たという事なのかな。
値の参照時にでも処理してたんだろうか。これもよくわからん。


108 :nobodyさん:2008/02/28(木) 13:16:55 ID:AxRhgNfU
皆さんお昼休みなのにありがとう。SuiteXは個人で使っているので、家に帰ってから色々と試してみます。

>>103
その発想なかったです。試してみますね。

>>104
順番を変えるのもちょっとやってみますね。

>>105 >>106
受け渡し前はごく普通のHTMLです。
<form action="XXXX.php" method="get" name="form1">
<input type="text" name="WORD">
モジュールが呼び足された時点で値が設定されてしまいますね。

109 :nobodyさん:2008/02/28(木) 13:22:10 ID:AxRhgNfU
>>107
PHP4(WebARENA Suite2)の時にはこれだけで動いてました。

$word = $_GET[WORD];
$word = stripslashes($word);

文字化けもなく不要な"\"も出てきませんでした。PHP4では逆にmb_convert_encoding
でエンコード変換すると文字化けしてしまってました。

110 :nobodyさん:2008/02/28(木) 15:48:07 ID:SiLzRmwx
mb_send_mailをして受け取ったメールを見ると、行間が1行ぐらい空きます。
サーバはEUCなので、
mb_language("Japanese");
mb_internal_encoding("EUC-JP");

という指定を入れています。どうしてこうなるのでしょうか?

111 :nobodyさん:2008/02/28(木) 15:49:46 ID:???
改行コードが入ってるからじゃね?

112 :110:2008/02/28(木) 16:01:23 ID:SiLzRmwx
>>111
改行コードを取り除くのに、↓を入れたのですが、特に変わりません。。

$body = str_replace("\r", "\n", str_replace("\r\n", "\n", $body));

113 :nobodyさん:2008/02/28(木) 16:07:18 ID:???
>>112
取り除いてねーじゃん
置き換えてるだけじゃねーか

str_replace(array("\r\n", "\r", "\n"), "[改行]", $body);
みたいにして、BODYの中での改行なのか他で改行入ってるのか調べてみれ

114 :nobodyさん:2008/02/28(木) 18:38:26 ID:???
>>101
vote.php?id=17685&value=1

115 :nobodyさん:2008/02/28(木) 18:41:37 ID:???
このスレ来ると和むな〜

116 :nobodyさん:2008/02/28(木) 19:31:54 ID:???
すみません。助けてください。
HTMLとPHPとがまじったファイルがあるんですけど、シンタックスエラーがでます。
どうやら '}' をひとつ抜かしてしまったみたいなんですが、どこで抜かしてしまったかがエラーメッセージからは分かりません。
ファイルはHTMLとPHPとが混ざった500行を超えるファイルです。
正直、どうやって探せばいいのかわかりません。
こんなとき、みなさんどうしてますか。

117 :nobodyさん:2008/02/28(木) 19:34:58 ID:???
対応する括弧が強調表示されるエディタを使ってチェック

118 :nobodyさん:2008/02/28(木) 19:36:01 ID:???
エディタ(自分の場合はEmacs)使ってインデントつける。

119 :108:2008/02/28(木) 19:53:20 ID:s0/KCSkK
>>104
108ですが家に帰ってきました。
そして、順番を変えてmb_convert_encodingの前にstripslashes置いたら
ちゃんと動作するようになりました!

$word = $_GET[WORD];
$word = stripslashes($word);
$word = mb_convert_encoding($word,"SJIS","UTF-8");

104さん本当にありがとうございました。
あと他にコメントいただいた皆さんもありがとうございました。

120 :nobodyさん:2008/02/28(木) 20:22:44 ID:???
>>116
ファイルから PHP だけを抜き出して調べるというのはどう?
ttp://d.hatena.ne.jp/kwatch/20080225/
HTMLとPHPが入り交じっているから見つけるのが難しいのであって、HTMLを消してPHPだけにできれば、けっこう簡単に見つかるかもよ。


121 :nobodyさん:2008/02/28(木) 21:00:56 ID:UIzvtCsy
PHPのクラスについて理解が深くないのですが、
PHP5.1.6で以下のコードを書いたときの疑問です。
class Stack {
  public function getInstance() {
    return new Stack();
  }
}

$stack = Stack::getInstance();
の様に、static宣言されずに::を使ってメソッドにアクセスできるのはなぜですか?

122 :nobodyさん:2008/02/28(木) 21:02:53 ID:???
>>121
PHPがアバウトだから

123 :nobodyさん:2008/02/28(木) 21:03:18 ID:???
>>121
PHP4との互換性のため。
ただしstaticつけると Stack::getInstance() はOKでも $stack->getInstance() はエラー。


124 :nobodyさん:2008/02/28(木) 21:06:14 ID:UIzvtCsy
>>122
それは日ごろ確かに感じます。こだわりがないって。

>>123
staticをつけなくてもstaticに呼び出されているんですか?

125 :nobodyさん:2008/02/28(木) 21:23:56 ID:???
試してみりゃすぐ分かるがな

126 :nobodyさん:2008/02/28(木) 21:42:59 ID:???
掲示板のフォームから内容受け取って
150個のログ以上は消すと言うロジックはみなさんどうしてます?
file()で全ログ格納してからarray_unshiftで新しい内容を挿入、
その後forを使って何かするんでしょうけどそこが具体的によくわかりません。

>>84
ありがとうございます、
おかげさまでできました。
本当に感謝です。

127 :nobodyさん:2008/02/28(木) 21:52:28 ID:???
>>124
>staticをつけなくてもstaticに呼び出されているんですか?

yes

PHPでは static に呼び出すのも、static じゃない呼び出しも、どっちも同じ。
たんに、static な呼び出しだと $this にアクセスできないというだけ。

128 :nobodyさん:2008/02/28(木) 22:11:56 ID:???
staticで呼び出す方が遅い訳だが

129 :nobodyさん:2008/02/28(木) 23:06:49 ID:CZGTxiZs
あらやだ、ホントだ
PHP 5.2.3

class foo
{
  var $buf = null;
  function foo() { $this->buf = 100; }
  function static_func() { return 100; }
  function member_func() { return $this->buf; }
}

-- call foo::static_func 10000 * 1000
min: 0.0476429462433
max: 0.0605020523071
ave: 48.9423131943
-- call foo->member_func 10000 * 1000
min: 0.0209789276123
max: 0.0423769950867
ave: 21.8284888268

なんで?

130 :nobodyさん:2008/02/28(木) 23:42:39 ID:psOQg9xE
PDOでfetch()を使うとfetchAll()を使うように怒られるのがむかつく。
仕様なんですか?

131 :nobodyさん:2008/02/29(金) 00:07:06 ID:???
過去のいきさつはよくわからないのだけど
magic_quote_gpcとかregister_globalsとか
過去の遺産も簡易FAQに入れたがいいのかなぁとか思った。

個人的には今更そういう設定のサーバがあること自体が不思議なんだけど
99を見る限りまだ生きてるっぽいし
逆に、そういう動作があるっていうのを知らない人が増えてきた今だからこそ
問題だとか思うんだ。

というわけで解説よろしく


132 :nobodyさん:2008/02/29(金) 00:15:13 ID:???
解説じゃないけど。

>個人的には今更そういう設定のサーバがあること自体が不思議なんだけど

PHP5 では magic_quote_gpc はデフォルトで On だからなぁ。

133 :nobodyさん:2008/02/29(金) 00:20:59 ID:???
PHPの設定で
magic_quote_gpcというものがあって、
これがONであるとPOSTとかGETの中身は渡された先で勝手にクオートされます。

面倒なのは、同じスクリプトでもサーバーのPHPの設定によって
挙動が異なってしまうことです。

これを防ぐためには、
自サバならばPHP.iniのmagic_quote_gpcをoffにしてください。
そうでないならば、
$_POST,$_GET配列をまず最初に処理する関数を作り、その中に

if(get_magic_quote_gpc()){
として、各要素をstrip処理すれば良いと思います。
ini_set()はなにやらオススメできないようです。


134 :nobodyさん:2008/02/29(金) 00:26:04 ID:???
最後の2行が随分曖昧だな

135 :nobodyさん:2008/02/29(金) 00:30:05 ID:???
>>134 めんどくなった。
ついでに俺130なんで誰か答えてくれ。

136 :nobodyさん:2008/02/29(金) 00:39:04 ID:???
怒られるって誰に?上司に?

137 :nobodyさん:2008/02/29(金) 00:44:55 ID:???
PDOに怒られます。
Uncaught exception 'PDOException' with message
'SQLSTATE[HY000]:
General error: 2014
Cannot execute queries while other unbuffered queries are active.
Consider using PDOStatement::fetchAll().
Alternatively, if your code is only ever going to run against mysql,
you may enable query buffering by setting the PDO::MYSQL_ATTR_USE_BUFFERED_QUERY attribute.'

と言われます。

138 :nobodyさん:2008/02/29(金) 00:46:34 ID:???
コードがおかしいんだべ。

139 :nobodyさん:2008/02/29(金) 00:47:38 ID:???
いくつも仕事を同時にさせるな、ボケって言われてるだけじゃないの?

140 :nobodyさん:2008/02/29(金) 00:50:06 ID:lB4w3WIe
誰もなったことないの?
誰もPDO使ったことないってことか?
そこをfetchAll()にすると直るんだけど、
fetchAllって名前から想像つくと思うけど全行読むから
メモリもったいないかと思って。


141 :132:2008/02/29(金) 01:06:54 ID:???
>>133
偉いっ!!すばらしいっ!!結婚して!!!当方マンションもち。

もっと単純に

自分でPHP.ini触れるんならmagic_quote_gpcはoff
触れないんだったら全てのスクリプトで(なんだっけ)せれ
質問はその後だ

みたいに強制的でもいいのかでもとか思った。


142 :nobodyさん:2008/02/29(金) 01:42:07 ID:???
「誰もなったことない」 ⇒ 「誰もPDO使ったことない」
素晴らしい推論能力をお持ちのようで。

まぁそんなことはさておき、コード出してみたら?恐らく普通とは違う書き方してるんだろうし。

143 :nobodyさん:2008/02/29(金) 02:06:51 ID:lB4w3WIe
$rs=$db->query("SELECT UNKONAME FROM UNKOTABLE WHERE UNKO_ID=1");
$unko=$rs->fetch();
echo $unko["UNKONAME"];

$rs2=$db->query("SELECT UNKONAME FROM UNKOTABLE WHERE UNKO_ID=2");
$unko2=$rs2->fetch();
echo $unko2["UNKONAME"];

みたいな感じにSQLを2回やるとなんか怒られます。
fetchAllにして、1個しかない結果セットを$unko[0]["UNKONAME"]
とかやって取り出せるんだけどね。

144 :nobodyさん:2008/02/29(金) 02:07:51 ID:lB4w3WIe
分かると思うけど$dbはPDOのインスタンスです

145 :nobodyさん:2008/02/29(金) 02:23:09 ID:???
PDOはよく知らんが、このあたりの話じゃないの?
http://jp2.php.net/manual/ja/function.PDOStatement-closeCursor.php


146 :nobodyさん:2008/02/29(金) 02:38:03 ID:???
http://jp2.php.net/manual/ja/function.PDO-query.php
PDO->query() を次にコールする前に 結果セット内の全てのデータを取得しない場合、そのコールは失敗します。
PDOStatement->closeCursor() をコールし、 次に PDO->query() をコールする前に PDOStatement オブジェクトに
関連付けられたリソースを解放してください。

147 :nobodyさん:2008/02/29(金) 02:43:19 ID:lB4w3WIe
>>145>>146
ありがとうございました。

148 :nobodyさん:2008/02/29(金) 09:47:17 ID:???
static
○ Object::obj();
× $obj->obj();
○ $this->obj();

public
○ Object::obj();
○ $obj->obj();
○ $this->obj();

protected
× Object::obj();
○ $obj->obj();
○ $this->obj();

private
× Object::obj();
× $obj->obj();
○ $this->obj();

これでおk?

149 :nobodyさん:2008/02/29(金) 10:50:21 ID:???
>>148 だめー
大体にしてメソッド名をobjにするなややこしい。
コンストラクタかと思うじゃねーか。
そもそもそういう理解の仕方じゃまずいぞ。

privateなメソッドというのは「class hoge{}の外からのアクセスは完全にNG」て意味。
中からなら$this->やObject::obj()でアクセス可能って意味だ。外から$thisなんてことはできないので$obj->objかObject::objを使うことになるけど、
それらのアクセスはprivateじゃ無理よってこと。

protectedは継承したクラスもアクセス可能という意味。だから、class fuga extends hoge{}はhogeのprotectedなメソッドを
$thisとかObject::objで扱うことができるってこった。だが当然インスタンス生成してのアクセスである$obj->objは不可能だし、
外部からのObject::objも不可能。

publicは外からのアクセスもできる。$thisだろうとObject::objだろうとOKだ。

staticは上記3つとは別な概念。上記3つは同時に存在できないが、こちらはpublic staticのように併存OKだ。
staticなメソッドは、「外部からそのクラスのインスタンス生成なしで呼び出すことのできるメソッド」
と言う意味。でも重要なのは「staticと指定したメソッドは、そのクラスのstaticでないプロパティや
メソッドを呼び出せない」ってこと。staticでないメソッドやプロパティを呼び出してるメソッドにstaticを設定すると
エラーが出るはず。staticなメソッドはぶっちゃけて言うと一般の関数と変わらない使い方ができる。
PHPみたいなゆるい言語においては微妙な存在ってこった。ただ、「こういう処理をする関数はここにまとめておこう」みたいなときに
使ったりするね。

150 :nobodyさん:2008/02/29(金) 11:21:01 ID:???
>>149がはりきっております

151 :nobodyさん:2008/02/29(金) 11:33:03 ID:???
>>150うるせーこっちは13時から試験があるから逃避してんだよw

152 :nobodyさん:2008/02/29(金) 11:53:10 ID:???
この$noを求めるのに前のログの$noに+1して
書き込む処理をこの上でしてるんですが
それだと書き込みが重複した時にナンバーが同じ値になったりするのでしょうか?
削除に使うナンバーなのでなるべく厳密になるようにしたいのですが。

$data = "$no\t$name\t$comment\t$delkey\t$time\n";
$filename = ('card.txt');
$log = file($filename);
$handle = fopen($filename, "w");
flock($handle,LOCK_EX);
fwrite($handle,$data);
for($i=0; $i<150; $i++) {
fwrite($handle,$log[$i]);
}
flock($handle,LOCK_UN);
fclose($handle);

153 :nobodyさん:2008/02/29(金) 11:57:51 ID:???
>>7

154 :nobodyさん:2008/02/29(金) 12:26:21 ID:???
>>152
厳密にやるならデータベースを使う。
データベースが使えないなら、uniq_id()やmd5(microtime(true))で重複しない乱数で代用する。

155 :nobodyさん:2008/02/29(金) 12:42:52 ID:???
$no+1する前の段階でファイルロック掛けておけばいいんじゃ?

156 :nobodyさん:2008/02/29(金) 12:44:33 ID:???
ありがとうございますmd5(microtime(true))でやってみます、
多分私の扱える知識がないデータベース以外で精度が高いのは
これだと思うので。
これで作り出したIDが重複してないかファイル捜索するのは時間の無駄ですかね?

157 :nobodyさん:2008/02/29(金) 12:46:02 ID:???
>>149
staticなプロパティは異なるインスタンス間で値を共有できるから便利

158 :nobodyさん:2008/02/29(金) 12:49:40 ID:???
え?
fopenする前にファイルロックできるんですか?
ちょっと最近勉強始めたのでよくわかってないのですが。



159 :nobodyさん:2008/02/29(金) 12:54:20 ID:???
こういうことですかね。

$filename = ('card.txt');
flock($filename,LOCK_EX);
$log = file($filename);
$no = explode("\t", $log[$i])
$data = "$no[0]\t$name\t$comment\t$delkey\t$time\n";
$handle = fopen($filename, "w");
fwrite($handle,$data);
for($i=0; $i<150; $i++) {
fwrite($handle,$log[$i]);
}
flock($handle,LOCK_UN);
fclose($handle);

160 :nobodyさん:2008/02/29(金) 12:59:01 ID:???
>>156
md5だけなら重複する可能性があります。

161 :nobodyさん:2008/02/29(金) 13:05:26 ID:???
ロック用ファイルを別に作ってもいいけど155で言いたかったのは

1.ファイルオープン(a+)
2.ファイルロック
3.ファイル中の最新の番号を取得
4.番号を1増やす
5.新しい記事を追記
6.ファイルロック解除
7.ファイルクローズ

的な感じ。いつもDB使ってるからファイル関係はよく知らんけど。

162 :nobodyさん:2008/02/29(金) 13:06:34 ID:???
>>159ひどいな・・・・
fopen時にw以外で読み書き可能なものを選ぶと言うことか・・・・
でもそうするとログ追記型で過去ログ削除できなかったりとややこしい・・・・

>>160
それを元に乱数生成とかですよね、多分。

163 :nobodyさん:2008/02/29(金) 13:08:16 ID:???
>>161
ご丁寧にすいません、その後記事の数を決めた定数以内にしたい場合、
何かいい方法ないでしょうか?

164 :nobodyさん:2008/02/29(金) 15:35:33 ID:???
>>163
プログラム云々依然にロジックの質問かよ!

165 :nobodyさん:2008/02/29(金) 15:56:02 ID:SImzeFcn
includeしたファイルが数値だと普通に表示されますが
日本語文字列だと表示されません。

文字コードの設定だとは思いますがお教えください。

166 :nobodyさん:2008/02/29(金) 15:58:43 ID:???
文字コードの設定を正しくする。

それ以上何を言えばいいんだ?

167 :165:2008/02/29(金) 16:05:45 ID:SImzeFcn
>>166
文字コードの設定の仕方が分かりません。
現状では<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
にしていますが文字化けしてしまいます。

shift_jisだと全てが文字化けしてしまいます・・。

168 :nobodyさん:2008/02/29(金) 16:07:43 ID:???
もう何もかもが

169 :nobodyさん:2008/02/29(金) 16:08:15 ID:???
突っ込んだら負けってヤツ?

170 :nobodyさん:2008/02/29(金) 16:10:45 ID:???
>>167
その読み込む側のファイル晒して

>>168-169
お前らこのスレに向かないんじゃない?答える気もないなら来んなよ

171 :167:2008/02/29(金) 16:14:27 ID:SImzeFcn
// サイトURL
$url = "http://example.ex/";

// サイトネーム
$site_name = "日本語文字列";

// サイトサブタイトル
$sub_title = "日本語文字列";

// 現在時刻を取得
$time = getdate();

>>170
こんな感じで書いています。

172 :nobodyさん:2008/02/29(金) 16:15:29 ID:???
(・∀・)ニヤニヤ

173 :167:2008/02/29(金) 16:18:39 ID:SImzeFcn
>>168-169
>>172
やっぱいいです
頑張ってみます

>>170さんありがとうございます

174 :nobodyさん:2008/02/29(金) 16:22:44 ID:???
>>173(´;ω;`)ブワッ

175 :nobodyさん:2008/02/29(金) 16:23:04 ID:???
>>170
ほらほら、最後まで面倒みろよ

176 :nobodyさん:2008/02/29(金) 16:25:35 ID:???
>>168-169 >>172 >>175
性格悪すぎワロタwwwww

177 :nobodyさん:2008/02/29(金) 19:02:38 ID:TvsAPhPQ
図1           図2
             .
○            .バックアップ
├ fo          └○
│ ├ test2        ├ fo
│ │ ├ a.txt    ..  │ ├ test2
│ │ ├ b.txt    ..  │ │ ├ a.txt
│ │ └ c.txt    ..  │ │ ├ b.txt
│ └ testfile.txt     │ │ └ c.txt
└ test.txt      ..  │ └ testfile.txt
               └ test.txt


図1を図2のようにバックアップフォルダにコピーしたいのですが
よい方法はありませんでしょうか?
なにとぞご教授お願いします

178 :nobodyさん:2008/02/29(金) 19:24:53 ID:???
図を作る努力をphpに振り向けるんだ!

179 :nobodyさん:2008/02/29(金) 19:28:32 ID:???
答える気の無いヤツと答えるフリして逃げるヤツしかいないのか

180 :nobodyさん:2008/02/29(金) 19:34:00 ID:???
OSが決まってるなら xcopy なり cp -r を呼び出せば?
http://jp2.php.net/manual/ja/ref.exec.php

181 :nobodyさん:2008/02/29(金) 19:59:47 ID:???
うーん外部コマンド以外の方法があればどなたかお願いいたします

182 :nobodyさん:2008/02/29(金) 20:01:45 ID:???
<?php
define( "srcDir", "○" );
define( "dstDir", "バックアップ" );
dircopy( srcDir, dstDir );

function dircopy($srcdir, $dstdir, $verbose = false) {
$num = 0;
if(!is_dir($dstdir)) mkdir($dstdir);
if($curdir = opendir($srcdir)) {
while($file = readdir($curdir)) {
if($file != '.' && $file != '..') {
$srcfile = $srcdir . '\\' . $file;
$dstfile = $dstdir . '\\' . $file;
if(is_file($srcfile)) {
if(is_file($dstfile)) $ow = filemtime($srcfile) - filemtime($dstfile); else $ow = 1;
if($ow > 0) {
if($verbose) echo "Copying '$srcfile' to '$dstfile'...";
if(copy($srcfile, $dstfile)) {
touch($dstfile, filemtime($srcfile)); $num++;
if($verbose) echo "OK\n";}
else echo "Error: File '$srcfile' could not be copied!\n";}}
else if(is_dir($srcfile)) {
$num += dircopy($srcfile, $dstfile, $verbose);}}}closedir($curdir);}
return $num;}
?>

これでおkだろ

183 :nobodyさん:2008/02/29(金) 20:03:15 ID:???
>>182
ありがとうございます!!!!!
助かりました!!

184 :nobodyさん:2008/02/29(金) 21:51:10 ID:???
xamppをインストールし、ttp://hiromasa.zone.ne.jp/documents/xampp_eclipse03.html を参考に設定してましたが
誤って、「root:localhost」を特権から削除してしまいphpMyAdminにアクセスできなくなってしまいました。

再インストールしても状況が戻らずどうしていいのか・・・

185 :nobodyさん:2008/02/29(金) 23:47:35 ID:???
>>184
OSは?
再インストールってどうやった?
俺もやったことあるけど復活させたぞ

186 :nobodyさん:2008/03/01(土) 00:03:26 ID:???
>>185
XP homeです。
再インスコはOSではなくてソフト入れなおしただけです・・・

187 :nobodyさん:2008/03/01(土) 00:11:45 ID:???
>>186
アンインストールは単なる削除か?
要は「システム」としてインストールしたMySQL(とかXAMPP)が
アンインストールされてないとお話にならないってわけだよ。

アンインストールしてなくてもroot権限でMySQLに入れるなら
GRANTとかで治るとおもうけど、
一応再インストールとか厄介なことしたわけだから、
完全にアンインストールすることを強く勧める。
で、
Windowsの コントロールパネル>管理ツール>サービス
を開き、その中にmysqlとかXAMPP Serviceってのはあるか?


188 :nobodyさん:2008/03/01(土) 01:45:42 ID:???
>>187
プログラムの追加と削除からのアンインストールです。
サービスの中は両方ともにありませんでした。。。

189 :nobodyさん:2008/03/01(土) 01:58:22 ID:???
どーでもいいがDB板向けな話題だなw


190 :nobodyさん:2008/03/01(土) 02:44:24 ID:???
>>186
C:WINDOWSに'my.ini'が残っているとか?
関係ないか...。

191 :nobodyさん:2008/03/01(土) 02:58:59 ID:Nw5SqNkj
素人ですが教えて下さい。

ユーザーが投稿する写真のサムネイルを表示したいと思っています。
私が読んでる参考書に表示スピードを考慮した画像縮小方法として、GDライブラリが紹介されていました。
しかしGDライブラリは指定したサイズに縮小するだけのように思えます。間違ってたらすいません。

投稿される写真のサイズはバラバラで、縦長の写真、横長の写真、正方形の写真など様々です。
縦長は縦長のまま、横長は横長のまま、正方形は正方形のままに縮小したい(mixiのマイミク一覧のよう
な感じ)のですが、一般的にはどうのように行っているのでしょうか?ヒントだけでもお願いします。

192 :nobodyさん:2008/03/01(土) 03:47:22 ID:???
>>191
算数の素人さんですか

100x100を半分にすると50x50
100x200を半分にすると50x100

指定したサイズに縮小できたら十分。

193 :nobodyさん:2008/03/01(土) 05:15:24 ID:???
高さと幅の最大値を決めて、あとはそれに合うようにアスペクト比をあわせればおk
どっちかの小さい方にあわせんだっけかな

194 :nobodyさん:2008/03/01(土) 13:12:12 ID:???
縦書きの日本語をGDで表示したいんだけど
横書き用フォントでは







ってカンジに表示されてしまう
どうやったら縦書き用フォントが使えるんですか?

195 :nobodyさん:2008/03/01(土) 13:24:38 ID:???
>>7

196 :nobodyさん:2008/03/01(土) 13:29:45 ID:???
>>195
このスレはこの程度か
ありがとうございました

197 :nobodyさん:2008/03/01(土) 13:42:39 ID:???
>>196
>>7よりググレカスの方が正しいかも

「GD フォント指定」でそれっぽいのが出てくるのに
悔しくて捨て台詞をいう程度のカスなんでしゃーないなぁ

198 :191:2008/03/01(土) 14:01:50 ID:Nw5SqNkj
>>192
すいません、質問が悪かったと思います。
元の大きさがバラバラなので、ただ半分にしただけじゃ並べたときにデコボコになります。
縦横の比率を保ったまま、縮小後の大きさを大体同じ大きさにしたいのです。

200×100は1/2で100×50
400×400は1/4で100×100
250×500は1/5で50×100

というふうに大体100×100の枠に納めたいのですが、元の写真がどのサイズで来るか分かりません。
GDライブラリは試してないのですが、100×100へ縮小としてしまうと、正方形の写真以外は歪ん
でしまうんじゃないでしょうか?

歪ませずに大体100×100の大きさに納めるにはどうすれば良いでしょうか?

199 :nobodyさん:2008/03/01(土) 14:03:57 ID:???
だから長いほうを100pxにすればいいじゃん

200 :nobodyさん:2008/03/01(土) 14:04:59 ID:???
>>198
リアル算数素人だった、この衝撃

201 :194:2008/03/01(土) 14:22:00 ID:z6e/g20g
>>196
ちょwwwなにやってんだ

>>197
おれは196じゃないです
ID表示させとけばよかった
「GD 縦書き」とかで検索しても出なかったんで聞いてみたんです。
縦書きに切り替える関数とかあるのかな?


202 :194:2008/03/01(土) 14:24:36 ID:z6e/g20g
縦書き専用フォントを使えばいいのかな?

203 :194:2008/03/01(土) 14:29:55 ID:???
>>201-202
偽者

204 :nobodyさん:2008/03/01(土) 15:21:32 ID:MLWBh96T
質問です。

アップローダーを作っているのですが、
アップロードファイルのローカルパスの一部をファイル名と認識してしまい難儀しております。

入力フォームで
”C:\Documents and Settings\User\デスクトップ\sample.doc”
と入力して
$_FILES[ パラメータ名 ][ name ]で
ファイル名を抽出すると
”デスクトップ\\sample.doc”
とでてきてしまいます。

環境
PHP 5.2.5
Apache/1.3.41

対処法をご存じの方、ご教授をお願いします。

205 :nobodyさん:2008/03/01(土) 16:27:41 ID:SX7Jze++
質問です

4択式のリアルタイムアンケートを作成したいのですがご教授ください


ページで投票してもらって
最終的に各回答の合計数がカンマ区切りの○○○.txtというデータで吐き出されればよいです。
ビジュアルとかはこだわりません。

206 :nobodyさん:2008/03/01(土) 16:44:55 ID:???
>>205
宿題は自分でやりましょう

207 :nobodyさん:2008/03/01(土) 17:03:11 ID:bS1QPxn9
質問させてください

$url = "http://www.unko.com/unko.cgi?url=http://www.test.com/test.html?unko_id=12345";

ここから、http://www.test.com/test.htmlのみを取得したいのですがどのような関数を使えば良いでしょうか?

http://www.unko.com/unko.cgi?url= は固定されていますが、

?unko_id=12345 は ?oomoriunko_id=123 になったり ?geriunko_id=111111111 になったり

固定されていないものとする。

以上ぎょきょうじゅくださいお願いします

208 :nobodyさん:2008/03/01(土) 17:07:45 ID:???
preg_match

209 :nobodyさん:2008/03/01(土) 17:12:33 ID:bS1QPxn9
>>208
ありがとうございます
なんとなく理解できました

あと書き忘れたのですがtest.htmlも固定されてません。

もう少し調べてみます

210 :nobodyさん:2008/03/01(土) 18:50:49 ID:???
mysql_escape_string と
mysql_real_escape_string の違いについて、

後者は文字コードを考慮する、とマニュアルには記載されていますが、
結果として、
後者ではなく、前者を使用していると
脆弱性が発生したりするケースはあるのでしょうか。


211 :nobodyさん:2008/03/01(土) 19:16:54 ID:???
>>187
亀ですみません。
root権限で入ろうと思いますが、その方法がわかりません。
差し支えなければ教えていただけませんか?

212 :nobodyさん:2008/03/01(土) 19:34:15 ID:???
>>210
前者は非常に危険です。
後者でも危険性が指摘されています。

213 :nobodyさん:2008/03/01(土) 19:59:50 ID:???
>>212
ソース

214 :nobodyさん:2008/03/01(土) 20:03:33 ID:???
質問スレだか、初心者いびりスレだかわかんなくなってきてるな……。

215 :nobodyさん:2008/03/01(土) 20:10:28 ID:???
>>211
> mysql -u root -p

216 :nobodyさん:2008/03/01(土) 20:46:02 ID:???
>>207
parse_url

217 :nobodyさん:2008/03/01(土) 20:46:29 ID:???
>>221
DB板行けよ
MySQL 総合 Part13
http://pc11.2ch.net/test/read.cgi/db/1201632550/

>>214
初心者スレは初心者スレがある
くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/

218 :nobodyさん:2008/03/01(土) 20:55:00 ID:???
>>214
このスレには初心者は来ていませんよ?

少なくともマニュアルを一通り目を通したりぐぐったりしてきてるはずなんで。

219 :nobodyさん:2008/03/01(土) 21:06:57 ID:Y1gVmTFW
開発をWindowXPでやってます
PDO::exec()でクエリを実行する場合影響した行数が帰ってくるはずですが、まったく影響のないクエリを実行してるのに1が返ってきます
バグでしょうか?

apache2.2
php 5.2.5
Postgresql 8.2

220 :nobodyさん:2008/03/01(土) 21:13:47 ID:???
はい、バグです。
次の方どうそー。

221 :nobodyさん:2008/03/01(土) 22:02:10 ID:???
>>219
DBMSによっては、delete で全行削除した場合、削除した行数を返さないらしい。
必要な場合は、where 1=1 ってやるのが定石だそうだ。

postgresをPDOで使ったときに同じ問題があるかどうかは知らない。

222 :nobodyさん:2008/03/01(土) 22:04:42 ID:???
すいません、質問させてください。
PHPを一度ソースからインストールした後に、libxsltが必要になったので
再インストールを試みたのですが、makeで以下のようなエラーが出ました。
ext/xmlreader/.libs/php_xmlreader.o(.text+0x14a9): In function `zim_xmlreader_XML':
/usr/local/src/php-5.2.5/ext/xmlreader/php_xmlreader.c:1109: undefined reference to `xmlTextReaderSetup'
collect2: ld returned 1 exit status
make: *** [sapi/cli/php] エラー 1

あと、環境は以下のとおりです。
OS:Vine4.2
PHP:PHP5.2.5
実行したconfigure:./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-zend-multibyte --with-pgsql --enable-sockets --with-zlib --with-xsl=/usr/include/libxslt

解決方法をご存知の方いらっしゃいましたら、ご教示ください。


223 :nobodyさん:2008/03/01(土) 22:13:34 ID:Y1gVmTFW
>>222
xslライブラリをなんのオプションも無くコンパイルしたなら --with-xsl=/usr/local/lib じゃないかな

>>221
いろいろ試して見たら、selectとかupdateとか、どんなクエリ実行しても1しか返って来ません
失敗の場合のみfalse
これは開発もlinuxにするしかないのか…?

224 :nobodyさん:2008/03/02(日) 01:08:51 ID:kiurO7do
こんばんわ
プログレスバーについてなのですが
自身のループ処理による待ち時間ではなくて
重い外部のファイルを読み込むなど、一関数が完了するまでの間
flush()でメーターを描画する場合どのような方法があるのでしょぅか?
よろしく願いします。

225 :nobodyさん:2008/03/02(日) 01:41:21 ID:???
>>224
ajaxで読み込む(画面遷移せず)

現在の画面にぷろぐれすばー表示(その間にサーバで処理)

処理完了

画面遷移
って流れでやったら?

226 :nobodyさん:2008/03/02(日) 02:27:09 ID:???
このスレはこの程度か。
ありがとうございました。

227 :nobodyさん:2008/03/02(日) 04:11:35 ID:jR385ymf
会員制のサイトからデータを取得する場合、
あらかじめ取得しておいたIDとパスをそれぞれ変数に入れて、
それらの変数をもってaction先に飛ばす
そしてファイル取得
こんな感じでいいのでしょうか

228 :nobodyさん:2008/03/02(日) 04:12:23 ID:8nU9J7zG
Dreamweaver8でPHPを使ってメールフォームを作りたいのですが
現在XAMPPというのをインストール(セットアップ?)した直後です。

見積依頼のフォームのファイルはindex.phpにして設定もしました。

<?PHPprint("PHPを使って文章を出力します");

こうなっているのですが次の手順が分かりません。デザインビューで
見積依頼のフォームをこのindex.phpの<?PHPprint("PHPを使って文章を出力します");
の下に作ればいいのですか。

PHP初心者です宜しくお願いします


229 :nobodyさん:2008/03/02(日) 04:17:24 ID:???
>>228
見積もり依頼のフォームというのが説明されていないのでわからない
そもそも次の手順ってそもそも何がしたいのか

ソース丸ごと見せてもらった方が早い

ちなみに、PHPで文章を出力したいんだけなら
<?PHPprint("PHPを使って文章を出力します");
↑の PHPを使って文章を出力します
の部分に記述

230 :nobodyさん:2008/03/02(日) 04:47:47 ID:8nU9J7zG
>>229
あっなるほど。そこにデザインビューでメールフォームを作ればいいのですね。
コードは

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis" />
<title>PHPプログラム</title>
</head>

<body>
<?PHP
print("PHPを使って文章を出力します");


</body>
</html>

です

231 :nobodyさん:2008/03/02(日) 04:48:24 ID:8nU9J7zG
>>229
そしてメールフォームの内容は


お名前
住所 〒


TEL
E-mail
見積希望日
見積希望時間 9時〜12時
       12時〜15時
       15時〜18時
       何時でも可能
メッセージ


としたいのです。

232 :nobodyさん:2008/03/02(日) 05:09:59 ID:8nU9J7zG
>>229
デザインビューで「文章を出力します」のとこを修正しようとすると

「HTMLタグに対して正確なフォーマットではありません。無効とマークされ
ました。コードビューを使用してソースコードを修正して下さい」

と出てしまい「文章を出力します」のとこの変更ができません。


233 :nobodyさん:2008/03/02(日) 06:19:08 ID:cPv2Uin/
class unko{
private $unko;
public function getUnko(){
return $this->unko;
}
において、
public function checkUnko(){
の中は
$unko=$this->unko;
がいいのか
$unko=$this->getUnko();
がいいのか。
}

当然速いのは$this->unkoだと思うけど、この書き方って
オブジェクト指向を貫く上で問題ありかな?

234 :nobodyさん:2008/03/02(日) 08:12:52 ID:???
checkUnko()というメソッド自体なんかおかしいだろ

235 :nobodyさん:2008/03/02(日) 08:46:32 ID:qS2qya1q
%A5%A2%A5%A4%A5%AA%A5%E9%A5%A4%A5%C8(文字コード不明)

をデコードしたいのですが、何にエンコードされたかを知るにはどうしたらいいでしょうか?
また、PHP関数で何か良いものはありますでしょうか?

236 :nobodyさん:2008/03/02(日) 08:54:16 ID:???
urlencode

237 :235:2008/03/02(日) 08:55:02 ID:???
すみません。上記質問ですが、utf8で書いているphpで、EUC-jpにurlencodeや、EUC-JPでエンコードされたキーワードを
デコードし、表示するにはどうすればいいのでしょうか?に訂正させてください。

238 :nobodyさん:2008/03/02(日) 08:55:18 ID:???
間違えた。urldecode
まぁ、両方の関数のマニュアルを見ておけ

239 :235:2008/03/02(日) 09:05:40 ID:???
$test = "アイオライト";
$test = mb_convert_encoding($test, "EUC-JP", "UTF-8");
$test = urlencode($test);
echo "$test<br><br>";

$test = "%A5%A2%A5%A4%A5%AA%A5%E9%A5%A4%A5%C8";
$test = mb_convert_encoding($test, "UTF-8", "EUC-JP");
$test = urldecode($test);
echo "$test<br><br>";

上はうまく行きましたが、下が変なひょうじになります。全体としての設定はutf8です。

240 :235:2008/03/02(日) 09:07:37 ID:???
すみません。自己解決しました。

$test = mb_convert_encoding($test, "UTF-8", "EUC-JP");
$test = urldecode($test);

の上下を入れ替えたら出来ました。

241 :222:2008/03/02(日) 12:52:29 ID:???
>>223
レスありがとうございます。
apt-getでlibxsltをインストールしたところ、
libxslt.a
libxslt.la
libxslt.so
libxslt.so.1
libxslt.so.1.1.17
が/usr/libにつくられていたので、
--with-xsl=/usr/lib にしてやってみましたが、同じエラーでとまってしまいました・・・

242 :nobodyさん:2008/03/02(日) 13:13:25 ID:1wdULA7X
yumのphp-mysqlがmysqlに依存しているので、mysqlが一緒に入ってしまいますが
mysqlはtritonn(mysql with senna)を使いたいです。
こういう場合どうしたらいいですか?

243 :222:2008/03/02(日) 13:19:35 ID:???
--disable-xmlreaderをつけたところ、>>222で起きていたエラーが出なくなりました。

しかし、--disable-xmlreaderをつけてもlibxsltは使用できるのでしょうか?
どなたか教えてください。。。



244 :nobodyさん:2008/03/02(日) 15:20:02 ID:???
>>242
普通にphp.iniとかでphp-mysqlでインストールしたほうじゃなく
そっちのmysqlを使うように設定したらええやん?

245 :nobodyさん:2008/03/02(日) 15:21:55 ID:???
>>243
聞く前にやったほうが早いんじゃ?
もうその環境なんだろ?

246 :nobodyさん:2008/03/02(日) 16:13:25 ID:???
>>233
スーパークラスでも一貫して $this->getUnko() を利用すべき。
サブクラスで getUnko がオーバーライドされる可能性があるので
戻り値 === $unko が保証されないから。


247 :nobodyさん:2008/03/02(日) 16:58:37 ID:LTTkeK/B
txtファイルをphpファイルにするにはどうすればいいですか??
メモ帳つかって拡張し使ってもxxx.php.txtとかなるのですがその後どうすればいいかわからんとです。

248 :nobodyさん:2008/03/02(日) 17:29:25 ID:???
お前さんフォルダオプションだかなんだかの
「拡張子を表示しない」にチェックしてあるまんまだな?
はずすことを推奨する

249 :219:2008/03/02(日) 17:36:31 ID:???
なんかほんとにバグっぽいので報告してきます

250 :nobodyさん:2008/03/02(日) 18:07:37 ID:???
>>247
メモ帳ならSJIS保存しかできないんじゃ?
まともなテキストエディタに乗り換えろ

251 :nobodyさん:2008/03/02(日) 18:12:48 ID:???
>>242
yumで入ったmysqlを削除して
yum版のmysqlのsrc.rpmからspecをとりだして
--with-mecab, --with-sennaを加えてrpmbuildしてできたrpmをつかう

252 :nobodyさん:2008/03/02(日) 18:19:37 ID:???
>>249
mysqlだけどちゃんと行数返ってきたよ

253 :nobodyさん:2008/03/02(日) 18:28:26 ID:???
>>250
へぇ…おまえのメモ帳はそうなんだ。

254 :nobodyさん:2008/03/02(日) 18:35:58 ID:???
>>253
もう何年もWindowsは使ってないのでよく覚えてない
最近のメモ帳はまともなん?

255 :nobodyさん:2008/03/02(日) 18:44:44 ID:???
メモ帳のファイル保存形式は ANSI, Unicode, Unicode big endian, UTF-8 の4つから選べる

256 :nobodyさん:2008/03/02(日) 20:02:48 ID:???
リンク元からGETで持ってきたidを今いるところののformを通してさらにリンク先に渡したいんですが
どうやったらできますか?

257 :nobodyさん:2008/03/02(日) 20:19:42 ID:???
>>256
エスパー回答してやる
<?php
echo '<form action="post">';
foreach ($_GET as $key => $value) {
 echo '<input type="hidden" name="'.$key.'" value="'.$value.'">';
}
echo '</form>';
?>

正直何をしたいのかがわからん
もうちょっとちゃんと説明しろよ

258 :nobodyさん:2008/03/02(日) 20:22:22 ID:???
echo '<form action="post">'; ・・・

259 :nobodyさん:2008/03/02(日) 20:32:35 ID:???
>>256 >>7

260 :nobodyさん:2008/03/02(日) 20:41:38 ID:???
>>257
脆弱性が生まれる瞬間

261 :nobodyさん:2008/03/02(日) 21:28:38 ID:???
貴重な瞬間に立ち会えたことを神に感謝する

262 :nobodyさん:2008/03/02(日) 23:22:05 ID:???
256がまともに書かないのに
ちゃんとしたレスがある筈ない


263 :nobodyさん:2008/03/02(日) 23:22:24 ID:???
PHPみたいなスクリプト言語でもいちいちinterfaceとか作って
厳密にオブジェクト指向ばりばりってどーなの?
遅くなるだけじゃね?
XOOPSとかMediaWikiってどうなってるんだろ??

264 :nobodyさん:2008/03/02(日) 23:30:12 ID:???
>>263
プログラマが気をつけるじゃなくて、それを使うことが保証されるっていうところに
オブジェクト指向の肝があるんじゃないか?

遅くなるってことは実際あると思うけど、微々たるもんだし、速度が問題になるようならそもそも、システム設計自体に問題があると思う。

まあ、小さいシステムで、後々それほど手を入れないならスパゲッティーでもいいと思うけど
俺はオブジェクト指向で組まれていないシステムを読み解くのはあんまり好きじゃないな

265 :nobodyさん:2008/03/02(日) 23:44:02 ID:???
>>263
自分の場合、instanceof とかで判定しないなら、interfaceは定義しない。

266 :nobodyさん:2008/03/03(月) 00:04:02 ID:???
GETで渡したパスの内容読み取りたいのですが、
ディレクトリさかのぼり、がちょっと怖いです。

$root_path = "/home/hoge/public_html/open/";
if( strstr( $GET['path'], ".." )) die("error!!");
fread($root_path.$GET['path']);

これで /home/hoge/public_html/open より上の層は見られない、
と断言できますか?
(..さえ拒否すればさかのぼりは完全に防げると判断して良いのでしょうか?)

open_basedirがini_setでスクリプト内で
設定できたら、自由にchroot風にできて安全そうで
よさそうだったのですが、ini_set内では無理でした



267 :nobodyさん:2008/03/03(月) 00:17:00 ID:8BSVZMuK
質問させてください。

PHPでサイト構築しているのですが、
ある日突然、複数のスクリプトで
大量のエラーログをサーバー側に
記録するようになりました。
使用リミットをオーバーするような
膨大な量です。しかし、
サイト上では問題なく実行され表示されています。
エラーも出ていません。

この場合どんな原因が考えられますか?

268 :nobodyさん:2008/03/03(月) 00:17:23 ID:???
>>264
なるほど。オブジェクト指向で書こうとすると
設計に悩んでフリーズしてしまうことが多い。
慣れてないしデザインパターンもどれをあてはめればいいのかわかんない。
かと言って本能のまま書くと役割分担のはっきりしないクラスばっかりになる。
結局「PHPごときにちまちまとオブジェクトなんてやってらんね」ってなるんだよね。

>>265
それぐらいの塩梅でいいかな。

269 :nobodyさん:2008/03/03(月) 00:18:10 ID:???
エラーログの内容みれ。

270 :nobodyさん:2008/03/03(月) 00:34:41 ID:8BSVZMuK
>>269
内容はPHP Notice: Use of undefined ・・・・
というものが多いです
エラーが記録されているスクリプトの種類は多岐に
わたっています。たとえばフリーで公開されているものを
そのまま導入して使用していたものからそうでないものまで。

271 :nobodyさん:2008/03/03(月) 00:49:10 ID:???
それはPerl風にいうとuse strict;をつかってないルーズなプログラムだからな

272 :nobodyさん:2008/03/03(月) 00:57:35 ID:???
>>267
突然って何よ?まぁめんどくさいから答えなくてもいいけど

httpd.confとかphp.iniでも制御できるからうまく設定したらいいよ
詳しいことはググレ

273 :nobodyさん:2008/03/03(月) 01:12:41 ID:8BSVZMuK
>>271
おっしゃる通りルーズなプログラムかもしれませんorz
>>272
今までは問題なかった(と思う)のでほんとに突然なんです(涙
月替わりに突然エラーログが大量に記録されるようになったというイメージです。
ちなみに現在はエラーログはまったく出ていません。
php.iniの設定を見てみたのですが
log_errors On
log_errors_max_len 1024
error_reporting 6143
となっているのでエラーがあれば記録されると思うのですが・・
なぜこのような事がおきたのか原因を知りたいです

274 :nobodyさん:2008/03/03(月) 01:17:45 ID:???
shared extentionにできるものとできないもののリストって
どこかにないですか?

275 :nobodyさん:2008/03/03(月) 02:25:43 ID:33Hm4dS7
function Hoge(){}

$func = "Hoge";
$func();
↑これは動いて

"Hoge"();
↑なぜこれは動かないのでしょうか?

変数に入れれば良いことではあるのですが、
どうも気になってしようがありません。
PHPの関数呼び出しの仕組みってどこかに載ってますか?

276 :nobodyさん:2008/03/03(月) 02:28:20 ID:???
おまいらヘボプログラマでもNoticeレベルのエラーまで完璧に処理してるの?

277 :nobodyさん:2008/03/03(月) 02:33:31 ID:???
>>275
そのものズバリではないけど

http://www.php.net/manual/ja/functions.variable-functions.php
http://jp2.php.net/manual/ja/language.oop5.reflection.php#language.oop5.reflection.reflectionfunction

278 :nobodyさん:2008/03/03(月) 03:15:49 ID:rD8lqAq1
どこに質問を投げていいか分からないのですが、もし適切な場所がありましたらご誘導下さい。

友人の紹介で仕事を回してもらうことになったのですが、
仕事としては始めてのphpによる開発なんですが、
見積もりを出してくれと言われていて少し困っています。

【ご質問】見積もりの中で人月に加えてステップ数を求められているのですが、
ステップ数って、空行とかコメント行もステップに数えるのでしょうか?

あと、ステップ数って、プログラムの書き方にも変わりますよね?
1行=======================================
if ($value == 1) { print "test";}

3行=======================================
if ($value == 1) {
print "test";
}

ネットで調べると1人月当たり、1000ステップらしいですが(COBOL)、
PHPの場合も、それが当てはまるのかそれも疑問です。

宜しくお願いします。

279 :nobodyさん:2008/03/03(月) 03:26:55 ID:???
>>277
この仕組みのこと、可変関数と言うのですね、今まで知りませんでした。
Reflection機能も初めて知りました、とても勉強になります。
夜中に素早いご回答、どうもありがとうございました。

280 :nobodyさん:2008/03/03(月) 05:25:27 ID:???
>>278
Web制作板のSOHOスレで聞けばいいかもしれない。
ただちゃんとした答えが返ってくるかは保証できないけど。

281 :nobodyさん:2008/03/03(月) 08:00:57 ID:???
>>278
空行やコメントはステップとは言わない
それだと2ステップじゃないかな?

とりあえず
必要工数*欲しい時給+何かあった時の自分的保険費用で出してみたら

因みに俺の知ってる所だと1人月で
30-70マンぐらいの幅があった

282 :nobodyさん:2008/03/03(月) 08:15:12 ID:???
>>278
ステップ数ってのは、処理手順の事?ソースの行数の事?
よく判らないんだけど、開発前からステップ数なんて判るものなの?

283 :nobodyさん:2008/03/03(月) 08:23:59 ID:???
>>278
そんなのは7行としておけばいい。
ステップ数なんてのはパンチカード時代の遺物だ。
そんなもの求める会社は注意したほうがいいぞ。

284 :nobodyさん:2008/03/03(月) 11:25:37 ID:???
おまえらメール送るとき文字コード何にしてんすか?UTF-8?

285 :nobodyさん:2008/03/03(月) 11:29:33 ID:???
>>284
>>7

286 :nobodyさん:2008/03/03(月) 11:57:57 ID:GThXklLZ
PHP5.2.5から導入されたメモリマネージャは、
memory_limitとは無関係なのでしょうか?

memory_limitを-1にしても、zend_mm_heap corruptedみたいなエラーが吐き出されてしまいます。

287 :nobodyさん:2008/03/03(月) 13:05:13 ID:KrsbPUyK
OSX10.4 php4.2を使用しています。
$POST = array_map("htmlspecialchars",$_POST);
のような形でpostを一気に変換しています。

普段は問題ないのですが、
<select name="hoge[]" size="8" multiple="multiple">
のような要素がある場合、
Warning: htmlspecialchars() expects parameter 1 to be string, array given in...
という警告が出てしまいます。

これって、解決する方法ないんでしょうか?
よろしくお願いします。

288 :nobodyさん:2008/03/03(月) 13:33:06 ID:???
>>287
htmlspecialcharsを元に配列に対応した関数を作ればいいんじゃね。
「php htmlspecialchars 配列 対応」あたりをググルと幸せになれるかもね。

289 :nobodyさん:2008/03/03(月) 14:03:39 ID:DWqAIEY6
PHPでアクセスカウンタを組んだのですが、キリバンの表示方法がわかりません。
誰かご教授ください。

290 :nobodyさん:2008/03/03(月) 14:08:16 ID:???
>>289
お前の言うキリバンはいったいいくつのカウントになるんだ?
そのカウントだったらキリバンと表示すればいいんじゃね?

291 :nobodyさん:2008/03/03(月) 14:08:39 ID:???
>>289
if( ($count % 1000) == 0 ){
print "切り番おめでとう";
}

292 :nobodyさん:2008/03/03(月) 14:58:46 ID:ut4WA0El
ちょっとお聞きしますが

$title = $item[title];
こいうのは

$title = $item['title'];
↑こういう風に書いた方が良いんですか?

293 :nobodyさん:2008/03/03(月) 15:01:42 ID:???
うん

294 :nobodyさん:2008/03/03(月) 15:02:04 ID:???
>>292
その辺詳しくないから曖昧な回答になるが了承くだしあ

上記はまず定数であるかどうか判別される
下記は文字列としてそのまま行く

上記の場合の定数であるか判別する余計な処理があるので下記のほうがいい
また、「title」って定数が合った場合そっちの値が優先されてしまう

295 :nobodyさん:2008/03/03(月) 15:45:12 ID:HPgcFf+Y
>>293-294
ありがとうございます

296 :nobodyさん:2008/03/03(月) 16:42:21 ID:a83ZZyIL
参考程度に聞かせていただきたい。
くだすれぐらいしか聞くとこがなくて。
こんな風に書かれた時間から年月日を取り出す場合
皆さんならどう取り出しますか?
とりあえず3パターン考えてみた。

| $str = "2008-11-08 22:12:25";
|
| //パターン1
| $array = split("-",$str);
| $day = substr($array[2],0,2);
| echo $array[0]."年".$array[1]."月".$day."日";
|
| //パターン2
| $year = substr($str,0,4);
| $month = substr($str,6,2);
| $day = substr($str,9,2);
| echo $year."年".$month."月".$day."日";
|
| //パターン3
| $array1 = split(" ",$str);
| $array2 = split("-",$array1);
| echo $array[0]."年".$array[1]."月".$array[2]."日";

297 :nobodyさん:2008/03/03(月) 16:44:38 ID:???
どう考えてもstrtotimeだろ

298 :nobodyさん:2008/03/03(月) 16:47:10 ID:???
strtotimeは、php言語の中で一番最悪の関数だろ。
引数の書き方が自由すぎてバグの元だよ。
どうして、こんなひどい設計したんだよ。

299 :nobodyさん:2008/03/03(月) 16:58:50 ID:???
でも便利

300 :nobodyさん:2008/03/03(月) 17:00:37 ID:???
利便性とセキュリティーは、相反する命題だろ。
こういう似非プログラマーが日本の中枢にいるから、
この業界の単価が下がっているんだろ。
生活できねーよ。

301 :nobodyさん:2008/03/03(月) 17:15:53 ID:???
利便性とセキュリティーは相反する命題だという話から
似非プログラマー論になる話の流れがわからん。

俺は時と場合に応じた道具の使い分けが出来ません、って告白?

302 :nobodyさん:2008/03/03(月) 17:17:07 ID:???
DBにYYYY-MM-DD HH:ii:ssで格納されてるのを、
strtotimeを使う分には問題ないと思うんだがどうだろう

303 :296:2008/03/03(月) 17:29:37 ID:a83ZZyIL
>>296ですがstrtotimeってのがあったのか。
確かにこれは便利ですね。

一応自分が今使おうと思ってるのは
データベース内に格納されてるのを判別するので
多分strtotimeで問題はありません。

しかしバグがあるというのは問題ですね。
使いどころを間違えないように使用したいと思います。
ありがとうございました。

304 :nobodyさん:2008/03/03(月) 19:13:10 ID:???
>>303
時と場合によるけど、sqlでDATE_FORMATなんてのも有り

305 :nobodyさん:2008/03/03(月) 19:37:52 ID:BS/MlDiQ
array(3) {
[0]=>
int(1)
[1]=>
int(2)
[2]=>
int(3)
}
な配列を
array(3) {
[1]=>
int(2)
[0]=>
int(1)
[2]=>
int(3)
}
な配列にしたいんだけど、どうすればいいのだろう?


306 :305:2008/03/03(月) 19:41:59 ID:BS/MlDiQ
数値を例に出したけど、文字列が添字の場合でも出来る方法が知りたいです。
やりたい事を言葉にすると、配列のキーと値の関係を保持しながら、
要素の場所を入れ替えたり、好きな場所に移動させたいということです。

307 :nobodyさん:2008/03/03(月) 19:58:05 ID:???
http://www.php.net/manual/ja/ref.array.php

308 :305:2008/03/03(月) 20:35:02 ID:o2rZ954m
移動したのでID変わってると思うけど、、

>>307
もちろんマニュアルは見たのだけど、いまいちうまい事やる方法が
思い浮かばなくて質問しました。

309 :287:2008/03/03(月) 20:36:48 ID:???
>288
あざーす!!
ばっちり解決できました。
ありがとうございます!

310 :2050:2008/03/03(月) 20:50:47 ID:1O+7QDSJ
echoを使用して、HTMLを出力しています。
この度、JAVASCRIPTを含む記述で壁にぶち当たってしまいました。

<?php
print "<input type='submit' value='送信' onClick='return confirm('送信します');'>";
?>
と、フォームのボタンを押すと、JAVASCRIPTでメッセージが表示されるように
したいのですが、シングルクォートの中に、さらにJAVASCRIPTのシングルクォート
が来るのが原因のようで動作しません。

どうしたらいいものでしょうか?

311 :nobodyさん:2008/03/03(月) 20:58:38 ID:???
>>310
print "<input type='submit' value='送信' onClick='return confirm(\"送信します\");'>"

javascript と html の話でPHPあんまり関係ないよ。

312 :nobodyさん:2008/03/03(月) 20:59:01 ID:???
>>310
エスケープって知ってるかい?
っていうかそこはPHPから抜けて書きなよ。

<?php

?>
<input type="submit" value="送信" onClick="return confirm('送信します');">

313 :nobodyさん:2008/03/03(月) 21:09:41 ID:???
>>310
php関係ないけど\でエスケープ

>>308
array_spliceやarray_sliceなど。
ただ連想配列を使っておきながら順序を気にするというのはあまりいただけない

314 :2050:2008/03/03(月) 21:15:48 ID:???
>311>312>313
ご丁寧に有難うございます。
実は、これを変数として格納し、別のtxtファイルに出力し、
さらに別のPHPファイルからこのtxtを読み込みます。
一度試してみます。有難うございました。

315 :2050:2008/03/03(月) 21:21:05 ID:???
>311>312>313
正しくできました。有難うございます!

316 :305:2008/03/03(月) 21:35:13 ID:o2rZ954m
>>313
そうですね。僕としても連想配列はたまたま順序を保持する実装になっているだけ、
という認識で、基本的にはハッシュでもいけるような使い方をするようにしています。

で、教えていただいた関数ですが、うまく使えば良い感じに出来るんじゃないかとは思いますが、
いまいち使い方がよくわかりませんorz もっと精進します。ありがとうございました。

追伸 : 拙作を貼付けておきますので、添削等していただけるとありがたいです
function hoge($array, $p1, $p2) {
    $ret = array(); $v_p = array_values($array); $k_p = array_keys($array); $c_p = 0;
    foreach($array as $k => $v) {
        if ($i == $p1) {
            $ret[$k_p[$p2]] = $v_p[$p2];
            $i++;
            continue;
        }
        if ($i == $p2) {
            $ret[$k_p[$p1]] = $v_p[$p1];
            $i++; continue;
        }
        $ret[$k] = $v; $c_p++;
    }
    return $ret;
}

317 :305:2008/03/03(月) 21:36:28 ID:o2rZ954m
改行が多すぎると怒られたので、読みにくい感じになっていますが、ご容赦ください。

318 :nobodyさん:2008/03/03(月) 21:43:03 ID:bM6XDXSb
ヒアドキュメントってPHPerの間では忌み嫌われてるの?
時々こんなソースが暗がりから飛び出てきて
3時間ぐらい仕事する気を無くすんだが。

print "<body bgcolor=\"#99ccff\">"
print " <form action=\"./index.php\" method=\"post\" name=\"PRadioList\" id=\"PRadioList\">"
print " <table width=\"250\" border=\"1\">"
print " <tr>"
print " <td width=\"30\"><div align=\"center\"><input name=\"radioBtn\" value=\"0\" type=\"radio\" id=\"qf_ad7dfc\" /></div>"
print " <td>たぬき</td>"
print " </table>"
print " <table width=\"250\" border=\"0\">"
print " <tr>"
print " <td align=\"center\">"
print " <input name=\"submit\" value=\"送信\" type=\"submit\" />"
print " </td>"
print " </tr>"
print " </table>"
print " </form>"
print "</body>"


319 :nobodyさん:2008/03/03(月) 21:57:31 ID:???
早く逃げた方がいい

320 :nobodyさん:2008/03/03(月) 22:02:46 ID:???
セミコロンはどこいった

321 :nobodyさん:2008/03/03(月) 22:08:23 ID:???
>>318
それはなんちゃってPHPerが書いたPerler?が書いたソース
普通はこう書く


?>
<body ~>
-中略-
</body>

322 :nobodyさん:2008/03/03(月) 22:09:20 ID:???
あ、日本語壊れた

323 :nobodyさん:2008/03/03(月) 22:15:53 ID:???
変数展開する必要もないのにヒアドキュメントなんて使いたがる318は素人

324 :nobodyさん:2008/03/03(月) 22:28:33 ID:???
色々閉じタグ無いのはいいのか

325 :nobodyさん:2008/03/03(月) 22:32:55 ID:???
>>318
さすがにそんなのは稀すぎる
連結してるのはたまに見るが

print "hoge"
. "hoge"
. "hoge";

ていうかhtmlに組み込めるんだから、viewは普通にhtmlで書けっていう話
つまり>>323

326 :nobodyさん:2008/03/04(火) 00:01:11 ID:???
>>323
おらぁ2行に別けた方がいいと感じたら
変数展開無くてもヒアドキュメントつかうだよ

327 :nobodyさん:2008/03/04(火) 00:02:06 ID:???
いやだからHTMLモードで書けばいいじゃn

328 :お願いします。:2008/03/04(火) 00:52:40 ID:G7JIaGfr
Windowsで正常に動作していたメール送信プログラムを
qmail(・・・※)設定済みのLinux(CentOS5)に移行した上で
実行したのですが正常に送信先に届きません。
(また、php側でエラーは発生しません。)

【ソース】
if( mb_send_mail($addressTo, $subject, mb_convert_encoding($message,"shift_jis","shift_jis"),$header) )

{
  #この部分に正常に入ります。

  print("送信完了しました。");



}
else

{

print("エラー:送信に失敗しました");

}

【Linuxmメールサーバ構築参考サイト】
  http://centossrv.com/qmail.shtml


329 :nobodyさん:2008/03/04(火) 01:03:43 ID:???
>>328
apache?
apacheならapacheのエラーはどう?

330 :お願いします。:2008/03/04(火) 01:21:47 ID:G7JIaGfr
>>329
Linux版は、次のコマンドでWEBサーバを構築して、恐らくApacheだと思われます。
  yum -y install httpd

再度、作成したテストページよりメールを送信した結果、apacheのログファイルを見てみると
次の様なエラーが表示されていました。

【error_logの内容】
[Tue Mar 04 01:19:02 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/index.css, referer: http://localhost/FI.html
[Tue Mar 04 01:19:02 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/css, referer: http://localhost/FI.html
[Tue Mar 04 01:19:03 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/index.css, referer: http://localhost/SendMail.html
[Tue Mar 04 01:19:03 2008] [error] [client 127.0.0.1] File does not exist: /var/www/html/css, referer: http://localhost/SendMail.html


331 :nobodyさん:2008/03/04(火) 01:32:39 ID:???
>>330
sendmail_pathはおk?
もちろんphpインストール時にqmailにしたよな?

とりあえずmail()でやってみ

332 :お願いします。:2008/03/04(火) 01:36:30 ID:G7JIaGfr
SendMail.html の中に存在しないcssを参照する不要なタグが存在した為、
再度メールをWEBページより送信してみたところ、エラーログには何も表示され
なくなりました。

送信先メールアドレスには、自宅(hogehoge@m2.gyao.ne.jp)
を指定しています。
また、CentOS5に付属のメール送信ソフトより自分のメールアドレス
にメールを送信したところ正常にメールは届きます。
※また、143番ポートは正常に開放されています。




333 :nobodyさん:2008/03/04(火) 01:37:53 ID:KsHjc6mm
2008-03-04 01:40:00 のように、秒までのデータをタイムスタンプに
変換したいのですが、どうすればいいのでしょうか?
やはり分解して、mktimeにするしかないのでしょうか?

334 :お願いします。:2008/03/04(火) 01:44:49 ID:G7JIaGfr
>>331
phpのインストールについては「LAMサーバ構築」という雑誌を
参考にしてインストールしてました。。。

php.ini 内でメールサーバ回りの詳細な設定は行っていませんでした
ので、ちょっと設定ファイルを確認してみます。

335 :nobodyさん:2008/03/04(火) 01:46:00 ID:???
>>333
>>297

336 :nobodyさん:2008/03/04(火) 01:49:48 ID:???
>>335
ありがとうございます。上手くできました。

337 :お願いします。:2008/03/04(火) 01:50:57 ID:G7JIaGfr
【php.ini】の中身です。

[mail function]
; For Win32 only.
SMTP = localhost
smtp_port = 25

; For Win32 only.
;sendmail_from = me@example.com

; For Unix only. You may supply arguments as well (default: "sendmail -t -i").
sendmail_path = /usr/sbin/sendmail -t -i


メールサーバを、qmail に変更したので上の記述を変更する必要がある様
に思うのですが具体的にはどうすれば良いでしょうか?
お教え願います。




338 :nobodyさん:2008/03/04(火) 02:04:06 ID:???
>>337
そこまでわかっててまだ何を聞くつもりだ
sendmail_path = qmailのパス
にしてapache再起動してみ

それでもわからなかったらちゃんと初心者スレ行くかあきらめろ

339 :nobodyさん:2008/03/04(火) 02:23:17 ID:???
>>309
htmlspecialcharsの第二と第三引数もしていしたほうがより安全と言われている。

340 :お願いします。:2008/03/04(火) 02:27:07 ID:G7JIaGfr
だめだ。。。メールが届かない。


341 :nobodyさん:2008/03/04(火) 04:14:45 ID:???
>>338
system-switch-mailで終わりそうな問題だな

342 :nobodyさん:2008/03/04(火) 08:40:33 ID:???
phpmyadminでいきなり
特権無しになりました

直し方教えてください
連たる鯖なのでコンソールが開けない状況です

343 :nobodyさん:2008/03/04(火) 10:20:42 ID:xFHlt45M
RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php
で、全て./index.phpで実行しているのですが、
__FILE__で取得すると、URLではなく実際に稼動しているスクリプトが表示されますよね。
これはサーバー依存なのでしょうか?
ブラウザによって変化するのであれば__FILE__の使用を控えようと思うのですが・・・。

344 :nobodyさん:2008/03/04(火) 11:07:59 ID:???
>>337
qmailのsendmail-wrapperが /var/qmail/bin/sendmail とか、/optの下あたりにないかい?
which sendmailするとどうなる?
付属のメーラって奴はローカルホストのSMTPで送信するの? それともsendmailコマンドを叩くの?
そもそも送れないってどういうこと? バウンスは返る?
つか、当然最初にメールログは確かめたんだろうね?

謎だらけの質問しやがって...


345 :343:2008/03/04(火) 11:41:43 ID:xFHlt45M
__LINE__が鯖側じゃないと判別する術がないっぽいので、
__FILE__も鯖側の処理と勝手に判断してみます・・・。

別の質問なのですが、
func_get_argsで引数を配列として返しますが、
逆の場合は可能なのでしょうか?

配列をリストにするlistという関数がありますが、
引数の数が不特定なので困ってます。

346 :nobodyさん:2008/03/04(火) 11:43:37 ID:HRhAVQ3q
cakePHPのチュートリアルをコピペして(ブログではなく、認証のほう)
動かしてみたら
Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\cake\app\config\routes.php:1) in C:\xampp\htdocs\cake\cake\libs\controller\controller.php on line 447
というのが出て動きませんでした。
何がおきてるんでしょうか。

windowsXPにxamppをいれて、htdocsにそのままcakeを入れてます。
あぱっちの設定とかは一応したつもりなんですが。

誰か教えてください。

347 :nobodyさん:2008/03/04(火) 11:43:47 ID:???
__FILE__が実行しているファイル名で
__LINE__はその行番号。



348 :nobodyさん:2008/03/04(火) 11:44:36 ID:???
>>346
自分で作ったファイルはある?
あるならそれにBOMついてないか調べてみ

349 :nobodyさん:2008/03/04(火) 11:44:47 ID:???
>>346
どうせ ?>の後か<?phpの前に
改行とかスペースとか入ってんだろ

350 :nobodyさん:2008/03/04(火) 11:46:05 ID:xFHlt45M
>>347
「実行しているファイル名(__FILE__)」のパスを、
クライアントサイドで判断しているのかサーバーサイドで気になっただけです。

__LINE__はサーバーサイドでしか判別できないので、__FILE__も同じと見ていいんですよね。
ってことが知りたかっただけです。

351 :nobodyさん:2008/03/04(火) 11:48:31 ID:HRhAVQ3q
346です。
>>348
すいません。
BOMってなんでしょうか。
googleでしらべたらunicodeがなんとかと書いてありました。
コレでしょうか?

352 :nobodyさん:2008/03/04(火) 11:50:46 ID:???
>>351
UTF-8で保存しているつもりでも、
UTF-8Nという形式で保存していることがある。
UTF-8Nの場合、先頭に3バイト変なものがくっついていて (ごめん、3バイトの内容は詳しく知らない)
headerを実行する前にそれが先に出力されてるから、headerでエラーが出てしまう。

353 :nobodyさん:2008/03/04(火) 11:51:10 ID:HRhAVQ3q
>>349
いま確認してみました。
大丈夫でした。ありがとうございます。

354 :nobodyさん:2008/03/04(火) 11:53:56 ID:HRhAVQ3q
>>352
文字の関係は何回も挫折しているところです。
どう対処すればいいですか。
なんとなく方針を教えて頂けませんでしょうか?

355 :nobodyさん:2008/03/04(火) 11:56:54 ID:???
>>354
何のエディタ使ってるよ
とりあえずTeraPadでいいから起動してみて文字コードが何になってるか調べてみれ

356 :nobodyさん:2008/03/04(火) 12:06:54 ID:HRhAVQ3q
>>355
TeraPadを使っています。
文字コードはUTF-8です。
保存改行コードが自動になっていました。
これが原因でしょうか?


357 :nobodyさん:2008/03/04(火) 12:18:26 ID:???
>>356
ファイル->文字コード指定再読み込み

これでShiftJISにしたら文字化けするよな
そのときに<?phpの前に変な文字化けないか?

358 :nobodyさん:2008/03/04(火) 12:20:21 ID:HRhAVQ3q
>>355
http://www.kashim.com/kanjitranslator/index.html
↑これになんでもかんでもぶっこんで変換したらいけました。
どうやら追加で書き込んだものがBOMありになっていたようです。
絶対自分では解決できませんでした。ありがとうございます。

359 :nobodyさん:2008/03/04(火) 12:25:30 ID:HRhAVQ3q
>>357
BOMありにしてEUCにしたときに「鏤深?php」となっていました。
いまいちBOMがなんなのかはよくわかりませんがこういうことがあるんですね。
勉強になります。ありがとうございました。

360 :nobodyさん:2008/03/04(火) 12:38:35 ID:???
仕様変更の理由は大きく分けて二つあると思う。
一つは客の気まぐれ。そして、もう一つはSEの見通し不足。

今話題になっている話に例えれば、
日本の最高裁判所が出して判断が後になって間違ったことに気付いたが、
一事不再理の原則によって、判決の変更はできない。
そこで、主権が違うアメリカに依頼してもう一度裁判をやってもらうことにした。
たしかに、法理論的には裁判権はアメリカにあるし、他国の一事不再理による制約を受けないことは言うまでもない。

しかし、国権の最高機関である最高裁判所が出した判決を日本政府の勝手な仕様変更で、
アメリカの手を借りて裁判をやり直すことができるのか。
私は、鳩山邦夫法務大臣にこの件について聞いてみたくなった。

361 :nobodyさん:2008/03/04(火) 12:43:35 ID:???
>>360
ちょっと勉強になった。

362 :nobodyさん:2008/03/04(火) 13:30:30 ID:???
>>360
「SEの気まぐれ」ってのもあるぞ

363 :nobodyさん:2008/03/04(火) 13:37:36 ID:???
>>362
その隣にある「いたずらPMの無理難題な落とし物」というのは
どういった類の食い物なのかね。

364 :nobodyさん:2008/03/04(火) 14:03:01 ID:???
せんせー質問
Aサーバにあるディレクトリを丸ごと、別のBサーバにアップしたいです。

PHPで出来ますか?
Aサーバのログイン情報とBサーバのログイン情報は持ってます。

365 :nobodyさん:2008/03/04(火) 14:11:22 ID:???
>>364
>>7

できる

366 :nobodyさん:2008/03/04(火) 15:07:32 ID:???
ネットワークエンジニアやりつつ簡単なPGをphpで書いているが、
webプログラマーの技術レベルはなんでこんな低いんだろう。

同じ経験年数のwebプログラマーとネットワークエンジニアで比較すると、
明からにレベルが低い。webは、適当にやっていても動くことは動くからか?

このスレだけかと思ったが、Javaスレでの議論もレベル低すぎ。web全体がまだまだ。

367 :nobodyさん:2008/03/04(火) 15:11:51 ID:???
そうだね。 で、質問は何?

368 :nobodyさん:2008/03/04(火) 15:13:33 ID:???
そりゃ、ネットワークに比べたら、
ウェブなんてほんの10数年前に生まれたようなものだからな。

色んなものが変わりまくっているのだから仕方が無い話。

あとウェブが適当のやっていても動くものと勘違いしている人。
そう考えている人もレベルが低い。

369 :nobodyさん:2008/03/04(火) 15:22:14 ID:???
> あとウェブが適当のやっていても動くものと勘違いしている人。
> そう考えている人もレベルが低い。

いやむしろお前のレベルが。

ネットワーク負荷を全く考えないプログラム。(ネットワークエンジニアの努力が水の泡)
セキュリティーが穴だらけのプログラム。(ネットワークエンジニアの努力が水の泡)
メモリー浪費しまくりのプログラム。(余計なHWの出費。コスト意識の低さか?)
HTMLの仕様のいい加減さ。ブラウザ制作会社の実装が悪いらしいが。
・・・

370 :nobodyさん:2008/03/04(火) 15:27:41 ID:???
( ´ω`)今は、ネットワーク負荷とか、メモリー浪費とか、そんなのどおでもいいんだお!
一番高いのは人件費なんだから、ハードウェアで細かい事言う時代じゃないお( ^ω^)


371 :nobodyさん:2008/03/04(火) 15:27:48 ID:???
あともう一つ大事な点。

処理速度を全く気にしないプログラム。

この画面が重くてもしょうがない、とか訳ワカメです。
 
 動けばいいで飯を食べていけるwebの技術者って何?
 バグばっかりだし。こんな奴らと組んで仕事すんのストレスたまるわ。

372 :nobodyさん:2008/03/04(火) 15:29:10 ID:???
>>366 はコピペじゃないなら、かわいそうな人なんだからほっとけよ。 

373 :nobodyさん:2008/03/04(火) 15:31:23 ID:???
そりゃネットワークと違ってある程度適当でも動くからな。
ネットワークは基盤、WEBプログラムは娯楽も含む幅広さがある。
基本的に基盤に遊びもミスも許されない、娯楽は何でもあり。

相対的にミス出来ない基盤には能力が高い人しか生き残れない。
WEBプロウグラムは上から下まで裾野が広い。

役割の違いだろ。
比べるもんでもない。
大体人の仕事をうんぬん言う奴なんて、その程度。

374 :nobodyさん:2008/03/04(火) 15:46:26 ID:???
WEBのリンク切れ → リンク間違っていましたね。直しときます〜。軽ッ

ネットワークのリンク切れ → 全然繋がんねーよ、どうなってんだよ!!!

375 :ミミ:2008/03/04(火) 16:39:27 ID:/crDQgGy
PHP でローカル変数の一覧を取得することはできますか?
グローバル変数であれば $GLOBALS ですが。。。

376 :nobodyさん:2008/03/04(火) 16:59:22 ID:???
>>375
「php 変数 一覧」でググッたら一発だったが?

377 :nobodyさん:2008/03/04(火) 17:01:34 ID:???
phpinfo();

378 :ミミ:2008/03/04(火) 17:03:24 ID:/crDQgGy
>>376
もしかして get_defined_vars() のこと?
それはローカルだけを取り出してくれないからダメなの。

379 :nobodyさん:2008/03/04(火) 17:10:19 ID:???
>>378
なら書いておけばいいのに・・。
ローカルだけ取り出せないかな。


380 :nobodyさん:2008/03/04(火) 17:12:48 ID:???
get_defined_varsのうち$GLOBALでissetされてれば表示しない って関数を自作

381 :nobodyさん:2008/03/04(火) 17:13:26 ID:???
書き方間違った、ローカル変数以外を取り除けばいいじゃない?
他は決まった値のように見えるけど・・。
試してないからなんとなくだけどね。

382 :nobodyさん:2008/03/04(火) 17:19:42 ID:qMhs4IBH
もの凄く下らないんですが教えて下さい。
microtime()の使い方なんですが、
>0.22720000 1204618533
このような値が返ってきますが、どうやって使えばいいんでしょうか?
作業の経過時間を計測したいんですが。

383 :nobodyさん:2008/03/04(火) 17:22:17 ID:???
>>382
半角スペースで区切って
前がマイクロ秒、後ろがtime()と同じやつだ

384 :nobodyさん:2008/03/04(火) 17:22:20 ID:???
>>382
余りにもくだらなくて警察に通報しようと思ったよ。
microtime()は、その名前の通りマイクロ秒を表示する関数。

1秒は、1000ミリ秒
1ミリ秒は、1000マイクロ秒

ここまで言えば馬鹿でも分かるよな?


385 :nobodyさん:2008/03/04(火) 17:23:29 ID:???
こんなのもある。
http://pear.php.net/manual/ja/package.benchmarking.benchmark.timer.php

386 :nobodyさん:2008/03/04(火) 17:35:46 ID:l1KE8Zjp
>>248
なるほど。助かりました。


387 :ららら:2008/03/04(火) 18:06:18 ID:/crDQgGy
助けてなのら!
$n = (int) func1();
$flag1 = ($n == 0);
$flag2 = ($n != 0);

とした後、デバッグのために値を確認したら、
print "flag1 = $flag1 <br>";
print "flag2 = $flag2 <br>";

flag1 は 1 となるのに、flag2 のほうは何も表示されないのら。
なんでなのら?! 0 になるんはずじゃないのかなのら!

388 :nobodyさん:2008/03/04(火) 18:16:11 ID:???
>>387
お前は旧作のドラえもんか
http://www.php.net/manual/ja/language.types.string.php#language.types.string.casting

389 :nobodyさん:2008/03/04(火) 18:23:19 ID:???
>>387
ひとまず返ってきた値をvar_dumpぐらいしたらどうか

390 :nobodyさん:2008/03/04(火) 18:31:48 ID:???
情報小出し厨は死ねよ。

391 :nobodyさん:2008/03/04(火) 18:33:55 ID:qMhs4IBH
>>383
ありがとうございます。

>>384
こういう偉そうな奴って大抵底辺だんだよな・・・

>>385
なるほど!そんな便利なのがあるんですね!
ありがとうございます!

392 :ららら:2008/03/04(火) 19:20:32 ID:/crDQgGy
>>389
var_dump ?そういうものがあるのかー。
var_dump($n) としてみたら、次のようになったよ。

bool(false)

ブール値は文字列に変換すると空になるのかー。
ふむふむぅ〜。

393 :nobodyさん:2008/03/04(火) 21:42:20 ID:???
文字列falseを論理型のfalseに変換するにはどうしたらいいんでしょうか?

$test = "false";
if(!変換関数($test)){
  print 'falseになったよ'
}

でprint文が表示されるようにしたいのです。

394 :nobodyさん:2008/03/04(火) 21:48:10 ID:???
function toBool($str)
{
return $str==='false' ? false : true;
}

395 :393:2008/03/04(火) 22:08:28 ID:???
>>394
ありがとうございます。
phpのデフォルトの関数に変換関数はないんですね・・・

true falseの代わりに0と1を使うことにします。

396 :nobodyさん:2008/03/05(水) 01:50:21 ID:???
PHPって誰が何のために作ったの?
何か人の知性を退化させようとする陰謀めいたものを感じるんだけど
馬鹿にはPHPを使わせて、
他の人はもっとまともな言語で仕事をして差をつけてるんじゃないの?

397 :nobodyさん:2008/03/05(水) 01:54:05 ID:???
>>396
ググレカス!

398 :nobodyさん:2008/03/05(水) 02:03:25 ID:???
>>396 >>7

399 :nobodyさん:2008/03/05(水) 02:05:48 ID:???
仕事でphpしかやってないヤツなんていないからそんな心配は無用だよ。

400 :nobodyさん:2008/03/05(水) 02:30:12 ID:???
>>399
アホか結構いるぞ、phpでしか自社サービスやってないところとかもあるし。
煽りにマジレスごめんな。

401 :nobodyさん:2008/03/05(水) 03:56:25 ID:???
>>400
お前いい加減にしろよ。
独善的で他の言語を徹底的に弾圧しようとするのは、創価学会会員そっくりだなw

402 :nobodyさん:2008/03/05(水) 04:03:41 ID:???
>>401はなんでキレているのだろう

403 :nobodyさん:2008/03/05(水) 04:31:26 ID:???
>>402
別に切れてはいない。
ただ、個人の価値観はお互い尊重されるべきだということ。
phpだろうと、javaだろうと、仕様が実現できればいい話。
優越をつける必要もない。

404 :nobodyさん:2008/03/05(水) 04:35:43 ID:???
俺が前居た会社はphpオンリーだったな
まぁ趣味でJavaとC#やってたけど

405 :nobodyさん:2008/03/05(水) 05:27:29 ID:???
>>403
というか>>400が責められる理由がよく分からんがw

406 :nobodyさん:2008/03/05(水) 06:03:06 ID:???
全くだ。春休みボケした勘違いちゃんか。

407 :nobodyさん:2008/03/05(水) 06:12:50 ID:???
>>404
会社によるが普通は逆だな。
業務では使わないし趣味でやってて、
手軽さから社内で使うちょっとしたものならPHPで実装なんてことはある。
PHPは金にならないから、PHPオンリーってとこは零か小規模で細々やってるとこだろう。
うちも小規模だが、PHPの仕事はないなぁ。

まぁ業務視点はどうでもいいとして、
PHPはhtmlに直接書けるから、直感的にWebデザイナーにも受け入れられやすい、
デザイナー向けの言語といったところではないだろうか。
環境構築の手軽さからも、次のステップへ進むための入門用言語としてもいいかもしれない。
(個人的には逆にわかりづらくなりそうな予感もするが)

408 :nobodyさん:2008/03/05(水) 07:21:39 ID:???
>>407
phpを殆ど使ったことの無いような人の意見だな
まぁPHPは小規模案件多いけど大規模な構築事例もある
addons.mozilla.orgやyahooもだっけか

確かにhtmlは直接書けるが
そんな風にごちゃ混ぜで書くと解りにくいソースになって
後でメンテし難くなる
phpでシステム作ってる所は普通にフレームワークとか使ってやってるので
デザイナーはviewしか殆ど書く事ない

簡単な書き方もできれば、
普通にJavaとかのような書き方もできるのがPHP

409 :nobodyさん:2008/03/05(水) 07:27:41 ID:???
php使ったサイトは割りと多いけど、どうみても作ってるのがスキルないんだよな。
エスケープミスとか素人ミスが多かったり、phpのソースがhtmlに出ちゃってたり。
某MMOの運営会社なんてひどいぜ。
どういうやつがコーディングしてるんだよw

410 :nobodyさん:2008/03/05(水) 07:49:13 ID:???
>>403
×優越
○優劣

411 :nobodyさん:2008/03/05(水) 08:15:31 ID:???
>>400のアホかという余計な一言はよくないにしろ
言語弾圧なんてしてるようにはちっともさっぱりこれっぽちも見えないが

412 :nobodyさん:2008/03/05(水) 08:25:08 ID:???
addonsaddonsそればっかうるせーなw
ケーキペチパー落ち着けよ

413 :nobodyさん:2008/03/05(水) 09:42:25 ID:LSCm3THv
public function getParam()
{

$array = func_get_args();
$this->Params = $array;

}

public function text_dump($text1, $text2, $text3)
{

echo $text1."\n";
echo $text2."\n";
echo $text3."\n";

}

取得したパラメータを、別のメソッド(text_dump)で使用したいのですが、
引数の数が変動する場合に、何か良い振り分け方法はありませんか?

414 :nobodyさん:2008/03/05(水) 11:27:24 ID:???
>>413
引数の処理が同じ処理なら
パラメーターを配列かし、text_dump再帰処理をtext_dumpで書けば良いと思う

415 :nobodyさん:2008/03/05(水) 13:48:01 ID:???
>>413
それこそfunc_get_args使えよw
function test_dump() {
  $ary = func_get_args();
  foreach ($ary as $value) {
    var_dump($value);
  }
}

416 :nobodyさん:2008/03/05(水) 13:48:08 ID:???
>>409
phpは入門しやすい言語だから幅広いレベルの人間がいる。
だからなんだというのだろう・・。

417 :nobodyさん:2008/03/05(水) 17:35:53 ID:???
javaなんかごちゃごちゃインストールしまくりでやってられない
おなじことができるならphpでいいじゃん

418 :nobodyさん:2008/03/05(水) 18:33:53 ID:???
PHPの人気はCの人気と近いと思うな。
共通点として、無理が通せてしまう言語ってこと。

419 :nobodyさん:2008/03/05(水) 18:44:16 ID:JDEU3z4H
<?php include_once("php/header.inc"); ?>
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?>


上記をxhtmlファイルの先頭に書いてるんですが、
web上のページを見てみると、先頭に改行が入ってしまってエラーが出ます。
先頭に改行が入らないようにするにはどうすればいいのでしょうか?

420 :nobodyさん:2008/03/05(水) 18:51:05 ID:???
で?エラー文なしでエスパーしてもらえと?

421 :nobodyさん:2008/03/05(水) 18:58:02 ID:???
PHP+Mysqlで書籍検索システムを作っています。

検索フォームには
・書籍タイトル
・著者名
・出版社名
があります。

それで、文字列が入力されているフォームのみ、
クエリに条件として追加したいのです。

たとえば、書籍タイトルだけが入力されている場合は
SELECT * FROM books WHERE title = %s〜
書籍タイトルと著者名が入力されている場合は
SELECT * FROM books WHERE title = %s AND author = %s〜
としたいのです。

どうかご教授下さい。

422 :419:2008/03/05(水) 18:58:51 ID:JDEU3z4H
すみません、エラー文です。

XML パースエラー: 外部実体の初めに XML 宣言がありません。
行番号: 2, 列番号: 1:

423 :nobodyさん:2008/03/05(水) 19:03:29 ID:???
なんで1行目に改行があると判断したのかkwsk

424 :419:2008/03/05(水) 19:11:14 ID:JDEU3z4H
>>423
ソースを見ると

>
><?xml version="1.0" encoding="UTF-8"?>
><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

となっていたからです。
">"は引用符です。

425 :nobodyさん:2008/03/05(水) 19:15:00 ID:???
>>421
そんなのNULLで無い時に、その条件を足してやりゃいいだけじゃん。

426 :421:2008/03/05(水) 19:21:56 ID:???
即レスありがとうございます。

条件を足す方法というのは
if文でチェックして
.= で追加すればよいのでしょうか?

427 :nobodyさん:2008/03/05(水) 19:28:38 ID:???
すいません初歩的な質問で申し訳ないのですが

$ccc = @$_POST['aaa'] && @$_POST['bbb'];

のような文の「@$」ってどういう意味でしょうか?
$の前に@が付いているのは初めて見ました。
どなたかご教示いただけると幸いです。

特殊文字は検索がしにくい・・

428 :nobodyさん:2008/03/05(水) 19:31:53 ID:???
>>427
http://jp.php.net/manual/ja/language.operators.errorcontrol.php

429 :nobodyさん:2008/03/05(水) 19:33:19 ID:???
>>426
YES
それと質問時はIDを出しましょう。

430 :427:2008/03/05(水) 19:33:31 ID:???
おおっ
ありがとうございます!

431 :nobodyさん:2008/03/05(水) 21:47:04 ID:???
>>419
php/header.incの中身が
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?>
ってこと?

432 :419:2008/03/05(水) 22:00:52 ID:JDEU3z4H
>>431
いえ、違います。

<?php include_once("php/header.inc"); ?>
<?php echo "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n"; ?>

この2行をxhtmlファイルの先頭に書いてあります。
header.incには他のことが書いてあります。

433 :nobodyさん:2008/03/05(水) 22:05:11 ID:???
>>432
incファイルの中で空行を出力しているかBOM

434 :nobodyさん:2008/03/05(水) 22:13:08 ID:???
>>432
中身は<?php ?>の空のheader.incを使って再現してみたが、
俺の環境では問題なし。
おそらくサーバ側の問題。
xrea無料あたりの広告を自動挿入されるようなサーバ使ってるならそれが怪しい。

435 :337:2008/03/05(水) 22:20:40 ID:uqdrOXeC
qmailでのメール送信が出来ない件についてー1


>>344
>qmailのsendmail-wrapperが /var/qmail/bin/sendmail
>とか、/optの下あたりにないかい?
確かにその階層に、「sendmail」というファイル(?)は存在していました。
また、現在のphp.iniのメール回りの設定は、次の様に記述しています。
現在、
   sendmail_path = /var/qmail/bin/qmail-inject
としている記述を
   sendmail_path = /var/qmail/bin/sendmail
にすれば良いのでしょか?
※一応こちらも例しましたが送信出来ませんでした。


436 :nobodyさん:2008/03/05(水) 22:26:50 ID:knvJCigj
しつもん。
置換文字列が見つからないときに元の文字を返す置換変数ってありませんか。
str_replaceとか失敗したら返り値がfalseになるじゃないですか。

正規表現使わないときにpreg_replaceは止めろ、ってマニュアルに書いてあるから
その通りにしようと思ったのにうまくいかないじゃん。

結局今はif(strpos()){str_replace();}みたいなことやってます。

437 :337:2008/03/05(水) 22:27:20 ID:uqdrOXeC
qmailでのメール送信が出来ない件についてー2

>>344
>which sendmailするとどうなる?
[hoge@localhost ~]# which sendmail
/usr/sbin/sendmail
でした。

現在、使用している(標準でCentOS5についていた)メールソフトは、
Evolutionであり、こちらは現在契約しているプロバイダのSMTP(POP)サーバを
指定してメールは送信しています。



438 :nobodyさん:2008/03/05(水) 22:38:45 ID:???
phpやってると脳が腐りそうになるってのは同意
言語に罪はないが利用者が酷い

関数すらろくに作れないヤツが殆どだからなぁ

439 :nobodyさん:2008/03/05(水) 22:42:36 ID:???
>>432
過去に、UTF-8のファイルを使っているエディタ以外で開いて保存して
同様の現象が出たことあります。
ファイルの文字コードを調べるツールで確認してみてはどうですか?

面倒だったら
1.そのファイルを移動
2.元の場所に同名のファイルを作成
3.エディタでそのファイルを開き、移動したファイルの内容をコピー
で直りませんかね?

440 :419:2008/03/05(水) 22:57:19 ID:JDEU3z4H
>>433
>>434
>>439
皆さんありがとうございます。
余計な改行と空白があったみたいでして、
文字コードをUTF-8Nにして改行と空白を削除しましたら無事に表示されました。
.htaccessと同じように最後の行は改行しなくてはならないと思い込んでいました。
こんな初歩的なことでスレを使ってしまい申し訳ありませんでした。

441 :nobodyさん:2008/03/05(水) 23:50:49 ID:???
phpの閉じタグは
htmlと混ぜて書いている時意外書かない方がいい

442 :nobodyさん:2008/03/06(木) 00:06:00 ID:???
mb_ereg() と mb_ereg_search_regs() の使い分けが分からない

443 :337:2008/03/06(木) 00:12:48 ID:eYOrPk/W
php(WEBページ)から再度、メールを送信しログを確認したところ
次の様なエラーログが吐かれていました。
事象について、ぐぐったのですが何もヒットしません。
qmail+phpで正常にメール送信が出来ている方がいましたら、助けて下さい。

エラーメールログー1
Mar 6 00:02:08 localhost qmail: 1204729328.505456 new msg 19727037
Mar 6 00:02:08 localhost qmail: 1204729328.505530 info msg 19727037: bytes 266 from <anonymous@localhost.localdomain> qp 3412 uid 48
Mar 6 00:02:08 localhost qmail: 1204729328.507171 starting delivery 5: msg 19727037 to remote hogehoge@hogehoge.gyao.ne.jp
Mar 6 00:02:08 localhost qmail: 1204729328.507233 status: local 0/10 remote 1/20
Mar 6 00:02:08 localhost qmail: 1204729328.511988 new msg 19727040
Mar 6 00:02:08 localhost qmail: 1204729328.512133 info msg 19727040: bytes 338 from <anonymous@localhost.localdomain> qp 3414 uid 48
Mar 6 00:02:08 localhost qmail: 1204729328.518935 starting delivery 6: msg 19727040 to remote hogehoge@hogehoge.gyao.ne.jp
Mar 6 00:02:08 localhost qmail: 1204729328.519187 status: local 0/10 remote 2/20
Mar 6 00:02:08 localhost qmail: 1204729328.802970 delivery 6: failure: Connected_to_125.63.38.26_but_sender_was_rejected./Remote_host_said:_550_unrouteable_sender_address/
Mar 6 00:02:08 localhost qmail: 1204729328.803198 status: local 0/10 remote 1/20
Mar 6 00:02:08 localhost qmail: 1204729328.809493 bounce msg 19727040 qp 3417
Mar 6 00:02:08 localhost qmail: 1204729328.809645 end msg 19727040
Mar 6 00:02:08 localhost qmail: 1204729328.810220 delivery 5: failure: Connected_to_125.63.38.26_but_sender_was_rejected./Remote_host_said:_550_unrouteable_sender_address/


444 :337:2008/03/06(木) 00:13:31 ID:eYOrPk/W
エラーメールログー2
Mar 6 00:02:08 localhost qmail: 1204729328.810354 status: local 0/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.810420 new msg 19727045
Mar 6 00:02:08 localhost qmail: 1204729328.810477 info msg 19727045: bytes 973 from <> qp 3417 uid 507
Mar 6 00:02:08 localhost qmail: 1204729328.818246 starting delivery 7: msg 19727045 to local anonymous@localhost.localdomain
Mar 6 00:02:08 localhost qmail: 1204729328.818474 status: local 1/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.822610 bounce msg 19727037 qp 3418
Mar 6 00:02:08 localhost qmail: 1204729328.822753 end msg 19727037
Mar 6 00:02:08 localhost qmail: 1204729328.857829 new msg 19727044
Mar 6 00:02:08 localhost qmail: 1204729328.858247 info msg 19727044: bytes 901 from <> qp 3418 uid 507
Mar 6 00:02:08 localhost qmail: 1204729328.861612 starting delivery 8: msg 19727044 to local anonymous@localhost.localdomain
Mar 6 00:02:08 localhost qmail: 1204729328.861752 status: local 2/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.861831 delivery 7: success: did_0+0+1/
Mar 6 00:02:08 localhost qmail: 1204729328.861906 status: local 1/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.861968 end msg 19727045
Mar 6 00:02:08 localhost qmail: 1204729328.868252 delivery 8: success: did_0+0+1/
Mar 6 00:02:08 localhost qmail: 1204729328.868471 status: local 0/10 remote 0/20
Mar 6 00:02:08 localhost qmail: 1204729328.868569 end msg 19727044

445 :337:2008/03/06(木) 00:17:58 ID:eYOrPk/W
※補足
因みに、qmail用に作成したユーザに対して次のコマンドを実行すると
正常に送信出来ています。(ローカルへの送信はOKと言う意味。)

[root@localhost ~]# /var/qmail/bin/qmail-inject
to:localhogeuser
<Ctrl + D>

なぜ、外部メールアドレスへの送信は出来ないのでしょうか?

446 :nobodyさん:2008/03/06(木) 00:26:02 ID:???
>>337
あとはこっちで頑張ってね

qmailいろいろ(8)
http://pc11.2ch.net/test/read.cgi/unix/1163326021/

447 :nobodyさん:2008/03/06(木) 01:59:19 ID:F9M1Wqca
print 8000000000 % 100;

これプリントしてみ?
結果がおかしいんだが・・・

因みにこっちの環境では47と出る・・・

バグ?

448 :nobodyさん:2008/03/06(木) 02:33:56 ID:???
まぁプログラムする側もintの値域超えないように考えてプログラムしろってことなんだろ

449 :nobodyさん:2008/03/06(木) 04:17:20 ID:F9M1Wqca
>>448
ヒントdクス
intの値域は2147483647までなのね。

しかし、
print 8000000000 / 100;
をすると80000000とちゃんと出力されたんだが・・・

450 :nobodyさん:2008/03/06(木) 09:11:34 ID:???
すんごい 基礎でつまってるんですけど。
<html>
<body>
<?php print "hello php! " ; ?>
</body>
</html>
でこれで hello php! ってブラウザに出力したいんですけど、なぜか
でないんです。テラパッドに書き込んでIEブラウザで読み込んでるんですけど
動かないんです。どなたかご教授いただければ、幸いです。

451 :nobodyさん:2008/03/06(木) 09:24:06 ID:???
拡張子はphpにしてる?
まさかphpがインストールされてないとかそういうわけじゃないよね?

452 :nobodyさん:2008/03/06(木) 09:29:06 ID:???
まずapacheとかのHTTPサーバを組み込んだ?
いくらPHPはHTMLに似ているからと言って
IEだけじゃPHPは動かないぞ。



453 :nobodyさん:2008/03/06(木) 10:13:06 ID:???

xamppでapache php mySQLとかはダウンロードして インストールして
起動させてるんで ブラウザからlocalhostのページもみれるんでたぶん
動いてるとおもうんですけど・・・。拡張子もphpにしてみたけど、だめです。


454 :nobodyさん:2008/03/06(木) 10:21:27 ID:???
拡張子phpにしてもブラウザからみれば アドレス側の名前の最後php.txt
になってるみたいなんですが、これ原因ですかね?

455 :nobodyさん:2008/03/06(木) 10:24:26 ID:???
>>454
ひどいオチだな。拡張子表示するようにしなよ。
メモ帳系のソフトは登録されていない拡張子だと後ろに.txtをつけることがある。
保存するときにファイルの種類をすべてのファイルにしてからphpとうつか、
txtで保存したあと拡張子を変えるかでいける。

456 :nobodyさん:2008/03/06(木) 10:42:16 ID:???
452さん
453さん
455さん ありがとうございました。拡張子の付け替えうまくいきました。
前進したようです。
でもこんどは読み込むとブラウザの画面が真っ白なページになってしまいまし
た。orz

457 :nobodyさん:2008/03/06(木) 15:23:36 ID:???
もういいよ

458 :nobodyさん:2008/03/06(木) 16:26:01 ID:???
ありがとうございました。もうすこし自分で調べてきます。

459 :nobodyさん:2008/03/06(木) 17:07:58 ID:???
拡張子表示すら知らない人がやるんだから、PHPの裾野の広さは色んな意味で恐ろしいほど広いよな・・。

460 :nobodyさん:2008/03/06(木) 17:14:18 ID:???
そんなヤツらが毎年入社してくるんだよ。何とかしてくれ。。

461 :nobodyさん:2008/03/06(木) 17:14:34 ID:???
いやどちらかと言えば俺はそのほうがいいと思うよ。技術は使われるものじゃなくて使うもの

462 :nobodyさん:2008/03/06(木) 17:23:34 ID:???
拡張子のことを知らない人は、論理的な思考が出来ないということでもないから、気にする事でもない。

463 :nobodyさん:2008/03/06(木) 18:31:19 ID:???
>>456
PHPスクリプト自体、htdocsに入れてるか?

464 :nobodyさん:2008/03/06(木) 18:44:43 ID:???
携帯電話からメールがきた際、返信メールを返すシステムを構築しているのですがドコモからきたメールを返してくれません。

状況としてはこんな感じです。
ドコモのメールアドレス(ユーザアカウント部分)にドットが含まれている(auのアドレスには含まれていない。)
mail関数で返信している。
メールアドレスは正常に取得できている。(送信前にtoをvar_dumpしてみました)

お願いします。

465 :nobodyさん:2008/03/06(木) 18:45:48 ID:???
その手の質問はphpばかりやっているから。
もう少し、言語に依存しないプログラムの基本的な理論や
プログラムの設計理論について学ぶべきだよ。

基礎ができていないプログラマーは、
いつも行き当たりばったりで、
自己解決がいつまで経っても出来ないからね。

466 :nobodyさん:2008/03/06(木) 18:48:13 ID:???
>>464
どのように返しているの?
cronかメ鯖か

467 :nobodyさん:2008/03/06(木) 18:51:51 ID:???
>>464
>>7

468 :nobodyさん:2008/03/06(木) 18:53:56 ID:???
>>464さん
耳が痛いです。。。
そろそろ基礎から学ぶべきだとは思ってます。

>>466さん
メ鯖で返してます。
メールが来たらforwardして
ログみるとPHP側にはわたっているデータは残ってるんでmail関数が怪しいと思ってます。


469 :nobodyさん:2008/03/06(木) 18:55:19 ID:???
>>467さん

なんどもすみません。

環境
OS:Fedora Core5
Mail:postfix
php5
です。

470 :464:2008/03/06(木) 19:11:43 ID:???
自己解決しました。。。。
受信拒否解除してなかっただけでした。

すみません_| ̄|○ il||li


471 :nobodyさん:2008/03/06(木) 19:14:56 ID:???
どうせそんな事だろうと思ったよ

472 :nobodyさん:2008/03/06(木) 19:21:02 ID:???
>>471
何も答えない癖に、何言っていんのこの馬鹿?

開発会議で全然発言しなかったくせに、
開発途中で設計に変更の必要がでると、
「やっぱり、その設計はまずかっただろう」
とか誇らしげに言っているF次長と一緒。

まったくウザイ。どうしてこんな奴が次長の椅子に座っているの?
どうなっても知らんよ。

473 :nobodyさん:2008/03/06(木) 19:50:21 ID:???
それをF次長に直接言えるようになるといいね。

474 :nobodyさん:2008/03/06(木) 20:08:40 ID:???
>>468
「そろそろ基礎から学ぶ」という発言に違和感を覚えないようなら相当やばいと思う。
今すぐ行動すべき。でないと手遅れになる。

475 :nobodyさん:2008/03/06(木) 20:15:14 ID:???
基礎もわからず応用から入れる人って
ある意味羨ましい

476 :nobodyさん:2008/03/06(木) 22:17:38 ID:???
ここでいう基礎が不明確だな。SICP終わったくらいか

477 :nobodyさん:2008/03/06(木) 22:30:00 ID:???
基礎と言えば「BASIC」

478 :nobodyさん:2008/03/06(木) 22:45:26 ID:???
まずは機械語の理解からだろ

479 :nobodyさん:2008/03/06(木) 22:55:55 ID:???
今更mov ax,0とかld a,0なんてできんわぁ

480 :nobodyさん:2008/03/06(木) 23:14:26 ID:???
で、お前らはnoticeエラーもきちんと処理してんのか?

481 :nobodyさん:2008/03/06(木) 23:21:40 ID:???
>>480
またお前か。下らんことばっかきいてんじゃねえよ。

482 :nobodyさん:2008/03/07(金) 00:27:41 ID:???
普通は処理する

483 :nobodyさん:2008/03/07(金) 01:05:07 ID:???
逆に、そんなにnoticeって出る??
どういうとこで出るんだろ。


484 :nobodyさん:2008/03/07(金) 01:18:39 ID:???
きっちり書いてればでないよ
一番多そうな例としては
<?php
$hoge = $_GET['hoge'];

こんな風にいきなり書く場合が多いんじゃないかな

485 :nobodyさん:2008/03/07(金) 01:53:29 ID:???
FW使えばok

486 :nobodyさん:2008/03/07(金) 02:37:32 ID:???
すみません初心者質問なのですが

こういうのはecho "<a href=\"$url\">$title<a>;

こうした方がいいのでしょうか?
echo "<a href=\"$url\">".$title."<a>";

487 :nobodyさん:2008/03/07(金) 02:50:08 ID:???
何故$titleだけ

488 :nobodyさん:2008/03/07(金) 02:58:35 ID:dvnvybav
phpでF5キーを押すのと同じ働きをするコマンドはありませんか?

つまりページを再取得するという意味。

489 :nobodyさん:2008/03/07(金) 04:07:02 ID:slLJ/4/b
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
// 「magic_quotes_gpc = On」のときはエスケープ解除
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
}
これの意味がわかりません。
なんでこれでデータをゲットできるの?


490 :nobodyさん:2008/03/07(金) 04:48:49 ID:???
可変変数のことを言ってるのか?どこの意味が分からないのか書かないと人に伝わるわけない

491 :nobodyさん:2008/03/07(金) 05:13:05 ID:???
>>488
コマンドって・・・
PHPは入力などを受け取ってサーバ側で処理をしてブラウザに結果を返すというだけのもの。
現実的なのはPHPでmetaタグのrefreshコード(HTMLの)を出力するとか。
F5と同じ働きをするわけではないが、結果をリアルタイムに取得して表示することが可能なAjaxという技法を使うか。
チャットとかでリアルタイムに表示したいようなものを作るならAjaxが定番。
ページ遷移が行われるmeta refreshによる自動更新はかえって迷惑なのでやめたほうがいい。

492 :nobodyさん :2008/03/07(金) 06:48:34 ID:9kEaF3pZ
PHP初心者です。テキストからドットを取り除く関数はあるのでしょうか。
例)1.2.3.4.5
  ↓
  12345
よろしくお願いいたします。

493 :nobodyさん:2008/03/07(金) 06:58:38 ID:???
>>492
正規表現による置き換え
preg_replaceあたり

494 :492:2008/03/07(金) 07:05:14 ID:???
>>493
早速のレスありがとうございました。

495 :nobodyさん:2008/03/07(金) 07:06:26 ID:???
str_replaceで十分なんじゃないかw

496 :492:2008/03/07(金) 08:20:19 ID:???
>>495
レスありがとうございました。
実際はいくつかの文字変化が必要でしたので次のようにしてみました。
みなさんありがとうございました。

$moji0 = "1.2,3.4,5 6 7" ;
$moji1 = array ("/\./" , "/,/" , "/./" , "/,/", "/ /", "/ /") ;
$moji2 = array ("", "", "", "", "", "") ;
echo preg_replace ($moji1, $moji2, $moji0) ;

497 :nobodyさん:2008/03/07(金) 14:31:43 ID:l69x+LwZ
自分でphpの関数を作ってみようと思うのですが、
作る方法を解説したサイトはありますか?

C++の基礎がやっと分かる程度ですが、
Smartyのpluginのような感じで簡単に追加できるならやってみたいと思います。

498 :nobodyさん:2008/03/07(金) 14:47:17 ID:???
ユーザ定義関数はfunctionで作る
function 関数名(仮引数)
例えばaとbを足したものを返す関数は

function sum($a, $b) {
  return $a + $b;
}

型ありの言語だと
int sum(int a, int b) {
  return a + b;
}
とかになるのかな

http://www.php.net/manual/ja/language.functions.php

499 :nobodyさん:2008/03/07(金) 15:38:41 ID:???
有識者の意見を伺いします。画面にこのようなメッセージが表示されます。
解読願います。

Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
--------------------------------------------------------------------------------

Apache/1.3.34 Server at www.hashimoto-toru.com Port 80

500 :nobodyさん:2008/03/07(金) 15:45:32 ID:???
>>499
アクセス集中時で繋がらないときのメッセージ
通常時間をおけば解消する

っていうかスレ違いだしそんくらいググレ

501 :nobodyさん:2008/03/07(金) 15:47:29 ID:???
>>499
つ http://academy6.2ch.net/english/

502 :nobodyさん:2008/03/07(金) 15:50:14 ID:9kEaF3pZ
PHP初心者です。本日symfonyなるものを知りました。いきなりですが
なんて読むのでしょう。シンフォニーだとスペルがちがいますし。
またPHPのフレームワークにもいくつかあるようですが、主流というのは
あるのでしょうか。よろしくお願いいたします。

503 :nobodyさん:2008/03/07(金) 16:05:26 ID:???
>>500
昨夜更新したときに、何か不具合が発生したのかと思いました。
心より、感謝します。

504 :nobodyさん:2008/03/07(金) 16:08:41 ID:???
>>502
そんなん言ったらPerlだってスペル違うし。

505 :nobodyさん:2008/03/07(金) 16:14:58 ID:???
>>499
橋本さんの所の人なんですか?

公人の場合、こういう場所に書くとき、
色んな事に気をつけたほうがいいと思いますけどね。


余計なお世話ですけど

506 :nobodyさん:2008/03/07(金) 16:35:51 ID:???
更新ってF5のことだろ
政治家のサイトの更新するようなやつがそんな質問するわけないw

507 :nobodyさん:2008/03/07(金) 16:40:13 ID:???
その通りです。互角を招いて申し訳ありません。

508 :nobodyさん:2008/03/07(金) 16:46:35 ID:???
>>507
そうだと思いました。では、この話題はこれでおしまい。

509 :nobodyさん:2008/03/07(金) 16:51:40 ID:???
>>502
Symphonyだと音楽のほうがぱっと思い浮かぶから
Symfonyは単語として存在しない=PHPのフレームワークをさす固有名詞になれる
この名前がそういう理由でつけられたかはわからないが
そういう理由で単語にないものをつけるのはよくあること
商標登録(だっけか?)とかそういうのするときにも使えるしな

日本ではCakePHP Symfonyが特に人気
PHPのフレームワークはソースごとサーバにアップロードすれば動くものなので
人気かどうかを考えるより自分にあったものを使えばよろしい

個人的には和訳ドキュメント量が豊富なのを使うようにしてるけど

510 :nobodyさん:2008/03/07(金) 17:07:00 ID:???
くだらねぇ事だけど、symfonyの先頭は小文字にしような。

511 :nobodyさん:2008/03/07(金) 17:12:20 ID:???
510 :nobodyさん:2008/03/07(金) 17:07:00 ID:???
くだらねぇ事だけど、symfonyの先頭は小文字にしような。

512 :502:2008/03/07(金) 17:13:51 ID:???
皆さんレスありがとうございます。

>日本ではCakePHP Symfonyが特に人気
CakePHPも調べてみます。ありがとうございます。

513 :nobodyさん:2008/03/07(金) 18:39:08 ID:ysjWWEjV
mp3について質問です。

header("Content-Type: audio/mpeg");
$hoge = file('hoge.mp3');

$data = "";

foreach($hoge as $hogehoge) {
$data .= $hogehoge;
}

echo $hoge;

これで
http://www.hogehoge.com/hoge.php?hoge=hoge1.mp3
こんなことできるかなーって思ったんだが
最初の3秒ぐらいしか再生されず。

何故?

514 :nobodyさん:2008/03/07(金) 18:42:20 ID:ysjWWEjV
あ、修正。

最後は
echo $data です。

515 :nobodyさん:2008/03/07(金) 18:52:44 ID:ysjWWEjV
>>513
あ、MP3読み込んでるのにmpegをheaderで指定しているからか。
ありがとうございました。

516 :nobodyさん:2008/03/07(金) 18:57:31 ID:???
関係ないかもしれんが、ばらして結合するぐらいなら、 file_get_contents 使えば?

517 :nobodyさん:2008/03/07(金) 18:59:10 ID:???
むしろ readfile か。
http://jp2.php.net/manual/ja/function.readfile.php

518 :nobodyさん:2008/03/07(金) 19:05:38 ID:???
あると思ってたがやっぱりこんな関数あったんですね。
ありがとうございました。

519 :nobodyさん:2008/03/07(金) 19:15:56 ID:???
欲しいと思う関数がある、それがphp。

こんな偉大な言語はない。
但し、PGになるハズが無かったPGを存在たらしめた副作用も意識しなければいけない。

520 :nobodyさん:2008/03/07(金) 19:28:21 ID:???
緩い関数はあんまり使いたくない。バグの元。

521 :nobodyさん:2008/03/07(金) 19:29:16 ID:???
>>520
例えば?

522 :nobodyさん:2008/03/07(金) 19:30:03 ID:???
理由は分からんがContent-Lengthが必要のようだ。
↓を追加したら最初のコードで問題無く聴けたよ。
header("Content-Length: ".filesize('hoge.mp3'));

しかしまあ>>513のコードはなんか気味悪いな。
改行しないfile関数があってもよさそうだね・・。

523 :nobodyさん:2008/03/07(金) 19:30:53 ID:???
みんな大好きsprintf

524 :nobodyさん:2008/03/07(金) 20:41:02 ID:ysjWWEjV
>>522
ナヌ、そんなに気味悪いのか
http://nyx.pu1.net/function/filesystem/file.html

この辺参考にしたんですがね。

>>522
http://www.phppro.jp/news/75
ここにある「Warning: filesize(): stat failed for dummyfile in ... 」
このエラーが出ました。

どうやら容量が大きいらしく使えませんでした。
とりあえずやりたいことはできたので解決です。
ありがとうございます。

525 :nobodyさん:2008/03/07(金) 22:11:52 ID:d1NS98q0
すいません質問です
PHPで書いたスクリプトを定時に作動させたいのですが、
それってシェルスクリプトというのを書けばいいのでしょうか
それ以外に簡単な方法はないでしょうか

ちなみに扱える言語はPHPだけです

526 :nobodyさん:2008/03/07(金) 22:24:49 ID:???
cron使えばいいんじゃね?


527 :nobodyさん:2008/03/07(金) 22:26:54 ID:l69x+LwZ
>>526
UNIX厨は市ね。

528 :nobodyさん:2008/03/07(金) 22:28:38 ID:???
>>526
私が借りてるサーバーはcronも使えるようです
cronも全くわからないのでやり方調べてきます
ありがとうございました

529 :nobodyさん:2008/03/07(金) 22:32:04 ID:???
テンプレにあるじゃん。はげ

530 :nobodyさん:2008/03/07(金) 22:50:05 ID:???
>>529
こいつ最低。通報した。

531 :nobodyさん:2008/03/07(金) 22:54:58 ID:???
また、2chから逮捕者か

532 :nobodyさん:2008/03/07(金) 23:33:33 ID:???
>>527
情報弱者乙
http://www.kalab.com/freeware/cron/cron.htm

533 :489です:2008/03/08(土) 00:16:04 ID:hakb0/u4
if ($_SERVER["REQUEST_METHOD"] == "POST") {
foreach($_POST as $k => $v){
// 「magic_quotes_gpc = On」のときはエスケープ解除
if (get_magic_quotes_gpc()) {
$v = stripslashes($v);
}
$v = htmlspecialchars($v);
$$k = $v;
}
これでたとえば、html上のフォームのデータ
がすべて受け渡しができる意味がわからないのですが
教えてください。



534 :nobodyさん:2008/03/08(土) 00:25:36 ID:???
>>533
スーパーグローバル変数$_POSTにpostで送られてきたキーと値が格納されるから

535 :489です:2008/03/08(土) 00:38:44 ID:hakb0/u4
ありがとうございます。
magic_quotes_gpc = Onのときはエスケープ解除って
どういう意味?

536 :nobodyさん:2008/03/08(土) 01:41:07 ID:???
magic_quotes_gpc でぐぐればわかるカナ?

537 :nobodyさん:2008/03/08(土) 02:17:31 ID:l7Ped3Na
ファイルアップロードする時に、
参照ボタンを押してダイアログからファイルを選択し開くボタンを押すと
同時にサーバに送る方法はありませんか?

538 :nobodyさん:2008/03/08(土) 02:35:34 ID:???
>>537
javascript

539 :nobodyさん:2008/03/08(土) 02:36:56 ID:???
どっちみち不可能。諦めろ。

540 :nobodyさん:2008/03/08(土) 02:41:08 ID:l7Ped3Na
あれ?出来ないのか。
どっかで見た気がしたんだけどな。

541 :nobodyさん:2008/03/08(土) 02:52:35 ID:???
>>537
PHPだけじゃできないが可能でしょ。
問題は自分で使うならいいが、公開する場合そんなハタ迷惑な実装はやめていただきたいものだな。

542 :nobodyさん:2008/03/08(土) 03:01:01 ID:???
ブラウザにもよると思うが、セキュリティのためかなんかで<input type=file>周りはガチガチに固められてるハズ。
前に>>537と似た内容の要求仕様があったんで、そっくりに作ったFLASHで勘弁してもらったことがある。

543 :nobodyさん:2008/03/08(土) 03:09:07 ID:???
ちょっとしたヤバイファイルホイホイになって面白そうだ

544 :nobodyさん:2008/03/08(土) 04:44:40 ID:???
出来ないのはvalueを設定する事ができないだけ
参照は出来た筈なので
値が変わればpostしてやるjavascriptを動かせば良い

gmailとかでファイル添付しようとしたら自動でアップされるので
それを参考にすると良いんじゃない(JS側だけ)


545 :nobodyさん:2008/03/08(土) 11:59:45 ID:GVJUSgTC
質問します。

xamppをインストールしてphpmyadminにアクセスしようとしているのですが、
エラーが出てしまい、使えなくて困っています。

やったこと:
http://www.apachefriends.org/jp/xampp-windows.html から xampp-win32-1.6.6a-installer.exe をダウンロード・インストール
http://localhost/ にアクセスして「日本語」をクリック
http://localhost/xampp/ の左の一覧から「phpMyAdmin」をクリック
→下記のようなエラーメッセージが表示される。

--- ここから
phpMyAdmin 2.11.4 へようこそ
MySQL サーバに接続しようとしましたが拒否されました。config.inc.php のホスト、ユーザ名、パスワードが MySQL サーバの管理者から与えられた情報と一致するか確認してください
エラー
MySQLのメッセージ:
接続できません: 設定が無効です
--- ここまで

・config.inc.phpを色々いじった
 ・$cfg['Servers'][$i]['user'] = 'root'; の root を root@localhost とか root@127.0.0.1 とか変えてみたり
 ・コマンドラインからmysqlに入って、rootのパスワードを空ではなく適当な文字列にしてみたり
  (それに伴い、$cfg['Servers'][$i]['password'] = '';は変更しています)
  →メッセージに変わりなし

xamppは、インストールするだけで、とくに設定変更なしでphpmyadminも使えたと記憶していたのですが。。。


スレ違いであれば誘導お願いします。


546 :nobodyさん:2008/03/08(土) 12:02:46 ID:???
xamppやめる

547 :nobodyさん:2008/03/08(土) 14:29:42 ID:l7Ped3Na
>>541-544
ご意見どうも。やらねばならない事情がある。

>>544
gmailでやってるのか。参考にしてみます。thx

548 :nobodyさん:2008/03/08(土) 14:35:55 ID:???
とりあえず、このコードは IE7/Firefox2/Opera9/Safari3 で動作した。

<input type="file" onChange="alert('onChange')"/>


549 :nobodyさん:2008/03/08(土) 14:41:15 ID:???
どうでもいい事だけど、
クリックしたら+1されるスクリプトをテストで組んでサーバーに上げて試してみたら
どうしても「+2」ずつとかされて「あれ?おかしいな?」と思っていたら、なぜかグーグルのクローラーに拾われてた。

俺がクリックした瞬間に来るから
おかげでクリックする度に「+1」だったり「+3」だったり明らかに挙動がおかしい・・・

とゆうかサーバーにファイルをあげてから10秒ぐらいでクローラーが巡回しにきたんだが、
一体何なんだ・・・・こえーな・・・

550 :nobodyさん:2008/03/08(土) 14:43:01 ID:i79H3oER
phpで簡単なアクセス解析らしきものを作っています。

アクセス解析.phpを、サイトのトップに<iframe>で表示させて情報を取得させています。
しかしこれだとそのサイトのトップのリファラーしか得られません。
トップにアクセスした時点のリファラーって取得できないのでしょうか?

551 :nobodyさん:2008/03/08(土) 14:44:32 ID:???
>>549
クリックしたらグーグルのクローラーが来ます!ってプログラムで売り出してください。

552 :nobodyさん:2008/03/08(土) 14:46:50 ID:???
>>550
親フレームのリファラ見る

553 :nobodyさん:2008/03/08(土) 14:50:31 ID:???
>>549
自分のコーディングミスを疑わないのか

554 :nobodyさん:2008/03/08(土) 14:53:33 ID:???
>>552
ググったらjavascriptの奴は出てきたんですが、PHPでは出来ないでしょうか?

555 :nobodyさん:2008/03/08(土) 14:54:19 ID:???
>>551
http://hoge.net/index.php?mode=hoge
「↑のURLにアクセスしたら、ログのデータに+1する」っていう感じの10行程度のプログラムだぜ?

>>553
「+1」したPCのログに「66.249.70.232(グーグルのクローラー)」が残ってた。
無論自分だけしか知りえないサーバーで、どこからもリンクは貼られていない。
何回も何回もしつこくきやがる・・・・。何か気味悪い・・・

556 :nobodyさん:2008/03/08(土) 14:54:33 ID:???
スクリプト配布してんの?

557 :nobodyさん:2008/03/08(土) 14:55:25 ID:???
>>555
はいはい陰謀論陰謀論

558 :nobodyさん:2008/03/08(土) 15:03:56 ID:???
>>555
ツールバーが知り得るサーバでした、じゃないの?

559 :nobodyさん:2008/03/08(土) 15:05:02 ID:???
>>557
陰謀論というかちゃんとログが残るように作ってるから、そいつがアクセスしているのは事実なんだけどな。
まぁ、metaタグでクローラーの巡回を禁止にすれば済む話ではあるが、ただちょっと、
誰も知りえない隔離された場所に一人でいたつもりが、予想外の訪問者があってビビッタだけ

560 :nobodyさん:2008/03/08(土) 15:22:11 ID:???
これなのかなぁ。

http://www.google.co.jp/support/webmasters/bin/answer.py?answer=33569&topic=8843

>Googlebot はどのくらいの頻度でウェブ ページにアクセスしますか。
>
>Googlebot は、平均して数秒に 1 回を超える頻度でサイトにアクセスすることはありません。
>ただし、ネットワークの遅延などにより、短期間の間にアクセス頻度がわずかに増えるように
>見える場合があります。



561 :550:2008/03/08(土) 16:11:04 ID:i79H3oER
こういうページを見つけたんですが、
http://wiki.makotokw.com/index.php?Web%2FCGI%2F%A5%A2%A5%AF%A5%BB%A5%B9%B2%F2%C0%CF#k6cd7bc6

CGIの場合について書かれていて、PHPではどうすればいいかわかりません。
エッチな方、教えて下さい。

562 :nobodyさん:2008/03/08(土) 16:19:52 ID:???
それをphpでやる場合は
JSでhoge.phpに

JS側
if (document.referrer == parent.frames.location) {
refer = top.document.referrer;
} else { refer = document.referrer; }
refer = escape(refer);
document.write('<img src="hoge.php?referer=' + refer +'">');

php側
<?php
$ret = null;
if (isset($_GET['referer'])) {
 $ref = $_GET['referer'];
}

ここらへんで$ref似格納してあるリファラの処理

// 以下画像出力
$img = "R0lGODlhAQABAIAAAP///////yH5BAAHAP8ALAAAAAABAAEAAAICRAEAOw==";
header("Content-Type: image/gif");
echo base64_decode($img);

563 :nobodyさん:2008/03/08(土) 16:21:18 ID:???
公式サイトの日本語ドキュメントの訳が間違ってたらどこに言えばいい?

564 :nobodyさん:2008/03/08(土) 16:45:27 ID:???
>>563
チラシの裏にでも書いとけ

565 :550:2008/03/08(土) 16:46:44 ID:i79H3oER
>>562
エッチな人ありがとうございます!
親フレームのリファラ取得に成功しました!

566 :nobodyさん:2008/03/08(土) 18:30:05 ID:???
テキストエリアの中に書かれたURLを抽出して配列に格納したいのですが、
どういった形にすれば実装が可能でしょうか?

例えば
--------------------------------------------
http://aaaaaaaaaa.aaaaaaaaa.aaaaaaa
http://bbbbbbbbbb.bbbbbbbbb.bbbbbbb
ああああああああああああああああああ
http://cccccccccc.ccccccccc.ccccccc
--------------------------------------------
という文字列が入力された場合、
$ary[0]に http://aaa.... を格納。
$ary[1]に http://bbb... を格納。
$ary[2]に http://ccc... を格納。
という具合です。
正規表現でのアプローチ以外は無理と判断してずっと頭を悩ませているのですが、
いくら考えても非常に難解で詰まってしまっています。
宜しくお願い致します。

567 :nobodyさん:2008/03/08(土) 18:41:40 ID:???
>>566
preg_match_all

568 :nobodyさん:2008/03/08(土) 19:07:43 ID:???
>>566
>>7

569 :nobodyさん:2008/03/08(土) 19:08:59 ID:???
正規表現でいいじゃん

570 :nobodyさん:2008/03/08(土) 19:17:23 ID:???
ありがとうございます。

preg_match_all('/^(http?|https)(:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)$/', $strInputDate, $aryURL);

こんな感じで実現できそうです。
多謝!

571 :nobodyさん:2008/03/08(土) 21:54:54 ID:???
>>570
どんなURLを想定してんねん!

572 :nobodyさん:2008/03/08(土) 22:29:38 ID:???
よくある使える文字全部ってやつだな

573 :nobodyさん:2008/03/08(土) 22:39:30 ID:???
こんばんわ
繰り返し処理 while文 はどうゆう時に使うんでしょうか?


574 :nobodyさん:2008/03/08(土) 22:42:56 ID:???
何らかの処理を繰り返したいときです

575 :nobodyさん:2008/03/08(土) 23:27:06 ID:???
>>574
その何らかの処理って例えばどんなんですか?

576 :nobodyさん:2008/03/08(土) 23:28:09 ID:???
>>7

577 :nobodyさん:2008/03/09(日) 00:48:53 ID:???
>>575

while(1){
system('ping www.omae-no-server.com');
}

578 :nobodyさん:2008/03/09(日) 01:12:26 ID:???
centos5、php5,1,6使ってます。

変数に値の受け渡しが出来てなくて
フォームタグが一切効かないんですが(反応しない)
同じソースコードなのに環境によって変わるものなのでしょうか?

579 :nobodyさん:2008/03/09(日) 01:34:54 ID:bMNZC/Zo
>>491
参考にさせて頂きます。
ありがとうございました。

※実は、スパムメール業者から1クリ詐欺のURLの掛かれたメールが届いたので
勉強中のPHPで何万回かアクセスをしてサーバに負荷をかけてやろうと思ってましたw

.NETのWindowsアプリから直接サーバをコールした方がてっとりばやいそうですね。

580 :nobodyさん:2008/03/09(日) 01:45:09 ID:???
掲示板で書き込むとhtmlページを作成するものがありますが
phpでhtml作成する関数ってあったでしょうか?


581 :nobodyさん:2008/03/09(日) 01:53:37 ID:???
>>578
まずソースを出せ

>>580
ファイルを作成する関数はある

582 :578:2008/03/09(日) 01:58:11 ID:???
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC_JP">
<title>formtest</title>
</head>
<body>
<FORM ACTION="formtest.php" METHOD="POST" NAME="line">
名前<INPUT TYPE="TEXT" NAME="name" SIZE="15"><br>
コメント<br>
<TEXTAREA NAME="comment" rows="4" cols="60"></textarea><br>
<INPUT TYPE="SUBMIT" VALUE="submit">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="regist">
</FORM>
<?php
if($action == "regist"){
if(($name != "") && ($comment != "")){
print "渡ったよ";
}
}
var_dump($_POST);
?>
</body>
</html>

var_dump($_POST);では値は渡っていますが$nameや$commentには渡っていません。

583 :nobodyさん:2008/03/09(日) 02:02:25 ID:???
>>582
これかなぁ。
http://www.php.net/manual/ja/ini.core.php#ini.register-globals

584 :nobodyさん:2008/03/09(日) 02:04:27 ID:???
結構有名な問題みたいですね。ありがとうございます。試してみます。

585 :nobodyさん:2008/03/09(日) 02:06:39 ID:???
register_globalsは怖いよ

586 :nobodyさん:2008/03/09(日) 02:08:57 ID:???
グローバル連想配列でアクセスすることが推奨されてるみたいなので、
一度onに切り替えてうまくいったらoffに戻して
そっちのやり方を調べてみます。

587 :nobodyさん:2008/03/09(日) 02:11:49 ID:???
すいません〜 バイトってどうやったら分かるんでしょうか?
1文字 1バイトとかですか?

588 :nobodyさん:2008/03/09(日) 02:17:00 ID:???
>>586
オススメはしないが
extract使えば入るよ
<?php
extract($_POST);
if($action == "regist"){
 if(($name != "") && ($comment != "")){
  print "渡ったよ";
 }
}

589 :nobodyさん:2008/03/09(日) 02:24:40 ID:???
>>587
文字のバイト数なら
strlenで数えるのが楽かな


590 :nobodyさん:2008/03/09(日) 02:25:23 ID:???
register_gloval=onは解決に至りませんでした。

>588
extractって初めて聞きました。
POSTの配列の値をnameやcommentに入れてるみたいですね。
これやったら動きました。ありがとうございます!

591 :nobodyさん:2008/03/09(日) 02:34:11 ID:O0qbW4Oe
解決したなら別に良いけど、編集すべき php.ini / htaccess が間違っているか、Apacheの再起動が必要な気がする。
設定は  phpinfo() で確認すべし。


592 :nobodyさん:2008/03/09(日) 02:35:35 ID:???
ムダに上げちゃった。もう寝よ。 (ρw-).。o○

593 :nobodyさん:2008/03/09(日) 02:43:17 ID:???
phpinfoで確認しつつ設定後リブートしたらextractなしでも動くようになりました。
原因がわかったのでグローバル変数でアクセスとやらを調べてきます。
ありがとうございます。おやすみなさい。

594 :nobodyさん:2008/03/09(日) 03:04:56 ID:???
>>582
どこでこのサンプルを拾ったか分からんが。
register_globalsがonとかextractで動くようなサンプルは参考にしないほうがいい。

595 :nobodyさん:2008/03/09(日) 03:16:07 ID:???
それはセキュリティの面でですか?
もうちょっとレベルが上がったら
他の配布プログラムなどがどのような構造になっているか見てみます。

596 :nobodyさん:2008/03/09(日) 03:47:27 ID:???
>>595
セキュリティ面とregister_globalsがonな環境って現在はかなり少数派

597 :nobodyさん:2008/03/09(日) 08:26:07 ID:???
わかりました。ありがとうございます。

598 :nobodyさん:2008/03/09(日) 11:37:23 ID:8H4G5Ydo
ブラウザから入力された文章をその場でtxt等の
ファイルにしてダウンロードさせたいのですが


↓の方法以外に何かよい方法はないでしょうか、たとえば変数の中身をファイルに変えてブラウザに出力など

一時ファイルを作成→その一時ファイルに文章を書き込み→一時ファイルをリンクで開く

599 :nobodyさん:2008/03/09(日) 12:59:10 ID:???
Content-Typeを指定していろいろやっておりますがなんとか解決の見通しがつきそうです
もしまた詰まりそうならそのときによろしくお願いします

600 :nobodyさん:2008/03/09(日) 12:59:51 ID:???
詰まりそうなとき

601 :nobodyさん:2008/03/09(日) 15:08:02 ID:???
遅レスだが、Content-DispositionとApplication/Octet-Stream
または存在しないContentTypeでいけそう。

602 :nobodyさん:2008/03/09(日) 16:57:34 ID:???
掲示板とか作ってる人は自分で1から作ってるんですよね?
どのくらいかかってるんでしょうか?

603 :nobodyさん:2008/03/09(日) 17:08:32 ID:???
単純に書き込んで、単純に読むだけのものなら2〜3時間てとこか

604 :nobodyさん:2008/03/09(日) 17:14:54 ID:???
>>603
単純に書き込んで、単純に読むだけのものに、2〜3時間も掛けるとは・・・

605 :nobodyさん:2008/03/09(日) 17:43:00 ID:???
いつもの荒らし復活ですか

606 :nobodyさん:2008/03/09(日) 17:45:27 ID:/1sOFXZx
3時間で理解できるphpの高機能掲示板スクリプトはありませんか?
機能はNGワードを指定すれば以前の投稿でもNGワードが含まれている場合は非表示に出来る程度で十分です

607 :nobodyさん:2008/03/09(日) 17:46:04 ID:???
>>604
ごめんね遅くて
君は何分くらいでできるの?

608 :nobodyさん:2008/03/09(日) 18:08:38 ID:???
荒らしは書き逃げが得意。

609 :nobodyさん:2008/03/09(日) 18:08:44 ID:???
普通は30分もかからんだろ。

610 :nobodyさん:2008/03/09(日) 18:14:08 ID:???
俺なんて、5分でできるよ。





レンタルですけど。

611 :nobodyさん:2008/03/09(日) 18:24:15 ID:???
>>606
>3時間で理解できるphpの高機能掲示板スクリプトはありませんか?
そんな都合のいいもんはない
>機能はNGワードを指定すれば以前の投稿でもNGワードが含まれている場合は非表示に出来る程度で十分です
どういう風に実装すれば見当がつかないからこんな質問してるんでしょ?
こんくらいの実装がわからないようじゃ3時間なんて無理無理
もしわかるならどう実装すればいいか言ってみ
まぁそれが言えたらその通り実装すればいいって話になっちゃうんだが

612 :nobodyさん:2008/03/09(日) 18:24:35 ID:???
一本のプログラムを何回もマニュアルを見ながらじゃないと
プログラムできない人なら何時間も掛かるだろうなぁ。

仕事でプログラミングやっている人は、
ほとんどマニュアル見ないで組み上げるから、
そこが日曜プログラマーとの違いとも言える。

613 :nobodyさん:2008/03/09(日) 18:28:59 ID:???
要はhtmlでデザインを組める程度の非プログラマーが、
PHPを初めて触って掲示板を何時間で作れるかってことだよな。

非三時間で一ヶ月かかりました。ハイ。

614 :nobodyさん:2008/03/09(日) 18:29:41 ID:???
>606
これマルチだから、放置して。

615 :nobodyさん:2008/03/09(日) 18:32:06 ID:???
使い方解るのに3時間じゃねぇの?と思ったんだがw

616 :nobodyさん:2008/03/09(日) 18:34:12 ID:???
>>612
確かに、phpなら20、30分で出来るが、UNIX-Cで組めって言われたら、
半日か1日掛かるかも知れんな。

617 :nobodyさん:2008/03/09(日) 18:54:18 ID:/1sOFXZx
>>614
誘導されました
Webサイト制作初心者用質問スレ Part 194
http://pc11.2ch.net/test/read.cgi/hp/1204015309/578

誘導前の書き込みを転載しておきます
http://pc11.2ch.net/test/read.cgi/hp/1204015309/577
> 577 名前:Name_Not_Found[] 投稿日:2008/03/09(日) 14:48:08 ID:mZE1IfQG
> >>574-575
> では「書いた本人が1年後に見直して3時間で理解できる」でお願いします。

618 :nobodyさん:2008/03/09(日) 19:14:19 ID:???
> では「書いた本人が1年後に見直して3時間で理解できる」でお願いします。
言ってる意味がわからない
理解できなきゃ書けないし定期的にいじってれば忘れることはないので1年後も理解できるだろ
通常バグ修正でたびたびいじる機会もあるし理解は深まる一方のはずだが

とりあえずプログラム基礎がない0からの素人じゃ他人のソース見ても3時間で到底理解できるはずがない

理解できるってのが設置に対する理解であってただのスクリプト探していますというだけならスレ違い
Web制作板に昔あった気がするがなくなってるけど

619 :nobodyさん:2008/03/09(日) 19:29:54 ID:???
>>618
嘘レス乙

620 :nobodyさん:2008/03/09(日) 19:31:20 ID:???
何が嘘なんだか

621 :nobodyさん:2008/03/09(日) 19:56:48 ID:???
みなさん早いですね。

622 :nobodyさん:2008/03/09(日) 20:53:50 ID:3KfA+lxF
"comment":"YouTube\u3067\u30cb\u30b3\u30cb\u30b3\u52d5\u753b\u306e\u5b9f\u6cc1\u6570\u3092\u8868\u793a\u3059\u308bextension",
これってどうやってデコードすればいいんですか。
urldecode base64 gzinflate
は効果無しでした。


はてなブックマークエントリー情報取得APIで得られる情報なんですが
http://b.hatena.ne.jp/entry/json/http://usrb.in/nce

どなたかお願いしまうま




623 :nobodyさん:2008/03/09(日) 21:06:30 ID:???
json_decode

624 :nobodyさん:2008/03/09(日) 21:20:15 ID:3KfA+lxF
>>623
ありがとう。

Services_Jsonでパースしたら
エンコードされてる部分が「a」とか「c」
になっちゃうんですよね
Jsonパース自体が問題あるのかもしれないですね。

tagsの部分
Array
(
[0] => Firefox
[1] => extension
[2] => a
[3] => a
[4] => 3a
[5] => a
[6] => 3a
[7] => c
[8] => ≫
[9] => YouTube
)

これは他のパーサーでやったほうがいいということですかね。

625 :nobodyさん:2008/03/09(日) 21:24:35 ID:???
まぁ、世の中難関の国家試験を突破して仕事についている人が沢山いる中で、
3ヶ月勉強すればニワカ技術者としてお金貰える世界なんだから、
全体的に低レベルな議論ばかりでもしょうがない。
単純労働者よりはマシ程度。

626 :nobodyさん:2008/03/09(日) 21:44:23 ID:???
次の質問どうぞー

627 :nobodyさん:2008/03/09(日) 22:56:33 ID:???
今使っているレンタルサーバーではPHP5.1.*が使えるのですが、
そのバージョンのPHPはどうやって入手したらよいのですか

628 :nobodyさん:2008/03/09(日) 23:07:06 ID:???
>>7

629 :nobodyさん:2008/03/09(日) 23:56:05 ID:???
CentOSは相変わらず化石だな
phpに関してはガンガンverUPしないとだめだよね

630 :nobodyさん:2008/03/10(月) 01:16:14 ID:???
PHPのマニュアルの「empty」のページなんだが、
http://jp.php.net/manual/ja/function.empty.php
戻り値の所に「var が空でないか、0でない値であれば FALSE を返します。 」
ってあるのに例だと「// $var が空なのでtrueと評価されます」ってなっているんだが、
これっておかしくない?falseじゃないの?

631 :nobodyさん:2008/03/10(月) 01:20:11 ID:???
>>630
あってるだろ
値が無かったらtrueが返される

632 :nobodyさん:2008/03/10(月) 01:21:25 ID:???
varが空、若しくは0以外の場合はFALSEを返します
って事だからあってると思うが?


633 :nobodyさん:2008/03/10(月) 01:21:39 ID:???
>>630
お前の読解力が足りない日本語勉強しれ

varが空でない=varには何か入っている→falseを返す
varが空→trueを返す


634 :630:2008/03/10(月) 01:23:01 ID:???
・・・・うーん
ごめん。勘違いしてたわ・・・・

値があったら→false
値がなかったら→true

か。_ノフ○

635 :nobodyさん:2008/03/10(月) 01:29:31 ID:???
まぁ、慣れればそうでもないが、
なれないうちは難しい表現ではあるわな。

始めのうちは多少手間でも「?」と思ったら=で繋げていったりしないと間違うべ

636 :nobodyさん:2008/03/10(月) 01:36:38 ID:???
0 は 空なんでしょ。「var が空でない場合 FALSE を返します。 」 で十分じゃないのか。
ま、いいけどさ。

>次のような値は空であると考えられます。:
>"" (空文字列)
>0 (0 は整数)
>"0" (0は文字列)
>NULL
>FALSE
>array() (空の配列)
>var $var;(変数が宣言されているが、クラスの中で値が設定されていない)

637 :nobodyさん:2008/03/10(月) 04:29:19 ID:???
このスレが適切か分かりませんが質問です。

ファイルなどをアップロードする場合、
input type=fileなどを使い、PHPでサイズ上限などを設定して処理しますが
画像よりもっと大きいファイル、500MBくらいのものをアップロードするにはどうしたらいいでしょうか?

特に制限を設けず参照ボタンからアップロードした場合はタイムアウトするのか、失敗してしまいます。

638 :nobodyさん:2008/03/10(月) 04:31:03 ID:???
(゚听)

639 :nobodyさん:2008/03/10(月) 04:41:34 ID:???
えらーログみれ
php側の制限なら何かしら出てるはず


640 :nobodyさん:2008/03/10(月) 04:43:36 ID:???
php.iniいじってください

641 :nobodyさん:2008/03/10(月) 13:05:23 ID:???
>>637
そんなでかいファイルをアップロードしないでください
ピーエッチピーがかわいそうです。
いろいろなことはこの際度外視して
どうしてもやりたいならFTPのアノニマスユーザーで
アップロードできるようにした方が良いと思います。

642 :nobodyさん:2008/03/10(月) 13:13:17 ID:???
>>641
PHPがやってることが、ストリームの内容を、全体をメモリ中にバッファしたりしないで、一時ファイルに出力してるだけなら、
あまりかわいそうでも無いと思ってるんだけど、実際のところどうなんだろ。

643 :nobodyさん:2008/03/10(月) 13:14:32 ID:???
httpでそこまでのファイルをやり取りするのが間違ってるんじゃないか?
素直にftpを使うほうがいい気がするけど。

別にphpはかわいそうとは思わないw

644 :nobodyさん:2008/03/10(月) 14:03:26 ID:???
>>642
おまえ→PHPタン→/tmp
<上がりきるまで繰り返し>
アップロード正常終了
/tmp/アップロードしたファイル→PHPタンが指定したパス
っていう順序でデータが流れます。
まるっとメモリに溜め込んだりはしないみたいなので、あんまし
可哀想でもありません。
むしろ、いぢめたくなるくらい可愛い(w。

645 :nobodyさん:2008/03/10(月) 14:14:24 ID:???
>>644
ありがと。
PHPって なんか垢抜けてないドジッ娘のイメージ。イジめたい気持ちはわかる。

646 :nobodyさん:2008/03/10(月) 14:45:27 ID:???
お前ら、なんにでも萌えなきゃ気がすまないのかw

647 :nobodyさん:2008/03/10(月) 15:12:34 ID:9++q5i3u
date関数で一桁の分を返すことってできるんでしょうか?

今は

$date = date("i");

if(substr($date,0,1) == 0){
$date = substr($date,1,1);
}

こんな感じでやってるのですが不便です。

648 :nobodyさん:2008/03/10(月) 15:20:51 ID:???
>>647
無い
関数化しとけば良いやん


649 :nobodyさん:2008/03/10(月) 15:24:42 ID:???
>>647
$date = (int)date('i');
$date = (int)"01";
var_dump($date);

650 :nobodyさん:2008/03/10(月) 15:30:44 ID:9++q5i3u
>>648 >>649
やはりないですか、ありがとうございます。

>>649のやり方の方がスマートなので参考にさせていただきます。

651 :nobodyさん:2008/03/10(月) 16:16:07 ID:ZuF9csTh
すいません。教えてください。
curlを使ったバッチをphpで作ったのですが、
コマンドラインから実行するとcurlの取得結果が流れています。
これを無くしたいのですがどのようなオプションを指定すれば良いのでしょうか?
よろしくお願いします。
centOS 5
apache2、php5、


652 :nobodyさん:2008/03/10(月) 17:03:54 ID:???
>>651
curl使った事ないし、CLIで使えるか知らんけどflush系の関数とか?


653 :nobodyさん:2008/03/10(月) 17:09:42 ID:???
>>651
何をしたいんだ?
取得した内容をコンソールに出したいの?
もうちょっと具体的によろしく

654 :nobodyさん:2008/03/10(月) 18:37:15 ID:???
バッチで実行してとめりゃいいんじゃないの

655 :nobodyさん:2008/03/10(月) 18:48:35 ID:IVVyU3M+
PHPで本や商品などの管理をするときに


1.
ファイル(タブ区切りやcsvなど)と連携させて管理するのと
MySQLなどのRDBMSと連携させてで管理するのは
どのような違いがあり、件数によってどのようなメリットデメリットがあるのでしょうか?


2.
またもし仮に現在、ファイルで管理していたとして、みなさんは(目安として)何件程度で
MySQLなどのRDBMSへ管理方法を切り替えようと意識するでしょうか?


少し長いですかこの1.と2.に関して何卒ご教授お願いいたします

656 :nobodyさん:2008/03/10(月) 19:02:17 ID:???
SESSIONファイルのパーミッションをデフォで644にしたいのですがそんなオプションはないですか?
現在は生成にchmodでチェンジしてます。

657 :nobodyさん:2008/03/10(月) 19:08:40 ID:???
>>655
本や商品なんてデータが蓄積していくことが容易に予想できるでしょ
そんなもんは1件から当然DBだ

658 :nobodyさん:2008/03/10(月) 19:18:06 ID:+peMqgQu
PHPでIPアドレスを記録したログがあります。
これを一ヵ月後、六ヵ月後、一年後、5年後にホスト名に変換したとき、
どの期間に変換作業を行ってもホスト名は同一でしょうか?

いまIPアドレスかホスト名で記録するか迷います。

659 :nobodyさん:2008/03/10(月) 19:21:22 ID:???
>>658
> どの期間に変換作業を行ってもホスト名は同一でしょうか?

んなわけない

660 :nobodyさん:2008/03/10(月) 19:29:10 ID:+peMqgQu
かわりますか・・・。ホスト名で記録できるなら、なるべくホスト名でログを取るほうがいいですか?

661 :nobodyさん:2008/03/10(月) 19:43:30 ID:???
>>660
ログの利用意図による

662 :nobodyさん:2008/03/10(月) 19:51:04 ID:???
>>655

1 1000件ちょっとくらいならファイルのほうが早い
2 一万件くらい

663 :nobodyさん:2008/03/10(月) 20:03:18 ID:???
>>657
なるほど・・・
1のメリットデメリットはどういった感じでしょうか?

>>662
ありがとうございます
データが一定量(1,000件〜10,000件?)くらいを境にファイルとデータベースの有利さが代わってくるんですね

664 :nobodyさん:2008/03/10(月) 20:05:23 ID:???
<?php
$member ["name"] = "僕ドラえもん";
$member ["age"] = 21;
$member ["tall"] = 70;

print $member ["name"];
print "<br>";
print $member ["age"];
print "<br>";
print $member ["tall"];

?>


<?php
$member = array("name" =>"僕ドラえもん",
"age" => 20,
"tall" =>70);

print $member ["name"];
print "<br>";
print $member ["age"];
print "<br>";
print $member ["tall"];

?>

上と下は同じですが、配列を使うと上より下のほうが楽だよって意味ですか?

665 :nobodyさん:2008/03/10(月) 20:29:24 ID:???
>>663
ファイルで不都合することがあってもDBで不都合することはない
少ない件数での速度面は誤差にすぎない
DBに接続する分のオーバーヘッドも微々たるもので気にすることはない
DBはファイルと違ってデータを扱うことに特化して設計されているので
あらゆる面でファイルでデータを扱うより強い
何よりファイルよりずっとデータの管理が楽

まぁそういうわけでデータの管理という点で特に不都合がないならDBを使えばいい
DBが使えない環境下であるか短期で使う間に合わせのものならファイルでもいいと思う

両者は全く違うものなので優劣をつけることはできませーん

666 :nobodyさん:2008/03/10(月) 20:32:46 ID:???
>>665
なるほど、勉強になりました拙い質問に答えていただきありがとうございます

667 :nobodyさん:2008/03/10(月) 20:52:26 ID:???
>>665
前提条件も定義しないでDBが優位と主張するのは意味不明。
DBとファイルを経験則だけで論じるのは不正確で、
質問者に対して混乱させるだけ。

668 :nobodyさん:2008/03/10(月) 20:59:20 ID:???
個人的には一度DBの便利さに慣れたらファイルでやりたいとは思わない。
配布とか環境とかでどうしようもないならやる

669 :nobodyさん:2008/03/10(月) 21:01:44 ID:???
10万件とか100万件単位になってきたらデータベースに軍配が上がるな

670 :nobodyさん:2008/03/10(月) 21:02:57 ID:???
DBといっても、ファイルとそれを操作するプログラムで成立しているってことを分かっていない奴ばっかwww

671 :nobodyさん:2008/03/10(月) 21:07:28 ID:???
>>667
データ管理という点ってちゃんといっただろ

672 :nobodyさん:2008/03/10(月) 21:09:33 ID:???
>>670
こいつはいろいろとやばそうだ

673 :nobodyさん:2008/03/10(月) 21:09:59 ID:???
データベース→「ファイル+ファイルを管理するソフトウェア」
ファイル→ファイル

要するにデータを扱うもの作るときにごちゃごちゃ書かなくてで楽できる→データベース



と書いてみる

674 :nobodyさん:2008/03/10(月) 21:11:51 ID:???
>>673
その認識は間違ってるよのび太君

675 :nobodyさん:2008/03/10(月) 21:26:56 ID:???
>>674
間違ってるのか・・・すまん

676 :nobodyさん:2008/03/10(月) 21:47:59 ID:???
>>674
正しい認識を教えてくれ

677 :nobodyさん:2008/03/10(月) 21:58:08 ID:???
データを集めてベースにするのだよ。
ホワイトベースを思い浮かべればわかりやすいだろう?

678 :nobodyさん:2008/03/10(月) 22:07:41 ID:???
下らねぇ質問だけじゃなく 下らねぇ回答も書かないといけないのか?

679 :nobodyさん:2008/03/10(月) 22:08:45 ID:???
デーテーベーっす

680 :nobodyさん:2008/03/10(月) 22:29:29 ID:???
データベースに訳分からん妄想を頂いている奴ばかりで驚いた。
仕組みを理解していないと、いつまで経ってもダメなプログラマーどまりだぞ。

681 :nobodyさん:2008/03/10(月) 22:35:42 ID:???
>>670
コイツゴイス

682 :nobodyさん:2008/03/10(月) 22:47:28 ID:???
>>680
ダメなプログラマー(笑)

683 :nobodyさん:2008/03/10(月) 22:55:38 ID:???
トランザクション管理と(特にリレーショナルな)検索処理を自作する気にはならんなぁ。
SQLiteなら PHP5にバンドルされてるから、サーバプログラムのインストールもいらないし。

684 :nobodyさん:2008/03/10(月) 22:59:38 ID:???
なんでも自分でコントロールしてなくちゃ不安な優秀なプログラマさんは
きっとOSも自作なんだろうなぁ・・・

685 :nobodyさん:2008/03/10(月) 23:00:50 ID:???
>トランザクション管理と(特にリレーショナルな)検索処理を自作する気にはならんなぁ。
(・ω・`)?

686 :nobodyさん:2008/03/10(月) 23:01:34 ID:???
>>684
これは・・・

687 :nobodyさん:2008/03/10(月) 23:02:55 ID:???
>>684
優秀なプログラマはあるものを有効に利用して手早くよいものを作る
OSから自作なんて暇なこと考えるのは優秀とはいえない

688 :nobodyさん:2008/03/10(月) 23:04:14 ID:???
ネタにマジレス って久しぶりに見たよ

689 :nobodyさん:2008/03/10(月) 23:06:50 ID:???
ネタとか釣りとか後から言ってもかっこ悪いぜ
本気でそう思って書いたんだろうけど反応が悪くて逃げたくなったんだろ

690 :nobodyさん:2008/03/10(月) 23:08:49 ID:???
OS自作を本気に思うって、それどこのひげぽん?w

691 :651:2008/03/10(月) 23:09:32 ID:???
>>652
httpsでサーバ間通信するのに使用してます。
>>653
取得結果を解析して必要な内容だけを出力したいのですが、
curlの取得結果が全て出力されてしまうため必要な内容を見るのが大変なんです。
ttp://jp2.php.net/manual/ja/function.curl-setopt.php
なんらかのオプションを使用すればいいのかなと思ったのですがいくつか試してみても駄目だったもので。


692 :nobodyさん:2008/03/10(月) 23:14:20 ID:???
よくわからんけど取得したのを変数にいれてそこから必要な内容とやらを抜き出せばいいんでないの
正規表現かなんかで

693 :nobodyさん:2008/03/11(火) 00:29:21 ID:???
各ホストごとに、ユニークなID振って欲しいなぁ。
IPアドレスって流動的だし、アクセスの規制がやりにくい。
これって、TCP/IPの欠陥じゃないかと思う。どうよ?


694 :nobodyさん:2008/03/11(火) 00:34:42 ID:???
どうよって言われても
じゃお前がTCP/IPに変わるプロトコル提唱して広めろよと
技術的に自分でやるのが無理なら今の技術で我慢しろ
っていうかスレ違いなんだよ

695 :nobodyさん:2008/03/11(火) 00:36:43 ID:???
>>694
IPのヘッダーに接続元のMACアドレスを付与すれば言いだけだろ。
与えられたものを使うだけの低脳ですか?

696 :nobodyさん:2008/03/11(火) 00:37:22 ID:???
結局認証の話になるだろうから、SSLレベルの話じゃないかな。
続きやりたきゃネット板で。

697 :nobodyさん:2008/03/11(火) 00:50:35 ID:yiYYpGYN
>>693
15年ぐらい前はユニークなIDだったよ。
あの頃は完璧だったな。

698 :nobodyさん:2008/03/11(火) 00:55:47 ID:???
とりあえずIPv6まで待てという事だな

699 :nobodyさん:2008/03/11(火) 00:55:55 ID:???
>>695
お前が低脳だろ
MACアドレスが固定とかおめでたいな

700 :nobodyさん:2008/03/11(火) 00:57:57 ID:???
3回スレタイ嫁。

701 :nobodyさん:2008/03/11(火) 00:58:28 ID:???
>>699
おめでたいのはお前。自分で何も考えられない低脳は社会のゴミだな。

702 :nobodyさん:2008/03/11(火) 01:00:38 ID:???
>>701
考えるだけの口だけニートで社会のゴミはお前だ
考えるだけなら猿でもできるんだよ
実行にうつして成功してから言え

703 :nobodyさん:2008/03/11(火) 01:01:37 ID:???
煽りに煽りで返すってどんだけ低脳だよ。

704 :nobodyさん:2008/03/11(火) 01:03:36 ID:???
>>702
それ位しか言えないんだなぁw

705 :nobodyさん:2008/03/11(火) 01:08:57 ID:???
やはり考えるだけで実行にうつさない能無しだったか

706 :nobodyさん:2008/03/11(火) 01:12:03 ID:???
下らねぇ雑談はよそに書き込みやがれ

707 :nobodyさん:2008/03/11(火) 01:20:26 ID:???
>>706
スレタイ10000回嫁

708 :nobodyさん:2008/03/11(火) 01:41:29 ID:???
ここで流れを断ち切る質問。






ごめん、何書こうとしてたか忘れた。

709 :nobodyさん:2008/03/11(火) 02:07:57 ID:???
とっくに沈静化してたのになんというKY

710 :nobodyさん:2008/03/11(火) 02:37:30 ID:???
ちょっと疑問に思ったんだが、
ニコニコ動画ってカテゴリのタブ押すと、そのカテゴリに飛ぶけど
URLは変わらないんだな

あれはどうやってやってるんだろう?

HTMLを見ると「?g=radio」とかクエリが付いてるけど

711 :nobodyさん:2008/03/11(火) 02:52:39 ID:???
Ajaxだろ

712 :nobodyさん:2008/03/11(火) 02:54:03 ID:???
JavaScript(DHTML)だろ?

713 :nobodyさん:2008/03/11(火) 03:06:55 ID:???
クリックしたらJSで表示用HTML取りにいって
innerHTMLでセットしてるだけ

firefox拡張のfirebug使えば直ぐ解るよ

714 :nobodyさん:2008/03/11(火) 03:37:31 ID:???
すみません。phpとあまり関係ないかもしれませんが、
ご存知の方がおりましたら教えて下さい。

地下鉄13号線が開通した場合に、西武線と東武線は、どこまで乗り入れるのでしょうか?
現在、西武線と東武線には、地下鉄有楽町線が乗り入れていますが、
ここに13号線まで通すとすると、相当な過密ダイヤになると思いますし、
輸送密度が飽和状態になってしまうと思うのですが。

宜しくお願いします。

715 :nobodyさん:2008/03/11(火) 03:38:27 ID:Nb1PMFs8
すみません、sageてました。

716 :nobodyさん:2008/03/11(火) 03:40:23 ID:???
upしてすぐに反映されないしcronで生成でもしてるんだろうか

717 :nobodyさん:2008/03/11(火) 04:04:38 ID:aGeGDpSr
質問します。
PHPによるWebアプリケーションスーパーサンプル 第2版
で、アプリケーションの部分からぜんぜんソースが複雑
になってきて、半分くらいしかわからないのですが、
これ全部わかるようになりたいです。
どの本やどのソースを見ればいいでしょうか?
買った方意見ください。


718 :nobodyさん:2008/03/11(火) 04:07:19 ID:???
>>717
http://pc11.2ch.net/test/read.cgi/php/1203696253/

719 :nobodyさん:2008/03/11(火) 05:31:33 ID:3im4ko0N
他サーバにファイルが存在するかチェックしたいのですが
file_existsが使えません
そこで404 NOT FOUNDが返ってきたら〜という処理をすることにしたいのですが
どの変の関数で実装できますか?
サーバにアクセスしてみてレスポンスコード(あってるかな?)を取得するみたいな感じだと思うのですが

720 :nobodyさん:2008/03/11(火) 05:36:41 ID:???
PEAR::HTTP_Requestオススメ

721 :nobodyさん:2008/03/11(火) 05:40:31 ID:3im4ko0N
レスありがとうございます。
PEAR使ったことなくて・・・使い方もわかりませんorz
一応調べてみますが他の関数で間に合いそうならそれもお願いします
file_get_contentsで出来そうな気はしたんですが
404だとWarningが表示されてしまって・・・
エラー制御して消すのはあまりよくないですよね?

722 :nobodyさん:2008/03/11(火) 06:20:28 ID:o2D8ORnz
>>721
いや、それで済むならそれで十分だろ

723 :nobodyさん:2008/03/11(火) 08:40:37 ID:???
>>714
マニュアル嫁

724 :nobodyさん:2008/03/11(火) 09:16:08 ID:???
>>721
ソケット使えるなら
http://www.php.net/manual/ja/function.file-exists.php#78656


725 :nobodyさん:2008/03/11(火) 11:22:14 ID:mDxl1eoa
質問があります。
現在携帯電話向けのHPを作成しています。
そこで「直前のページに戻る」リンクを作成したいのですが、
携帯向けHPのため、JavaScriptが利用できず
<a href="javascript:history.back()">戻る</a>
のようなタグも使用することができません。

phpでプログラムを組む事でこの機能は実現できないものでしょうか?

また、HP内部ではPOSTによるページの再帰呼び出しを複数回行っているため、
「ページ(画面)遷移時に直前ページのアドレスを保持しておく方法」
は使えません。

レンタルサーバを使用しており、環境は
OS:Linux
言語:PHP 4.4.8
となっています。

よろしくお願いします。


726 :nobodyさん:2008/03/11(火) 11:54:31 ID:???
ページの呼び出し元と呼び出し先が違うときだけ
URLを保存するでもダメなの?

あとは、画面遷移の時に直前ページとしたいものは
POSTで一緒に投げるとか。

自動でどうにかなるもんじゃないから
そういう仕組みを作るしかないんじゃないかなぁ。

727 :nobodyさん:2008/03/11(火) 11:58:28 ID:???
これって一行でかけないのだろうか?

$obj = new IO::IO();
$obj->get("./data.text",false);


728 :nobodyさん:2008/03/11(火) 12:08:52 ID:???
>>727
無理
$obj = new IO();
$obj->getHoge()->get();

とかってーのはphp5あたりからできるけど

729 :nobodyさん:2008/03/11(火) 12:18:23 ID:???
>>651
もう解決したかもしれないけど、
setopt で CURLOPT_RETURNTRANSFER か、output_handler で。


730 :nobodyさん:2008/03/11(火) 12:27:15 ID:???
>>725
「※携帯電話の戻るキーで戻ってください」

と書いておく。

731 :レビュー ◆cxp7cjXZ1w :2008/03/11(火) 12:28:37 ID:???
昨夜までまともに見れたんですが、いきなり日本語が一切でなくなりました。。。

ttp://gameranking.jp/

ページは全てEUC、DBもMySqlなのでEUCで運営してました。
phpAdmin使ってます。

どこに問題があるんでしょうか?

732 :nobodyさん:2008/03/11(火) 12:34:50 ID:???
>>731
レン鯖?
mysqlのバージョンアップとかなんか変更した点ある?


733 :nobodyさん:2008/03/11(火) 12:39:20 ID:???
mysqlは途中のバージョンから言語設定しないと文字化けするようになりましたね

>>728
やはり無理ですか、どもども

734 :nobodyさん:2008/03/11(火) 12:40:16 ID:???
>>732
はい、レン鯖です。xbit。
Mysqlのバージョン変更はしてません。
管理会社からも連絡はありませんでした。

phpAdminから文字コードの変更とかってできるんでしょうか?

735 :nobodyさん:2008/03/11(火) 12:50:13 ID:???
>>734
ドメイン情報引いてxbit.jpに行ってみたけどサポートがあるみたい
だし聞いてみたら?

736 :nobodyさん:2008/03/11(火) 12:52:37 ID:???
>>735
やっぱりそれですかね、、、サポートに連絡しても返事が来なくて、、、もうちょっと待ってみます。
あ、
わざわざ、ありがとうございました

737 :nobodyさん:2008/03/11(火) 15:23:17 ID:???
PHP で、マジックナンバーを使いたくないから、
Java、C++ の enum みたいなことやりたいんだけど、どうしてる?

クラス定数で何とかせいってはなし?

738 :nobodyさん:2008/03/11(火) 15:26:09 ID:???
>>737
うん。あとは定数ファイル作るとかかな?


739 :nobodyさん:2008/03/11(火) 15:28:56 ID:???
定数を定義すべきかもしれんが、どうせコンパイルチェックもしてくれないんで、
このごろは文字列をそのまま使ってる。今のところ困って無い。

740 :737:2008/03/11(火) 15:48:04 ID:???
>>738
やっぱそうか。。。
定数ファイルは微妙だな。。。ファイル間の結合度が上がるのが好きじゃない。

>>739
あぁなるほど。
文字列入れておけば、var_dump() とかの値見て混乱することもなさそうだね。

741 :nobodyさん:2008/03/11(火) 16:03:33 ID:???
俺はとりあえずファイルつくって

define('HOGEHOGE', '1');
define('HOGEGEGEGE', '2');

みたいにしてるなぁ。

742 :nobodyさん:2008/03/11(火) 17:07:29 ID:???
SESSIONファイルのパーミッションをデフォで644にしたいのですがそんなオプションはないですか?
現在は生成にchmodでチェンジしてます。

743 :nobodyさん:2008/03/11(火) 17:11:00 ID:???
大文字小文字の判別をしていないのか・・・今頃気付いた

ml("./io");

function ML(){
echo"view";
}

744 :nobodyさん:2008/03/11(火) 17:14:43 ID:???
関数・メソッドは大文字小文字を判別してない
変数はしてる


745 :nobodyさん:2008/03/11(火) 17:16:21 ID:???
>>742
サーバプロセスのumaskを022にすればいいんじゃないの?


746 :nobodyさん:2008/03/11(火) 17:32:23 ID:???
>>745
phpの質問をしているのに、OSの話なんか誰もしてないだろ?
トンチンカンな回答にも程がある。

747 :nobodyさん:2008/03/11(火) 17:40:07 ID:???
http://loglog.jp/~php/man/function.umask.html

748 :nobodyさん:2008/03/11(火) 17:40:10 ID:???
ttp://www.phppro.jp/phpmanual/php/function.umask.html


749 :nobodyさん:2008/03/11(火) 17:52:28 ID:???
>>746
もう少しカルシウム取れ

750 :742 :2008/03/11(火) 18:51:20 ID:???
>>745 >>747 >>748
ありがとうございます。
普通にchmodしたほうが安全そうですね^^;

751 :nobodyさん:2008/03/11(火) 21:15:28 ID:???
データベース作る?

752 :nobodyさん:2008/03/11(火) 21:17:13 ID:???
common.phpにネームスペース名を入れずにpage::commonとして読み込みたいのですが
どうしたら良いのでしょう?

$vi common.php
class common{
}

$vi index.php
namespace page;
require "./common.php";

class page extends common{
function main(){

}
}


753 :nobodyさん:2008/03/11(火) 23:46:44 ID:???
>>752
名前空間は実装はphp6からなので
気にしなくて良いですよ

754 :nobodyさん:2008/03/11(火) 23:56:43 ID:???
結局、phpはJavaの後追いばっか。
エリート技術者が、phpに居ないわけだよ。

755 :nobodyさん:2008/03/12(水) 00:01:49 ID:???
>>754
お前だってエリートじゃねーだろ。
javaだってc++の真似ばっかだろうが。
俺はこれでも東京大学理工学部出身だ。お前の学歴入ってみろ。

756 :755:2008/03/12(水) 00:08:33 ID:???
ごめんなさい。ネタです。

757 :nobodyさん:2008/03/12(水) 00:10:23 ID:???
謙虚で泥臭い仕事もしてくれるのがPHPタンの可愛いところ。

758 :nobodyさん:2008/03/12(水) 00:15:46 ID:???
そんなphpは、開発単価も謙虚です。

phpというだけ安く扱き使われている優秀なプログラマーって可哀想

759 :nobodyさん:2008/03/12(水) 03:10:43 ID:MCrGmIFl
if (ereg("^[0-9][0-9]*[0-9]$",$to_name)){

↑これどういう意味ですか?

760 :nobodyさん:2008/03/12(水) 03:13:12 ID:???
>>759
冗長
if (ereg("^[0-9][0-9]*[0-9]$",$to_name)){
を、
if (ereg("^[0-9][0-9]*$",$to_name)){
としても同じ

761 :nobodyさん:2008/03/12(水) 03:23:48 ID:MCrGmIFl
>>760
いじってるスクリプトがあるんですが
これで値が数字の場合はデータベースにその数字がないと
topページにリダイレクトされるようになってると思うのですが(多分)
数字以外だと処理されないので
アルファベットも追加するにはどう書けばよいですか?
漢字とか、たとえばヘブライ語とかハングルとかもあるし全部判別しないといけないんですかね?
自分でも言ってる意味があれですが

762 :nobodyさん:2008/03/12(水) 03:27:30 ID:MCrGmIFl
すみません忘れてください
寝てないので・・

763 :nobodyさん:2008/03/12(水) 04:00:41 ID:???
http://www.ziyu.net/rating.htm
上記のような点数で投票した後、投票結果をレーダーチャートで表示してくれるようなスクリプトを探しているのですが
ご存じの方いらっしゃいませんか?

764 :nobodyさん:2008/03/12(水) 06:28:40 ID:???
連想配列で下記の様に品目、色という構造だった場合に

array{
[0]=>array{ [0]=>banana [1]=>yellow }
[1]=>array{ [0]=>apple [1]=>red }
}

色だけを別の配列に格納したいんだけど、やっぱforeachとかしなきゃだめ?

765 :nobodyさん:2008/03/12(水) 07:01:21 ID:???
ループ使うのがいやなら全部手動でいれろ

766 :nobodyさん:2008/03/12(水) 07:34:38 ID:az5ZSXBa
いきなり$a = $_POST['a'];とかかくとデバッグ画面でエラー出ますが
これを回避するのってどうやって書けばいいんでしたっけ?
if (isset($_POST['a'])) {
$a = $_POST['a'];
}
みたいなかんじだったとおもうのですが、なんか微妙に違うようで

767 :nobodyさん:2008/03/12(水) 08:19:19 ID:???
>>760
2つ以上の数字と1つ以上の数字は同じじゃないぞ、ニート!!!



768 :nobodyさん:2008/03/12(水) 08:44:29 ID:CaFkVlTg
ウィキペディアのエンコードって何か分りますか?
http://ja.wikipedia.org/wiki/%E6%8B%B3%E6%B3%95←ここです

769 :nobodyさん:2008/03/12(水) 08:48:30 ID:???
聞く前に拳法でurlencodeしてみたらどうなんだ

770 :nobodyさん:2008/03/12(水) 08:52:08 ID:???
見るからにutf-8って容易に予想できるだろ

771 :nobodyさん:2008/03/12(水) 09:02:18 ID:???
ああ

772 :nobodyさん:2008/03/12(水) 09:33:35 ID:???
Webプログラム言語を勉強したいのですが、
Java、PHP、Perl、など、いろいろあって違いがわかりません。
スクリプト言語とかの違いはわかるのですが、
”こういうページに向いてる”というようなのがあれば教えてください。

773 :nobodyさん:2008/03/12(水) 10:08:38 ID:???
勉強するのが目的なら、周囲の友人に質問・相談できる言語が良いんじゃないの。
一つ覚えれば、他の言語覚えるのも難しくないし。
まぁ、マイナーな言語持ち出すヤツとは距離置いた方が良いけど。

774 :nobodyさん:2008/03/12(水) 10:31:46 ID:???
一つ覚えれば〜って観点から見ると
perlはおすすめしないな
phpかjavaでいいんじゃねぇの

775 :nobodyさん:2008/03/12(水) 10:50:46 ID:???
>773
マイナーな言語って例えばなに?日本ではpythonか?

776 :nobodyさん:2008/03/12(水) 11:00:01 ID:???
rubyもかな

777 :nobodyさん:2008/03/12(水) 11:02:41 ID:???
>>772
PHPかPerlでいいよ。
実際に作ってレンタルサーバで稼動させるんだろうし、
Javaが動くサーバは高額なので日曜プログラマ向けではない。
というわけで自分が使う環境で動くもので開発すればいい。
結局どういうページ作るにしても作り手次第でよくも悪くもなる。

778 :はな:2008/03/12(水) 11:05:18 ID:DpVFawg8
すいません、教えてください。
ユーザーエージェントで 
「■■以外は http://▲▲に飛ばす」
を記述する際、エラーになってしまいます。
notとかカッコとかがダメなんでしょうか?
よろしくお願いします。


$ua = $_SERVER["HTTP_USER_AGENT"];
if(ereg((not"■■"),$ua)){
header("Location: http://▲▲");
exit;
}



779 :nobodyさん:2008/03/12(水) 11:06:27 ID:???
>>775
python rubyレベルは微妙って感じ。

なんていうか、聞いたことも無いような言語っていっぱいあるでしょ。
Webアプリ組めるか知らんけど、なでしことかHaskellとか。

http://ja.wikipedia.org/wiki/プログラミング言語一覧


780 :nobodyさん:2008/03/12(水) 11:06:55 ID:???
if(!ereg〜

781 :nobodyさん:2008/03/12(水) 11:14:03 ID:???
お前ら脱線しすぎですよ

782 :nobodyさん:2008/03/12(水) 11:51:48 ID:???
このスレは優しい人ばかりで大好きですが
最近はそうでもないです

783 :nobodyさん:2008/03/12(水) 13:18:34 ID:???
>764
元の配列作る段階で
array { "banana" => "yellow", "apple" => "red" };
みたいにしておけばいいのに

784 :nobodyさん:2008/03/12(水) 13:47:02 ID:bPECnjgM
mb_split('[,./-+,./−+、。・  ]', $keyword);

こんな感じでマルチバイトで区切れたよね
なぜか
mbregex compile err: empty range in char class
とかエラーが出るんです。

何か使えない文字入っていますか?

785 :784:2008/03/12(水) 13:50:01 ID:bPECnjgM
ああ、普通に入ってた・・・
エスケープしてなかた、ごめんにょ

786 :nobodyさん:2008/03/12(水) 14:22:22 ID:???
>>764
array_mapとかでやればいいんでね

787 :778 はな:2008/03/12(水) 16:06:22 ID:DpVFawg8
すいません。
「ereg」 の逆みたいな書き方はありますか?


788 :nobodyさん:2008/03/12(水) 16:17:50 ID:???
>>787
逆ってマッチしなかったらって事だろ?
>>780で回答あるよ

789 :nobodyさん:2008/03/12(水) 16:18:50 ID:???
>>780が目に入らないのだろうか
!は否定を意味する演算子
eregでマッチするのなら!eregにすればマッチしないという意味になる
基本すよ

790 :nobodyさん:2008/03/12(水) 16:47:27 ID:???
こないだも@の意味を聞いてたヤツいたな。

791 :nobodyさん:2008/03/12(水) 16:48:53 ID:???
>>790
ナルトだよね?

792 :nobodyさん:2008/03/12(水) 17:01:20 ID:???
すいませんちょっとお尋ねしますが、
${sample}
みたいな変数の書き方があるのを初めて知ったのですが、
これは
$sample
とはどう違うのでしょうか??

793 :nobodyさん:2008/03/12(水) 17:07:28 ID:???
結論だけ言うとその2つなら全く同じ.
詳しくはマニュアルのここ読むとよいですよ
http://jp2.php.net/manual/ja/language.types.string.php#language.types.string.parsing.simple

794 :792:2008/03/12(水) 17:17:51 ID:???
ありがとうございます!

795 :nobodyさん:2008/03/12(水) 18:30:32 ID:???
xdebug を リクエストごとに(正確には特定の PHP ファイルだけ)
ON/OFF したいときって、CGI モードを使って
dl() を使う以外に、なにか方法ない?

.htaccess か、ini_set() で何とかなるとよさげなんだけどなぁ。。。

796 :nobodyさん:2008/03/12(水) 19:14:37 ID:W7u96JdG
現在割り当てられているドメインを代入するような関数はありますか?

hogehoge.com - 割り当て - public_html(ディレクトリ)

例えば public_html に入っている test.php の内部に記述すると、
hogehoge.com を自動的に判断して、そこに代入される感じです。

現在共通パーツがあるのですが、置換速度が遅くなるほど
画像、文章、タグが入り込んでいて簡略化したいのですが。


797 :nobodyさん:2008/03/12(水) 19:17:10 ID:???
>>796
んん?
つ$_SERVER['HTTP_HOST']

798 :nobodyさん:2008/03/12(水) 19:33:14 ID:30ilS6/S
すいません質問です。
正規表現でURLからホストのみ抜き出したいんですが
URLを抽出するサンプルしか検索にかからなくて困っております。

「ホスト抽出 正規表現 URL php」などで検索かけてみました。

なので自作関数を作ろうと思ってるのですがホスト名というのは

「//(スラッシュ)」が二回出たところから
「/(スラッシュ)」が三回目に出たところまで

を抽出する考えで間違っていないのでしょうか?
よろしくお願いします。

799 :nobodyさん:2008/03/12(水) 19:38:49 ID:???
>>798
url抜き出してparse_url

800 :nobodyさん:2008/03/12(水) 19:43:06 ID:30ilS6/S
>>799
なるほど、このような関数があるのですね。
ありがとうございました。

801 :nobodyさん:2008/03/12(水) 20:25:03 ID:???
>>797
thx!!

サーバ変数なるものがあったのか、、


802 :nobodyさん:2008/03/12(水) 22:41:25 ID:frkhoFZA
phpのクラスの動作について教えて下さい。

クラスをnewしたままプログラムを終了しているのですが、
Javaみたいにオブジェクトを破棄する処理をしないといけないのでしょうか?

メモリーに使わなくなったオブジェクトがどんどん溜まって
メモリーの使用量がどんどん上がってことはありますか?

実は、時間が経過するについてメモリーの使用量が増えていき、
ある一定の使用量になると何もしていないのに勝手にapacheの再起動されます。
原因として考えられるのがこれくらしか思いつきません。

宜しくお願いします。

803 :nobodyさん:2008/03/12(水) 22:56:45 ID:???
ない、放っておいて無問題。

804 :nobodyさん:2008/03/13(木) 00:08:01 ID:r9ewSs4N
SSLでPOSTしたいのですが、
php_openssl.dll を有効にして fsock を使用するのと、
php_curl.dll を有効にして、cURL を使う方法、
どちらの方が良いのでしょうか?

805 :nobodyさん:2008/03/13(木) 00:13:12 ID:???
カレンダー関数をphpizeでビルドすることはできますか?

806 :nobodyさん:2008/03/13(木) 00:42:40 ID:???
>>802
内部では使用していないクラスやオブジェクトを、自動的に破棄してくれる機能はありますが
即時性はなく一定時間キャッシュされてしまいます
ですので、メモリーの節約や行儀的には明示的に開放しないといけません


807 :nobodyさん:2008/03/13(木) 00:46:28 ID:???
複雑な処理でなければそのようなヘマはしないが
作り方次第では永遠に開放されない場合はある
(保持されたままガンガン新しく作り続ける)

808 :nobodyさん:2008/03/13(木) 01:22:59 ID:???
>>802は、そもそもPHPの問題ではない気がするんだが?

> ある一定の使用量になると何もしていないのに勝手にapacheの再起動されます。
apacheが再起動するのか、
PHPがapacheに再起動させられるのか
日本語でおk?

apacheの設定といろんなモジュールとアプリによっては、
プログラムを終了しても、メモリーがどんどん増えるなんて現象
ありえるかもしれんが、普通はないんじゃない?
いろいろ使っていれば、まずそっちを疑うだろうし。

サーバーとかOSとかアプリの仕様とか、情報が足りなすぎ。
あとPHPでもJavaでもクラスをnewしたまま終了しても一般的には問題はない。
パフォーマンスに関係することもあるが、不具合的な現象が起こることはない。

809 :nobodyさん:2008/03/13(木) 01:29:47 ID:???
そもそも PHPの一つのスレッドが長い間動いていると使用メモリが増大するのか、
何度も呼び出して実行していると使用メモリが増大するのかも良くわからん。

前者なら、メモリリークが発生する事があるのは自明。
後者なら環境変えても発生するのか知りたいところ。

810 :778 はな:2008/03/13(木) 01:51:47 ID:???
>780
ありがとうございました!
できました(^^)

>788、>789
すいません、言われて気が付きました!
ありがとうございました!

811 :nobodyさん:2008/03/13(木) 01:52:09 ID:Kk2Hpxcb
>>808
こうゆう奴が平気でメモリリークするプログラム組むんだよな・・・

812 :nobodyさん:2008/03/13(木) 02:02:56 ID:???
>>811
こんにちは。ごみくずさん。

813 :nobodyさん:2008/03/13(木) 02:11:58 ID:???
>>803>>806-809
アドバイス色々とありがとうございます。
オブジェクトについては、プログラマムを終了した時点で、
破棄される又はいつでも破棄されるうる状態に遷移するんですね。

メモリー使用率を監視していると、時間の経過とともに増えていきます。
そして、一定の使用率(20%)を超えた位でapacheが再起動します。
その瞬間メモリー使用率が10%前後になります。そして又増えるのサイクルです。

となると、やはりphpが原因としか考えられない気がします。
セマフォ関係のphpのメモリ関数は使っていません。
OSもFreeBSD6.2Rの安定バージョンを使っています。
また、特定のスクリプトが長時間動いているということはありません。

開発環境はWindowsを使ってやっていますが、
ここでも不具合は出来ます。ある一定の時間がたつとDBへの接続エラー※が発生して、
そのときもapacheを手動で再起動しないとDB関係の処理は全て失敗します。
※接続エラーは、接続は出来るもののTBLからデータが取得できません。apache再起動でTBLへ接続可能です。

あれ、もしかしてもPDOかな?PDOを使い初めて少し立った位からそういう症状になったような。
構成をちょくちょく変えているので、どれが原因が検討が付かないです・・・

814 :nobodyさん:2008/03/13(木) 02:29:56 ID:???
自分は使ったこと無いけど、コネクションプールとかは、メモリリークの原因になりうるかもね。

815 :nobodyさん:2008/03/13(木) 03:30:37 ID:???
PHPでメモリ気にするようなプログラムなんて組まないだろ

816 :nobodyさん:2008/03/13(木) 04:02:21 ID:???
時間の経過でメモリが溢れるPHPプログラムってどんなの?
オブジェクトの扱い方が悪いんじゃない?

817 :nobodyさん:2008/03/13(木) 11:07:35 ID:???
PHPがapache上で動いていて、そのプログラムが”終了”する以上
終了してもメモリリークしたりしたら、PHP言語で書いたコードに
問題があることは無いだろう。使用しているモジュールか
apacheそのものに根本的な問題がある。

その問題を回避する為にPHP言語で書いたコードを修正することは
あるだろうが、あくまで根本的な問題はPHP言語で書いたコードには無い。

818 :nobodyさん:2008/03/13(木) 11:27:55 ID:???
PHPでメモリリーク起こしてシステムダウンなんて聞いたことないな

819 :nobodyさん:2008/03/13(木) 11:28:34 ID:Kk2Hpxcb
PHPで"終了"しないものだってあるだろ。
singleton実現するためにmemcached入れたりとか。キャッシュ系だな。

>>813はDBコネクションが切れてないだけのようだが。


820 :795:2008/03/13(木) 11:29:35 ID:???
>>795

・・・誰かレスをくれるとうれしいな。。。

821 :nobodyさん:2008/03/13(木) 11:43:31 ID:???
>>819

>>802を読め。終了する と書いてあるだろ。

たしかに終了させない方法もあるが、
そういうことをしていれば、普通自分で気づくだろ?

822 :nobodyさん:2008/03/13(木) 11:57:11 ID:???
そもそも環境すら書かずにメモリ云々してる時点でアウト、
php.iniのメモリ使用量が少ないんじゃねぇの?
4と5じゃ大違いだし。

823 :nobodyさん:2008/03/13(木) 12:21:35 ID:???
>>820
リモートデバッグonにしてみるとか?
http://bobchin.net/xdebug/docs-settings.html#debugger

824 :nobodyさん:2008/03/13(木) 12:37:21 ID:???
再帰呼び出し辺りでミスってるんじゃねえ?

825 :nobodyさん:2008/03/13(木) 12:38:48 ID:???
たとえ再帰呼び出しをミスっても、apacheが再起動することはないだろ?

826 :nobodyさん:2008/03/13(木) 12:39:09 ID:???
>>820
デバッグ情報だけキャッチして別ファイルというかモニタリング用ページに吐き出せば?

827 :nobodyさん:2008/03/13(木) 12:41:06 ID:???
再帰ループでメモリ食いつぶしてOS落としたことがあるのは俺だけのようだ

828 :nobodyさん:2008/03/13(木) 12:45:46 ID:???
Apacheはメモリストレスに弱い

829 :nobodyさん:2008/03/13(木) 12:46:32 ID:???
>>827
もしメモリ制限がかけられているPHPで、
再帰ループでメモリ食いつぶしてOS落としたのなら、
確かに、それはお前だけだろうなw

830 :nobodyさん:2008/03/13(木) 12:55:36 ID:???
>>829
正直、落ちる理由がよくわからないが再帰を使わないようにすれば落ちなくなったw
ログを見た限りではswap領域が確保できないからhttpdを殺す!ってメッセージが残って
その後音信不通になっている

831 :nobodyさん:2008/03/13(木) 12:59:19 ID:???
逆か
メモリ制限かけてあるから、設定以上の領域が確保できなくて落ちた?

832 :nobodyさん:2008/03/13(木) 13:00:55 ID:???
>>828
俺だって、ストレスには滅法弱いorz

833 :nobodyさん:2008/03/13(木) 13:43:59 ID:???
まともなコーディングならメモリリークするわけない、
phpとApacheの設定を怪しんだ方が正解だな。

834 :795:2008/03/13(木) 13:44:33 ID:???
>>823
>>826

いやなんか、特定の PHP だけ、xdebug が ON だと落ちるんよ。。。

835 :nobodyさん:2008/03/13(木) 14:06:08 ID:+qmn4vHF
ここでいいのかわからんが
youtube APIのvideos.list_by_tagで検索って
upload_timeの順に取得できないの?
http://www.youtube.com/dev_api_ref?m=youtube.videos.list_by_tag

普通に引っ張ると関連度の高い○○件引っ張ってから
それをソートして1番に持ってくるとかしかできなくて不便だし
引っ張った○○件中のアップロード時間が一番最近の物しか引っ張れない。

http://www.youtube.com/rss/tag/タグ.rss
こんな感じにすれば最新の物引っ張れるが
これだとAPIの機能と混ぜなきゃいけないからめんどう。

どうしたものか。

836 :nobodyさん:2008/03/13(木) 14:07:13 ID:???
実は再起動してないって落ち?
プロセスが消えるから再起動したと勘違いしてるとかw

837 :813 :2008/03/13(木) 15:27:05 ID:OwBZy3+J
沢山のアドバイスを頂きまして、どうもありがとうございました。
バージョンは書き忘れてしました。すみません。5.2.5です。

>>822さんへ
>>php.iniのメモリ使用量が少ないんじゃねぇの?
>>4と5じゃ大違いだし。

php.iniでメモリー使用量というのは、
memory_limit = 128M ; Maximum amount of memory a script may consume (128MB)
のことでしょうか?

とりあえず、これを上げてみて様子をみてみます。

>>814さんへ
パフォーマンス向上のためコネクションプールを使っていますが、
メモリーに常住するといういみではこれも怪しいですね。
一回解除してみます。

>>836
apcheのログを見ると、リスタートしているログが残っていますし、
Apache Server Statusのrestar timeとも合致します。

MRTGでリソース監視していますが、httpdのプロセス数やCPUの使用率をみても、
強制再起動と因果関係がなさそうです。

>>819さんへ
>singleton実現するためにmemcached入れたりとか。キャッシュ系だな。
phpにキャッシュする実装はしていないです。代わりに、MySQLのMEMORYテーブルを作って高速化はしています。

設定を変えて1日、2日様子を見て、またご報告させて頂きます。
障害の切り口がお陰で分かりました。どうもありがとうございました。

838 :nobodyさん:2008/03/13(木) 16:49:31 ID:???
ログにリスタートする理由が書いてない?
実はlogrotateとか、MaxRequestsPerChildとかで殺されてるってことは無いの?

可能ならgdbをサーバプロセスにアタッチして監視するとかしたら?


839 :nobodyさん:2008/03/13(木) 18:37:21 ID:9PIbKVj5
class Hoge
{
public function TEST()
{
}
}

これでpublic functionの部分で、
Parse error: syntax error, unexpected T_STRING, expecting T_FUNCTION
とエラーが出てしまいます。
function TEST()
{
}
にするとエラーはなくなりました・・・。
publicは使えないのでしょうか?

840 :nobodyさん:2008/03/13(木) 18:39:06 ID:9PIbKVj5
ちなみに
new Hoge();
でこのエラーが出ます・・・。

841 :nobodyさん:2008/03/13(木) 18:40:16 ID:???
>>839
PHPのバージョンが4以下だったりしない?
public宣言とかが出来るのはPHP5からだった気がする。

842 :nobodyさん:2008/03/13(木) 18:42:31 ID:9PIbKVj5
あー、環境忘れてました、すみません。

PHP 5.5.2
Apache 2.2

何かすごく初歩的なミスをしているような気がしなくもないですorz

843 :nobodyさん:2008/03/13(木) 18:45:08 ID:???
PHP5.5?

844 :nobodyさん:2008/03/13(木) 18:46:06 ID:???
>>843 訂正
ぐぐったらあるみたいだね。ごめん。

845 :nobodyさん:2008/03/13(木) 18:46:24 ID:9PIbKVj5
ごめ、5.2.5

846 :nobodyさん:2008/03/13(木) 18:49:11 ID:???
分からないなぁ。
publicとfunctionの間が全角スペースになってたとかない?

847 :nobodyさん:2008/03/13(木) 18:50:59 ID:9PIbKVj5
ありがとうございます、そのとおりでしたorz

今後気をつけます・・・。

Eclipseって全角半角わかりづらいっすね

848 :nobodyさん:2008/03/13(木) 18:55:13 ID:???
>>844 再訂正
β版でもあるのかと思ったけど、やっぱりないっぽい。
googleでヒットしたのはただのタイプミスか。orz

849 :nobodyさん:2008/03/13(木) 19:33:19 ID:Mmit1vUp
アクセスランキングなどを貼ってあるブログにリファラスパムをして
アクセスランキングをぐちゃぐちゃにする方法があるようですが、
あれってどういうことをやっているのか教えてもらえませんか

850 :nobodyさん:2008/03/13(木) 19:36:51 ID:???
>>849
君が書いてる通りのことをすれば良いだけだと思うが

851 :nobodyさん:2008/03/13(木) 19:39:22 ID:Mmit1vUp
>>850
すいません書き方が悪かったですね
リファラスパムそのものの方法を聞いているのです

852 :nobodyさん:2008/03/13(木) 19:43:25 ID:Mmit1vUp
>>850
いま必死に調べてるのかな?
もう少しだけ待ってあげるからね
俺に質問を訂正させる手間かけさせたんだからきちっと答えろよ
無理なら許すけどさ

853 :nobodyさん:2008/03/13(木) 19:51:28 ID:???
任意の深さの階層のXML文書を再帰的にぬるぽする方法は?

854 :nobodyさん:2008/03/13(木) 19:53:59 ID:Mmit1vUp
>>853
ぬひんおでおk

855 :nobodyさん:2008/03/13(木) 21:10:20 ID:Kk2Hpxcb
QuickFormにて手動でerrorsに追加するにはどうすればいいですか?

856 :nobodyさん:2008/03/13(木) 21:25:53 ID:???
>>847
JStyleってプラグインいれとけ

857 :nobodyさん:2008/03/13(木) 22:11:44 ID:???
   ∩___∩
   | ノ      ヽ !
  /  ●   ● |   こいつすげぇアホ
  |    ( _●_)  ミ
 彡、   |∪|   / .\
/ __  ヽノ / \ ...\
(___)   /   .│ ..│
            │ │
            /  ヽ
            l..lUUU
            .U

858 :nobodyさん:2008/03/13(木) 22:21:49 ID:???
   ∩___∩
   | ノ      ヽ !
  /  ●   ● |   ?
  |    ( _●_)  ミ
 彡、   |∪|   / .\
/ __  ヽノ / \ 

859 :nobodyさん:2008/03/13(木) 23:52:30 ID:???
たわしねこ見て餅つけ

860 :nobodyさん:2008/03/13(木) 23:57:20 ID:KzoZRqtO
しつもんですがPHP6はIE7.0にたいおうしてますか?

861 :nobodyさん:2008/03/14(金) 00:20:41 ID:CVUKE/w5
>>860
php6はIE6までしか対応していない。
IE7であればphp7が出るまで待つしかない。

862 :nobodyさん:2008/03/14(金) 00:25:13 ID:TU1K9tdo
>>861
教科書的な答えありがとうございました

863 :nobodyさん:2008/03/14(金) 00:37:28 ID:???
流石だな>>861はっ


864 :nobodyさん:2008/03/14(金) 00:53:19 ID:???
え、じゃあみんなIE7に対応したサイト作るときどうするの?
なんかプラグインとか入れなきゃダメなの?

865 :nobodyさん:2008/03/14(金) 00:56:31 ID:???
>>864
そのくらいのプラグインはみんな自作してるよ。

866 :nobodyさん:2008/03/14(金) 01:02:38 ID:???
>>865
うわ、マジかよ…orz
IE7でも問題なく見れてたからこれでいいのかと思ってた・・・
ちょっとググってくる。ありがとう。

867 :nobodyさん:2008/03/14(金) 01:07:22 ID:???
なんだこの展開は・・・笑

868 :nobodyさん:2008/03/14(金) 01:34:38 ID:mBxJ6iKU
関数の引数に a-b-c という引数を渡したら
$array['a']['b']['c']という値を返したいと思っています。

-をexplodeして一つ一つの要素に分解するまでは良いのですが、
渡される引数の数が決まっていません。よって a もあれば a-b-c-d もあります。
これをうまい具合に解決する方法はありませんでしょうか?
わかりにくい文章ですみません。

869 :nobodyさん:2008/03/14(金) 01:35:46 ID:???
IEのバージョンなんて関係ねぇ
.netじゃないんだからw

870 :nobodyさん:2008/03/14(金) 02:06:18 ID:???
>>868
可変長引数で可能

871 :nobodyさん:2008/03/14(金) 02:10:24 ID:???
へっ、おまいらが遊んでる間に再帰的ぬるぽを書き上げたぜw

872 :nobodyさん:2008/03/14(金) 03:07:34 ID:???
>>868
$array['a']['b']['c']
これって3次元配列って意味?それとも
$array = array("a","b","c");
の事?

とりあえず3次元だった場合のあれ

function hoge($str, $delimiter = "-")
{
    $ary = explode($delimiter, $str);
    if (is_array($ary) == false)
    {
        return false;
    }
   
    $ret = array ();
    $cnt = 0;
    do
    {
        $ret = array(array_pop($ary) => $ret);
    }
    while (0 < count($ary));

    return $ret;
}



873 :nobodyさん:2008/03/14(金) 03:26:01 ID:???
>>868
これでどう?
$list = array(1,array(2,3,array(4,5)),6);

echo getValOf($list, '1-0').'<br/>'; // 2 が表示される
echo getValOf($list, '1-2-1').'<br/>'; // 5が表示される

function getValOf($list, $path) {
foreach(explode('-',$path) as $key) {
$list = $list[$key];
}

return $list;
}


874 :nobodyさん:2008/03/14(金) 04:08:44 ID:???
>>868
>a-b-c
こんな変な引数渡すよりfunc_get_args使ってやったほうがいい

875 :nobodyさん:2008/03/14(金) 04:30:15 ID:???
>>874
呼び出される側はそれで良いだろうけど、呼び出す側も可変に出来るの?

876 :nobodyさん:2008/03/14(金) 04:36:37 ID:???
>>875
874ではないが
call_user_func_arrayってーのを使えばできる
第1に関数名、第2にパラメータの配列

まぁこんな事するなら普通に配列渡せって感じだし
こんな変な設計になるのは何かが間違ってるとしか思えんがw

877 :nobodyさん:2008/03/14(金) 04:52:38 ID:???
>>876
ありがとう。
自分も、その通りだと思う。

878 :nobodyさん:2008/03/14(金) 09:05:03 ID:???
     テスト

879 :868:2008/03/14(金) 12:27:35 ID:mBxJ6iKU
将来的に第二引数に値を渡す仕様のため、func_*系の関数は使えませんでした。
また、第一引数にはarrayも渡せる仕様にしました。
オブジェクト的な配列にアクセスするために -> のような視覚的効果が欲しかったって言うだけです。

皆様有り難う御座いました。

880 :nobodyさん:2008/03/14(金) 13:31:04 ID:DyyjdTiB
ABCDEFG
10010010

1にマッチする場所のアルファベットを取得したいんですが、
そんな感じの変数ってありませんでしたっけ・・・?
何か以前に近いことができたような・・・

881 :nobodyさん:2008/03/14(金) 13:33:53 ID:???
意味がわからん

882 :880:2008/03/14(金) 13:37:21 ID:DyyjdTiB
ABCDEFG
10010010

ADFを出力

883 :nobodyさん:2008/03/14(金) 13:53:21 ID:???
>>880
多分ない

var_dump(hoge("avc","010"));
function hoge($str1,$str2)
{
    $ret = '';
    foreach (str_split($str2) as $key => $value) {
        if ($value != 1) {
            continue;
        }
        $ret .= $str1[$key];
    }
    return $ret;
}


884 :nobodyさん:2008/03/14(金) 13:55:28 ID:DyyjdTiB
おおー、わざわざ作ってくれてありがとー

885 :nobodyさん:2008/03/14(金) 14:30:09 ID:???
そういうことか。
だったら、数字とアルファベットの桁数を揃えないと分かりずらいだろ。

886 :nobodyさん:2008/03/14(金) 14:48:15 ID:???
0と1ならビット演算子使ったほうがスマートじゃね?

887 :nobodyさん:2008/03/14(金) 15:29:59 ID:???
スレ違いかもしれませんけど
周りにエロい人がいないので
ここでアドバイスを願います。

PHPのSESSIONIDを推測して同時にアクセスしている人に
なりすますことは可能でしょうか?偶然を除いて。

888 :nobodyさん:2008/03/14(金) 15:38:37 ID:???
>>887
>>1

889 :nobodyさん:2008/03/14(金) 15:45:40 ID:???
CSRFとかセッション固定化攻撃とかって類か
まぁ一応可能っちゃ可能かな?

890 :nobodyさん:2008/03/14(金) 16:00:45 ID:drEqqpJQ
mod_deflateで圧縮するのとPHPの設定で圧縮するのどっちがいい?

891 :nobodyさん:2008/03/14(金) 16:11:32 ID:???
>>887
不可能である事は証明できないだろうけど、オライリーの「入門PHPセキュリティ」には、それは現実的なリスクでは
ないと書かれてる。もっともほかの事を気にしろと。

とりあえず見つけたページも貼っとく。
http://tdiary.ishinao.net/20061120.html

892 :nobodyさん:2008/03/14(金) 16:32:13 ID:???
>>891
sessionidの生成ロジックから、
同一ホスト同時アクセス時のユニーク性も証明できないって、
なんちゃって技術者か。

最近、この手のコンピューターの基礎理論や数学的な教養もない技術者が増えていて嘆かわしい。
業界人口が急速に増えると、人材の劣化が激しいことの証左だな。

893 :nobodyさん:2008/03/14(金) 16:37:39 ID:???
数学的教養

894 :nobodyさん:2008/03/14(金) 16:49:29 ID:???
>>892
だれがユニーク性の話をしているの?
予測の困難さの問題だと思うんだけど。

895 :nobodyさん:2008/03/14(金) 17:03:31 ID:???
>>894
ユニーク性の証明から、予測の困難性を演繹的に証明できるだろ。
お前は、どういうアプローチで予測の困難性を証明しようとしているの?

896 :nobodyさん:2008/03/14(金) 17:12:12 ID:???
よーするに、気にする必要も無い程非常に困難、でおk?

897 :nobodyさん:2008/03/14(金) 17:15:11 ID:???
>>896
今のところは、多分、そう。

898 :nobodyさん:2008/03/14(金) 17:32:17 ID:???
PHPのくだすれで今更言うことでもなくないか?

899 :nobodyさん:2008/03/14(金) 17:56:48 ID:???
SessionIDの成りすまし簡単だぜ?
ターゲットにしているユーザーのパソコンに外部から接続して、乗っ取りが成功すれば
ブラウザが使用しているメモリ領域から情報を引き出せる
それを元にすれば早いだろw

900 :nobodyさん:2008/03/14(金) 17:59:56 ID:???
SessionIDを発行している鯖をハッキングした方が早くね?

901 :nobodyさん:2008/03/14(金) 18:02:37 ID:???
>>900
不正アクセス禁止法の教唆で通報した。

902 :nobodyさん:2008/03/14(金) 18:08:04 ID:???
>>901
私は捕まるのですね
捕まるぐらいなら死んだ方がマシです
さようなら

903 :nobodyさん:2008/03/14(金) 18:10:01 ID:MYksIzGY
SSL使えば、クライアントが入れ替わってないか判別できるんだよね。
その場合でも、同じセッションID使われたら、特別な処理をしないかぎり、セッションハイジャックってできたりするの?

とりあえず環境は Apache2.x + PHP5.x あたりと仮定して。

904 :nobodyさん:2008/03/14(金) 18:10:42 ID:???
     *      *
  *  うそです   +  
     n ∧_∧ n
 + (ヨ(* ´∀`)E)
      Y     Y    *


905 :903:2008/03/14(金) 18:12:09 ID:???
そもそも、SSLってクライアント側に証明書いれておかないと、クライアントの認証はしないんだっけ?

906 :nobodyさん:2008/03/14(金) 18:13:21 ID:???
PHPのSessionIDが特別仕様というわけではなく、PerlやJAVAなどが使用している使い古された手法
そこは古いApache側のセキュリティホールを利用とかじゃなければ、PHPだからというのはないな


907 :nobodyさん:2008/03/14(金) 18:14:45 ID:???
>>903
> セッションハイジャックってできたりするの?
分からん。SSLのレベルの定義されていないし、解読に掛かる時間も定義されていない、
解読に要するリソースの制約条件も定義されていない。

条件が全くといっていいほど定義されていないのに、答えられる訳がない。

908 :nobodyさん:2008/03/14(金) 18:25:14 ID:???
>>889

> ターゲットにしているユーザーのパソコンに外部から接続して、乗っ取りが成功すれば

ネタですよね? もはやセッションIDの乗っ取りとは関係ない話。


909 :903:2008/03/14(金) 18:27:02 ID:???
>>906
Servletの場合、SSLじゃなくてIPアドレスチェックの話だけど、APサーバによっては途中でIPが変わると
セッションが切れた気がする。AirH"がユーザが気がつかないうちに接続しなおすものだから、突然ログアウト
してしまうという現象が発生した記憶がある。

だから、同じような話で、SSL使ってチェックしたりする設定がないかなぁという期待。
もしくはデフォルトでそうなっているとか。

どうなんだろ。

910 :nobodyさん:2008/03/14(金) 18:30:52 ID:???
>>909
ipアドレスが変わるたびにセッションが切れていたら、docomoは全然だめだな

911 :nobodyさん:2008/03/14(金) 18:30:59 ID:???
ドアに鍵をかけていても、その鍵を簡単に取れるところに
おいていたら意味はない。
また、その鍵が机の鍵のようなちゃちい鍵だと余り意味は無い。

そういう問題外の状態は論外として取り扱わないとして
ちゃんとした使い方をしていれば、他人のセッションIDを
推測することは不可能。

912 :903:2008/03/14(金) 18:37:31 ID:???
>>910
IPアドレスが変わったとき、Servletならばセッションが存続しないって話じゃないから。
そういう環境があったというだけで。だから、それは別問題。

913 :nobodyさん:2008/03/14(金) 18:44:51 ID:???
俺は知らないけど、SSLの仕様を調べれば済む話じゃないの?
「〜なき気がする。どうなんだろう。」とか言ってても仕方ないと思うんだがww

914 :nobodyさん:2008/03/14(金) 19:03:54 ID:???
>>908
他人のSessionIDが知りたいだけなら間違いではなかろう
セッションハイジャックをして何がしたいんだ?


915 :nobodyさん:2008/03/14(金) 19:15:24 ID:???
>>913
そもそもSSLは関係ない話。

セッションIDとSSLは関係ない技術

916 :nobodyさん:2008/03/14(金) 20:26:13 ID:6wdnTdIf
例えば、hoge.txtの読み書きをする場合、

ロック専用ファイルをflockでロックして、
hoge.txtの読み書きをする。

hoge.txtをflockでロックして、
hoge.txtの読み書きをする。

どっちが普通ですか?


917 :nobodyさん:2008/03/14(金) 20:30:52 ID:XPDryAhR
htmlspecialchars_decodeについて質問です。

php5を使用してるのですが
htmlspecialchars_decodeを1回目の使用の場合戻らなくて
2回かけると戻ることがあるのですが、これは何故なのでしょうか?
よろしくお願いします。

918 :917:2008/03/14(金) 20:36:04 ID:XPDryAhR
っんだよ、よくソース見たら&lt;とかになってんじゃねーか畜生

ありがとうだっつーの!

919 :nobodyさん:2008/03/14(金) 20:36:37 ID:XPDryAhR
>>918
なん…だと…?

920 :nobodyさん:2008/03/14(金) 20:58:43 ID:???
>>918
> ありがとうだっつーの!

どういたしまして。お役に立てて光栄です。

921 :nobodyさん:2008/03/14(金) 21:00:23 ID:???
>>916
後者をfile_put_contentsでやるのがPHP5でのたしなみ

922 :nobodyさん:2008/03/14(金) 21:05:16 ID:???
PHP4でPHP5の関数を使える互換ライブラリ
http://upgradephp.berlios.de/

923 :nobodyさん:2008/03/14(金) 21:50:36 ID:???
>>922
古いしイラネ

924 :nobodyさん:2008/03/14(金) 21:53:10 ID:???
古いことが何か悪いことでもあるのだろうか?

925 :nobodyさん:2008/03/14(金) 23:01:55 ID:???
PHP4はセキュリティアップデートのサポートから除外されたからやばいんじゃねえ?
今年中にPHP6出るらしいし、PHP5に乗り換えときなよ

926 :nobodyさん:2008/03/14(金) 23:18:29 ID:???
php6にしないと、IE6で動かなくなるよ

927 :nobodyさん:2008/03/15(土) 03:14:39 ID:zI+80wWb
もうIE6なんて使っているやついねーよ

928 :nobodyさん:2008/03/15(土) 08:19:09 ID:???
うちは未だにIE2

929 :nobodyさん:2008/03/15(土) 10:49:51 ID:???
おれっちはIE4

930 :nobodyさん:2008/03/15(土) 15:32:04 ID:???
このスレ前はいい人たちばかりで、私も色々助けてもらったけど、
もうこのスレには変な人間ばかりしかいないのかな。

931 :nobodyさん:2008/03/15(土) 15:40:42 ID:???
>>930
まだ謝礼を貰っていなかったな。
ほれ、ケツあげろケツ。

932 :nobodyさん:2008/03/15(土) 16:04:03 ID:???
激しく既出なのかもしれませんが...

スクリプトはEUC-JPで書いてます。
mb_internal_encodingもEUC-JPです。
htmlをはき出す時は、以下のようにしています。
header( "Content-type: text/html;charset=Shift_JIS" );
ob_start("mb_output_handler");
print $buf;
ob_end_flush();
これで、EUC-JPをSJISに変換して出しています。

ところが、xhtmlの場合、ヘッダーを
header( "Content-type: application/xhtml+xml;charset=Shift_JIS" );
とすると、文字コードが変換されません。

これはこういうものなんですか?
なんか間違ってますか?

933 :nobodyさん:2008/03/15(土) 16:10:36 ID:???
>>930
今度はお前が助ける番だ
しっかりやれよ

934 :nobodyさん:2008/03/15(土) 17:15:33 ID:???
>>931>>933
あなた達は、虫以下の脳みそしか持っていません。
ただ、体がでかいだけです。

935 :nobodyさん:2008/03/15(土) 17:29:19 ID:???
>>934
虫の脳って、言語を扱える程に発達してたっけ?

936 :nobodyさん:2008/03/15(土) 17:34:17 ID:???
代わりに高性能なマイクロチップが入っているんだよ
つまりこのスレにはザレムの住人がいる

937 :nobodyさん:2008/03/15(土) 17:47:35 ID:???
>>932
正確なことは知らないんで違ってるかもしれんが、そもそもPHPって header で charset指定するだけで
文字コード変換したりするんだっけ?変換処理をするとすれば Apacheじゃなくて PHPだと思うんだけど、
それらしい記述がマニュアルからみつけられない。

対応としては、ob_get_contents して変換するのが定石じゃないかと思うけど。


938 :nobodyさん:2008/03/15(土) 17:52:22 ID:???
フレームワーク作ってたらMVCではなくVCになったw
やりなおそw

939 :nobodyさん:2008/03/15(土) 17:58:54 ID:???
>>932
mb_http_output('SJIS');
とか利用してないのか?


940 :nobodyさん:2008/03/15(土) 18:12:21 ID:???
>>932
>>937が探したらしき「それらしい記述」。
ttp://jp2.php.net/manual/ja/function.mb-output-handler.php

注意書き見ればわかるけど、それはそういうもんです。

941 :937:2008/03/15(土) 18:27:49 ID:???
>>940
ありがとう。こっちの方がシンプルだね。

確認なんだけど、
>header() により"Content-Type: text/*" を送信した場合には、テキストが送信されるとみなし、
>文字コード設定に 基づいて出力文字コード変換を行います。

ってのは、Content-Typeが text の場合は、mb_http_output の設定にしたがって変換するという意味ですよね。
Content-Type で charset 指定しても文字コード変換はされないと思ってるんだけど、それは合ってますか?

今回の >>932 の件も、Content-Typeが text じゃないから、明示的な指定が必要ということか。

942 :nobodyさん:2008/03/15(土) 18:33:53 ID:???
>>932
iniかhttpd.confか.htaccessで
output_handlerをmb_output_handlerにして
PHP内で
mb_http_output("SJIS");
と指定して
echo mb_convert_encoding($contents, "SJIS","EUC-JP");


943 :nobodyさん:2008/03/15(土) 22:59:16 ID:???
参考書を読んでも$_GETと$_POSTの違いが理解できません。
$_GET データを送信する。 
$_POST データを送信する。

・・・。

どなたか簡単な例に例えて説明してくれませんでしょうか?


944 :nobodyさん:2008/03/15(土) 23:16:13 ID:???
$_GET = URLの?以降 簡単に変更出来るが長さに制限がある
$_POST = method=post になっている <form> から送信したデータ

945 :943:2008/03/15(土) 23:27:59 ID:WjD0JvRK
>>944 なるほど php?id=xxxxxxxxxxxxが $_GET なんですね
ありがとうございます

946 :のぼdyさん:2008/03/15(土) 23:29:54 ID:J4XO1nny
すみません、皆様の考えを教えていただけると助かります。

よくコンボボックスで、下記のように「良い」は「1」、「悪い」は「2」というように
指定します。
<select name="evel">
  <option value="1">良い</option>
  <option value="2">悪い</option>
</select>

その「1」と「2」の値を、データベースに保存しているのですが
下記の「良い」は「良い」のままデータベースに保存するのは何か弊害があるのでしょうか?
<select name="evel">
  <option value="良い">良い</option>
  <option value="悪い">悪い</option>
</select>

文字化けして、ブラウザから送信されたときはバリデーションで弾けますし
欠点は、HDD容量を多めに必要とするぐらいだと思うのですが。




947 :nobodyさん:2008/03/15(土) 23:32:17 ID:???
>>945
初心者っぽいけど、httpプロトコルを検索してみたらもうちょっと理解を深めれるかも。
余計にわからなくなる危険性もあるけど。

948 :nobodyさん:2008/03/15(土) 23:33:34 ID:???
>>946
やりたいようにやれ

949 :nobodyさん:2008/03/16(日) 00:48:12 ID:???
>>946
例えば表現を変えようとした時とか
あとは使用されるメモリ量とか(微々たる差だけど
バリデーションノしやすさとか

950 :nobodyさん:2008/03/16(日) 04:08:30 ID:???
>>946
(例)項目名 kubun
1=良い
2=悪い

これをどう使うかの用途次第

DB登録→検索に使用すると想定するならその時のSQLは、
(a)select ・・・ from tbl where kubun=1;
(b)select ・・・ from tbl where kubun='良い';

もし kubun が増えた場合を考えると、範囲検索って場合も・・
(a)select ・・・ from tbl where kubun between 1 and 3;
(b)select ・・・ from tbl where う〜ん…どうしましょ?

PHPには関係ないが、そんな感じ

951 :nobodyさん:2008/03/16(日) 04:30:05 ID:???
>>950
そのレベルでどうしましょとかおまえセンスないぞ

952 :nobodyさん:2008/03/16(日) 07:46:07 ID:???
不便になるって言いたいだけだろ。
さすがに>>950のSQLも思いつかんヤツはいないかと^^;

953 :nobodyさん:2008/03/16(日) 08:18:20 ID:???
いいんじゃない?
optionのvalueを文字列にしてpostしたり、
項目の数だけカラム作ったりするのもWebアプリ学び始めの醍醐味というものさ。


954 :nobodyさん:2008/03/16(日) 09:01:24 ID:???
>>940
932です。
おぉぉ、ありがとうございます。。。
すっきりししました。

955 :nobodyさん:2008/03/16(日) 10:53:12 ID:9hRtdL6R
php.ini-distのdistって何の略ですか?

956 :nobodyさん:2008/03/16(日) 11:08:12 ID:???
distance

957 :nobodyさん:2008/03/16(日) 11:26:53 ID:???
丸投げスレはノートンが反応して見れないのでこちらで聞かせていただきます
レッツPHPさんの
ttp://php.s3.to/simple/page.php.txt

をp=1ではなくp=001のように3桁にするにはどこを書き換えれば良いでしょうか?

958 :nobodyさん:2008/03/16(日) 12:02:38 ID:???
$pageと$_GET[p]に関するところ全部

959 :ららら:2008/03/16(日) 12:49:45 ID:6BeO6z+t
年月日が $y, $m, $d に入っているとき、
その次の日や前の日の年月日を取得するための
簡単な関数ってあるかな?

mktime で日付を範囲外にしてもうまくいかなかった。
(たとえば mktime(0,0,0, 10, 1, 2007) で 2007/09/30 に
なることを期待したけど、だめだった。)


960 :ららら:2008/03/16(日) 12:50:27 ID:???
>>959
× たとえば mktime(0,0,0, 10, 1, 2007) で 2007/09/30 に
○ たとえば mktime(0,0,0, 10, 0, 2007) で 2007/09/30 に


961 :nobodyさん:2008/03/16(日) 12:55:30 ID:???
こちらの環境では
echo date("Y/m/d", mktime(0,0,0, 10, 0, 2007));
を出力したら
2007/09/30
になったが?


962 :ららら:2008/03/16(日) 13:03:03 ID:???
えー?そーお?
別のところが間違っているのかなー。。。


963 :ららら:2008/03/16(日) 13:04:23 ID:???
ほんまや、ちゃんとできた。
コードのミスやった。。。。

964 :nobodyさん:2008/03/16(日) 13:05:29 ID:???
>>959
だから環境等を書けと(ry

http://jp.php.net/manual/ja/function.mktime.php

5.1.0以前だと不正な値はダメなのかもしれんね。
・・・と思ったが、大丈夫か。
win版だけの問題か?

FreeBSD php 4.4.7でテスト

> php -r 'echo date("Y/m/d", mktime(0,0,0, 10, 0, 2007));'
2007/09/30

ちゃんと出た。

965 :nobodyさん:2008/03/16(日) 13:06:26 ID:???
終わってたorz

966 :nobodyさん:2008/03/16(日) 13:07:46 ID:???
>>963
どういうミス?

967 :ららら:2008/03/16(日) 14:55:55 ID:???
>>966
別のロジックとの絡みだから、説明しても役に立たないよ。。。

968 :nobodyさん:2008/03/16(日) 15:02:39 ID:???
うん、それで?

969 :nobodyさん:2008/03/16(日) 15:15:26 ID:5AI0UypY
>>2 の

1.文字コードは何を使えばいいの?
→1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。


Shift_JISを使用しない方が良いのは何故ですか?

html、cssをよく標準でShift_JISを指定しているのですが、
アクセス解析や、部分的にphpスクリプトを埋め込んでいるのですが。

970 :nobodyさん:2008/03/16(日) 15:16:57 ID:???
http://www.websmith.co.jp/lilbox/
をいじって
Amazon トップセラー っていうのが表示されないようにしようと思ってます。
著作権表示も右上ではなく左下に移動させたいのですが
どうすればいいのかわかりません。
何方かご教授お願いします。

971 :nobodyさん:2008/03/16(日) 15:17:00 ID:???
Google先生に聞くと幸せになれるよ

972 :nobodyさん:2008/03/16(日) 15:38:46 ID:???
>>970
ぱっとみたがロジックが全く分離されてないカオスなスクリプトだな
簡単そうだし0から自分で書けばいい

973 :946:2008/03/16(日) 16:17:49 ID:g1Wku69A
>>947 >>948 >>949 >>950 >>951 >>952 >>953
ご回答ありがとうございます。

下記の点で困るんですね。
・表現を変える
・メモリ量
・バリデーションのしやすさ
・SQLの条件指定のしやすさ

参考になります。
ありがとうございました

974 :nobodyさん:2008/03/16(日) 16:51:54 ID:???
CGI・PHPは問わないので一日に
UP可能な容量が設定できるアップローダ探しています。

何方かご存知ありませんか?

975 :nobodyさん:2008/03/16(日) 17:11:38 ID:???
>>974
http://www.google.com/search?hl=ja&safe=off&q=%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%80%E3%80%80%E5%AE%B9%E9%87%8F%E3%80%80%E5%88%B6%E9%99%90&lr=

976 :nobodyさん:2008/03/16(日) 17:27:49 ID:???
>>974
そんなのphp.iniの制限値を設定すればいいだけだろ。
こいつニートじゃねーの?

977 :nobodyさん:2008/03/16(日) 17:31:57 ID:???
おにゅーなスレ
【PHP】下らねぇ質問はここに書き込みやがれ 66
http://pc11.2ch.net/test/read.cgi/php/1205655807/

978 :nobodyさん:2008/03/16(日) 17:40:20 ID:???
>>976
1日の制限値なんてあったっけ?
ちょっと落ち着けw

979 :nobodyさん:2008/03/16(日) 17:42:24 ID:???
転送量の話をしているのではないかと

980 :nobodyさん:2008/03/16(日) 18:23:10 ID:???
>>957
書くのめんどいからほれ
因みに最初の何行かは削除してある
<?php
$page = isset ($_GET['p']) ? intval($_GET['p']) : 1; // 最初はページ1
if ($page > 1) {
$pager .= "<a href=" . $url . sPage($page -1) . "><<前の" . $perPage . "件</a> ";
}
if ($page <= $delta) {
$alpha = $delta - $page +1;
}
$links = $pager = '';
for ($i = $page - $delta;($i <= $page + $delta + $alpha) && ($i <= $totalPage); $i++) {
if ($i < 1) {
continue;
}
$preTag = "<a href='" . $url . sPage($i) . "'>";
$aftTag = "</a> | ";
if ($i == $page) {
$preTag = "<strong>";
$aftTag = "</strong> | ";
}
$links .= $preTag . $i . $aftTag;
}
$pager .= substr($links, 0, -2);
if ($page < $totalPage) {
$pager .= "<a href=" . $url . sPage($page +1) . ">次の" . $perPage . "件>></a> ";
}
echo $pager;
function sPage($page) {
return sprintf("%03d", $page);
}

981 :nobodyさん:2008/03/16(日) 18:24:51 ID:???
>>969
文字コードがらみでふぁびょる奴が多いから


982 :nobodyさん:2008/03/16(日) 18:42:54 ID:???
>>978
だったらお前が答えてみろ。何この上目線の生意気な奴。市ね


983 :nobodyさん:2008/03/16(日) 18:47:48 ID:???
この上目線の生意気な奴
上目線・・・
上目線・・・
上目線・・・

984 :nobodyさん:2008/03/16(日) 18:52:20 ID:???
     /ニYニヽ
    /( ゚ )( ゚ )ヽ
   /::::⌒`´⌒::::\   でっていうwwwwwwww
  | ,-)___(-、|
  | l   |-┬-|  l |
   \   `ー'´   /

985 :nobodyさん:2008/03/16(日) 18:53:41 ID:???
>>984
こっちみんな

986 :nobodyさん:2008/03/16(日) 19:35:26 ID:???
>>984
生意気そうw

987 :nobodyさん:2008/03/17(月) 10:05:40 ID:6BYisms4
Warning: Invalid argument supplied for foreach()

これって「配列ではない」というエラーですよね?
foreach($array as $key=>$value)
{
}
これの直前でprint_r($array)をしてみたのですが、
Array
(
[0] => 居酒屋
)
と配列になっています。
何が原因なのでしょうか・・・?

988 :nobodyさん:2008/03/17(月) 10:10:00 ID:???
こっちの環境でやってみたが正しく実行できたよ。
エラーが再現するコード出してみたら?

989 :nobodyさん:2008/03/17(月) 10:14:05 ID:6BYisms4
どうやら2週ほどあって、2週目がString型のようでした。
print_r($array); die;
としていたため見逃していました。

原因追求してみます、ありがとうございました。

990 :nobodyさん:2008/03/17(月) 10:23:29 ID:6BYisms4
メソッドがどこから呼び出されたか取得するとか不可能ですかね・・・?

[class.php]
class TEST
{
  public function abc()
  {
    #呼び出されたスクリプトを返す。#
    echo "ABC";
  }
}

[test.php]
require_once 'class.php';
$obj = new TEST();
$obj->abc();

この場合、test.php on line 2を返す

991 :nobodyさん:2008/03/17(月) 10:26:23 ID:???
>>990
http://jp2.php.net/manual/ja/language.oop5.reflection.php

992 :nobodyさん:2008/03/17(月) 14:20:58 ID:???
debug_backtrace

993 :nobodyさん:2008/03/17(月) 17:43:03 ID:Xuq5ifxr
.htaccessスレがないのでスマソだがこちらに。

phpのみアクセスできる.htaccessの記述ってあるのだろうか?
中の画像をセキュりたいんだがリファラ以外の指定方法ってあるますか?
お願いします。

994 :nobodyさん:2008/03/17(月) 17:51:49 ID:???
>>993

<Files ~ "\.jpg$">
deny from all
</Files>

じゃダメ?

995 :nobodyさん:2008/03/17(月) 18:21:59 ID:???
>>993
Web制作板でたてていいよ

996 :nobodyさん:2008/03/18(火) 00:13:59 ID:???
前々からphpとperlとcでどれだけのパフォーマンスが違うのか、
よく分からなかったので、メジャーな処理20パターンで試してみた。
が、絶句した。なんで、ファイル処理がこんな実装になっているのかと・・・

997 :nobodyさん:2008/03/18(火) 00:19:32 ID:???
は?ソースもなしで煽ってんじゃねーよ乞食

998 :nobodyさん:2008/03/18(火) 00:28:53 ID:???
>>997
弱点を突かれたからって、ふぁびょってんじゃねーよwww

999 :nobodyさん:2008/03/18(火) 00:32:30 ID:???
>997
涙目ワラ

1000 :nobodyさん:2008/03/18(火) 00:33:29 ID:???
>>997
自分の方こそソースだせないくせに、こいつは確実にニート

1001 :1001:Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。

264 KB
★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50

read.cgi ver 05.04.00 2017/10/04 Walang Kapalit ★
FOX ★ DSO(Dynamic Shared Object)