【PHP】下らねぇ質問はID出して書き込みやがれ 83

このエントリーをはてなブックマークに追加
1nobodyさん
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
2nobodyさん:2009/04/06(月) 04:16:03 ID:???
■過去ログ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
【PHP】下らねぇ質問はID出して書き込みやがれ 79
http://pc11.2ch.net/test/read.cgi/php/1231850905/
【PHP】下らねぇ質問はID出して書き込みやがれ 78
http://pc11.2ch.net/test/read.cgi/php/1230026935/
【PHP】下らねぇ質問はID出して書き込みやがれ 77
http://pc11.2ch.net/test/read.cgi/php/1228667259/
【PHP】下らねぇ質問はID出して書き込みやがれ 76
http://pc11.2ch.net/test/read.cgi/php/1226517332/
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/
【PHP】下らねぇ質問はID出して書き込みやがれ 74
http://pc11.2ch.net/test/read.cgi/php/1221909788/
【PHP】下らねぇ質問はここに書き込みやがれ 73
http://pc11.2ch.net/test/read.cgi/php/1220440493/
【PHP】下らねぇ質問はここに書き込みやがれ 72
http://pc11.2ch.net/test/read.cgi/php/1218855685/
【PHP】下らねぇ質問はここに書き込みやがれ 71
http://pc11.2ch.net/test/read.cgi/php/1216291372/
3nobodyさん:2009/04/06(月) 04:16:45 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://www.smarty.net/manual/ja/

(以下英語)
■Zend本家      http://www.zend.com/
■Zend Framework  http://framework.zend.com/
■php | architect   http://www.phparch.com/
■Smarty       http://www.smarty.net
■Smartyマニュアル http://smarty.php.net/manual/en/
■PECL本家(英語) http://pecl.php.net/
4nobodyさん:2009/04/06(月) 04:17:27 ID:???
【簡易FAQ】
1.文字コードは何を使えばいいの?
 →1.UTF-8 2.EUC-JP のどちらか。迷うようなやつはShift_JISは使っちゃダメ。
2. このスレに書き込むときに自分のサイト名を晒したくない
 → http://example.com/が例文などのために予約されている。hogehoge.comは使っちゃダメ。
3. ブラウザに何も表示されないんだけど・・・
 → Apacheの設定を見直せ。ファイルの拡張子は何にしてて、その拡張子でPHPを呼ぶようになっているか?
4. 記号の意味がわからないけどググりようがない
 → 「@」 エラー表示を抑制、「->」 オブジェクトのメンバにアクセス、「::」 静的なメソッド呼び出し、
  「==」は暗黙の型変換をしてゆるい比較、「===」は型情報も含めた厳密な比較
5. echo "$arr['hoge']['fuga']"; と書いたらエラーになった
 → {おっぱい括弧}でくくって"{$arr['hoge']['fuga']}"にする
6. 一定時間ごとに自動的に何かしたいんだけど
 → cronかタスクスケジューラを使え。
7.extractって危険なの?
 →変数上書き&初期化忘れなどで危険。楽だからという理由だけで安易に使わない。
8. include/requireに「〜.php?a=b&c=d」のようなパラメータをつけたい
 → URL呼び出しなら可能だけど、普通のファイル呼び出しではできません
9.include/requireでURLを指定しても何も起きない
 → .phpの拡張子のファイルをURLで呼び出すと、1度PHPプログラムとして実行された結果になる。
5nobodyさん:2009/04/06(月) 04:18:29 ID:???
10. そもそもインストールの時点でうまくいかない
 → 確認すべきはPHPのconfigureの引数、php.iniの内容と置き場所、
  Webサーバの設定(Apacheならhttpd.conf)、起動&再起動あたり
11. SQLの質問はどこで?
 → データベース板に誘導されるのが嫌ならPHPにうまく関連させて質問する
12. 文字列のなかに、英字のみとか数字のみとか記号が入っちゃいやんとかはどうしたらいいの?
 → ctype_〜()が手軽。複雑なパターンはpreg_〜()あたりで正規表現を使う。
13. $a1, $a2, $a3 ... のような変数名をうまく扱いたい
 → 可変変数で実現できるけど、むしろ配列を使って$a[1], $a[2], $a[3]等とするのがベター
14. echoとprintってどう違うの?
 → よく議論される話題であるが基本的に両者とも同じ。 以下ちょっとした議論。
  http://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
15. クッキーの情報をユーザから隠したい
 → セッション使え。ただしクッキーとセッションは仕組みが違うから同じように扱うな
16. strip_tags()で削除しないタグを複数指定したい
 → strip_tags($html, '<a><p><font>'); // htmlspecialchars()も検討すべし
17. CSVやTSVのファイルをスマートに扱いたい
 → まずはfgetcsv()。ただし日本語を含むと正常に動作しない場合があるので注意だ。
18. 値渡しと参照渡し(「&」を使う)のパフォーマンスの違い
 → C言語じゃないので、パフォーマンス目的で使いわけたらダメ。参照渡しにすると逆に遅くなったりする
  参照渡しは引数に戻り値を設定したり引数を関数内で変更するなど、正しい目的に使うこと
19. ファイル入出力関数(fopen等)でリモートファイル(http://〜とか)を扱う際の限界
 → fsockopen()でソケット通信 or PEARのHTTP系 or CURLで解決
  必要ならHTTPをはじめとする各種プロトコル(どんなデータを送受信するか)はRFCなどで調べる
20. PHPからPOSTリクエストしたい
 →19.を参照
21. 画像処理一般 or GDの限界
 → ImageMagick(PECLのやつ or シェルから実行)
22. 画像・音・動画はファイルで保存?DBに保存?
 → 好きにしてください
6nobodyさん:2009/04/06(月) 07:48:13 ID:???
姉妹スレ

【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
http://pc11.2ch.net/test/read.cgi/php/1233590976/

こちらはIDださないで質問するスレ
7nobodyさん:2009/04/06(月) 11:40:29 ID:YGaHAQ+b
くだらない質問ですがよろしくお願いします。
fopenで開いたファイルをforeachで1行ずつ表示するにはどうしたらいいでしょうか?

$fp = fopen("file.txt","r");
foreach(

この続きがわかりません。よろしくお願いします。
8nobodyさん:2009/04/06(月) 11:41:43 ID:???
>>7
$file = file("file.txt")
foreach ($file as $v) echo $v;
97:2009/04/06(月) 12:05:09 ID:YGaHAQ+b
>>8
レスありがとうございます。
fileじゃなくてfopenで開いたファイルをforeachで1行ずつ表示したいと思ってます。
よろしくお願いします。
10nobodyさん:2009/04/06(月) 12:41:05 ID:???
>>9
君の用途ではfopenは適さないんだけどな・・・
$filename = "../data/exp.txt";
$size = filesize($filename);
$fp = fopen($filename,"r") or die("ng");
$str = fread($fp,$size);
echo $str;



あと
---------------------------------------------------------------------
最近のスクリプト言語は機能が多く、基本的な機能はほとんど実装されているので、
アルゴリズムをどうこうするより、どの機能を使うか選ぶ方が重要だったりしますね(コーディングの効率的にも)。
---------------------------------------------------------------------
11nobodyさん:2009/04/06(月) 12:43:03 ID:???
>>9
それとforeachは配列を回すものだから勘違いしてることに気づこうね
君の場合はfopenを使う場面じゃないから
12nobodyさん:2009/04/06(月) 12:52:50 ID:JQHQzsie
print_rで見ると以下の構造の配列があります
サンプルのため値は4つしかありませんが、値の数は不定数と捉えてください
Array
(
[0]=>Array
 (
 [0]=>apd_set_socket_session_trace()
 [1]=>apd_set_socket_session_trace()
 )
[1]=>Array
 (
 [0]=>aspell_check()
 [1]=>aspell_check()
 )
)

この配列を以下のように直したいのですがどのようにしたらよろしいでしょうか?
Array
(
 [0]=>apd_set_socket_session_trace()
 [1]=>apd_set_socket_session_trace()
 [2]=>aspell_check()
 [3]=>aspell_check()
)
13nobodyさん:2009/04/06(月) 13:09:48 ID:???
順に代入すればいい
14nobodyさん:2009/04/06(月) 13:14:31 ID:???
foreach($input as $a){
foreach($a as $b){
$output[]=$b;
}
}
157:2009/04/06(月) 13:42:50 ID:???
>>10
foreach使ってませんね。
簡単だと思ったのですが、難しいのかな?
16nobodyさん:2009/04/06(月) 13:46:54 ID:???
>>15
当たり前だろ
fopenで開いたファイルは配列じゃないから無理に決まってるだろ
何でそんなにfopenにこだわるのか書け
17nobodyさん:2009/04/06(月) 13:50:40 ID:???
>>7
fopenの意味を理解してない証拠
出直しておいで
187:2009/04/06(月) 13:55:08 ID:???
>>16
昔知り合いに作ってもらった。
そのスクリプト忘れて知り合いと連絡取れないのでここで聞いた。
ここの人なら簡単にできると思った。
19nobodyさん:2009/04/06(月) 13:58:22 ID:???
>>7
fopenで開いたものをforeachで出力する方法が好まれない理由がわからない初心者杉だろ
おとなしくfileとか使ってろ

$h=fopen($filename, "r") or die("NG");
while (!feof($h)) {
$b=fgets($h, 4096);
$s[]=$b;
}
fclose($h);
}
foreach ($s as $v) echo $v;
20nobodyさん:2009/04/06(月) 13:59:08 ID:???
>>18
とりあえず、言動に気をつけましょう
そんなんでは教えてもらえませんよ
2119:2009/04/06(月) 14:02:08 ID:???
欲読め

最近のスクリプト言語は機能が多く、基本的な機能はほとんど実装されているので、
アルゴリズムをどうこうするより、どの機能を使うか選ぶ方が重要だったりしますね(コーディングの効率的にも)。
227:2009/04/06(月) 14:17:56 ID:???
じゃあwhileでもいいです。
でも>>19のように fgets($h,4096);←4096とか数字は入れたくない。なぜならすべてのファイルに対応できないから。
これでお願いします。
23nobodyさん:2009/04/06(月) 14:19:19 ID:???
24nobodyさん:2009/04/06(月) 14:20:05 ID:???
>>10>>19を読めば自分でできますよね
25nobodyさん:2009/04/06(月) 14:21:09 ID:???
>>7
答えは出てますね
ここは手取り足取りスレじゃないんで
>>7はもう放置でおk

はい次の質問どうぞ
267:2009/04/06(月) 14:28:17 ID:???
>>19
初心者を馬鹿にするのはどうかと思いますよ(自分も初心者のくせに)
ちなみにそれやるなら
while($b = fgets($fp,4096)){ }
こっちのほうが美しいですけどね。
27nobodyさん:2009/04/06(月) 14:30:07 ID:???
>>7
は、アホ過ぎる。こんなの小学生でも分かるのに。
28nobodyさん:2009/04/06(月) 14:43:24 ID:???
>while($b = fgets($fp,4096)){ }
>?こっちのほうが美しいですけどね。


顔真っ赤っかで必死に反論考えたんだろうけど、それじゃ動きませんよっと
とりあえず態度を改めた方がいい
29nobodyさん:2009/04/06(月) 14:48:45 ID:???
>>26
それだとファイルの内容によってはエラーになるんだよな
初心者乙
307:2009/04/06(月) 14:53:38 ID:???
>>28
普通に動きますよっと

>>29
???
31nobodyさん:2009/04/06(月) 14:55:06 ID:???
2人のアホが言い合いしてるのは暇つぶしにはいいよね
32nobodyさん:2009/04/06(月) 17:44:29 ID:???
fopenで開いたものをforeachにかけるとかwwwww
バカもほどほどにしろよw
33nobodyさん:2009/04/06(月) 18:02:44 ID:???
手っ取り早く行イテレーションしたいならSplFileObjectでもどうぞ。
347:2009/04/06(月) 18:17:24 ID:???
>>33
日本語が読めないらしいですね
foreachでお願いしますね
35nobodyさん:2009/04/06(月) 18:41:19 ID:???
まるまる書いてやらないと解らないのか?
$file = new SplFileObject('file.txt');
foreach($file as $line) {
// some operation
}
unset($file);
36nobodyさん:2009/04/06(月) 19:26:35 ID:fgZcgjRX
反論者もIDだせばいいのにね。
37nobodyさん:2009/04/06(月) 19:51:36 ID:???
>>35
php5限定かよ
38nobodyさん:2009/04/06(月) 20:04:19 ID:???
>>32涙目wwwww
39nobodyさん:2009/04/06(月) 20:24:04 ID:???
PHPでC#とかにある様な

try
{

}
catch(Exception Error)
{
  Debug.WriteLine(Error.Message);
}
finally()
{

}
とかはありませんか?
40nobodyさん:2009/04/06(月) 20:26:56 ID:???
try catchもあるよ
41nobodyさん:2009/04/06(月) 20:27:22 ID:???
finally以外あるよ。
gotoよりもこっち実装しろと
42nobodyさん:2009/04/06(月) 20:27:41 ID:???
はやく finally を実装してくれ。
43nobodyさん:2009/04/06(月) 20:32:26 ID:???
>>40 〜 >>42
サンクス。
試してみます。
44nobodyさん:2009/04/06(月) 20:59:04 ID:2EYsJzxb
imagemagick で画像を保存して表示されるのじゃなく
保存せずにブラウザーに表示するにはどんな方法があるんでしょうか?

45nobodyさん:2009/04/06(月) 21:10:53 ID:???
使ったことないけどblob2image ⇔ image2blob
46nobodyさん:2009/04/06(月) 22:55:44 ID:Lg8L8FIC
PHPで以下のような書き方って出来ますか?
$testの値が5なら「てst」と出力するのですができますでしょうか?

<?php
if ($test == 5):
?>


てst

<?php
endif;
?>
47nobodyさん:2009/04/06(月) 22:57:50 ID:tQxsy1N7
すいませんarray()はキーワードらしいんですけど特別な意味があるのでしょうか?
48nobodyさん:2009/04/06(月) 23:01:27 ID:???
>>46
そのまんまできるけど試せばいいのに
>>47
文字通り配列を作成
詳しくはphp.net/array
49nobodyさん:2009/04/06(月) 23:03:12 ID:???
お忙しいところ恐縮です
ttp://jp2.php.net/manual/ja/class.exception.phpにある内容がよくわかりません
例外というのはどういう時に使うのでしょうか?
5049:2009/04/06(月) 23:03:53 ID:9ymstZFd
すいませんID出し忘れました
51nobodyさん:2009/04/06(月) 23:06:56 ID:5SFFX38L
php.iniでタイムゾーンを設定しなかった場合、
何を基準で時刻が表示されるのですか?
5247:2009/04/06(月) 23:07:37 ID:???
>>48
ありがとうございます
53nobodyさん:2009/04/06(月) 23:11:19 ID:???
54nobodyさん:2009/04/06(月) 23:12:17 ID:???
55nobodyさん:2009/04/06(月) 23:18:12 ID:qkQqSy3E
phpの環境構築の質問です
windowsです
php5.2.9を一個インストールしました
apacheを3つ(1.3と2.0と2.2)インストールしました
apacheを三つ起動してphpを動かすことはできますでしょうか?
56nobodyさん:2009/04/06(月) 23:19:35 ID:???
ポートをきちんと分ければいけるんちゃう?
57nobodyさん:2009/04/06(月) 23:19:38 ID:???
>>55
できるよ
58nobodyさん:2009/04/06(月) 23:23:18 ID:tZqDzIhT
以下のようなコメントはダメって言われたのですが不具合はありませんでした
なぜだめなのでしょうか?
<?php
/*
echo 'テストです'; /* このコメントが問題を生じます */
*/
?>
59nobodyさん:2009/04/06(月) 23:26:28 ID:???
60nobodyさん:2009/04/06(月) 23:26:33 ID:LvefCDF1
$fopen = fopen("textfile.txt","w")って書き方を知りました
$fopenにはリソースが入るらしいんですが、このことについてご教示お願いします
fopenで読み込んだファイルはメモリに読み込まれるということでしょうか?
ということはfcloseをしたら情報はメモリから消えるということになるのでしょうか?
61nobodyさん:2009/04/06(月) 23:28:35 ID:???
これも仕様上正しい書き方になるわけだもんな
/*
/*
echo 'テストです';
*/
62nobodyさん:2009/04/06(月) 23:33:04 ID:???
時々、正規表現中の */ とかぶってパニクる。
63nobodyさん:2009/04/06(月) 23:34:24 ID:???
64nobodyさん:2009/04/06(月) 23:35:05 ID:???
$foo = 5 + "10 Little Piggies";
公式でこれ$fooが整数らしいんですけど何故ですか?
公式が間違えてるのでしょうか?
65nobodyさん:2009/04/06(月) 23:36:08 ID:???
66nobodyさん:2009/04/06(月) 23:40:16 ID:???
ビット演算子の勉強をしています
$strに含まれる文字列を1bit右にずらしたいのですが思う通りの結果になりません
どなたかご教示お願い致します

$str ="abcde";
echo $str ^ 1;
6766:2009/04/06(月) 23:41:03 ID:PTpMIEWr
ID出し忘れました
申し訳ございません
68nobodyさん:2009/04/06(月) 23:43:47 ID:???
>>66
なんでXOR取ってるのか分からん
http://jp2.php.net/manual/ja/language.operators.bitwise.php
69nobodyさん:2009/04/06(月) 23:48:01 ID:???
俺がマジレスしてやると
echo $str >> 1;
70nobodyさん:2009/04/07(火) 00:07:56 ID:???
ここまでの質問は全部おれの自演
お陰で勢いが80超えた^^
71nobodyさん:2009/04/07(火) 03:19:34 ID:???
なぜにIDを出して質問をしなくちゃいけないのか
甚だ疑問。

>>1は死ね
72nobodyさん:2009/04/07(火) 06:14:03 ID:???
出さなくていいほうがあるんだからそっちいけカス
73nobodyさん:2009/04/07(火) 14:08:44 ID:4/ZzdyJu
PHPで作成したWEBシステムで、独自に吐かせているログをlogrotateしたいのですが、
PHPはapacheのモジュールとして動いているので、現在のapacheで運用されている

# cat /etc/logrotate.d/httpd
------------------------------
/var/log/httpd/*log {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
------------------------------
と同じものは書かなくても良いのですよね?
以下のもので大丈夫でしょうか?

# vi /etc/logrotate.d/mysytem
------------------------------
/var/log/mysystem/systemlog {
missingok
}
------------------------------
74nobodyさん:2009/04/07(火) 14:47:40 ID:???
>>73
ディストリは何使ってるんだ?それによって答えが若星変わる
75nobodyさん:2009/04/07(火) 16:31:53 ID:4/ZzdyJu
>>74
ありがとうございます。
Red Hat Enterprise Linux ES release 3 です。
76nobodyさん:2009/04/07(火) 16:35:07 ID:???
>>75
ああ、RHか
企業参入後のそれは使ったことないから控えとくわ
77nobodyさん:2009/04/07(火) 16:38:40 ID:???
>>73
ディストリとか関係ないからw
/etc/logrotate.d/httpd にログファイルのパスを追加するだけ。
78nobodyさん:2009/04/07(火) 17:30:41 ID:4/ZzdyJu
>>77
あ、そっか。。 ありがとうございます!

# vi /etc/logrotate.d/httpd
------------------------------
/var/log/httpd/*log /var/log/mysystem/systemlog {
missingok
notifempty
sharedscripts
postrotate
/bin/kill -HUP `cat /var/run/httpd.pid 2>/dev/null` 2> /dev/null || true
endscript
}
------------------------------
79nobodyさん:2009/04/07(火) 17:35:09 ID:???
>>77
覚えたてで使いたかったんだろ。
80nobodyさん:2009/04/07(火) 19:57:49 ID:???
質問初心者クンはここを見て質問の仕方を覚えてこい
ttp://www.gekiura.com/guest/m0005418.html
81nobodyさん:2009/04/07(火) 20:12:36 ID:???
>>80
注意
82nobodyさん:2009/04/07(火) 21:57:01 ID:nY33/bGj
csvファイルAからcsvファイルBへ特定の行だけを移動したいと思ってます。
チェックボックスで選ばれた行をAから削除しBへ書き込むプログラムを
色々考えたのですがさっぱり検討もつかず1週間経ちます
どうかヒントだけでもいいので教えてください。
83nobodyさん:2009/04/07(火) 22:09:02 ID:???
ファイルを2つ同時に開いて出したり入れたり
84nobodyさん:2009/04/07(火) 22:11:16 ID:???
csvのカラム構造はどうなってるのさ
一意なキーがあればあとは簡単だと思うが
85nobodyさん:2009/04/07(火) 22:58:39 ID:???
ttp://wikiwiki.jp/web/

一応、一問一答でwikiにためてたりスレのテンプレを記録するために借りてみた
一緒に更新お願いします
PHP用のwikiってことでお願いします
ページ下部のアフィは勝手についたもので俺には1円も入らないから気にしないで下され
86nobodyさん:2009/04/07(火) 22:59:22 ID:???
いや自分が更新しろや
87nobodyさん:2009/04/07(火) 23:03:12 ID:???
wikiのタイトルを「PHPの事はここ見やがれ」したら受けそう
88nobodyさん:2009/04/07(火) 23:15:48 ID:???
下らねぇ質問はここ見やがれ
でいいじゃん
89nobodyさん:2009/04/07(火) 23:17:18 ID:???
編集の仕方がわからない><
90nobodyさん:2009/04/08(水) 03:33:41 ID:0hFuJwMz
別の板できいたらスレチだったのでここで質問します
変数の中に入ってる文字列をファイル名として
変数.txtとか変数.jpgのようにあらわすにはどうすればいいのでしょうか?
91nobodyさん:2009/04/08(水) 03:51:35 ID:???
92nobodyさん:2009/04/08(水) 08:18:56 ID:???
$x.'.txt';
どっちがいいんだかいつも迷う
93nobodyさん:2009/04/08(水) 11:11:24 ID:r8DEvZ6R
whileでもforでもどちらでも繰り返しの表現ができるときは、
特にこだわりなくforでやってても問題ないでしょうか?
○○な理由で、できる限りこっちでやったほうがいいみたいなことないですかね。
よろしくお願いします。
94nobodyさん:2009/04/08(水) 11:13:40 ID:???
$x.'.txt';
だと、エディタが変数の色代えてくれるけど、
設定で"の中の$も代えてくれるかもしれん
95nobodyさん:2009/04/08(水) 12:55:37 ID:cjj/9xGO
すみませんが、質問です。

リクエストパラメータが正の整数であるかどうかをチェックしたいのですが、
どういう方法が良いでしょうか?

is_int()は使えませんが、is_numeric()も良くなくて、結局 preg_match()を
使うしかないのでしょうか?

(参考)PHPと16人の仲間達 : is_numeric は・・・なぁ
http://php16.exblog.jp/4720976/
96nobodyさん:2009/04/08(水) 13:12:20 ID:???
頻出すぎて萎える
97nobodyさん:2009/04/08(水) 13:16:37 ID:???
>>95
試してないけどこれは?
$s = チェックする値
if($s<0)echo "負の数です";
98nobodyさん:2009/04/08(水) 13:16:47 ID:???
pregだと数値か文字列か判別できんだろ
9995:2009/04/08(水) 13:45:02 ID:cjj/9xGO
ちょっと質問を補足します。
あるリクエストパラメータが、通常の正の整数(の文字列化)になっているか
を判別したいのです。
リクエストパラメータは文字列ですから、is_int()は使えません。
is_numeric()はある程度使えますが、"+0123.45e6"もtrueになってしまいます。

・trueとなってほしい値。
"1", "0001", "132", etc...

・falseとなってほしい値
"0", "-1", "1.0", "0xFF", "+0123.45e6", etc...

これにかなうのは、 preg_match('/^\d*[1-9]$/', $param)
しか思いつかないのですが、他に何か良い方法はないでしょうか?
100nobodyさん:2009/04/08(水) 13:48:37 ID:???
>>99
それ、間違ってるだろ。とりあえず。
preg_match('/^[1-9]+\d*$/D', $param)
101nobodyさん:2009/04/08(水) 13:49:06 ID:???
"+1"はどうなのよ"+0"はどうなのよ
10295:2009/04/08(水) 13:56:41 ID:cjj/9xGO
>>100
それは >>99の "0001" が trueになりませんし、
"0"がtrueになってしまいます。

>>101
どちらもfalseです。trueになるのは"正の整数"と>>95,>>99で書いています。
あと、符号を含むものはfalseのつもりでした。

しかしこの流れだと、正規表現以外なさそうですね。
103nobodyさん:2009/04/08(水) 14:01:54 ID:???
ちょっとPHPカテゴリを辿ってみたけど

http://php16.exblog.jp/6067489/
【結果】
strpos = 1.4秒
preg_match = 7.0秒
・・・あー・・・結構違いますね・・・。
寝ます。

http://php16.exblog.jp/4940100/
上記の結果は・・・
"1234" の出力になります。("1212"じゃなく)
つまり、static宣言した変数の値は
メソッド呼び出し元のインスタンスが変わっても保持されています。
なんでこうなってんだろう?

とか言ってるレベルの奴のblogだぞ?
10495:2009/04/08(水) 14:13:53 ID:cjj/9xGO
>>103
引用したページが私の質問の意図をうまく説明するものだったので貼りました。
他のページが全部間違いでも問題ないと思います。
105nobodyさん:2009/04/08(水) 14:15:08 ID:???
is_numeric って

is_numeric("0xFF"); // 16進表記



is_numeric("+0123.45e6"); // 指数表記

をTRUEとしてしまうようです。(マニュアルに書いてありますけどね)


マニュアルに書いてあるんじゃん
106nobodyさん:2009/04/08(水) 14:16:58 ID:???
>>95
それ10の倍数だとfalseだけど。
ctype_digit($param) && $param > 0
でいいんじゃないの。
10795:2009/04/08(水) 14:24:10 ID:???
>>106
ご指摘のバグは今さっき気づいたところです。

> ctype_digit($param) && $param > 0
まさに望みどおりのものです。ありがとうございます。
10895:2009/04/08(水) 14:24:40 ID:cjj/9xGO
あ、下げてしまった。>>107は私です。では失礼します。
109nobodyさん:2009/04/08(水) 14:44:33 ID:???
何か俺が作るサイトはデザインが自分でも悪い。
何かみてくれをよくするテクニックを纏めたオススメの書籍はありますか?
110nobodyさん:2009/04/08(水) 15:09:24 ID:???
認識してるのにデザインが悪いと思うってことはなにかと比べてるからだと思うが
その比べてるデザインの優れたと思うものを真似してみればどうだろう
好みなんて人それぞれだし万人が好むと思って押し付けても違ったりするから
111nobodyさん:2009/04/08(水) 15:23:02 ID:???
デザインは板違いじゃないか?
112nobodyさん:2009/04/08(水) 15:31:12 ID:???
>>109
いくらみてくれはよかっても、アフィをみてほしいのか記事(内容)をみてほしいのか
意味不明なサイトじゃなきゃ問題ない。
もちろん見た目は大事だけど内容と見易さ(使いやすさ)だよ。

113nobodyさん:2009/04/08(水) 16:59:27 ID:???
>>109
このスレではPHPの文法以外のことを聞いても、あんまり答えは返ってこない。
悪いこと言わないから、この辺↓に移動して聞きなおしたほうがいいと思うよ。

Webサイト制作初心者用質問スレ Part 208
http://pc11.2ch.net/test/read.cgi/hp/1238669869/
114nobodyさん:2009/04/08(水) 17:31:21 ID:???
>>107
バグて。
仕様だろ。
115nobodyさん:2009/04/08(水) 17:39:59 ID:9xKyaeca
SQLとファイル、どっちをデータ保存に使うか?ってよく出る話題ですが、
たとえばチャットシステムのように
数秒単位でデータの挿入、更新、削除が行われる場合ってどっちがいいんでしょうか。
どっちでも扱いやすいほうで、構いませんか?
116nobodyさん:2009/04/08(水) 17:42:13 ID:???
パフォーマンス計ってみればいいじゃん
117nobodyさん:2009/04/08(水) 18:13:22 ID:???
好きな方でいいよ
118nobodyさん:2009/04/08(水) 18:20:30 ID:???
>>110 >>112
サンクス
先ずは、見易さ第一に作り次に自分が綺麗と思うサイトのHPのデザイン
を真似する事から始めます。
※真似されたHPの管理人は怒るかもしれませんが。
119nobodyさん:2009/04/08(水) 20:24:35 ID:???
チャットでパフォーマンスが気になるなら共有メモリとかにした方がいいんじゃないの。
使ったことないけど。
120nobodyさん:2009/04/08(水) 22:25:24 ID:???
>使ったことないけど
121nobodyさん:2009/04/08(水) 22:26:15 ID:???
>>115
俺の意見だと、ファイル保存が良いと思う。
アクセス解析作るのに使っている。

ただ、扱いやすいとは言えない
122nobodyさん:2009/04/08(水) 23:16:49 ID:tkomkeAN
取得したいページをfile_get_contentsで取りたいのですが、
url先とは違う内容が$fileに入ってしまいます
関数一覧のページなんですがどのようにしてしっかり取得することができるのでしょうか?

<?php $file = file_get_contents("http://jp.php.net/manual/ja/indexes.php";);
echo $file;
?>
123nobodyさん:2009/04/08(水) 23:33:25 ID:???
はい?違う内容って?
124nobodyさん:2009/04/09(木) 00:04:47 ID:m7XTC3qO
【OS名】linux
【PHPのバージョン】php5.2.5
【質問内容】

文字列の中から英数字の部分だけを抽出したい場合は、どうやればいいでしょうか?
$str = 'あああaaa_いいいiii_ううう-20090401';

echo $result; // aaaiii20090401 と表示される

ereg("[a-zA-Z0-9]+", $str, $regs);
$result = $regs[0];
echo $result;
だと「aaa」しか取得できませんでした。
125nobodyさん:2009/04/09(木) 00:35:29 ID:???
>93
基本は、ループの頭に差し掛かった時点でループ回数が分かる場合はfor。
ループを回してみないと分からない場合はwhile。
whileの場合はループ変数がどう変わるかを意識しながらコードを読まなければいけない。
forならば基本的にループ回数はループに入る時点で分かるので、ラクに読める。

ただまあ、例外はいっぱいある。
「1000以下の3の倍数を全て列挙」なんて場合、事前にループ回数を調べる事はできる。
だけど、「変数が1000を超えるまで繰り返す」という意図ならば、それを反映してwhileで書いた方が読みやすいわけで。
一般論にするなら、自分の意図がもっとも読者に伝わりやすい表現を選べ、という事になる。
126nobodyさん:2009/04/09(木) 01:26:24 ID:???
>>91>>92>>94
ありがとう、それでよかったんですね。
127nobodyさん:2009/04/09(木) 02:12:40 ID:8Md27rPN
[とか]ってURLエンコードする必要ありますか?

ある文字がURLエンコードするべきかどうかってどうやって判断すればよいでしょうか?

初心者的な質問ですいません。。。
128nobodyさん:2009/04/09(木) 02:19:15 ID:???
129nobodyさん:2009/04/09(木) 03:11:40 ID:???
>>127
RFC1738とその関連文献を見るといいよ
130nobodyさん:2009/04/09(木) 05:12:24 ID:???
グーグルランクをPHPで取得する方法がわかりません
131130:2009/04/09(木) 05:15:38 ID:sBmn/pA0
グーグルランク取得したいです。PHPで
でも、その方法が調べてもわからないんです
PHP暦は一年でそこそこです
132124:2009/04/09(木) 08:53:26 ID:???
>>130
詳しく見てないけど、結構情報があるみたいですよ
Google rank 取得方法 の検索結果 約 321,000 件

http://www.xdelta.net/blog/FreeBSD/2006/01/31/p134
Googleのページランクを知りたい場合は、対象となるURLとともに、そのURLのch値といわれるチェックサムが、Googleに問い合わせする際、必要になる。
ch値の算出方法については、しばらく謎とされてきたが、
Google PageRank Checksum Calculator
で、そのアルゴリズムが公開されてる。

http://mlog.euqset.org/archives/php-users.php.gr.jp/33290.html
[PHP-users 33290]スクリプトでのGOOGLE pagerank取得について (続)
○ クラスに書き直したソースコードを公開しました
デモ
http://linux.ohwada.jp/demo/google_pagerank/
説明
http://linux.ohwada.jp/modules/smartsection/item.php?itemid=397
ダウンロード
http://linux.ohwada.jp/modules/wfdownloads/singlefile.php?cid=8&lid=98

↑この「説明」ページに、PHPでGoogle Rankを取得する方法が解説されていました。
133nobodyさん:2009/04/09(木) 09:01:18 ID:???
>>124
preg_match_all("/[a-zA-Z0-9]+/", $str, $regs);
$result = implode("",$regs["0"]);
134nobodyさん:2009/04/09(木) 09:03:14 ID:???
正規表現(笑)
135124:2009/04/09(木) 09:12:16 ID:???
自己解決しました。

$str = 'あああaaa_いいいiii_ううう-20090401';
preg_match_all("([a-zA-Z0-9]+)", $str, $matches);
$regs = $matches[0];
foreach($regs as $reg) {
 $result .= $reg;
}
echo $result;

どうもありがとうございました>>124
136124:2009/04/09(木) 09:14:20 ID:???
>>133
implodeを使えば良いんですね!
どうもありがとうございます。
137124:2009/04/09(木) 09:19:33 ID:???
>>134
正規表現(涙)は、一度本を読んだんですが、頭に入らないです><
誰かチートシート(早見表)を作って配布してくれないですかね?
…てか、言いだしっぺ=自分で叩き台を作って、ここで添削してもらえばいいかな?
138124:2009/04/09(木) 09:44:05 ID:???
PHPの正規表現は、
(1) Perl互換の正規表現
http://jp.php.net/manual/ja/book.pcre.php
(2) POSIX拡張の正規表現
http://jp.php.net/manual/ja/book.regex.php
の2種類が用意されてるんですね。

↓Perl互換の正規表現(PCRE)のチートシートは配布されてました。
http://phpspot.org/blog/archives/2006/07/phppcre.html
↓チートシートじゃないけど、正規表現で使えるパターンのまとめ
http://www.rider-n.sakura.ne.jp/regexp/regexp.php

PHPのマニュアルでは処理速度が違うとあったけど、それぞれ一長一短があるのでしょうか?
=使い分ける場合の基準はあるのかな?

http://php-web.net/regular/posix.html
PHPでは、Posix拡張正規表現を利用することができます。
Posixとは、Portable Operating System Interface for UNIX の略で、 Linux を始めとする Unix 互換OSが満たすべき仕様を定めたものです。
Perl互換正規表現よりも機能は限定されていますが、汎用性は高いです。

POSIX互換正規表現<PERL互換正規表現ということで、簡単に済む場合はPOSIX、複雑な場合はPCREの出番になるのかな?
正規表現でうまく処理できない場合は、ANTLRという文字処理のライブラリを使えばいいそうですけど、PHPでANTLRが使えるライブラリとか配布されているんでしょうか?
http://pg.thumbnailcloud.net/data/frame_252694.aspx
139nobodyさん:2009/04/09(木) 10:21:07 ID:3wJSGAQj
mkdirでディレクトリを作成する時、開発環境(WinXP)では簡単に作成されますが、
ネットのLinuxサーバ上ではパーミッションの問題で作成出来ない場合があります。

その場合、「パーミッションエラーで作成できない」事を
伝える必要があると思うのですが、そう言うことを調べる関数ってあるのでしょうか?
140nobodyさん:2009/04/09(木) 10:32:12 ID:???
やったことないけどディレクトリを作成する親でぃれくとりがis_executableかどうかでできないかな
141nobodyさん:2009/04/09(木) 10:37:10 ID:???
>>139
レンタルサーバだと、モジュール版のPHPがセーフモードに設定されていることが原因で、mkdirの利用が制限されている場合もありますね。

http://jp.php.net/manual/ja/function.mkdir.php
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。

↑mkdirの返り血(FALSE)を浴びるだけではダメですか?
142139:2009/04/09(木) 11:15:45 ID:3wJSGAQj
>>140-141
つまり、単純に
if(!mkdir("test")){
die("ディレクトリが作成できませんでした。パスかパーミションを確認して下さい。");
}

みたいな感じで良いですかね?
143nobodyさん:2009/04/09(木) 12:52:32 ID:GoKaiEbv
vistaでphp5.2.8とapache2.2使ってます
ローカルの特定のファイルをfile_get_contentsで取得したいのですが
以下ではfailed to open streamで開けませんでした
$filenameをhttp://localhost/index.htmlからhttp://127.0.0.1/index.html

$filename = "http://localhost/index.html";
$file = file_get_contents($filename);
echo $file;



http://q.hatena.ne.jp/1202255873を見てhostファイルが原因だと思うのですが
どのようにhostファイルを書き換えればよろしいでしょうか?
144nobodyさん:2009/04/09(木) 12:53:27 ID:GoKaiEbv
すいません4行目途中でした
全文修正版です↓

vistaでphp5.2.8とapache2.2使ってます
ローカルの特定のファイルをfile_get_contentsで取得したいのですが
以下ではfailed to open streamで開けませんでした
$filenameをhttp://localhost/index.htmlからhttp://127.0.0.1/index.htmlに直すと取得できました

$filename = "http://localhost/index.html";
$file = file_get_contents($filename);
echo $file;



http://q.hatena.ne.jp/1202255873を見てhostファイルが原因だと思うのですが
どのようにhostファイルを書き換えればよろしいでしょうか?
145nobodyさん:2009/04/09(木) 12:59:56 ID:pGRnXLlI
以下のような多次元配列があります
これを1次元に直したいのでforeachを使いました
$ary[0][0]=1;
$ary[0][1]=2;
$ary[0][2]=3;
$ary[0][3]=4;
$ary[0][4]=5;
$ary[0][5]=6;

foreach($ary as $v) {
foreach($v as $vv) $h[] = $vv;
}

標準関数か何かでこれよりもスマートなやり方があった記憶があるのですがどなたかご教示お願い致します
146nobodyさん:2009/04/09(木) 13:35:58 ID:???
関数じゃないけど
$h= $ary[0];

とか??
147145:2009/04/09(木) 13:44:57 ID:???
>>146
とても効率の良いものですね
ありがとうございます
148nobodyさん:2009/04/09(木) 14:51:46 ID:IIKZIRWt
Imagick::roundCornersで画像の角を丸めると、
背景がいつも黒になってしまうのですが、
どのように設定すればよいのでしょうか?
149nobodyさん:2009/04/09(木) 16:01:29 ID:OhmeRcsr
PHPの関数についてググるとヘルプのミラーサイトが結構でてきます
ミラーサイトは公式サイトに断らなくても公開してもいいのでしょうか?
また、公式サイトで公開されているhtml形式のヘルプをダウンロードしてそのまま自分のレン鯖においても問題ないでしょうか?
150nobodyさん:2009/04/09(木) 16:32:39 ID:???
自分でライセンス確認すれや
151nobodyさん:2009/04/09(木) 16:37:45 ID:???
既にあるものをなんで公開しようと思うの?どうして?死ぬの?
152nobodyさん:2009/04/09(木) 17:05:12 ID:???
>>151
それをミラーサイト全ての管理人に言ってくださいませんか
153nobodyさん:2009/04/09(木) 19:50:40 ID:???
>>149
SEO対策なのかな?
PHPの公式マニュアルよりも、検索結果で上位に来るミラーサイトが多いですよね

自分の場合は、PHPの公式マニュアルをブラウザのお気に入りに入れてます。
http://jp.php.net/manual/ja/

google検索でヒットした結果を、改めてPHPの公式マニュアルで確認すればOK
154nobodyさん:2009/04/09(木) 19:57:07 ID:???
>>150は初心者で自分も調べ方知らないだけだろ
155nobodyさん:2009/04/09(木) 23:15:50 ID:YWPkP/9r
test.phpをテキストファイルとして出力させるのですが
このときブラウザの青い帯の部分(タイトルが表示される部分)に
任意の好きなタイトルを表示させたいのですが不可能でしょうか?
どなたかご教示お願い致します

【test.php】
<?php
header("Content-Type: text/plain");

echo "test";
?>
156nobodyさん:2009/04/09(木) 23:32:12 ID:???
青い帯の部分…
えっとね。君にはまだphp早い。
まずはhttp://www.w3.org/から始めよう
ここを理解したらhttp://www.apache.org/
いって最後にhttp://www.php.net/
その青い帯作ってる糞マイクロソフトにも言っておいて。http://www.w3.org/を50万回読めと
157nobodyさん:2009/04/09(木) 23:40:47 ID:???
バカのくせにえらそうに
158nobodyさん:2009/04/10(金) 00:12:42 ID:???
>>156
たぶん君も知識が足りないと思うんだがfxのタイトルバーの色が何色か見てごらん
あとoperaもな
大丈夫^^?
159nobodyさん:2009/04/10(金) 00:18:26 ID:???
今時WebKitじゃないブラウザーとか・・・・ゴミいか。
角丸つくるのにいまだに透過ジフ?w
160nobodyさん:2009/04/10(金) 00:22:27 ID:???
headerでjavascriptのコード埋め込めば任意のタイトルにできるんじゃない?
161nobodyさん:2009/04/10(金) 00:27:38 ID:???
>>159
それはないよ
WebKitはJavaScript周りがだめだめ
162nobodyさん:2009/04/10(金) 00:28:34 ID:z5toBuCm
PHP5.2使ってます。
ファイルを一意な名前で renameする良い方法ないですか?

tempnam を使ってファイル名を生成すると、その時点でファイルが生成されてしまうため、
renameできません。tempnam で作った後に unlinkするのは、やっぱり気分が良くないし、
厳密には一意性が保証されない気がするので。

163nobodyさん:2009/04/10(金) 00:29:13 ID:???
タイトルをHTTP Headerでどうにかするのは無理
<title>好きなタイトル</title>を出力するしかない
164nobodyさん:2009/04/10(金) 00:31:59 ID:???
>>162
renameという標準関数がある
165nobodyさん:2009/04/10(金) 02:28:23 ID:bYC4ar8C
staticなメソッドの中で、
それがHoge::moge()の形で呼ばれたのか、
$hoge->moge()の形で呼ばれたのかを判別するにはどうしたらいいですか?
166nobodyさん:2009/04/10(金) 02:53:25 ID:???
$thisを見るとか?
167nobodyさん:2009/04/10(金) 05:12:52 ID:???
>>165
そもそもstaticなメソッドをthisからメンバ関数として呼ぶべきじゃないよ
168nobodyさん:2009/04/10(金) 09:47:55 ID:???
static全否定?
169168:2009/04/10(金) 09:48:47 ID:???
ああ、ごめん勘違い
170nobodyさん:2009/04/10(金) 10:13:06 ID:0gMhmbJC
どなたか>>149もお願い致します
171nobodyさん:2009/04/10(金) 10:32:51 ID:BYyPBH+i
foreach を 配列の途中から始めることはできますでしょうか?
このような場合はforを使うのが普通なのでしょうか?

よろしくお願いします。
172nobodyさん:2009/04/10(金) 10:38:07 ID:???
>>171
>foreach を 配列の途中から始めることはできますでしょうか?
できないけど結果として同じものを得るのは可能

>このような場合はforを使うのが普通なのでしょうか?
はい
173171:2009/04/10(金) 10:53:33 ID:BYyPBH+i
>>172
レスありがとうございます。

やはりforを使うのが普通なのですね。
いちおう、後学のためにforeachを使って途中から開始する方法も教えていただけないでしょうか?
174nobodyさん:2009/04/10(金) 10:58:47 ID:???
forで初期indexがわかってる時しか使えないでしょ。
seekしてiterator使った方がいいよ。
175nobodyさん:2009/04/10(金) 11:03:41 ID:???
>>173
途中から開始するわけではなくて無駄な分はしっかりまわす感じ
whileでやるようなやり方

$array = array(1, 2, 3, 4, 5);

for ($i = 2; $i < count($array); $i++) {
 echo $array[$i];
}

$count = 0;
foreach ($array as $value) {
 $count++;
if ($count > 2) {
  echo $value;
 }
}
176nobodyさん:2009/04/10(金) 11:11:03 ID:???
foreach自体に途中から始める機能はないけど

foreach (array_slice($array, N) as $value) こうやるのが普通?かな
177nobodyさん:2009/04/10(金) 11:11:14 ID:???
>>175
マジレスするとforeachの中でifで判定する手法は古いとだけ記述しておこう
178173:2009/04/10(金) 11:20:09 ID:BYyPBH+i
>>174
すみません。
知識不足で「seekしてiterator」というのがわかりません;

>>175
なるほど・・・
こうしてみると、たしかに後者は無駄が多いですね。

>>176
array_sliceで途中から取り出すというのは思いつきませんでした!
これは使えそうですね!
179nobodyさん:2009/04/10(金) 11:32:44 ID:???
>>176
プチマジレスするとforeachの中でarray_sliceすると回すたびに関数が実行されるから
一度別の配列に入れるのがいい
180nobodyさん:2009/04/10(金) 11:41:47 ID:???
マジレスするとforでやりなYO
181nobodyさん:2009/04/10(金) 11:44:44 ID:???
>>179
以下のようにするとhogeが一度しか表示されないのはループの度にarray_sliceは実行されてfooは最初の一度だけってこと?

function foo()
{
echo "hoge<br>\n";
return array(1, 3, 5, 7, 9);
}
foreach (array_slice(foo(), 2) as $value) echo $value,"<br>\n";
182nobodyさん:2009/04/10(金) 11:50:13 ID:???
>>178
$ai = new ArrayIterator(array(1, 3, 5, 7, 9));
$ai->seek(2);
while ($ai->valid()) {
echo $ai->current();
$ai->next();
}
183nobodyさん:2009/04/10(金) 11:53:22 ID:???
>>175
forの中にcount入れるとかナイワ
184nobodyさん:2009/04/10(金) 11:55:38 ID:FoG5RXFZ
プロキシでHPにアクセスする人います
80番ポートでアクセスしたとか8080番ポートでアクセスしたとか何番ポートを使ってアクセスしたかを調べたいのですが
どのような関数を使うのでしょうか?
185nobodyさん:2009/04/10(金) 12:00:51 ID:???
>>183
よく嫁foreachだろ
forはiで現在位置がわかるが
foreachはわからないからな
186nobodyさん:2009/04/10(金) 12:00:54 ID:/dNSLV40
ttp://www.phppro.jp/phpmanual/php/filters.string.html
文字列フィルタについて質問です
上記ページと公式サイトには例が4つまで載ってるのですが
これはあくまでも一例で他にもあるのでしょうか?
もしよろしければ掲載されてないコードをご教示お願い致します
187nobodyさん:2009/04/10(金) 12:01:22 ID:???
>>179
こうやってもhogeは一度だけ表示されるけどもしかしてarray_sliceって特別な実行のされ方?

function slice2()
{
echo "hoge<br>\n";
return array(1,3,5);
}
foreach (slice2() as $value) echo $value,"<br>\n";
188186:2009/04/10(金) 12:01:35 ID:/dNSLV40
すいませんID出し忘れました
以後、気を付けます
189nobodyさん:2009/04/10(金) 12:02:41 ID:???
>>185
よく読んだらこう書いてありますね

for ($i = 2; $i < count($array); $i++) {
 echo $array[$i];
}
190nobodyさん:2009/04/10(金) 12:24:25 ID:???
>>175じゃないが俺もcount使ってるわ
配列の長さ取得するのってPHPだとcountじゃないの?
JavaやJavaScriptでいうlengthと一緒だよね?
191nobodyさん:2009/04/10(金) 12:54:09 ID:???
自分の場合、PHPでfor文使うのは、かなり少ないな。
なんかオフセット的なパラメータが出てくるのはうざったい。

自分の作ったコードでgrepしたら foreachの 1/10 以下だった。
while は半分ぐらい。

>>190
javascriptは微妙だけどね。
いきなり配列に x[100] = 'hogehoge'; とかすると、length は 101 になるくせに、
for(in) だと登録した1つしか出てこないし。そのわりに join は 101個結合するし。
192nobodyさん:2009/04/10(金) 12:56:45 ID:???
折れも、for文なら count()を使う。

でも、大抵 foreach 文で処理しちゃうけどね...
193178:2009/04/10(金) 12:58:57 ID:BYyPBH+i
>>179
そうだったんですか!
ということは、for($i = 1; $i < count($array); $i++)
のように書いた場合も、毎回count()が実行されるのでしょうか?
一度 $count = count($array)
のようにしたほうがいいですか?

>>182
ArrayIteratorというクラスがあったんですね。
ややコードが長くなりますが、配列が直感的に操作できますね!

配列のループだけでもいろいろなやり方があって、勉強になります!
質問してみてよかったです!
194nobodyさん:2009/04/10(金) 13:04:28 ID:???
// テスト用変数
function testAry() {for($a=0;$a<100;$a++) $h[]=$i;return $h;}
// タイム測定
function bench() {return microtime(true);}
// ベンチマーク表示
function cale($time) {
echo "<pre>";print_r($time);echo "</pre>";
foreach($time as $t) {echo "<p>".($t[1]-$t[0])."</p>";}
}
// --------- 比較コード ---------------- */
$time[0][0]=bench();

$test = array();
$cnt=count(testAry());
for($i=0; $i<$cnt; $i++) {$test[]=$i;}

$time[0][1]=bench();

// ---------- 175のコード ------------- */

$time[1][0]=bench();

$test = array();
for ($i=0; $i<count(testAry()); $i++) {$test[]=$i;}
$time[1][1]=bench();

/* ---------- ここまで ---------------- */

cale($time);
195nobodyさん:2009/04/10(金) 13:05:15 ID:???
>>192
マニュアル読め。

http://jp.php.net/manual/ja/control-structures.for.php
>この書き方には問題があります。 このコードは実行速度が遅くなることでしょう。 配列のサイズを毎回計算しているからです。 ...

>>179 の意味がイマイチ取りきれんのだけど、foreach がループ回数分だけ式を評価するってのは初耳。
ちょっとありえんと思う。
196nobodyさん:2009/04/10(金) 13:06:32 ID:???
>>194の続き

ベンチマーク結果

0.00026893615722656(countをforから外したコード)
0.016515970230103(>>175>>185が進めるのコード)

197nobodyさん:2009/04/10(金) 13:07:52 ID:???
>>195 間違い >>192 じゃなくて >>193
ごめんね。
198nobodyさん:2009/04/10(金) 13:08:30 ID:???
>>195
うほっ。最適化されるもんだとばかりorz。
199nobodyさん:2009/04/10(金) 13:08:59 ID:???
>>181
そういうこと
foreach (array_slice(foo(), 2) as $value) echo $value,"<br>\n";

fooは一度しか呼び出されないが、配列の数だけarray_sliceが動いてる
200nobodyさん:2009/04/10(金) 13:11:00 ID:???
>>194-195
参考になりました
ありっす
201nobodyさん:2009/04/10(金) 13:14:39 ID:???
>>199
マニュアルを読む限り、foreach が式をループ回数だけ評価するようには読めないんだけど。
っていうか、foreachが式が関数の場合に、関数は評価するが、その引数は評価しないとか、ありえんと思うが。

http://jp.php.net/manual/ja/control-structures.foreach.php
202nobodyさん:2009/04/10(金) 13:16:50 ID:???
さてベンチマークの俺の出番ですね
203nobodyさん:2009/04/10(金) 13:19:31 ID:???
>>202
お願いします。勇者!
204nobodyさん:2009/04/10(金) 13:21:58 ID:???
// テスト用変数
function testAry() {for($a=0;$a<1000;$a++) $h[]=$i;return $h;}
// タイム測定
function bench() {return microtime(true);}
// ベンチマーク表示
function cale($time) {
echo "<pre>";print_r($time);echo "</pre>";
foreach($time as $t) {echo "<p>".($t[1]-$t[0])."</p>";}
}
// --------- 比較コード ---------------- */
$time[0][0]=bench();

$test = array();
$h = array_slice(testAry(), 50);
foreach ($h as $v) $test[]=$v;

$time[0][1]=bench();

// ---------- 175のコード ------------- */

$time[1][0]=bench();

$test = array();
foreach (array_slice(testAry(), 50) as $v) $test[]=$v;

$time[1][1]=bench();

/* ---------- ここまで ---------------- */

cale($time);
205nobodyさん:2009/04/10(金) 13:22:39 ID:???
続き

テストした結果どちらもたいして変わらない
206nobodyさん:2009/04/10(金) 13:28:45 ID:???
結論からいえばforの中で関数は使うなってこと
207nobodyさん:2009/04/10(金) 14:57:47 ID:???
>>206
頭大丈夫か?
208nobodyさん:2009/04/10(金) 15:08:18 ID:???
>>207>>175

ベンチマークみて行ってんならおまえ致傷だな
209nobodyさん:2009/04/10(金) 15:08:50 ID:???
メールを受け取ったらphpファイルを起動させようとしているのですが上手くいきません。
昨日から詰まってます。。。。助けてください。
.forwardのパーミッションは600。メールの転送ができることは確認済みです。
PHP 5.0.4 FedoraCore

.forwardの中身
"| /usr/bin/php -q /var/www/html/test2.php"

test2.phpは単体で動かせることは確認済みです。
メールを受け取った後、test2.phpが動いてる様子がありません。。。
210nobodyさん:2009/04/10(金) 15:10:47 ID:???
>>207ってID出さないスレで正規表現でたたかれてた人物じゃない?
これ以上触れるとこのスレ荒らされるぞw
211nobodyさん:2009/04/10(金) 15:16:10 ID:???
>>209
test2.phpに#!/usr/bin/phpみたいなパスは書いてあるよな?
212nobodyさん:2009/04/10(金) 15:17:53 ID:???
これでダメならまたおいで

.forwardの中身
"| /usr/bin/php /var/www/html/test2.php"

test2.phpの中身の一行目(パスは自分の環境にあわせてね)
#!/usr/bin/php -q
213nobodyさん:2009/04/10(金) 15:18:37 ID:???
>>212
あ、test2.phpのパーミッションは705か755にしろよ
214nobodyさん:2009/04/10(金) 15:19:09 ID:???
>>210
お前が荒らしてるんだよ頭大丈夫か?
215nobodyさん:2009/04/10(金) 15:20:35 ID:???
わざわざ配列のカウントを変数に入れたりしないから
PHPだけの糞仕様を広めないでください
まともな言語なら差は出ません
216nobodyさん:2009/04/10(金) 15:20:55 ID:???
>>210
貴様のせいでこのスレに正規表現クンが来たじゃないかww
責任とって>>175を始末しろよw
217nobodyさん:2009/04/10(金) 15:23:22 ID:???
215必死w
218nobodyさん:2009/04/10(金) 15:24:05 ID:???
俺はーラッパーwwwwwwwwww
バイトはスーパーwwwwwwwwwwwww
タッパに葉っぱwwwwwwwwwwwwwwww
詰め込む河童wwwwwwwwwwww
頭はテンパーwwwwwwwwwwww
パッパカパーwwwwwwwwwwwwwwwwww
219nobodyさん:2009/04/10(金) 15:28:04 ID:???
>>215
>まともな言語なら差は出ません

( ゚Д゚)ポカーン
220nobodyさん:2009/04/10(金) 15:33:34 ID:???
まともな言語というかコンパイラ言語なら差はでないだろうな。
JAVAやC#なんかからきたやつはforの中でlength書いてるだろうし、
PHPでも別にcountを中に書いてもいいよ。
速度ってもミリ秒の誤差程度だし別に気にする必要もない。
221nobodyさん:2009/04/10(金) 15:35:33 ID:???
>>211
入れてませんでした。
だけれど試して見ましたがダメでした。

>>212
変化ありませんでした。
パーミは705でやってます。

あまりにも解けなさすぎて吐き気が。。。
222207:2009/04/10(金) 15:39:26 ID:???
いや・・・俺が言いたかったのは
forの中で関数使うな
for () {
//ここで使うな
}
っていってるのかと思っただけなんだが
223nobodyさん:2009/04/10(金) 15:41:31 ID:???
>>221
まず、パイプ前なのか、パイプ後なのか切り分けろや
とりあえず、シェルスクリプトならうごくかどうかやってみ。
touch hoge とかでいいから
224nobodyさん:2009/04/10(金) 15:47:08 ID:???
>>221
"| /var/www/html/test2.php"
これでよしっと
225nobodyさん:2009/04/10(金) 16:08:39 ID:???
>>223
メールうけとったあとのシェルの動かし方がわからん。
shhogeというファイルを作ってtouch hogeを書き込む。
sh shhogeで空ファイルが書き込めることを確認してから
パーミを705に変更。
.forwardの中身を"| /var/www/html/shhoge" や
"| /var/www/html/sh shhoge"にしてみて、メールを受け取ってみたが
だめだった。


>>224
それは最初にやったお。
test2.phpに#!/usr/bin/phpつけてやってもだめだったお。
226nobodyさん:2009/04/10(金) 16:10:46 ID:???
一回再起動してもちつけ
227nobodyさん:2009/04/10(金) 16:29:11 ID:???
.forwardには来てるの?
228nobodyさん:2009/04/10(金) 17:16:00 ID:???
>>226
何か変えるごとにメール鯖を再起動してるお。

>>227
メールの転送はできてるお。
229nobodyさん:2009/04/10(金) 17:20:06 ID:???
PHPとは関係ない気がするが、メールサーバのローカル配送ログは確認した?
230nobodyさん:2009/04/10(金) 17:24:58 ID:???
/usr/bin/php が無かったりしないの?
231nobodyさん:2009/04/10(金) 17:25:20 ID:???
>>229
ごめんなさいお。疲れたのでたったいまVMwareを落としたとこだお。
夜風を浴びて飯食べたら、また来るお。
メールサーバのローカル配送ログは観方が判らなかったので
スルーしてたお。あとで確認するお。
232nobodyさん:2009/04/10(金) 17:33:36 ID:???
とりあえずその言葉使いはやめような
233nobodyさん:2009/04/10(金) 18:00:19 ID:???
質問させてください。
レンタルサーバでcronを使って、2chを定期的に監視するプログラムを作ろうと思うのですが、
公開されているプログラムなどありませんでしょうか?
スレ違いならすみません。
234nobodyさん:2009/04/10(金) 18:01:57 ID:???
キミが監視しなくてもすでに他の人が監視してるから大丈夫
235nobodyさん:2009/04/10(金) 18:23:48 ID:???
>>233
監視って具体的になにをするのね
236233:2009/04/10(金) 18:44:10 ID:???
>>235
とりあえず自分のブログに盛り上がっているスレのリンクと、
先頭数レスの表示をしようと思ってます。
237nobodyさん:2009/04/10(金) 19:31:13 ID:???
>>236
専ブラ作るために公開されてる仕様があるのでそれ嫁ができます
238162:2009/04/10(金) 20:32:35 ID:z5toBuCm
>>162 はやっぱりないですかね。

>>164
多分、質問の意味を理解されてません。
239nobodyさん:2009/04/10(金) 20:35:19 ID:???
flockしる
240nobodyさん:2009/04/10(金) 20:38:07 ID:???
>>239
flockとどういう関係が?
241nobodyさん:2009/04/10(金) 20:46:12 ID:???
一時的に利用するためのファイルの名前にこだわる理由がわからない
242nobodyさん:2009/04/10(金) 20:48:58 ID:???
>>238
まず、自分がどうやってるか書いたら?
良い方法は?って言われてもな。

一意な名前を取得する方法なんて腐るほどあるっしょ。
インデックスを保持するファイルを一つ作っといて、そこで一意を確保してからrenameするとか
すきなアルゴリズムにしたらいいよ
243nobodyさん:2009/04/10(金) 20:56:57 ID:???
244nobodyさん:2009/04/10(金) 21:06:39 ID:???
連番でいいよもう
245nobodyさん:2009/04/10(金) 21:48:10 ID:???
forの中で関数呼び出しはPHPに限らず大抵の言語でもパフォーマンスが落ちる。
コンパイラや実行環境が最適化してくれる場合もあるし、大した差がつかないのは事実だけどな。
初心者がやってたら理解していない可能性を考えて訂正するのは正しい姿勢だと思うが。

>194-196, >204
ベンチマーク取るにしては処理が短すぎる。
そのくらいだとPC内のほかのタスクとかがノイズになって意味のある数字が出ない。
1秒とか10秒とかの単位で時間がかかるような規模の試験をした方がいい。
246nobodyさん:2009/04/10(金) 21:58:27 ID:???
批判する前に自分もコードを出したらいいじゃん
247209:2009/04/10(金) 22:19:41 ID:???
ログを見ても原因らしい原因が判りません。。。。

.forward
"| /usr/bin/php /var/www/html/test2.php"

test2.php
#!/usr/bin/php -q
<?php
print "START";
system("touch hoge");
echo "end";
?>

maillog
postfix/smtpd[3703]: connect from atg-asm1.t-com.ne.jp[218.219.54.53]
postfix/smtpd[3703]: 2895E5DC486: client=atg-asm1.t-com.ne.jp[218.219.54.53]
postfix/cleanup[3707]: 2895E5DC486: message-id=<004a01c9b9de$15f7cf10$0701a8c0@XXXXXX551ed45>
postfix/qmgr[3669]: 2895E5DC486: from=<[email protected]>, size=1594, nrcpt=1 (queue active)
postfix/smtpd[3703]: disconnect from atg-asm1.t-com.ne.jp[218.219.54.53]
postfix/local[3708]: 2895E5DC486: to=<[email protected]>, relay=local, delay=0, status=sent (delivered to command: /usr/bin/php /var/www/html/test2.php)
postfix/qmgr[3669]: 2895E5DC486: removed
248nobodyさん:2009/04/11(土) 01:44:12 ID:???
パフォーマンス云々よりも
count()っていうのはループ中に値が変わる可能性があるわけで
バグによってループする回数が変わってしまう危険性

っていうほうが避ける理由じゃないかな。。
249nobodyさん:2009/04/11(土) 01:48:10 ID:???
あと、上のほうにあったJavaScriptの話で

arr.lengthとfor(x in arr )を同じつもりで使うのは危ないよ。

例えばDOM使うと、forだと思ったとおりにならないときがあると思う。
250nobodyさん:2009/04/11(土) 02:13:44 ID:jaJ+Ur9l
httpヘッダのcontent-typeを取得したいのですが
送った、あるいは送る予定のheaderを取得するにはどうしたらいいですか?
251nobodyさん:2009/04/11(土) 02:28:50 ID:???
252nobodyさん:2009/04/11(土) 02:36:37 ID:???
こんな関数あったんですね
ありがとうございました。
253nobodyさん:2009/04/11(土) 02:55:15 ID:???
headers_listって自分で設定したヘッダしか取得できないんですね
デフォルトで送る予定のContent-Type: text/http等は
決めうちで取得させるしかないですか?
254nobodyさん:2009/04/11(土) 05:24:48 ID:HAu5s/9P
ファイルアップロードに関する質問なのですが、
$_FILEのtypeは信用できないということを聞いたので、
別の方法で取得するようにしたのですが、
その他のname、size、errorなどは信用してもよいのでしょうか?
nameなどはエスケープ処理などする必要がありますか?

よろしくお願いします。
255nobodyさん:2009/04/11(土) 05:49:24 ID:???
>>247
それで、hogeは出来てないんだよね?
次はerror_log書いて、PHPのログをチェックかな
256nobodyさん:2009/04/11(土) 06:24:24 ID:???
>>245
>1秒とか10秒とかの単位で時間がかかるような規模の試験をした方がいい。
そこまで両者に差が出るとは思えないし
そんな結果が出るまでやるとなるとメモリが足りなくなるでは?
できるならぜひベンチ結果をみてみたいが
というかそんな規模のものPHPじゃ作らないだろうし杞憂な気もするけど・・・

>>248
>count()っていうのはループ中に値が変わる可能性があるわけで
>バグによってループする回数が変わってしまう危険性
だいたいこういう処理は配列を1つずつ取り出す場合に使うのであって
対象の配列数が変わるような処理をやるほうがおかしいのでは?
具体的にどのようなことをするのか検討もつかないけど・・・
バグによってループ回数が変わるっていうのも意味不明

>>183もナイワと批判を書くのではなくて
外におけばPHPではパフォーマンスがあがるという注釈をつければここまで伸びなかった
257nobodyさん:2009/04/11(土) 06:53:18 ID:/nX8neeQ
PDOのマニュアルには失敗した時の動作が、書かれてないんですが、
このあたりはドライバ依存ってことなんでしょうか?

http://jp.php.net/manual/ja/pdo.query.php
http://jp.php.net/manual/ja/pdo.exec.php

例外で処理するのか戻り値で処理するのか、イマイチわかりません。
とりあえず、今使ってるSQLiteでは戻り値で判断できるみたいですが、ちょっと不安だなぁと言うことで。
258nobodyさん:2009/04/11(土) 07:09:52 ID:???
>>257
PDO用の例外があるでしょ
PDOExceptionだったかな
259nobodyさん:2009/04/11(土) 07:17:24 ID:???
>>257
失敗しても気にするなよ。諦めたらそこで試合終了だよ
260nobodyさん:2009/04/11(土) 07:18:25 ID:???
>>258
でたらめなSQL書いてqueryしても例外でないんですよ。
で、戻り値はfalse

ちなみに環境は PHP5.2.9 とWindows版にバンドル版されてるSQLite です。
261nobodyさん:2009/04/11(土) 07:22:23 ID:YDJbdlsq
基本的なことだと思うのですが、
<?php
$a .= "あ"
. "い"
. "う"
;

$b .= "あ";
$b .= "い";
$b .= "う";

echo $a."<br><br>".$b;

?>
の結果は同じになると思いますが、
少し複雑に変数やループ処理を入れたときに、
なぜか$aの方の"あ"の部分が消えてしまいます。
しかし、$b方式だと成功します。
>少し複雑に変数やループ処理を入れたときに、
を詳しく説明したいのですが、コードが長く、
まとめるにも上手く伝える術が見つかりませんでした。
簡易に説明すると、
データを参照して、何ページかを判断して、
リンク付きのページ番号をずらっと表示させるようなプログラム部分になるのですが、
どうして$aではできないのに$bだとできるのか疑問に思いました。
何か心当たりありましたらよろしくお願いします。
262nobodyさん:2009/04/11(土) 07:25:34 ID:YDJbdlsq
追記

ループ処理した$aを、
クラスの変数、private $a;
に格納していって、function get_a(){return $this->a;}
の、get_a()メソッドで参照したときに問題が起こりました。

phpは5.2.6です
263nobodyさん:2009/04/11(土) 08:31:57 ID:???
コードが長けりゃどこかにうpすればいいのに
264247:2009/04/11(土) 09:40:31 ID:???
>>255
error_logはsystemの戻り値の判定のところに書けばいいの?
265nobodyさん:2009/04/11(土) 10:03:46 ID:???
とりあえず、どこまで出来てるのか確認するのが基本
だから、<?phpの後でいいんじゃね?
266247:2009/04/11(土) 10:37:14 ID:???
エラーログを吐き出すようにしてみました。
単体でtest2.phpを動かすとログを出しますが、
メールを介して動かしてもログが吐き出されませんでした。

maillog
(delivered to command: /usr/bin/php /var/www/html/test2.php)

.forward
"| /usr/bin/php /var/www/html/test2.php"

test2.php
#!/usr/bin/php -q
<?php
error_log("テストエラー",0);
system("touch hoge");
?>
267247:2009/04/11(土) 10:48:01 ID:???
forwardでコマンドは実行されているみたいですがtest2.phpは動いていない。
・.forwardの中が間違っている。→/usr/bin/phpは存在する。 
               →/var/www/html/test2.phpでtest2.phpを
                動かせる。
・パーミッションが間違っている。→.forwardを600 test2.phpを705or755

あと考えられる事象はなんでしょうか。
268nobodyさん:2009/04/11(土) 11:22:57 ID:???
>>267
ディストリは何使ってるんだ?
それがわかれば同じ環境作ってやってみるけど
269nobodyさん:2009/04/11(土) 11:32:38 ID:???
>>267
.forward
"| /usr/bin/php -q /var/www/html/test2.php"
にしてみ
270nobodyさん:2009/04/11(土) 11:35:55 ID:???
.forward
"| /var/www/html/test2.php"

うちは、これで動くけど?
271nobodyさん:2009/04/11(土) 11:59:26 ID:???
まず
"| touch /tmp/hoge"

ってやってみて処理してるユーザ名を把握してはどうだろう
272247:2009/04/11(土) 12:15:02 ID:???
>>267
ディストリというのは環境という意味でいいのかな?
PHP 5.0.4kfedoracore4です。

>>269
>>270
試してみました。

>>271
suxxxxxxxのユーザーの空ファイルとなりました。
……test2.phpはroot。……まさか。。。
273261:2009/04/11(土) 12:15:24 ID:YDJbdlsq
ありがとうございます
自己解決しました。
実際は、
$a .= "あ"
. $i+1
. "う"
;
という風に、”い”の部分は計算式をいろいろと入れていたのですが、
その計算式を()でくくって
$a .= "あ"
. ($i+1)
. "う"
;
のようにしたら、できました。
274247:2009/04/11(土) 12:23:05 ID:???
>>271

作成されたファイルhoge
-rw------- 1 suXXXXXXX suXXXXXX 0 4月 11 08:36 hoge
.forward
-rw------- 1 suXXXXXXX suXXXXXXX 20 4月 11 08:35 .forward
test2.php
-rwx---r-x 1 root root 112 4月 11 08:02 test2.php

ごく。
275nobodyさん:2009/04/11(土) 12:35:09 ID:jPW674z3
グローバル変数はまったく使わないほうがいいのでしょうか?
276nobodyさん:2009/04/11(土) 12:43:26 ID:???
うん
スーパーグローバルは使うけど
277nobodyさん:2009/04/11(土) 13:12:41 ID:???
スーパーグローバルは便利だが、テストしにくくなる。
モジュールごと、クラスごとにテストを書かないといけないような、ややっこしいコードを作る時は避けた方がいい。

グローバル変数は使うべきではない、とされている。
これは、グローバル変数はどこでどう値が変えられるか分からないのが最大の理由。
ある時点でグローバルに何が入っているかは、プログラムの最初から最後まで全部読まないと分からない。
不具合発生時に原因を特定しづらいし、機能追加時などにどの時点でどの変数がどうなってるか分かりづらくなる。

いっぽう、一時変数は、その関数の中で生成され、その関数が終わったら消えるので、その関数の中だけ見れば値が分かる。
グローバルに依存しない関数は、同じ引数を渡せば同じ結果が常に返って来る。
プログラムのどこで呼ばれても(引数が同じならば)同じ結果が返る事が保証されているので、バグの原因を探しやすい。
278247:2009/04/11(土) 14:11:26 ID:???
ディレクトリィのパーミッションを777に変えてたら
test2.phpまで届いてログが出るようになりました。
ですが、system("touch hoge")が実行されず
まだ空ファイルが作られない状態です。
279nobodyさん:2009/04/11(土) 14:16:55 ID:???
file_put_contents("/tmp/hoge.txt", realpath("."));を書いてみて、
カレントディレクトリを把握してはどうだろう。そしたらパーミッションを確認してと・・
280247:2009/04/11(土) 14:38:11 ID:???
>>279
file_put_contents("/tmp/hoge.txt", realpath("."));
file_put_contents("/var/www/html/hoge.txt", realpath("."));
二つとも空ファイルを作成できました。

ただ肝心のシステム関数が実行されていません。
system("touch hoge");
281nobodyさん:2009/04/11(土) 14:42:45 ID:???
>>280

>注意: セーフモード が有効な場合、 safe_mode_exec_dirの中にある実行プログラムのみ実行可能です。実際的な理由により、現在、実行プログラムへのパスに ..を含めることはできません。
282nobodyさん:2009/04/11(土) 14:53:15 ID:???
じゃあsystem("touch /path/to/hoge");みたいに書くか
chdir("/path/to");を先に書いておくか・・
283247:2009/04/11(土) 15:06:27 ID:???
>>281
セーフモードは無効になっていました!

>>282
できた! 

ようやく全て結合してDBも動きました。
ありがとうございます!
284nobodyさん:2009/04/11(土) 15:29:01 ID:???
285nobodyさん:2009/04/11(土) 15:57:01 ID:???
>>254
nameはクライアントの自己申告
move_uploaded_file() や header('Content-Disposition: attachment; filename=""') なんかに使う時は
使っていい・出力していいファイル名か審査する必要がある
sizeとerrorはPHPが決める値なのでそのまま使える
このあたりの処理は /main/rfc1867.c に書いてある
286nobodyさん:2009/04/11(土) 16:07:02 ID:???
>>283
名を名乗るほどのモンじゃねえから礼はいいってことよ
287nobodyさん:2009/04/11(土) 16:16:03 ID:/nX8neeQ
>>284
ありがとう。なんで見逃してたんだろ。
すんません。
288nobodyさん:2009/04/11(土) 16:20:58 ID:6UsgbN52
Header("Content-type: image/png);
ImagePng($output_image);

とすれば画像を表示しますが、表示するんじゃなく、
imagemagickでexecコマンドで扱えるようにするにはどうすればいいんでしょうか?

$cmd = "convert -resize 80x80 {$output_image} ";
exec($cmd);

みたいな感じでファイルを保存せずImagePng($output_image);のように画像だけ表示したいのですが
289nobodyさん:2009/04/11(土) 16:23:20 ID:???
290nobodyさん:2009/04/11(土) 21:29:10 ID:???
>>288
これでいいかい?

// GD パート
$image = imagecreatefromjpeg('original.jpg');
ob_start();
imagejpeg($image);
$source = ob_get_clean();

// ImageMagick パート
$command = 'convert jpeg:- -resize 80x80 png:-';
$ds = array(0 => array('pipe', 'r'), 1 => array('pipe', 'w'));
$process = proc_open($command, $ds, $pipes);
fwrite($pipes[0], $source);
fclose($pipes[0]);
$dest = stream_get_contents($pipes[1]);
fclose($pipes[1]);
proc_close($process);

// 出力
header('Content-Type: image/png');
echo $dest;
291nobodyさん:2009/04/11(土) 22:15:46 ID:???
レスありがとうございます。
まだ帰れず試せないのですがもどったらやってみてまた報告します。
292nobodyさん:2009/04/11(土) 22:32:59 ID:???
さくらインターネットスレで質問したのですが誰もわかる人がいないので
こちらにて質問させて下さい。


FreeBSDにTeraTermで接続しコマンドラインから

php /home/my-account/www/Test.php

とすると正常に実行出来るのに
さくらインターネットのサーバコントロール画面からcronの実行コマンド項目に
上記命令をコピーして「送信」ボタンを押して時間を指定して実行しているのですが
まったく実行されません。

どうすればcronを実行させる事が出来ますか?
293292:2009/04/11(土) 22:37:47 ID:???
自己解決しました。
294nobodyさん:2009/04/11(土) 22:38:31 ID:???
さくらインターネッツのコンパネ設定とか知らないけど
telnet(ssh?)とか使えるんなら普通にcrontab -eで編集できるんちゃうん
295nobodyさん:2009/04/12(日) 00:20:41 ID:???
>>292
激しく板違い
296nobodyさん:2009/04/12(日) 00:26:07 ID:???
>>294
サンクス。

>>295
だから解決したって。
297nobodyさん:2009/04/12(日) 04:19:11 ID:???
テストファーストってした方がいいのかどうか微妙すぎて踏み切れん
298nobodyさん:2009/04/12(日) 08:30:14 ID:???
<?php
if( ( $stdin=fopen('php://stdin','r') )==true ){
while( !feof($stdin) ){
$line = stripslashes( fgets($stdin,4096) );
error_log("$line",0);
}
fclose($stdin);
}
?>

受け取ったメールの編集をしたいのですが、
読み込んだメールをログに出力すると、文字化けしています。
299nobodyさん:2009/04/12(日) 08:38:24 ID:???
報告乙
300nobodyさん:2009/04/12(日) 11:07:11 ID:???
phpspotとネタ帳の次で現れる第三の厨房
ttp://www.itt-web.net/modules/xeblog/?action_xeblog_details=1&blog_id=314
301nobodyさん:2009/04/12(日) 11:35:08 ID:???
宣伝乙
302nobodyさん:2009/04/12(日) 11:46:26 ID:???
>>301
覚悟はしてたかが俺は本人じゃねえ
303nobodyさん:2009/04/12(日) 13:58:53 ID:Vo0Yfswz
xammpでapacheの設定とphpの設定ファイルって自分で書き変えても動くのですか?
304nobodyさん:2009/04/12(日) 14:05:14 ID:???
xamppはやめとけ
305nobodyさん:2009/04/12(日) 14:05:17 ID:???
ヤバい箇所をいじると動かなくなる可能性もあるが、まあ大抵は動く。
つうか、初期設定が糞すぎるので書き換えた方が開発効率が良い。
PHPかApacheかに拡張モジュール入れる場合とかは書き換えざるを得ないしな。
306nobodyさん:2009/04/12(日) 14:22:16 ID:???
04webserver最強
307nobodyさん:2009/04/12(日) 16:29:20 ID:???
>>303
簡単な動作テストだけならそのままでもいいけど
普通は設定かえるよ
308nobodyさん:2009/04/12(日) 23:28:19 ID:???

if ($section = $abc::getObj($a))
{
処理
}
これは$abc::getObj($a)の返り値が$sectionに代入されたら
trueになるのでしょうか。
309nobodyさん:2009/04/12(日) 23:32:47 ID:???
>308
$abc::getObj($a)の返り値による。
false、null、0などが返ってきてたらif文はfalseになるので処理は行なわれない。
(この場合も、$sectionへの代入だけは行なわれる)

オブジェクトとか文字列とか0でない数字とか、trueと見なされるものが戻ってきてた場合はtrueになる。
何がtrueと見なされるかはマニュアル嫁
ttp://jp2.php.net/manual/ja/language.types.boolean.php
310nobodyさん:2009/04/12(日) 23:34:38 ID:???
ありがとう。
311nobodyさん:2009/04/13(月) 00:05:31 ID:???
いや型変換ならこっちだろ
http://jp2.php.net/manual/ja/types.comparisons.php
312nobodyさん:2009/04/13(月) 00:07:32 ID:Yv15gfHG
Apacheを起動してもlocalhostでページに繋がらず、いろいろと調べてみたんですが
解決できません・・
何か原因の想像がつく方や改善方法を知ってる方は教えてください。お願いします。
313nobodyさん:2009/04/13(月) 00:21:19 ID:???
>>312
ドキュメントのインストールガイドを読む
314312:2009/04/13(月) 00:22:05 ID:Yv15gfHG
>>313
ドキュメントのインストールガイドとはなんですか?
315nobodyさん:2009/04/13(月) 00:22:53 ID:???
apache2.2ならhttpd.exe
apache1.3〜2.0ならapache.exe(だっけ?)

インストール先がc:\apache2.2\bin\httpd.exeであるなら
コマンドプロンプトでbinディレクトリまで移動して「httpd.exe -t」を入力
syntax okって表示されてればおk
されてれば設定ファイルを見直してみろ

linuxも↑と同じやり方
316315:2009/04/13(月) 00:23:51 ID:???
協力してやりたいがキーボードのタイプ音が部屋に響くので寝ます
明日起きたときまたくる
317312:2009/04/13(月) 00:29:16 ID:Yv15gfHG
>>315
apache2.2です。
syntax okって表示されたところまでは行きましたがlocalhostのページは
ページ読み込みエラーで接続できませんでした・・

ちなみに「httpd.exe -t」の作業はどういったものなのでしょうか?
318nobodyさん:2009/04/13(月) 00:30:28 ID:???
>>317
>>313
これ以上はスレ違い
319nobodyさん:2009/04/13(月) 00:31:45 ID:???
>>317
ググレカス
320312:2009/04/13(月) 00:32:10 ID:???
>>318
すみませんでした。
321315:2009/04/13(月) 00:33:11 ID:???
念のため言うが設定ファイルをいじったら再起動してるか?
じゃあ寝るからレスは期待するな
319は俺
322nobodyさん:2009/04/13(月) 00:34:49 ID:???
まずping localhostが通るかだろ常考
323312:2009/04/13(月) 00:35:59 ID:???
>>321
アパッチのリスタートしかしてませんでした・・
再起動してみます、ありがとうございました。
324nobodyさん:2009/04/13(月) 00:37:19 ID:???
ワラタ
325312:2009/04/13(月) 00:48:08 ID:???
再起動してもページ読み込みエラーでした・・・
ping localhostってのをしてみたらよくわからない時間と統計が出てきました。
326nobodyさん:2009/04/13(月) 01:03:57 ID:???
そうか
327312:2009/04/13(月) 01:12:01 ID:???
この時点でできないんじゃphpはまだまだですよね・・
スレ汚してすみませんでした。
328nobodyさん:2009/04/13(月) 01:30:52 ID:???
>>327
君は何をやっても駄目だと思うよ
329312:2009/04/13(月) 01:34:25 ID:???
その通りなんですよ・・
それでもせめて少しは頑張って、わからなくて・・
助けを願って期待してたんですけどね・・
330nobodyさん:2009/04/13(月) 02:01:41 ID:???
phpスレでapache聞いてる時点でもう終わってる
331nobodyさん:2009/04/13(月) 02:06:18 ID:???
>>329
xamppにしたほうがいいよ
332nobodyさん:2009/04/13(月) 02:15:21 ID:???
初心者がxampp使ったら余計悲惨なことになるだろ
まぁ自分で何とかするならいいけど
333nobodyさん:2009/04/13(月) 02:21:59 ID:???
初心者であればxamppを使ったほうがいいよ
334nobodyさん:2009/04/13(月) 02:31:49 ID:???
>>332
そう言う人は多いけど、根拠は?
テスト環境ならxamppでも問題ないだろ
335312:2009/04/13(月) 02:44:40 ID:???
>>330
phpを使いたくて、テキストに従って環境作ってたらApacheでつまづいたので・・
>>331
xamppってのちょっとやってみます・・
336nobodyさん:2009/04/13(月) 02:44:48 ID:???

xamppバグだらけじゃん
337nobodyさん:2009/04/13(月) 02:48:33 ID:???
>>336
xamppバグだらけだけど
お前の無職期間よりはマシだよ
338nobodyさん:2009/04/13(月) 02:53:27 ID:???
>>336
大丈夫俺は無職じゃないから。
頑張って仕事探せよ。
未来のホームレス
339312:2009/04/13(月) 02:59:44 ID:???
どなたかプロい人、phpを使うまでの作業手順を教えてください。
340nobodyさん:2009/04/13(月) 03:05:13 ID:???
>>339
RPGツクーラーのためのPHP講座
http://phptkool.wordpress.com/
341312:2009/04/13(月) 03:11:45 ID:???
5時間目まで目を通して終了しました・・
342nobodyさん:2009/04/13(月) 03:27:38 ID:???
>>341
感想は?
343312:2009/04/13(月) 03:38:33 ID:???
コメントや記事の日付が数ヶ月前なので、作りかけで更新もせず飽きたのかな・・と
思いました。
344nobodyさん:2009/04/13(月) 03:44:14 ID:???
いやいやwww
xamppのインストールができたかどうかだよ!
そんなサイトの更新のことなんかきいてねえwww
345nobodyさん:2009/04/13(月) 03:51:14 ID:???
>>334
自分で語るに落ちてる
xamppはテスト環境であって初心者の学習用環境ではない
346312:2009/04/13(月) 03:53:00 ID:???
>>344
ですよね?wすみません^^;
インストールはできました。
347nobodyさん:2009/04/13(月) 05:25:22 ID:???
>>346
xamppがインストールできたら、
MS-DOSプロンプト立ち上げて、

php -v

って打って、なんか出てくれば、
phpのインストールはできてる。
348nobodyさん:2009/04/13(月) 07:10:21 ID:???
>>312
127.0.0.1だと接続できたりするんじゃね?
349nobodyさん:2009/04/13(月) 10:22:38 ID:???
>>312
一応定番なので載せておく

俺が初心者にPHPを伝授する
http://pc11.2ch.net/test/read.cgi/php/1167984858/
350nobodyさん:2009/04/13(月) 13:58:24 ID:ypI4OeZj
winでcronつかってPHPを使いたいのですが似たようなものってございませんか?
351nobodyさん:2009/04/13(月) 13:59:39 ID:???
      _______                     __
    // ̄~`i ゝ                    `l |
    / /        ,______   ,_____    ________  | |  ____ TM
   | |     ___ // ̄ヽヽ // ̄ヽヽ (( ̄))   | | // ̄_>>
   \ヽ、   |l | |    | | | |    | |  ``( (.  .| | | | ~~
      `、二===-'  ` ===' '  ` ===' '  // ̄ヽヽ |__ゝ ヽ二=''
                         ヽヽ___//   日本
  _____ _____  ______  _______
  |  ウェブ  | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ._________________
      |windows cron                │・検索オプション
      └────────────────┘・表示設定
         | Google検索 | I'm Feeling Lucky |  ・言語ツール
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ○ウェブ全体から検索 ◎日本語のページを検索
352nobodyさん:2009/04/13(月) 14:18:54 ID:???
>>351
日本語でおk
353nobodyさん:2009/04/13(月) 21:54:51 ID:FmgZe7wf
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
どういう手を使うのがいいですか?
354nobodyさん:2009/04/13(月) 21:57:23 ID:???
志村〜
355nobodyさん:2009/04/13(月) 22:18:55 ID:???
>>353
隠しページはやめてくれってレン鯖の規約に書いてあるってことか
おまえ死ねよ
356nobodyさん:2009/04/13(月) 22:28:10 ID:???
>>355
ん?
隠しページ駄目なの?
俺は今さくらインターネットでログインしないと見れないページを作ってるんだけど。
357nobodyさん:2009/04/13(月) 22:31:42 ID:???
>>356
日本語が不自由な奴だな

隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
358nobodyさん:2009/04/13(月) 22:32:31 ID:???
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
359nobodyさん:2009/04/13(月) 22:52:28 ID:???
そもそも何で 隠しページを禁止する レンタルサーバがあるんだよ?
360nobodyさん:2009/04/13(月) 23:05:34 ID:???
有料レン鯖ならこういう規約はまずないから>>353は無料レン鯖借りてるんだろどうせ
無料で提供してる鯖は広告収入でマイナスを埋めてるからこういうDQN(>>353)がやるような
メンバー専用ページを排除しているところもある
361nobodyさん:2009/04/13(月) 23:11:16 ID:???
>>360
サンクス。
疑問が解けた
362nobodyさん:2009/04/13(月) 23:27:01 ID:oGeHUnbf
DBから取得した値を可変の配列に格納しようと思ってるのですが、
.NetのArryalListに似たコードはありますか?
363nobodyさん:2009/04/13(月) 23:33:24 ID:???
>>362
ないよりかはマシでよければ
http://www.php.net/manual/ja/class.arrayobject.php
5.3からはこっちも使える
http://www.php.net/manual/ja/spl.datastructures.php
364nobodyさん:2009/04/13(月) 23:54:17 ID:???
>>363
ありがとうございます。
365312:2009/04/14(火) 01:25:02 ID:???
>>348
その通りです。
366nobodyさん:2009/04/14(火) 01:25:07 ID:???
362はマルチ
367nobodyさん:2009/04/14(火) 01:27:17 ID:???
>>365
hostsファイルの設定
あと>>1
368312:2009/04/14(火) 01:38:14 ID:???
>>367
hostファイルの設定とは・・?

【OS名】vista
その他まだよく分かってません・・
369nobodyさん:2009/04/14(火) 01:41:02 ID:???
http://localhost/
http://127.0.0.1/

上がダメで下がOKならhostsの問題だけど
hosts知らないやつが書き替えてるとは思えないのだが
370312:2009/04/14(火) 02:03:08 ID:???
>>369
上はページ読み込みエラー、下はIt works!でした。
371nobodyさん:2009/04/14(火) 02:04:05 ID:???
>>370
なんでスレのルールを守らんの?
372nobodyさん:2009/04/14(火) 06:49:44 ID:???
>>370
ウイルスにやられてるっぽいな
一回全スキャンしてみ
373nobodyさん:2009/04/14(火) 10:10:38 ID:???
こないだのWindowsUpdateで、Defenderがhostsのlocalhostを消しちゃう問題が話題になってる。
374nobodyさん:2009/04/14(火) 11:22:46 ID:???
IPv6関連じゃないか?
375374:2009/04/14(火) 11:35:28 ID:???
C:\Windows\System32\drivers\etc\hosts開いて
::1 localhost
になってたらこれをコメントアウトして
127.0.0.1 localhostを追記する

127.0.0.1 localhost
#::1 localhost

これでもだめならcmdからipv6 uninstallしたらいけるかもしれないが非推奨

Vistaは使ったことないので知らないけど
376nobodyさん:2009/04/14(火) 11:45:28 ID:???
vistaだけど ipv6とか触ったことないので関係ないと思う
377nobodyさん:2009/04/14(火) 11:46:31 ID:???
触ったことないから関係ないとはまさにスーパーハッカーですね
378nobodyさん:2009/04/14(火) 11:48:29 ID:???
わろた
379nobodyさん:2009/04/14(火) 11:49:51 ID:???
>>374=>>377
否定されると反論レスが早すぎだろw
380374:2009/04/14(火) 11:55:59 ID:???
>>377やないし・・・
スレ違いなのでさっくりこの話題終わらせたいから思い当たったこと言っただけ
これで解決できればいいけどね
381nobodyさん:2009/04/14(火) 11:57:22 ID:???
ipv6で直るとか特定の環境過ぎるだろ
382nobodyさん:2009/04/14(火) 11:58:14 ID:???
なんでもかんでも=で結ぶのは正規表現に粘着してた馬鹿だろ?
放置でおk
383nobodyさん:2009/04/14(火) 11:59:49 ID:???

正規表現降臨乙
384nobodyさん:2009/04/14(火) 12:02:19 ID:???
>>379=>>383
否定されると反論レスが早すぎだろw
385nobodyさん:2009/04/14(火) 12:02:37 ID:???
>>375
別にコメントアウトする必要はない。
IPv6は今回の件には関係ないし。
386nobodyさん:2009/04/14(火) 12:04:17 ID:???
>>381
vistaはその特定の環境のようだが

      _______                     __
    // ̄~`i ゝ                    `l |
    / /        ,______   ,_____    ________  | |  ____ TM
   | |     ___ // ̄ヽヽ // ̄ヽヽ (( ̄))   | | // ̄_>>
   \ヽ、   |l | |    | | | |    | |  ``( (.  .| | | | ~~
      `、二===-'  ` ===' '  ` ===' '  // ̄ヽヽ |__ゝ ヽ二=''
                         ヽヽ___//   日本
  _____ _____  ______  _______
  |  ウェブ  | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ._________________
      |localhost ipv6 vista            │・検索オプション
      └────────────────┘・表示設定
         | Google検索 | I'm Feeling Lucky |  ・言語ツール
          ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
       ○ウェブ全体から検索 ◎日本語のページを検索
387nobodyさん:2009/04/14(火) 12:05:25 ID:???
hostsに
x.x.x.x localhost
を追加して悪さするやつがいたからDefenderは無条件に全て消すという愚挙を・・
だから127.0.0.1 localhost を追記するだけでいけるよ。
388nobodyさん:2009/04/14(火) 12:05:32 ID:???
>>385
なんで言い切れるんだよwww
>>312が結論出すしかないだろ
389nobodyさん:2009/04/14(火) 12:07:07 ID:???
>>388
まあそうだが、3月上旬から何十件もあるこの手の質問の回答はすべてこれだったからな。
390nobodyさん:2009/04/14(火) 12:08:35 ID:???
おまえらスレ違いですよ

質問(屮゚O゚)屮 カモーン
391nobodyさん:2009/04/14(火) 12:08:51 ID:???
>>386
vistaだからipv6で症状が出るとでも思ってるのか?
お前vista使ったことないだろ
392nobodyさん:2009/04/14(火) 12:10:05 ID:???
IPv6がなんちゃら言いたい奴は最近覚えた用語を使いたかったんだろ
察してやれよ
393nobodyさん:2009/04/14(火) 12:10:22 ID:???
>>391
うん
あんな糞OS使わないお><
394nobodyさん:2009/04/14(火) 12:11:22 ID:???
ttp://dex.qp.land.to/pukiwiki/index.php?cmd=read&page=%BB%A8%B5%AD%2F2009-01-26

ipv6をアンスコするなんて馬鹿馬鹿しい
395nobodyさん:2009/04/14(火) 12:14:25 ID:???
問題解決のための可能性を列挙してるだけなのにお前ら賑やかですね
自分と意見が違えば徹底的にたたくとかどこのガキだよ
スレが無駄に伸びるし解決するまで黙って見守ってろや
それか思い当たる解決法があるなら淡々と列挙しろ
396nobodyさん:2009/04/14(火) 12:18:39 ID:XUS8hYov
WinBinderをPHP5.2.9で動かしたいのですが正常に動いてる方いらっしゃいますか?
397nobodyさん:2009/04/14(火) 12:19:19 ID:???
>>395
不要な解決方法はいらねえんだよ
398nobodyさん:2009/04/14(火) 12:21:10 ID:???
まあ解決方法にHDDのフォーマットを紛れ込ませたりするやつもいるしな
399nobodyさん:2009/04/14(火) 12:25:39 ID:???
>>396
PHPでわざわざGUIアプリ作ろうとする人なんてたぶんこのスレにいないよ
400nobodyさん:2009/04/14(火) 12:54:52 ID:pC/MAxND
【OS名】Windows XP SP3
【PHPのバージョン】php5.2.9
【連携ソフトウェア】
【質問内容】
php.iniの
デフォルトでoutput_buffering = 4096が適用されてますがこれって無効にしたらまずいですか?
有効・無効にするメリットとデメリットを教えてください
あとその下にoutput_handlerとあるんですが教本にmb_output_handlerを設定してって書かれてあります
これを設定する意味はなんでしょうか?
401nobodyさん:2009/04/14(火) 12:57:00 ID:???
>>400
マニュアルとphp.iniのコメント参照
402nobodyさん:2009/04/14(火) 13:07:58 ID:???
>>400しょうもない質問をするな
403nobodyさん:2009/04/14(火) 13:10:03 ID:???
>>400
ここの人間のレベルでは答えられないと思う
404nobodyさん:2009/04/14(火) 13:41:29 ID:???
ちょっとスレチガイかも知れないけどJane(2ch専用ブラウザ)を使って
いるんだけど、投稿をすると常にIDが「???」になってしまいます。

このスレでは「IDを出す」事が必須らしいいのですが、
どうすれば出す事が出来るのでしょうか?
405nobodyさん:2009/04/14(火) 13:44:47 ID:???
sage を消せば出るよ。
JANEは使ったことないけど、デフォルトがsageなんだろう。
406nobodyさん:2009/04/14(火) 13:46:23 ID:???
めんどいからID常に表示する板設定にすればいいのにな
407nobodyさん:2009/04/14(火) 14:07:48 ID:???
>>400
さすがにその程度の事、ぐぐろうよう・・・・・

408nobodyさん:2009/04/14(火) 14:10:05 ID:???
ググるとかそういうの以前のここの住民で説明できるほど長けてる人間はいない件
409nobodyさん:2009/04/14(火) 15:14:55 ID:lLj9k4ea
>>405
サンクス
ちょっとテスト

>>407
聞いた方が速いので
410nobodyさん:2009/04/14(火) 15:17:26 ID:???
>>407
スレタイ参照
411nobodyさん:2009/04/14(火) 15:34:59 ID:???
>>389
defenderが原因ってこと?
412nobodyさん:2009/04/14(火) 17:06:33 ID:O0pp8kVu
zend debuggerをインストールしてphpinfoにも表示されてるのですが
肝心の使い方がわかりません
わざとエラーになるようなコーディングをしてもいつもと変わらないエラーが表示されるだけで困ってます
これはどのようにして使うのでしょうか?
413nobodyさん:2009/04/14(火) 17:24:10 ID:???
>>400
出力内容に対する後処理を追加したいとか
バックエンドへ出力を引き渡す際のオーバーヘッドを減らしたい時に有効にする
mb_output_handlerの場合は前者で
エンコーディング変換のためのハンドラだ
414nobodyさん:2009/04/14(火) 17:32:26 ID:???
>>412
PHPの実行状態を外部から知るためのもので
Zend StudioやPDTなどと連携しなければ役に立たない
エラー表示時にスタックトレースを追加したいとかならXdebugが合っている
http://www.xdebug.org/
415nobodyさん:2009/04/14(火) 17:47:02 ID:???
php5.2.9に対応したxdebugが無いから早く出してほしい
416nobodyさん:2009/04/14(火) 19:49:14 ID:h4ximX71
自分のPCでPHPを早く動かしてるんですが
CPUとかメモリとか物理的な部分はどこが重要でしょうか?

現在のPCスペックがCPU P4 3.2GHz メモリ 1.5GB
ですがCORE2とかメモリ増設とかすればそれなりに早くなるのでしょうか?
417nobodyさん:2009/04/14(火) 19:57:42 ID:???
演算処理は早くなるんじゃね?
ただP4のマザボにCore2はのらないでしょ
メモリはプログラムが高速にアクセスするために使う記憶領域なので
容量が足りてればいい(増設したからといって必ずしも早くなるわけではない)
P4時代のメモリよりは最新のDDR3とかのほうが早いだろうけどね
DB使った中規模な処理とかでもそのスペックで十分
418416:2009/04/14(火) 20:08:08 ID:h4ximX71
core2とかでだいぶ早くなるならPC本体の買い替えも検討してます。


419nobodyさん:2009/04/14(火) 20:21:46 ID:???
別にPHP動かすのならそんなにスペックは必要無いだろ。

.Netとか動かすとかなりきついけど
420nobodyさん:2009/04/14(火) 20:25:03 ID:???
今買い替えても一年後のPCに比べたら落ちるわけだからどこかで妥協しないときりがない
421nobodyさん:2009/04/14(火) 20:31:23 ID:???
>>418
どんだけ重いphp実行してるんだよ
422nobodyさん:2009/04/14(火) 20:31:59 ID:???
>>418
はコードが下手なんだろ
423nobodyさん:2009/04/14(火) 21:26:48 ID:???
俺なんて
[email protected] 768MB RAM で動かしてんだぞ
424nobodyさん:2009/04/14(火) 22:06:55 ID:???
>>423
鯖マシンなら妥当じゃね?
普段使ってる多目的PCでPHPのデバッグもやっているというならカスペックだが
425nobodyさん:2009/04/14(火) 22:39:54 ID:QCyTU2q5
当方の環境でPHP5.2.9にしてからよく鯖が落ちるようになったので5.2.8をダウンロードしたいのですが
旧バージョンはどこから落とすのかご存知の方いらっしゃいましたらご教示お願い致します
426nobodyさん:2009/04/14(火) 22:46:59 ID:???
Unsupported Historical Releases
427nobodyさん:2009/04/14(火) 23:06:32 ID:???
>>425
winで5.2.9-2にしてからcakephpとか負荷のかかるもの使うとapacheが停止する
不具合はうちだけかと思ったら仲間がいてほっとした
早く修正版でねえかな
428nobodyさん:2009/04/14(火) 23:13:30 ID:???
>416
マジレスすると、H/W買い替えを視野に入れたくなるほど処理速度が重要な局面でPHPを使うのが間違い。
PHPもRubyもPerlも、言語仕様上、JavaやC++に比べると速度がかなり遅くなる。

アルゴリズム見直して、APCやeAcc入れて、DBアクセス最適化すりゃ、恐らくじゅうぶん早くなる。
H/W増強はそれから。
429nobodyさん:2009/04/14(火) 23:32:35 ID:???
つくづくphpの最新リリースは人柱になるなぁ・・・勘弁して欲しい。

>>416
一行目をよく見たら気づいたが、現状遅いってわけじゃないのか?
430nobodyさん:2009/04/15(水) 00:48:27 ID:???
つかWEBサーバをレンタルする場合のコストを考えると確実にPHPに軍廃があがると思うんだけど。
あと普通のサイトを作ってるんだけど、そこまで遅いと感じた事は無いんだけどな。
431nobodyさん:2009/04/15(水) 01:49:07 ID:???
日本語でおk?
432nobodyさん:2009/04/15(水) 02:43:25 ID:+Ew/BfEW
Webサーバレンタルするより、ある程度のスペックのPC買って、動的DNSだっけか、あれやった方が安いよ。
433nobodyさん:2009/04/15(水) 02:50:07 ID:???
サーバにもよるが電気代考えると・・
スレ違いじゃね
434nobodyさん:2009/04/15(水) 02:51:55 ID:???
俺はルータがcoregaだから、無料でダイナミックDNSができるから、
3万のPCオークションで買って、自宅サーバだよ。http://corega.jp/product/navi/corede-net/
435nobodyさん:2009/04/15(水) 02:53:15 ID:???
>>432
ヒント:煩いあと電気代
436nobodyさん:2009/04/15(水) 02:56:38 ID:???
>>434
ネットワークについてあまり詳しく無いので質問させて頂きたいのですが、
現在マンションに備え付けの回線を引いているのですが、
先日までIP電話を使用していた時にはルータ(NEC製のルータ、Alterm)が
ついていたのでポートマッピング等を行う事が出来た(専用画面から)
のですが、IP電話の契約を解除してから(Atermを返送)ポートの開放が
出来なくなりました。
マンションに最初っから回線が引かれている場合には、自宅サーバはする事は
出来ないのでしょうか?

437434:2009/04/15(水) 03:04:00 ID:???
マンションに住んでないから、よく知らん・・
マンションにサーバがあってそっからIP振り分けてるのなら無理だろうけど。

でも、多分できるよ。
438nobodyさん:2009/04/15(水) 03:05:22 ID:???
>>436
回線業者にも依るが、大概の場合は無理。
439nobodyさん:2009/04/15(水) 03:11:25 ID:???
これがコレガのいいところ。
440nobodyさん:2009/04/15(水) 03:14:56 ID:???
>>436
スレ違いどころか板違いすぎるぞ
441nobodyさん:2009/04/15(水) 03:33:49 ID:???
>>432
やっと覚えた単語をただ並べただけのレスですね。
442436:2009/04/15(水) 04:00:51 ID:???
>>437
実は、IP電話を使用していたころ(ルータのあった頃)は、Windows /Linux 双方で
自宅サーバを運営してました。
だけどIP電話を解約するとルータを返さなくてはならなくなったせいでこれまでの
手順で自宅サーバを公開する事が出来なくなってしまいました。

>>438
レンタルのルーターがあった頃は普通にポートを開放して自宅サーバを公開出来ていたのでその
辺りが少し疑問です。
443nobodyさん:2009/04/15(水) 08:55:33 ID:???
ルーターぐらい買いなさいよ
1万ぐらいでそこそこのやつが買えるでしょ
直にネット繋いでるとか危険すぎる
後マンションの場合はたぶん共有だろうから
ほかの住人に迷惑かからない程度にな
可能ならネット用の動的IPとは分けて
別途固定IPとったほうがいい
444nobodyさん:2009/04/15(水) 09:09:45 ID:???
レンサバいま月200円ぐらいだろ。電気代と発火リスクかけて自宅サバやる意味ない
445nobodyさん:2009/04/15(水) 09:14:54 ID:???
root権限があるからいいんじゃない
446nobodyさん:2009/04/15(水) 10:03:04 ID:???
>>443
固定IPを引くと糞高いでしょ?
447nobodyさん:2009/04/15(水) 10:26:31 ID:???
>>446
おいおい固定IPでクソ高いって何本IP取得するつもりだ?
1本なら5000円出せばおつりが来るがまさか5000円程度が
クソ高いというわけじゃないだろうな?
448nobodyさん:2009/04/15(水) 10:41:32 ID:???
雑談スレに帰れよ
449nobodyさん:2009/04/15(水) 11:12:14 ID:???
>>447
1ヶ月で5000は高いでしょ。
1ヶ月に5000も掛けるんならレンタルサーバ借りた方がマシ
450nobodyさん:2009/04/15(水) 11:17:19 ID:???
5000円もあれば専用鯖借りれるよな
451nobodyさん:2009/04/15(水) 11:50:50 ID:???
さくらインターネットなら安いよ
452nobodyさん:2009/04/15(水) 12:28:42 ID:???
>>450
確かにw

つか5000円も掛けて固定IPをとって自宅サーバを構築何かする位なら
専用サーバを借りた方があらゆる面で良いと思うのは俺だけ?
453nobodyさん:2009/04/15(水) 12:36:33 ID:l+JCAwpk
どなたか助けてください
昨日apache2.0とphp5.2.9とMySQL5.1を入れました
phpMyAdminにアクセスしても真っ白い画面が出るだけで何も表示されません
phpinfo()や簡単なコードでPHPが動作してるのか確認しましたがちゃんと動作してます
データベースを使わないスクリプトなら問題ないのですが
wordpressなどデータベースを使うスクリプトだとapacheが停止してしまいます
どなたか解決方法をご教示お願い致します
454nobodyさん:2009/04/15(水) 12:39:29 ID:???
>昨日apache2.0とphp5.2.9とMySQL5.1を入れました

まず落ち着いてphpmyadminを入れてみてはどうだろう
455nobodyさん:2009/04/15(水) 12:42:42 ID:l+JCAwpk
すいません自己解決しました
今後よく出てきそうなトラブルだと思うので解決方法書いておきます

問題はphp5.2.9に含まれているphp_mysql.dllは5.1に
mysql5.1に対応してなかったためです
mysql5.1に対応した修正版dllに差し替えたら無事に動きました

昨日の>>425>>427は自分です
お騒がせしました
456nobodyさん:2009/04/15(水) 13:23:23 ID:???
>>455
ちょw
自演暴露すんなww
457nobodyさん:2009/04/15(水) 13:28:22 ID:???
アセンブラでわざわざphp_mysql.dll見たけどほんとだ
458nobodyさん:2009/04/15(水) 13:38:16 ID:???
PHPの関数で出来る事を他の言語でやった場合の書き方を
載せていくHPって需要ありますか?

phpなら$hash = array(1,2,3)
perlなら@hash= [1,2,3]

みたいな
459nobodyさん:2009/04/15(水) 13:40:16 ID:???
特にない
460nobodyさん:2009/04/15(水) 14:00:55 ID:???
まったくないと思う
そんな局所的な情報いらない
461nobodyさん:2009/04/15(水) 14:24:10 ID:???
>>459->>460
アフィで稼げるからしめたと思って否定してるんですよねw
462nobodyさん:2009/04/15(水) 14:35:27 ID:???
お前は何を言ってるんだ
463455:2009/04/15(水) 16:10:02 ID:???
たびたびすみません
私のトラブルって結構検索したら見つかりましたが
yahoo知恵袋でも同じ質問でてますが解決方法ってあまり出回ってないようですね
464416:2009/04/15(水) 16:20:30 ID:TbWWsoJF
コード最適化とかAPCとかeAccはすでにやってる
Cにすれば早いのは教えてもらわなくてもわかってる
ハードの交換でどのくらい変わるのかと思い質問したのです。
ぐぐっても比較してるところって案外すくないんですよね
465nobodyさん:2009/04/15(水) 16:33:28 ID:???
自分のマシンでbiosからcpu下げたりphp.iniでメモリとかその他設定できるんだから試さないの?
文句だけ言う人?
466nobodyさん:2009/04/15(水) 16:49:59 ID:???
月5000円で専用サーバ借りられるんですか?
VPSを借りようと思って比較検討してたけど、さくらの専用サーバの一番安いやつがいいでしょうか?
467nobodyさん:2009/04/15(水) 16:51:27 ID:???
>>434
参考になります。ありがとうございます。
バッファローの無線LANを買おうと思っていたけど、コレガにした方が便利かな?
ダイナミックDNSサービスを試しに使ってみようかな?
468nobodyさん:2009/04/15(水) 17:10:29 ID:???
>>466
スレチだがXreaのCore Serverがおすすめ
Xreaは昨今の騒動で信頼性が落ちたけど
運営実績はあるからね
安いわりにさくらより条件がいい
469nobodyさん:2009/04/15(水) 17:35:35 ID:???
>>468
社員宣伝うざいよ
470nobodyさん:2009/04/15(水) 17:51:41 ID:???
>>467
coregaとか使ってないからしらないが
DDNSのためだけにcoreag選ぶのはどうかと思うわ
DDNSサービスなんていろんな人が無料でやってるでしょ
CCNAに興味があるならCisco選んどくかぐらいで
ルーターは基本的な機能があればなんでもいい
471nobodyさん:2009/04/15(水) 18:45:34 ID:???
>>464
phpの実行速度なんてニッチな比較してるところはそりゃ少ないだろうよw

というか本当にボトルネックはHWなのか?
APCとかeAccを既にやっていて、かつ>>416のスペックで遅いっていうなら
設計・実装・(使ってれば)DB設計、もしくはその全部が原因としか思えない。
472nobodyさん:2009/04/15(水) 19:27:39 ID:???
>>416
サーバをリプレイスしたレポートがありました。参考になるでしょうか?
http://gigazine.net/index.php?/news/comments/20070119_gigazine_new_server/
設定の最適化だけでもパフォーマンスは改善されるみたいですよ。
http://gigazine.net/index.php?/news/comments/20060701_loadavarage_battle/
はてなは300台くらいサーバを使ってるのかな?仮想化してリソースに無駄が出ないように工夫しているらしいです。
データベースがボトルネックなら、サーバ台数を増やしてクラスタリングするより、メモリを増やした方が効くそうです。
473nobodyさん:2009/04/15(水) 19:31:20 ID:???
そんな大量のデータを突っ込むほどメモリ使うのか?
>>416の作ってるアプリケーションの規模が見えない
474nobodyさん:2009/04/15(水) 19:46:25 ID:???
>>468
俺は高くても自由度が高くてなにかあった時に対応してくれるとこ借りるかな
proxおすすめ
475nobodyさん:2009/04/15(水) 21:12:51 ID:???
>>474
月額1万か……
476nobodyさん:2009/04/15(水) 23:25:32 ID:???
月額1万なら自前で用意したほうがいいわ
477nobodyさん:2009/04/15(水) 23:29:14 ID:4khjLUbv
header('Content-Disposition: attachment; filename="'.$file_name . '"');
で保存するファイル名を$file_nameにしようとしたのですが
この$file_nameに半角スペースが含まれると、それがアンダーバーに置換されてしまいます。
IE7とFirefox3で試したのですがIE7のみこの現象がおきます。
IE7でも半角スペースは半角スペースのままにできないでしょうか?
478nobodyさん:2009/04/15(水) 23:34:49 ID:???
>>477
PHPはサーバサイドで処理を行うので
同じ処理でブラウザによって挙動が変わるというのは
PHP側ではなくてブラウザ側に問題があると考えたほうがいい
479416:2009/04/16(木) 00:09:30 ID:CSR5Re1E
>>471
たぶん現状でもだいぶ早いと思います。
H/Wの変更が速度にどれぐらい影響あるかが質問の趣旨です
>>472
サンクス
>>473
かなり大規模な部類だと思います。
480nobodyさん:2009/04/16(木) 01:00:04 ID:???
>>477
User-Agentを見るなりしてIEの時だけrawurlencode()するのが一つの手

$name = "あいうえお かきくけこ.txt"; // UTF-8で
header(sprintf('Content-Disposition: attachment; filename="%s"', rawurlencode($file_name)));

>>479
こういう答えの出ないアンケート的な話題は雑談スレがお勧め
スピリチュアルカウンセラーが沸いてしょうがないしそろそろ打ち切ってくれないか
481nobodyさん:2009/04/16(木) 04:07:49 ID:???
IE7も十分に糞だったことにマイ糞ソフトの本気を感じた
IE8はましになると信じたい、まぁ実際結構ましっぽいけど
482nobodyさん:2009/04/16(木) 10:28:05 ID:???
どの辺りが?
483nobodyさん:2009/04/16(木) 10:45:47 ID:???
>>482
IE6、IE7よりはずっとW3C標準に準拠してるじゃん
逆に駄目だという根拠はどこにある?

>>482みたいな馬鹿がいるから対応がめんどくせーんだよ
484nobodyさん:2009/04/16(木) 11:00:19 ID:???
なんでそんな必死なん?
485nobodyさん:2009/04/16(木) 11:03:38 ID:???
×header関数がブラウザの挙動によって動作が変わるっておかしいよな
○headerの解釈がブラウザによって微妙に異なる
486nobodyさん:2009/04/16(木) 11:12:52 ID:???
Core鯖使ってるけどやめたほうがいい
鯖落ち半端ないし、重すぎる
487nobodyさん:2009/04/16(木) 11:13:07 ID:6tbBKPlQ
WebMessenger的なものを作ろうと思ったのですが、
新着メッセージがある場合にポップアップするのって、Ajaxで定期的に通信を行っているのでしょうか
それとも、オンラインゲームのような通信方法なのでしょうか

定期的な通信の場合、サーバーに負荷がかかると思ったので、オンラインゲームのような、サーバーからクライアントに情報を送信するような方法ってPHPでできませんか?
とか、あー何か色々書いてるうちに、Ajaxで定期的に通信したほうがいいかなと思ってしまったorz

この質問キャンセルするわ
488nobodyさん:2009/04/16(木) 11:16:38 ID:y04hknOT
<?php
class Customer {
 private $name;
 public setName($name) {
 $this->name = $name;
 }
}

$c1 = new Customer();
$c1->setName("kinosita");
?>

Parse error: parse error, expecting `T_VARIABLE' in C:\apache2\htdocs\test.php on line 4
というエラーが出てしまいます
原因個所がわかりません
どなたかご指摘お願い致します
489nobodyさん:2009/04/16(木) 11:17:23 ID:???
public function
490nobodyさん:2009/04/16(木) 11:17:42 ID:???
>>488
public function
491nobodyさん:2009/04/16(木) 11:28:45 ID:y04hknOT
ありがとうございます
functionが抜けてました

セットしたkinositaって名前を呼び出したいのですが
>>488の最後にecho $c1->name;と記入すると
Fatal error: Cannot access private property Customer::$name in C:\apache2\htdocs\test.php on line 11
と出ます
なので3行目のprivateをpublicにしたら表示されました

privateの変数を出力する場合はどうしたらよろしいでしょうか?
492nobodyさん:2009/04/16(木) 11:31:29 ID:???
セッターがあるならゲッター作ればいいじゃん
493nobodyさん:2009/04/16(木) 11:56:36 ID:pfNZqllC
クラスの解説サイトを探してるのですがPHP4のしか見つかりません
PHP5でクラスのサンプルコードついてる入門サイトを教えてください
494nobodyさん:2009/04/16(木) 12:07:23 ID:???
495nobodyさん:2009/04/16(木) 12:08:47 ID:???
>>492
セッターゲッターって初めて聞いた俺恥ずかしいwwwwwww
今までセット関数・ゲット関数って言ってたwww
496nobodyさん:2009/04/16(木) 14:54:55 ID:???
>>495
私もJavaでOOPを勉強する前はアクセサを使ってませんでした。^^

http://ja.wikipedia.org/wiki/%E3%83%A1%E3%82%BD%E3%83%83%E3%83%89_(%E8%A8%88%E7%AE%97%E6%A9%9F%E7%A7%91%E5%AD%A6)#.E3.82.A2.E3.82.AF.E3.82.BB.E3.82.B5
アクセサ (accessor) とは、メソッドの中で特にオブジェクトの属性やプロパティを取得するメソッド (getter) と設定するメソッド (setter) の対のこと。
基本的に getXXX, setXXX のように語幹部が揃っているものをいう。
497nobodyさん:2009/04/16(木) 14:56:42 ID:???
>>496
うん
俺もJavaやりはじめてsetXXXとgetXXX使い始めたけど(スクリプトの改造がメインで)
その言い方聞いたのは今日がはじめてだったわ
498nobodyさん:2009/04/16(木) 15:59:40 ID:???
下駄と雪駄か
499nobodyさん:2009/04/16(木) 20:09:37 ID:jPGJyauu
テンプレート書いてるんですが、
良くあるリンクメニューで

ページaaaの時
<li><strong>あああ</strong></li>
<li><a href="bbb">いいい</a></li>
<li><a href="ccc">ううう</a></li>

ページbbbの時
<li><a href="aaa">A</a></li>
<li><strong>いいい</strong></li>
<li><a href="ccc">ううう</a></li>

とりあえずこんな感じ
<li><?php if ($page == 'aaa') echo '<strong>あああ</strong>' else echo '<a href="aaa">あああ</a>'; ?></li>
<li><?php if ($page == 'bbb') echo '<strong>いいい</strong>' else echo <a href="bbb">いいい</a>'; ?></li>
<li><?php if ($page == 'ccc') echo '<strong>ううう</strong>'else echo '<a href="ccc">ううう</a>'; ?></li>

あああ、いいい、やhtmlは変わることがあるので、
テンプレートでデザイナが変更できるようにしたい。

こういうのは皆さんどうやって書いてますか?
500nobodyさん:2009/04/16(木) 21:00:43 ID:???
foreachで回してifで分岐
501nobodyさん:2009/04/16(木) 21:14:34 ID:???
$SITEURL = 'http://'.$_SERVER['SERVER_NAME'];
$strong = ' class="strong"';//class名
$page = $_GET['page'];//など
$page_link = $_GET['mode'];//など

$A = 'A';
$a = 'あああ';
$b = 'ううう';
$c = 'いいい';

$link = <<<_EOD_
<a href="{$SITEURL}/{$page_link}.html" title="{$page}.htmlへ移動">
_EOD_;

$link2 = <<<_EOD_
</a>
_EOD_;

つづく
502nobodyさん:2009/04/16(木) 21:15:26 ID:???
switch($page){

case aaa:
$aa = $strong;
$bb = $link;
$cc = $link;
$aaa = '';
$bbb = $link2
$ccc = $link2
break;

case aaa:
$aa = $link;
$bb = $strong;
$cc = $link;
$aaa = $link2;
$bbb = '';
$ccc = $link2;
break;

}

echo <<<_EOD_
<ul>
<li{$aa}>{$a}{$aaa}</li>
<li{$bb}>{$b}{$bbb}</li>
<li{$cc}>{$c}{$ccc}</li>
</ul>
_EOD_;

うちは趣味でしかしてないのでこの程度で十分
503nobodyさん:2009/04/16(木) 21:17:08 ID:???
きったねぇコードだな
んでメニューが9つになったら3倍書くわけですか
504nobodyさん:2009/04/16(木) 21:19:24 ID:krmlLaYN
配列作るときにarray()とか書かなくて済むようになるのっていつ?

拡張でできたっけ?
505nobodyさん:2009/04/16(木) 21:20:17 ID:???
その程度の手間を惜しんでないでロジックを最適化しろ
506nobodyさん:2009/04/16(木) 21:57:06 ID:XUzGmp6d
>>480
その方法で半角スペースの問題は解決しました。
しかし今度は長いファイル名のときにファイル名の先頭が文字化けに・・・orz
IEが糞なのを実感した。
507nobodyさん:2009/04/16(木) 22:08:00 ID:???
>>504
[a, b, c] で書けるようなパッチが上がったようだが、本家への取り込みは却下されたらしい。
508nobodyさん:2009/04/16(木) 22:37:59 ID:???
うざくなるだけだからいらない
509nobodyさん:2009/04/16(木) 23:11:38 ID:???
この話題だな
http://wiki.php.net/rfc/shortsyntaxforarrays
却下する理由がイミフだが、作ってる奴が反対するならしょうがねえ

>>506
ホストがWindowsかつ地域設定が日本の場合は
rawurlencodeせずにSJIS-winで出力することで文字数が稼げる
この辺は要求に合わせて選んでくれ
510nobodyさん:2009/04/17(金) 01:58:54 ID:???
ただでさえ言語汚いのに変な記号増やすべきじゃないってことだろ
やるならせめてJava,C#系にあわせて {"a", "b", "c"} じゃないか?
511nobodyさん:2009/04/17(金) 02:51:11 ID:???
JavaScriptは[]だろ
ちなみに{}はJavaScriptでは連想配列
だいたいJava C#で配列なんて使わないし
どうせならPHPがコレクション実装すればいい

ってここでほえても仕方ないんだが
512nobodyさん:2009/04/17(金) 10:09:01 ID:???
どうでもいいけどいつの間にかwindowsでcronできるようになったんだね
513nobodyさん:2009/04/17(金) 10:12:53 ID:???
はい?
514nobodyさん:2009/04/17(金) 11:06:06 ID:???
>>513
知らないならググレバ?
515nobodyさん:2009/04/17(金) 11:09:10 ID:???
今更何言ってんの?
516nobodyさん:2009/04/17(金) 11:21:27 ID:???
>>512
かなり昔からタスクスケジューラという名前で存在してるんだが・・・。
517nobodyさん:2009/04/17(金) 14:05:09 ID:???
>>516
ごめんそれはcronじゃなくてタスクスケジューラだ
cron知らないの?バカなの?
518nobodyさん:2009/04/17(金) 14:12:53 ID:???
>>517
クロノだよ。
知らないの?馬鹿なの?
519nobodyさん:2009/04/17(金) 14:26:53 ID:rayC69Kt
変数について教えてほしいのだが、
例えば、パラメータ$_POST['hoge']やセッション変数$_SESSION['hoge']
というのが、特に代入なしに
$hoge
で取れてしまい、そういうものだと思っていたら、あるとき、
それでは取得できなくなったりし、この辺の仕様ってどうなっている?

結局怪しいので、全部きちんと$_POSTなどで取るようにしたが。
520nobodyさん:2009/04/17(金) 14:27:49 ID:???
register_globals
521nobodyさん:2009/04/17(金) 14:28:33 ID:???
>>519
それ昔の仕様
今でもiniで設定できたはずだけどやめたほうがいい

$_POST、$_GET、$_SESSIONで取得するのが一般的
522519:2009/04/17(金) 15:07:59 ID:???
>>520, 521
サンキュー。
そういうことか。
523nobodyさん:2009/04/17(金) 15:09:52 ID:???
昔の仕様すごいよなあ。querystringから内部の変数書き換えまくり
524nobodyさん:2009/04/17(金) 17:12:12 ID:uEgfagTh
PHPとMySQLを使うシステムで、公開用サイトの全ページに

1:MySQL上のconfigテーブルを読み込む
2:configに設定してある内容によって処理を分岐
3:ログを書き込む

という処理が発生します。
1アクセスで何回かのSQLを実行することになるのですが、
サイトのアクセスが増えると、処理の負荷などで後々問題になるでしょうか?
現時点では問題ないのですが、先の事を考える時になります。
525nobodyさん:2009/04/17(金) 17:15:52 ID:???
>>524
いちどキャッシュとして書き出しておけばいいんじゃない?
526nobodyさん:2009/04/17(金) 17:25:30 ID:???
>>524
configテーブルが満たす仕様による。
高度な検索性を必要とするconfigテーブルでないのなら、そんな設計はやめた方がいい。
527nobodyさん:2009/04/17(金) 19:34:25 ID:hTOqIwMv
HPでヘッダやフッター、ナビボタン、背景、レイアウトは同じで 
例えば写真だけ違うの見せたい場合ってPHPが役立つのですか?
528nobodyさん:2009/04/17(金) 19:35:39 ID:???
HTMLコピペして画像のファイル名だけ編集してUPすればよくね
529nobodyさん:2009/04/17(金) 19:36:03 ID:???
すきなの選べ

・DWのテンプレ機能
・PHP
・Java
・Perl
・Ruby
・JavaScript
530nobodyさん:2009/04/17(金) 19:59:08 ID:???
おいおい、SSIが入ってないぞ
531nobodyさん:2009/04/17(金) 21:19:55 ID:???
3.0になったPythonもお忘れなく☆
532nobodyさん:2009/04/17(金) 21:23:35 ID:???
ちょっとちょっとFlashが入ってないよ
533524:2009/04/17(金) 21:58:50 ID:uEgfagTh
>>525
それも考えたのですが、ファイルに書き出すなら
データベースの利便性が失われる気がして悩んでます。。
セキュリティとかも気になるし。

>>526
高度な検索は必要ありません。テーブルからconfigファイルを読み込み
配列に入れて、各条件(ログインなど)の時に参照すると言った仕様です。
534nobodyさん:2009/04/17(金) 22:04:21 ID:3OZ9UJNj
if (!$fp = fopen('...', "r")) { ... }の
(!($fpではなくて
!$fpみたいなコーディングスタイル使ってる?
535nobodyさん:2009/04/17(金) 22:05:41 ID:???
うん
536nobodyさん:2009/04/17(金) 22:08:53 ID:???
>533
iniとかXMLとかJSONとか、なんでもいいから好きなファイルフォーマットで書き出しておけ。
もしくは単純にPHPコードに配列として書き込む(当然設定だけ別ファイルに隔離)のもアリ。
(本当はあまりよくないのだが、APCなどのキャッシュが効くようになるという大きなメリットがある)

とりあえず、「データベースの利便性」ってなんだ?
上記のような手段ではなく、わざわざ遅く難しいDBに情報を格納している理由は?
537nobodyさん:2009/04/17(金) 22:16:19 ID:???
>>533
データベースの接続に必要な情報はファイルの方に書き込まないといけないじゃん
その情報を知ってしまえば、わざわざデータベースに突っ込んでも無意味じゃん

それに設定項目が分散しちゃうと、後でめんどくさくなるだけじゃん
538nobodyさん:2009/04/18(土) 01:11:57 ID:???
>>533
そもそも>>524のキャッシュとして書き出しって意味がわからんな。
一度取ってきたらメモリにキャッシュすればいい。
クラス変数にいれるか、インスタンス変数にいれてsingletonにする。
539nobodyさん:2009/04/18(土) 01:39:24 ID:???
クッキーって期限がありますよね
ということは、切れたとき使えないときの為のコードも要りますよね?
クライアントが便利になるよという機能であって何かの代わりになるものではないですよね?
例えば、購入履歴とかはログを残しといてアカウントで参照できるようじゃないと
クッキーが有効であっても期限がありますから
ちがうん?

540nobodyさん:2009/04/18(土) 01:58:11 ID:???
あってる。
クッキーは記録を残すための物じゃない。
ログイン状態の保持(セッションキーの保持)専用だと考えていいよ。PHPでは他の用途にはあんまり使わない。

消えたら困るものはクッキーに保存してはいけない。
何かを保存するとしても、掲示板の名前欄みたいな、消えてもいいものだけにしとけ。
541nobodyさん:2009/04/18(土) 02:14:41 ID:???
すっきりしますた。ありがたや。
542nobodyさん:2009/04/18(土) 02:14:48 ID:dAOHt7Vp
厳密にはphp関連の質問にはならないかもしれないんですが

index.php?i=1や
index.php?i=2といった変数付記でのページURLを、

home.html
news.html
というURLでも呼び出すことができるようにするhtaccess(か何か)の
記述方法があったはずなのですが思い出せません。

home.htmlやnews.htmlはファイルが実際存在するのではなくて、
URLっぽくする(というか、覚えてもらいやすくする)ための便宜ファイル名です。

例えば、ユーザー側――ブラウザ上のURLは「http://www.hoge.com/news.html」となりますが、
実際に呼び出しているファイルはサーバー側ではindex.php?page=1である、といった感じです。

断片的な情報しかなく稚拙な説明で申し訳ございませんが、どうかご教授下さい。
543nobodyさん:2009/04/18(土) 02:17:52 ID:???
544nobodyさん:2009/04/18(土) 04:57:19 ID:???
>>542
mod_rewrite
545524:2009/04/18(土) 11:10:50 ID:RfYbPRbr
返信が遅れてすみません。

>>536
DBを使ってない場合は、dat形式にしてファイルに書き出していました。
昔の、CGIの掲示板などを作る時のやり方です。

>とりあえず、「データベースの利便性」ってなんだ?
セットアップの仕組みを作っているのですが、DBで管理する方が
編集しやすいのです。ファイル編集でも出来ますが、手間がかかるし。
それに、有名なオープンソースシステムをみても、だいたいconfigは
DB上で管理しているので、同じようにしたいと思っています。

>>537
データベースに接続する情報はもちろんファイルに書きます。config.phpなどに。
そうじゃなくて、サイト毎の設定ってありますよね?(例えばdate形式とか)
そういう諸々の設定を管理するのにDBを使っています。

>>538
Smartyのキャッシュファイルのイメージで回答しました。
メモリキャッシュしても、ページ推移してたらもう一度読み込む必要がありますよね?
セッションやクッキーを使っても良いのですが、サイト自体の設定を
第三者のファイルにキャッシュするのは問題あると思います。
(認識が違っていたらすみません。もっと勉強します
546nobodyさん:2009/04/18(土) 11:22:48 ID:???
どの程度効果が出てるかまでは測ってないんでアレだけど、自分はDBの内容から、
実行時に扱いやすいデータに変換したXMLを出力して、こっちを読み込ませてる。
一次データの管理はDBの方が安全だしね。

serializeの方がいいかなぁとも思ったが、なんかあった時にデバッグしにくそうなんで止めた。
後からでも変更できる話だし。

547nobodyさん:2009/04/18(土) 11:49:03 ID:oOFMY9IY
cakephpを使おうと思ってcakephpのチュートアルに沿ってブックマークアプリを作ってたのですが
何故こういう書き方にするのか、何故こう書いたらこういう風に出力されるのか、といったことがまったく理解できません
フレームワークを始める前にOOPの勉強をした方がよろしいでしょうか?
また、学習の順番としてはクラスの書き方を覚えてからOOPに移行したらいいでしょうか?
548nobodyさん:2009/04/18(土) 11:49:56 ID:???
まず公式マニュアルの言語リファレンスを読んだ方がいいよ
549nobodyさん:2009/04/18(土) 13:08:50 ID:???
fsockOpenを使ったメール受信で、複数の添付ファイルがある場合複数ファイルを保存するにはどうすればいいのでしょう。
550nobodyさん:2009/04/18(土) 13:10:05 ID:xPyKg5dr
さげちゃった。
551nobodyさん:2009/04/18(土) 13:31:21 ID:B6cKaOUW
クラスとか全然理解できない
ユーザ定義関数じゃだめなん??
どういったときにクラスで書くとか
感覚が掴めない
こういうときに必要なんだぜって
やさしく教えてつかあさい;;
552nobodyさん:2009/04/18(土) 13:39:18 ID:???
クラスなんて使わない。
関数も自分でつくらない。必要があれば使えばいいし使わないでもいいなら使わないでもいい。
無理に使う意味なんてないでしょ。

553nobodyさん:2009/04/18(土) 13:50:08 ID:???
クラスってのはオブジェクト指向設計を実装するために使うものだぞ?
554nobodyさん:2009/04/18(土) 13:59:47 ID:moRQGLP/
関数内でincludeされたクラスや関数のスコープはグローバルとなる、というルールはPHP6以降でも変更されることはないの?
555nobodyさん:2009/04/18(土) 14:06:59 ID:B6cKaOUW
>>552
そう割り切っちゃえば話は簡単なんだが、理解が出来ないってのがつらい;;

>>553
だから、そいつをやさしく教えてくれ;;
そのオブジェクト指向ってのがよくわからんのだ><
556nobodyさん:2009/04/18(土) 14:12:11 ID:???
>>552
たぶんこいつはスパゲッティコード
557nobodyさん:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
558nobodyさん:2009/04/18(土) 14:40:42 ID:???
557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ

557 名前:nobodyさん[sage] 投稿日:2009/04/18(土) 14:14:54 ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
559nobodyさん:2009/04/18(土) 15:54:05 ID:???
>551
・自分の書いたコードを晒して、ヒマな人に添削してもらう
・腕のいい奴の書いたコードを読む
前者のほうが力になりやすいかね。
屑コードを、クラスを使った近代的なコードに書き直していく過程を見るのが一番わかり易い。
そこらで公開されているPHPのコードはゴミと芸術品の両極端が多いから、初級→中級の勉強には微妙。

そこのステップは知識云々じゃなく、考え方の転換を迫られるから、引っかかる奴が多いのは事実。
>557みたいに諦めちゃう人も多いけど、身に着ければ強力で便利なツール。
560nobodyさん:2009/04/18(土) 15:59:44 ID:???
>>549
受信に使っているプロトコルの仕様にならって実装する



OOPについて勉強したい的な話題はこちらでどうぞ
http://pc11.2ch.net/test/read.cgi/php/1172205352/
561nobodyさん:2009/04/18(土) 16:01:28 ID:???
>>551
まぁ、なんかWebアプリとかを作成していく中で、
誰かが作成したライブラリだとかPEARだとかを使うことになったとして
そのライブラリがただのユーザ定義関数だけで書かれていて、設定用に
大量のグローバル変数を有していたら、困ったことにならない?

それだけでも、機能の集合がクラスになっているということに意味はあると思うけど。
562nobodyさん:2009/04/18(土) 17:09:46 ID:???
>>555
どの辺まで理解できて無いかによってはスレ全部埋めることになるが・・・ム板行ったら?

とりあえず全部自分ひとりで趣味レベルのモノ組むのであればオブジェクト指向にこだわる理由は無い。
どーしても理解したいって言うなら、近道は無いとだけ言っておく。
563nobodyさん:2009/04/18(土) 17:49:55 ID:zbLkqu9f
mysqlからデータを引っ張りだし表示させたいのですが
20090418162123をいう文字列を(int)を用いてキャストした場合に
なぜか同じ数字ではなく2147483647という数字に変換されてしまいます。
これはどういった問題が考えられるでしょうか?
すいませんがアドバイスよろしくお願いします。
564nobodyさん:2009/04/18(土) 18:04:18 ID:moRQGLP/
10桁こえとる
565nobodyさん:2009/04/18(土) 18:09:53 ID:???
DATETIMEのままでいいだろ
566nobodyさん:2009/04/18(土) 18:10:35 ID:???
(long)
567nobodyさん:2009/04/18(土) 18:13:15 ID:moRQGLP/
しかしPHP5からクラスに変数(メンバ)保存できるようになったのでもっぱらstaticで使いまくって
インスタンス全然つかわんようになったよ。せいぜいmysqliのインスタンス作るぐらい。
staticの方が3倍速いからね
みんなはどうなの?
568nobodyさん:2009/04/18(土) 18:19:54 ID:???
そんなに速さ追求するならなぜPHP使ってるの? ってつっこまれるぞ
569nobodyさん:2009/04/18(土) 18:26:13 ID:???
staticしか使わないなら関数と大して変わらないじゃん
570nobodyさん:2009/04/18(土) 18:31:48 ID:???
>>547
cakeはOOP必須ですよ
571nobodyさん:2009/04/18(土) 18:33:22 ID:???
>>570
漢は手続き。

ちょっと言ってみたかっただけだけど。
572nobodyさん:2009/04/18(土) 18:33:40 ID:???
OOPはわかってもMVCの概念を理解するのはむずかしい
それを分離して補ってくれるのがフレームワーク
OOPOOP言うのは面倒だからまとめてJavaのサイトで勉強してきなさい
573nobodyさん:2009/04/18(土) 18:34:42 ID:???
PHPを書くのに使うIDEってーと、何がお勧めですか?
コードス補完があると便利なんですが
574nobodyさん:2009/04/18(土) 18:55:58 ID:moRQGLP/
>>568
普及率が高いから。jspやaspは搭載してないレンタルホストがほとんどだしね。

>>569
カプセル化だけほしいんだよね。変数の扱いが楽だから。漢は手続きと言ってみたいけど、へっぽこなので変数汚染しまくり。
575nobodyさん:2009/04/18(土) 18:57:28 ID:???
576nobodyさん:2009/04/18(土) 19:03:47 ID:???
>>573
初心者のうちはPHPエディタ。
中級以上はPDT
577nobodyさん:2009/04/18(土) 19:36:21 ID:???
フレームワークの提供するMVC構造は型志向プログラミングの考え方からはそれなりに遠い地点にあるプログラミング構造だぞ。
例えばCakeやRailsなどのフレームワークはTableModuleパターンを押し付けてくるが、ストラウストラップのOOPの考え方に一番近いのはドメイン駆動型の設計。
で、フレームワーク上でドメイン駆動設計を実現しようとすると、クラス階層を1枚上に丸ごと被せざるを得ない、というくらい両者は相性が悪い。
(基盤となるM-V-C間の繋ぎこみ自体はポリモーフィックに行なわれている事が多いので、無関係でもないが)

まあ、その「押し付け」のおかげでscaffoldingなどの高い開発効率を確保できるわけで、悪いとは言わないけどな。
少なくとも、MVC構造を理解する事と、OOPの考え方を理解する事は、別の問題と考えるべき。
実際、GoFをひとつも理解してなくともRailsやCakeで生産性は出るし、OOPを突きつめると必然的にRailsやCakeの設計に行き着く、というわけでもない。
578nobodyさん:2009/04/18(土) 20:16:51 ID:???
>>573
E-TextEditor  ttp://www.e-texteditor.com/
EmEditor v9  ttp://jp.emeditor.com/
TextMate  ttp://macromates.com/
Redcar  ttp://redcareditor.com/
jEdit  ttp://www.jedit.org/
579563:2009/04/18(土) 23:12:47 ID:???
>>564
>>565
>>566
返事が遅くなりすいません。
単純にint型の最大値を超えてた訳ですね。
本当にありがとうございました!
580nobodyさん:2009/04/19(日) 00:13:57 ID:KO8gMtKF
【OS名】Win32
【PHPのバージョン】5.2.9-2
【質問内容】
配列の任意の要素を削除する方法はありますか?
先頭や末尾の削除は簡単にできますが、任意の要素の削除ができません。

一応削除したい要素より後ろの要素を一つずつ前に詰めていく方法もありますが、一発でできるような方法があれば教えてください。
581nobodyさん:2009/04/19(日) 00:32:27 ID:???
582nobodyさん:2009/04/19(日) 01:12:04 ID:KO8gMtKF
>>581
解決しました
ありがとうございます
583nobodyさん:2009/04/19(日) 11:36:28 ID:???
>>577
日本語わかる?
584nobodyさん:2009/04/19(日) 12:09:11 ID:???
プログラムは、「データ」と、データを扱う「処理」の2つの構成要素から成る。(チューリングマシン)
オブジェクトは、データに処理がくっついたもの。
言ってしまえばそれだけのことでしかない。
OOPを難しく考える必要はないよ。
585nobodyさん:2009/04/19(日) 12:21:06 ID:???
OOPを勉強するためにJavaを勉強するのも良いけど、
ラムダ計算、関数型プログラミングに慣れておくために、LISPも勉強しておくと良いと思います。
586nobodyさん:2009/04/19(日) 12:47:14 ID:???
>>584
オブジェクト指向設計が重要なんだろ
単なるギミックじゃないぞ
587nobodyさん:2009/04/19(日) 13:10:40 ID:???
>>584 の言い方はどうかと思うが、OOPで出来ることを、単なるギミックとして使うのもアリだとは思う。
いわゆる Stateパターンとか OOD的にはかなりビミョーと言う認識。
588nobodyさん:2009/04/19(日) 13:15:49 ID:TOquu1lD
会員(ログイン)ページの中の申し込みフォームを
入力画面→確認→投稿という形で作ってまして
作成手順は入力画面でポストされたものをセッションに代入、
値を保持しながら確認→投稿という形で作成しました。
申し込みフォーム自体は問題がないのですが、
例えば、入力画面から確認に行き、そこから投稿せず会社概要など
他のページに移動して再度入力画面にいくと以前入力された値が
表示されてしまいます。おそらくセッションが残ったままに
なってるのが原因だとは思います。
入力画面←→確認←→投稿は値を保持させ他のページに飛んだ場合は
値を消去するやり方を教えていただけませんか?
アドバイスよろしくお願いします。
589nobodyさん:2009/04/19(日) 13:33:28 ID:???
>>588
unset($_SESSION['hoge'])すればいいんじゃ?
590588:2009/04/19(日) 13:44:00 ID:???
>>589
返信ありがとうございます!
入力画面、確認画面、投稿画面以外の全てのページに
unset($_SESSION['hoge'])を設定しとこうかなとも考えましたが、
もしかしたら違うスマートやり方もあるのかなと思い質問してみました。
591nobodyさん:2009/04/19(日) 13:46:19 ID:???
hiddenでいいやん。
592nobodyさん:2009/04/19(日) 14:16:20 ID:???
>>577

そうだよな。CakePHPの例で言っても、所謂OOP的な書き方って、Model, Controllerのextendsくらいだもんな。
基本、コンストラクタは省略されてるし、セッター、ゲッターなしにいきなりプロパティ変数に設定値を代入でOKとか。

あと、命名規則とか記述に縛りが多いのも独特。
593588:2009/04/19(日) 15:05:06 ID:???
>>591
返信ありがとうございます。
hiddenも検討したんですが今回は項目が多く
入力←確認、確認→投稿時に全ての値をセットしないと
いけなくなりますので出来ればセッションでいけたらと思います。
変な質問すいません・・
594nobodyさん:2009/04/19(日) 15:08:27 ID:???
そのページにどこから来たかでわければ?
595nobodyさん:2009/04/19(日) 15:18:01 ID:???
初々しいな
596nobodyさん:2009/04/19(日) 16:04:10 ID:???
1. 入力フィールドが多数ある時は、そいつらを扱うクラスや関数を作っておくと楽。
複数の画面から同じフォームを生成する場合などは、使い回しが効くと非常にラクになる。

2. hiddenは別に面倒じゃない。確認画面は
foreach($_POST as $k => $v) echo "<input type=\"hidden\" name=\"$k\" value=\"$v\">";
でじゅうぶんだろ?(XSSを考え、実際はエスケープする事)。
597nobodyさん:2009/04/19(日) 17:04:22 ID:???
>>547
まずCAKE使うだけならOOPの勉強しなくても、まぁ使える。
さらにCAKE使ってるとOOPに触れざる得ないから多少慣れるのもいい事かも。

で、クラスの書き方と使い方ぐらい入門系の情報でやっておくとある程度身に付いてくるよ。
598nobodyさん:2009/04/19(日) 18:56:04 ID:???
>>593
まぁ好きにすれば良いんだけど、自分だったらそのセッションの内容をXMLに変換して、
これをhidden に持たせて、サーバ側ではsimplexml_load_stringでパースする。
599nobodyさん:2009/04/19(日) 19:09:23 ID:???
どのみちCSRF防ぐためにワンタイムトークンとかHMAC仕込むときhidden使うしね
あんま意味ないけどhiddenはbase64_encode(serialize())とかすれば一個ですむよ

とこでいくつかのWebアプリでは、プレビューには投稿画面に入力データのリストを追加しただけのものを表示するね
確認画面というフェーズを新たに作るより省力化になっていいと思う。確認画面から投稿画面にもどって、、、という作業もいらないし
600nobodyさん:2009/04/19(日) 22:41:24 ID:???
> あんま意味ないけどhiddenはbase64_encode(serialize())とかすれば一個ですむよ
ここだけケチをつけて済まないが
クライアントに渡すデータは他のフォーマットにしとけ
unserialize()時にコードインジェクションが起きる
601599:2009/04/19(日) 23:09:38 ID:???
>>600
こりゃ失敬w
改ざん検知してないと__wakeup()されたりしちゃうね
602nobodyさん:2009/04/19(日) 23:14:21 ID:cHMoaxlc
C++でPHPってかけますか?
603nobodyさん:2009/04/19(日) 23:14:45 ID:???
はぁ?
604nobodyさん:2009/04/19(日) 23:17:02 ID:???
一部C++で書かれてるし、エクステも一応書けるはず。
605nobodyさん:2009/04/19(日) 23:24:48 ID:???
エクステンションとして利用するならCでもC++でも.netでもdelなんちゃらでもいける
606nobodyさん:2009/04/20(月) 15:46:47 ID:yRu17DN3
$ary[1]= "blue";
$ary[2]= "red";
$ary[3]= "yellow";
$ary[4]= "white";

上記のような配列があって、
一番大きい数字のキー(上記なら4)を取得したいのですが、
$aryをforeachで繰り返してキーを取得するより何かスマートな方法はありませんか?
607nobodyさん:2009/04/20(月) 15:54:14 ID:???
count($ary)
608nobodyさん:2009/04/20(月) 15:54:32 ID:???
>>606
その数値の定義のルールは?
1番目から1、2・・・5ってつけるなら
count($ary)でいけるんじゃね?
キーに文字列とか、飛ばし飛ばしの数値とかだったらループさせないといけないはず

キーソートあったと思うけど、個人的には何か使いたくないな
というか、使う機会がないな
609nobodyさん:2009/04/20(月) 15:56:10 ID:???
arsort($ary,SORT_NUMERIC);
foreach($ary as $value){
$abc[] = $value;
}
$abc[0];

こうするのがいやってことね。
610nobodyさん:2009/04/20(月) 16:03:13 ID:???
>>606
つ $ary[max(array_keys($ary))];
611nobodyさん:2009/04/20(月) 16:04:04 ID:yRu17DN3
>>607
>>608
ほんとだ、こんな方法が・・・。
自分の頭の固さを痛感しました。

>>609
ですね。でもシンプルなのが書けそうです。

ありがとうございました!
612nobodyさん:2009/04/20(月) 16:15:13 ID:yRu17DN3
>>610
結果は同じでも、命令としてはこっちのが命令の意図に近いですね。
どっち使うかちょっと考えてみます。
ありがとうございます!
613nobodyさん:2009/04/20(月) 16:20:28 ID:???
単に最終要素を得たいなら
http://jp.php.net/manual/ja/function.end.php
で済むけど。
614nobodyさん:2009/04/20(月) 16:54:04 ID:yRu17DN3
>>613
そんな便利なものが。
今回は取得したキー値を使い回すコード書いてるので、
endは使えませんが今後参考にさせてもらいます。
ありがとうございます!
615nobodyさん:2009/04/20(月) 18:29:43 ID:???
>>614
意味を取り違えてるかも知れんが、キー値も必要ということなら、
http://jp.php.net/manual/ja/function.key.php で取得できる。
616nobodyさん:2009/04/20(月) 19:03:29 ID:???
>>615
uzee
617nobodyさん:2009/04/20(月) 19:12:07 ID:9zjWZumm
abc
cba
acb

上記の内容のテキストファイルの"cba"の行を削除する場合、どのようなコードを書けばよいのでしょうか?
618nobodyさん:2009/04/20(月) 19:18:18 ID:???
$str = str_replace("cba\n", '', $str);
619nobodyさん:2009/04/20(月) 19:32:18 ID:???
>>617
ループしてその文字列がcbaなら消せばいいんじゃね?
620nobodyさん:2009/04/20(月) 19:39:36 ID:9zjWZumm
>>618,>>619
ありがとうございます。

それと、そもそもファイルの内容を行ごとに配列に格納するのはfreadでも可能でしょうか?
file関数だとロックができないようなんですが…
621nobodyさん:2009/04/20(月) 19:48:57 ID:???
http://jp2.php.net/manual/ja/ref.strings.php
$buff = fread($fp, 4096);
$lines = explode("\n", $buff);

とか
622nobodyさん:2009/04/20(月) 20:11:16 ID:???
>>621
通報しました
623nobodyさん:2009/04/20(月) 20:26:21 ID:???
>>620
$rows = file('hoge.txt');
624nobodyさん:2009/04/20(月) 20:29:36 ID:???
ごめん読んでなかった
明示的にロックしたいならやっぱflockで
freadはデフォルトでは行末まで読み込みでしょ
625nobodyさん:2009/04/20(月) 20:31:09 ID:???
ありゃごめん、phpのfreadは違うのか
626nobodyさん:2009/04/20(月) 20:47:02 ID:???
グダグダだなw
627617:2009/04/20(月) 21:17:31 ID:9zjWZumm
皆さんありがとうございます。

何度も申し訳ないのですが、書き込みを参考にして以下のようなコードを書き、
実行したところ、出来上がったファイルはなぜか最終行がかぶってしまいます。
どこかおかしなところがあれば指摘していただけないでしょうか?
ファイルの内容は>>617と同じ状態です。

$filename = "test.txt";
$delword = "cba";
$handle = fopen($filename,"r+");
flock($handle,LOCK_EX);
$contents = fread($handle,filesize($filename));
$lines = explode("\n",$contents);
$del = array_search($delword,$lines);
unset($lines[$del]);
$line = join("\n",$lines);
rewind($handle);
fwrite($handle,$line);
flock($handle,LOCK_UN);
fclose($handle);
628nobodyさん:2009/04/20(月) 21:19:29 ID:???
かぶるって何?
629nobodyさん:2009/04/20(月) 21:20:03 ID:???
>>628
俺もそれ書き込もうとしたけどめんどくさくなってやめたwwww
630628:2009/04/20(月) 21:21:44 ID:???
まぁそりゃ
abc
acb

abc
cba
acb
の先頭から書き込んでるんだから重複するだろう
631nobodyさん:2009/04/20(月) 21:22:19 ID:9zjWZumm
>>628
>>629
分かりにくくてすいません。

abc
acb
acb
このようなファイルが出来てしまいました…
632nobodyさん:2009/04/20(月) 21:32:10 ID:9zjWZumm
>>629
一度ロックを解除して新規に作成するしかないんでしょうか…
できればロック内ですべて行いたいのですが…
633nobodyさん:2009/04/20(月) 21:34:06 ID:???
PDO_SQLITEでいいじゃないもう。
634nobodyさん:2009/04/20(月) 21:44:46 ID:???
一時的に適当な名前にリネームしちゃえば?
635nobodyさん:2009/04/20(月) 22:34:03 ID:???
>>627
fopenについてマニュアル呼んで来い
rとかwとかaとかbとか何を指定したらいいのか根本的にわかってなさ杉
636617:2009/04/20(月) 23:01:16 ID:9zjWZumm
もうあきらめてリネームすることにします。

>>635
私が>>632で書いたようにwで新規に作るしかないってことじゃないんですか…?
637nobodyさん:2009/04/21(火) 00:07:36 ID:???
普通にやれよw
638nobodyさん:2009/04/21(火) 00:54:05 ID:HHvQ3yZ0
終わった・・・
今まで、MySQL(サンの傘下)で開発していたシステムが全て水の泡だ・・・

【速報】オラクルがサンを買収
http://headlines.yahoo.co.jp/hl?a=20090420-00000004-zdn_ait-sci
639nobodyさん:2009/04/21(火) 01:05:36 ID:???
いや別に何も終らんだろ。
エンタープライズ方面への昇格は絶望的になったが。
640nobodyさん:2009/04/21(火) 01:49:26 ID:???
前のデータを残したまま上書きしてるのが問題
書き込む前にftruncate($fp, 0);とかしてファイルをクリアしてから書き込めばいい
書き出しが完了する前にプロセスが落ちるとファイルが壊れるので、renameの()方が安全とは思う
しかしちょっとしたテキストなら `sed -e '/cba/d' test.txt`; でいいような木がする
641nobodyさん:2009/04/21(火) 13:14:45 ID:aCugoNL+
$a=1;$b=1;$c=1;$d=1と$ary=array(1,1,1,1)はどちらが鯖に負荷がかかりませんか?
変数の数と値についてはサンプルのため簡略化しましたがどちらも一定ではないと捉えてください
642nobodyさん:2009/04/21(火) 13:19:13 ID:???
どっちでも変わらん
643nobodyさん:2009/04/21(火) 14:10:04 ID:???
【OS名】WindowsVista
【PHPのバージョン】php5.26
【質問内容】
正規表現でhogeをfooに変換したいのですが、どう書けばよいでしょうか?
それだけだと簡単ですが、<a>タグで囲まれてる中は変換したくないのです
例:
hoge<a href="http://www.hoge.com/">hoge</a>hoge
という文字列があったとして、これを
foo<a href="http://www.hoge.com/">hoge</a>foo
に変換したいです
使用するのはpreg_replaceでお願いします
644643:2009/04/21(火) 14:13:13 ID:???
ttp://www.rider-n.sakura.ne.jp/regexp/regexp.php
ここで色々試してるのですが、どうにもうまく動きません
どうかご教授おねがいします
645nobodyさん:2009/04/21(火) 14:53:31 ID:???
5.26というバージョンはないんだぜ
646643:2009/04/21(火) 14:58:44 ID:???
ミスでした
【PHPのバージョン】PHP Version 5.2.6
でお願いします
647nobodyさん:2009/04/21(火) 14:59:50 ID:???
おk
今調べてやるからちょっと待ってろ
648643:2009/04/21(火) 15:00:35 ID:???
>>647
お願いします
649nobodyさん:2009/04/21(火) 15:06:10 ID:???
>>644リンク先のようなサイトあるのか
おれもつくろかな^^
650nobodyさん:2009/04/21(火) 15:11:53 ID:???
一番はじめに回答できた方は下スレ公式認定回答者に認定します
651nobodyさん:2009/04/21(火) 15:21:52 ID:???
例で使うドメインはexample.comにしろってテンプレ書いてあるじゃんよく読めよ
652nobodyさん:2009/04/21(火) 15:23:55 ID:???
答えられない野郎がいきがるんじゃねえぞ!!!!!!!
653nobodyさん:2009/04/21(火) 15:28:23 ID:???
^hoge|(?!<[^>]*>)hoge(?!<[^>]*>)

パターンがよくわからん、こういう感じ?
654643:2009/04/21(火) 15:31:19 ID:???
>>651
いえ、hrefの中身にもhogeがあった場合、
そこも無視してほしいのです
655nobodyさん:2009/04/21(火) 15:34:57 ID:???
>>651
回答も添えられないだけのただの煽り厨(笑)
656643:2009/04/21(火) 15:37:10 ID:???
>>653
入力例はただの例で、下記のような場合も考えられます

hogeAhogeAhoge<a href="hoge">hogeBhogeBhoge</a>hogeChogeChoge
<a href="hoge">hogeBhogeBhoge</a>hogeChogeChoge<a href="hoge">hogeBhogeBhoge</a>

↑の場合は↓のようになってほしい

fooAfooAfoo<a href="hoge">hogeBhogeBhoge</a>fooCfooCfoo
<a href="hoge">hogeBhogeBhoge</a>fooCfooCfoo<a href="hoge">hogeBhogeBhoge</a>

やりたいことはあくまで【aタグで囲まれてれいる以外のhogeをfooに変える】なのです
657nobodyさん:2009/04/21(火) 15:39:50 ID:???
一度Aタグで囲まれている部分を別のものに置き換えてからやってみれば?
658nobodyさん:2009/04/21(火) 15:39:52 ID:???
そこまで執念深くhogeを置換したい理由は?
なんかされたの?
659nobodyさん:2009/04/21(火) 15:41:48 ID:???
自分の力では解決できなくなると理由を捻じ曲げようとする低レベルのおじさん乙wwww
660nobodyさん:2009/04/21(火) 15:42:52 ID:???
658じゃないが、一応何のために置き換えるか聞いておくと
別のやり方が見つかるかもしれんのじゃないかな?

まぁ658の聞き方はちょっと良くないかもしれんが・・・
661nobodyさん:2009/04/21(火) 15:43:32 ID:???
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
662nobodyさん:2009/04/21(火) 15:48:27 ID:???
変換しない条件をすべて書き出してそれ以外のhogeを置換、だろ
663nobodyさん:2009/04/21(火) 15:49:15 ID:???
まだできんのかよおまいら。。。
preg_replaceとstr_replace組み合わせるだけだろ
664nobodyさん:2009/04/21(火) 15:50:37 ID:???
こんなの今時の小学生でも書けるのにおまいらときたら。。。
665643:2009/04/21(火) 15:59:30 ID:???
あれ、何故か書き込めない
666643:2009/04/21(火) 15:59:48 ID:???
>>658
>>660
本当にやりたいことは、
与えられた文字列の中のURLとメールアドレスと電話番号を
自動的にリンクに置換する関数を作るというものです
(それぞれ<a href="">と<a href="mailto:">と<a href="tel:">に)
667nobodyさん:2009/04/21(火) 16:00:20 ID:???
名簿業者乙
668643:2009/04/21(火) 16:01:03 ID:???
URLとメールアドレスの置換はできたのですが、
電話番号の置換で意図しない動きをしたので、困ったのです
というのも
[email protected]
という文字列が与えられた場合

メールアドレス置換
<a href="mailto:[email protected]">[email protected]</a>

電話番号置換
<a href="mailto:<a href="tel:0909999999">0909999999</a>@xxxx.ne.jp"><a href="tel:0909999999">0909999999</a>@xxxx.ne.jp</a>

という惨事になってしまうからです
http://www.hoge.com/0909999999/
の場合も同様の現象が起こります

ですので、URLとメールアドレスの変換を行った部分については無視し、
電話番号のリンクだけを作りたいと、そう思って質問した次第です
669643:2009/04/21(火) 16:02:38 ID:???
>>657
それが私のスキルでは一番早そうですね
一度それで組んでみます
ありがとうございます

>>667
名簿業者じゃないです
携帯サイトを作っていて
ユーザーの書き込みを自動リンクさせたいだけなのです・・・
670nobodyさん:2009/04/21(火) 16:10:14 ID:???
>>647はまだ答えられません(笑)
671nobodyさん:2009/04/21(火) 16:11:01 ID:???
>>670
先ほど煽られたお方ですね、わかります
672nobodyさん:2009/04/21(火) 16:14:23 ID:???
先に電話番号を置換すればいいんじゃね?
基本的に文字の並びがシンプルなのから置換するのがベスト
673643:2009/04/21(火) 16:16:11 ID:???
>>672
そうしてしまうと、
先ほどの例のような
[email protected]

<a href="tel:0909999999">0909999999</a>@xxxx.ne.jp
になってしまいます
ここはやはりメールアドレスで置換したいと思っています
674nobodyさん:2009/04/21(火) 16:17:29 ID:???
リロードしてないで作業しろw
675nobodyさん:2009/04/21(火) 16:18:14 ID:???
その前に、「与えられた文字列の中」の定義をパターン化する必要があると思う

まさか掲示板に書き込まれた内容とかじゃないよな・・・?
676643:2009/04/21(火) 16:19:39 ID:???
>>675
そういったものです
携帯で自分のサイトを作って、
CMSに内容を変更できるような仕組みなのです
677nobodyさん:2009/04/21(火) 16:20:04 ID:???
名簿業者しかやらない処理
678643:2009/04/21(火) 16:21:15 ID:???
>>677
ええええ・・・・
そうなの・・・?
679nobodyさん:2009/04/21(火) 16:22:22 ID:???
変換なんて誰でもやるだろ。業者は逆にリンクなんか利用しない。逆に危険だから。
680nobodyさん:2009/04/21(火) 16:23:32 ID:???
> CMSに内容を変更できるような仕組みなのです

これどういう意味?


自分で新着情報とかそういうのに番号載せて、それにリンクつけるってこと?
それだったら<tel:0120000000>のような形式で記述してそれを置換すればよくね?
一般ユーザーから投稿された電話番号の置換はやめとけ
あと、ただの数字の羅列か電話番号かの判断などさまざまなパターンを考えれ
681nobodyさん:2009/04/21(火) 16:26:10 ID:???
>>679
本人乙wwwwwwww
682680:2009/04/21(火) 16:29:37 ID:???
ちなみに俺の考えた電話番号マッチ

@preg_match_allで数字の羅列を全て取得
Aループさせて色々なパターンをマッチ

0Xで始まる10桁の数字かどうか
090or080or070で始まる11桁の数字かどうか
0120で始まる10桁の数字かどうか
etc

B一致したものを、変換後の数字に持たせる
Cループさせてstr_replaceとかで置換

書き方アバウトですまん。
あと他にいい方法あれば俺にも教えてくれ
683643:2009/04/21(火) 16:35:59 ID:???
>>680,682
なるほど・・・

>CMSに内容〜
これは、一般ユーザーの投稿内容でサイトの内容を変更する感じのサイトっていう意味でした
684680:2009/04/21(火) 16:37:52 ID:???
>>683
一般ユーザーが電話番号とか編集してそこにリンク貼るってこと?

個人情報漏洩の助長すんの?
685643:2009/04/21(火) 16:41:07 ID:???
>>684
うーん、クライアントの要望なんですが、どうなんでしょうね?
会社の電話番号とかじゃないでしょうか?
686680:2009/04/21(火) 16:43:12 ID:???
>>685
ああ、社内ネットワークで使うのか
電話番号だけ[]で囲ってもらうようにするとかすればいいんじゃないかな?
それか文字の先頭にTel:またはрつけてもらうとか

具体的にどのようなものを作るかによって変わってくるからなぁ
687nobodyさん:2009/04/21(火) 16:44:00 ID:???
本質とは違うところで叩きたいやつばっかだな。どういう条件で動かすかもわからないのに。
688643:2009/04/21(火) 16:47:45 ID:???
>>686
なるほど、何かしら条件を付けてもらうことにします
ありがとうございました
689nobodyさん:2009/04/21(火) 16:57:51 ID:yGbAtJxQ
preg_replace("/([^\"])(hoge)([^\"])/","\\1foo\\3",$str)
タグの中がちゃんとクォートされてるならこれだけでいいんだけどね
690nobodyさん:2009/04/21(火) 16:59:23 ID:???
>>689
ちゃんとログ読め
途中で仕様変わったぞwwwwwww
691643:2009/04/21(火) 16:59:53 ID:???
>>689
ごめんなさい
仕様を一部変更しました
692nobodyさん:2009/04/21(火) 19:35:57 ID:???
$file = file("textdata.txt");
foreach ($file as $v) {
echo $v."
693nobodyさん:2009/04/21(火) 19:37:46 ID:gWZ6QvqO
$file = file("textdata.txt");
foreach ($file as $v) {
echo $v."<br>";
}

textdata.txtがあります
このファイルはオフラインで更新した後に、サーバにアップロードします
この場合textdata.txtの内容を出力するときにhtmlspecialcharsは行うべきでしょうか?
694nobodyさん:2009/04/21(火) 19:41:39 ID:???
textdata.txtは他人はいじるの?
695693:2009/04/21(火) 19:49:32 ID:gWZ6QvqO
いじりません
私が自宅のパソコンで編集してアップロードするだけで、他の人は一切編集することがありません
696nobodyさん:2009/04/21(火) 19:57:41 ID:???
>>695
そしたらエスケープはしなくてよい。
自分でメモ帳で手打ちでHTMLを編集して
自分のホームページをアップロードしてるのと同じ。
697nobodyさん:2009/04/21(火) 19:59:20 ID:W2YbvY8A
すまない/usr/bin/phpでhoge.phpをsystem()関数を利用して実行しようとしてるんだけど、
実行してもfalseが返ってくる。ほぼまる一日悩んでるんだけど、よくあるFAQがあったら教えてください
OSはCentOSでPHP5.1.6 Apache2.2.3
php.iniのsafe_modeはoffにしてあって、シェルから目的とするphpを実行するとしっかり動作するんだが、
system()から実行できない・・・
698nobodyさん:2009/04/21(火) 20:02:20 ID:???
肝心のどう書いたかぐらい書けばいいのに
699697:2009/04/21(火) 20:10:44 ID:W2YbvY8A
>>698
ん、俺ですか?
700nobodyさん:2009/04/21(火) 20:39:39 ID:???
>>697
以前、同じような書き込みを見たことがあるような記憶があるような。
bash -c php うんたら でもダメなの?
701nobodyさん:2009/04/21(火) 20:47:43 ID:???
>>696
トロイの木馬に感染して自分のPCから悪意のあるコードがアップロードされたら?
702nobodyさん:2009/04/21(火) 21:00:07 ID:???
悪意のあるHP管理者がファイルをアップロードしたらマズくない?
サニタイズされてたほうがいいんじゃないの?
703nobodyさん:2009/04/21(火) 21:23:43 ID:???
>>702
おまえはなにをいってるんだ
704nobodyさん:2009/04/21(火) 22:04:48 ID:uVsldpzX
classに配列をセットして読み込みたいと思っています。

// class内のメソッドとします。
function array_list($key,$val){
$this->list = array($key=>$val);
return $this->list;
}

として

$obj->array_list("title","てすと");
$obj->array_list("name","あああ");

を実行ファイルに記述して、class内に配列の値を蓄積したいのですが、
1つしか入りません。どこをどう変えたらいいのでしょうか?
705nobodyさん:2009/04/21(火) 22:12:04 ID:???
$this->list[] = array(... あるいは array_push($this->list, array()); でどうか
詳しくはマニュアルを読め
706nobodyさん:2009/04/21(火) 22:23:58 ID:???
>>702
>>695が多重人格の可能性もあるからってことか。セキュアだなおまえは
707nobodyさん:2009/04/21(火) 22:59:38 ID:???
>>704
$this->list = array($key=>$val);

ここで上書きしてるからそうなるんだよ

$this->list[$key] = $val;

にすればよい
708nobodyさん:2009/04/21(火) 23:06:23 ID:???
>>706
一般論として考えるならこの手の類の問題は
なるべくなら最悪の可能性を考えて設計すべきだけど、
絶対に他人が触らず自分も忘れないという前提なら構わないよな

ただ、ちょっとした汎用関数を通すぐらいでカバーできるのなら、
最低それはしておくべきのような気がする
設計思想や仕様以前の安全対策として
709nobodyさん:2009/04/21(火) 23:10:54 ID:???
text/plainでもどう処理されるか分からないからな
710nobodyさん:2009/04/21(火) 23:20:21 ID:???
>>706
他の誰かが不正侵入して書き変えてたらどうするの?
711nobodyさん:2009/04/21(火) 23:33:40 ID:???
>>710
サイト乗っ取られたらどうするってのと、同じレベルの話に聞こえるけどな。
これアップローダの話じゃないんだろ。

っていうか、 textdata.txtに入ってるのがHTMLだったらhtmlspecialcharsしちゃアカンし、
テキストだったらしといた方がラクだろ。
712nobodyさん:2009/04/21(火) 23:37:59 ID:???
>>693を見る限りhtmlを出力するみたいだけど
713nobodyさん:2009/04/21(火) 23:41:38 ID:???
html「に」出力することはわかるけど、
<br>を行末に添付しているから、.txtがhtmlでないことはわかる
だからエスケープ処理しとくべきかもね
714nobodyさん:2009/04/21(火) 23:43:54 ID:???
無知な野郎が多いなww
エスケープ刷る必要ねえだろw
715nobodyさん:2009/04/21(火) 23:45:41 ID:???
>>714
<test>とかがテキストファイルにあったら、
ブラウザに表示されなくないか?
716nobodyさん:2009/04/21(火) 23:57:59 ID:???
>>710
txtは書き換えるのにソース書き換えたりはしないなんてかわいい侵入者だな
717nobodyさん:2009/04/22(水) 03:30:58 ID:JOPttRIE
>>697

/usr/bin/php ←これが間違ってるか
使えないコマンドを発行してる。
systemの中のコマンドをlsとか簡単なコマンドに変えてやってみ。
あとphpが/usr/bin/以外にないかfindしてみ
718nobodyさん:2009/04/22(水) 14:02:27 ID:1Gt+zU8A
バージョン情報を表す正規表現を書きたいのですが、うまく実現できません。
条件としては数値部分[0-9]に関しては1文字以上の可変です。

以下の値は通過してほしい値です。
0.1
1.1
11.1
1.2.3.4
11.1.1.11111

以下の値は許可しない値です
1
.1.1
1.1.
1..1

始まり部分は以下のようになります。
/^\d{1,}\.\d{1,}〜$/
〜以降が思いつきません。

以上の形式です。どなたかお力添えをお願いします。
719nobodyさん:2009/04/22(水) 14:07:39 ID:???
勘だけど/^\d+(?:\.\d+)+$/D
720nobodyさん:2009/04/22(水) 14:11:24 ID:???
(1)1文字以上の数字で始まる
(2)ドット+1文字以上の数字 又は 1文字以上の数字
(3)(2)が1回以上続く

でよかないですか?
721718:2009/04/22(水) 14:15:35 ID:1Gt+zU8A
>>719
希望通りの動作をしました。ありがとうございます。
ついでにD修飾子の意味を教えていただけるとありがたいです。
722nobodyさん:2009/04/22(水) 14:17:56 ID:???
まずググりました?
723718:2009/04/22(水) 14:21:18 ID:1Gt+zU8A
>>722
正規表現内で使用(\D)すると[^0-9]ということは分かりましたが
修飾子として使用するとどのような動作になるのかを明記しているサイトを見つけることができませんでした。
724nobodyさん:2009/04/22(水) 14:24:26 ID:???
725718:2009/04/22(水) 14:30:29 ID:1Gt+zU8A
>>724
装飾子ってのは修飾子のことを指してるんだとは思いますが、
その検索結果内には/regex/Dではなく/regex\D/の解説結果しかないと思います。
>>723で明記した通りです。
726nobodyさん:2009/04/22(水) 14:33:58 ID:???
ゆとりは疲れるぜw
マニュアルも読まないのなw
ttp://php.benscom.com/manual/ja/reference.pcre.pattern.modifiers.php
727nobodyさん:2009/04/22(水) 14:51:06 ID:MEQMnIq/
ttp://upthx.net/phpinfo.php

上記のサーバーはapacheモジュール版のPHPをサポートしているでしょうか?

html中に

<?php
・・・
?>

で記述されたPHPコードを実行させられるかどうか知りたいです。
728718:2009/04/22(水) 14:51:58 ID:1Gt+zU8A
>>726
>>724で提示された検索結果内に私の求めていた結果がなかった
うえでの>>725の返答ですがゆとり扱いですか。
ゆとりなら私ではなく>>723を読まずによく分からない検索結果を張った>>724にあててください。
というかあなたが>>724であれば最初からマニュアルを提示してください。
729nobodyさん:2009/04/22(水) 14:53:20 ID:???
ゆとりは恐ろしいな・・・・
730nobodyさん:2009/04/22(水) 14:57:15 ID:???
教えてもらったら態度が急変した事にフイタ
731nobodyさん:2009/04/22(水) 15:17:27 ID:???
>>727
phpinfo.php が動いてるんだから動くだろうよ。
Server API CGI/FastCGI
だからcgiモードだろうけど。
732nobodyさん:2009/04/22(水) 15:20:24 ID:MEQMnIq/
>>731
ありがとうございます。

Apacheモジュール版ではできて、cgiモードではできないことの代表例といったらどんなものがありますか?
参考までにPHPで作られたカウンタやキャプチャ機能付き掲示板、ブログ等を実装しようとおもっています。
733nobodyさん:2009/04/22(水) 15:22:42 ID:???
>>732
異なるのはもっと上位レイヤだからほぼない。
cgi-binの下に置かないといけないとかそういうのぐらい。
734nobodyさん:2009/04/22(水) 15:29:57 ID:???
代表例はBASIC認証を自前で入力画面作るとかだなあ
735nobodyさん:2009/04/22(水) 15:40:35 ID:MEQMnIq/
そうでしたか、安心しました( ´∀`)

それほど関係ないならほぼ全てのレンタルサーバーはPHPをcgiモードで
動かしてしまえばいいと思うのですが、そうではないということはユーザー
のなかにはApachモジュールでの動作にこだわられてる方が多いということなんでしょうか?
736nobodyさん:2009/04/22(水) 15:54:43 ID:???
>>735
女?
737nobodyさん:2009/04/22(水) 17:04:14 ID:???
>>735
cgiは確か遅い。
738nobodyさん:2009/04/22(水) 22:56:16 ID:???
>735
cgiで動作する場合、
 Apache → php.exeとかが起動される → 実行
となる。対して、mod_phpはApache自身が実行するので、php.exeの起動を毎回する必要がなくなる。その分早い。
(Apacheがphp.exeを予め起動し、常時スタンバイ状態にしておくイメージ)

(実際はUnix系サーバだろうからexeなんてファイル名じゃないわけだが、まあイメージだ)
739nobodyさん:2009/04/23(木) 04:26:39 ID:113Aszds
PHPでping更新するプログラムを作っているのですが
更新pingを送信してやるプログラムを作っているのですが
そこでpingサーバーにPOSTしてやると言うことまでは
わかっています。
POSTするのはソケットかcurlだと思うのですがパラメーターの
名前がなくてもPOSTできるものなのですか?

ヤフーなら
http://api.my.yahoo.co.jp/RPC2
のURLにPOST送信して下さい

としか書かれていません。
よろしくお願いします。
740nobodyさん:2009/04/23(木) 04:40:06 ID:???
xmlrpcだろ常考・・・
741nobodyさん:2009/04/23(木) 10:21:51 ID:QVnMbBVw
php.iniの推奨設定ってございますか?
742nobodyさん:2009/04/23(木) 10:26:02 ID:???
php.ini-recommended
743nobodyさん:2009/04/23(木) 10:29:34 ID:???
>>741
文字周りをUTF-8
あと、初心者ならmagic_quote_gpcはOnの方がいいのかも知れない・・

推奨っていうか個々の設定の意味合いがちゃんと分かっていれば問題ないかなと思う。
744nobodyさん:2009/04/23(木) 11:04:57 ID:???
うそをこきなさい
magic_quote_gpcはオフったほうが絶対いいって、勝手に余計な処理されたら却って混乱する
745nobodyさん:2009/04/23(木) 11:15:37 ID:ai/dLDOC
あいまい検索みたいな事って出来るのでしょうか?

例えば、test_file.phpというファイル名のファイルがあったとして
testで検索してもそのファイルがヒットするようにしたいのです。

opendirなどで指定ディレクトリを開いてファイルを1つずつ読み込み、
preg_matchなどの正規表現でファイル名を調べる方法もありますが、
もう少し短い手順で、簡単に調べられる方法はないでしょうか?
746741:2009/04/23(木) 11:20:07 ID:QVnMbBVw
php.ini-recommendedを元にしてみてます
そこで具体的な質問なのですが一部の箇所だけでも構いませんのでどなたかご教示お願い致します

・output_bufferingは0にするべきか
・mb_string不使用のレンタルサーバに対応するコードを書くためにmb_stringを使わないべきか
・セーフモードをオンにするだけでいいか。safe_mode_exec_dirなどセーフモードに関する設定も行うべきか
・[mbstring]項目のmbstring.http_inputなどの設定の仕方
747nobodyさん:2009/04/23(木) 11:22:01 ID:???
748741:2009/04/23(木) 11:25:32 ID:QVnMbBVw
>>747

$dic = array("ノーダウト","ノープロブレム","ノーリスク","ノーリターン");
$point = 0;
$per = 0;
$answer = '';

if(isset($_GET['str'])){
$str = $_GET['str'];
foreach($dic as $word){
$new_point = similar_text($word,$str,$per);
echo $word."と".intval($per)."%似ています<br>";
if($point < $new_point){
$point = $new_point;
$answer = $word;
}
}

echo "<br>もしかして<strong>".$answer."</strong>?";
}
?>
<form action="" method="get">
<input type="text" name="str" />
</form>
749nobodyさん:2009/04/23(木) 11:30:20 ID:???
>>744
それが分かる人はOffでいいと思う。
750nobodyさん:2009/04/23(木) 11:41:26 ID:???
>>743>>749はPHP歴一か月未満とみた
751nobodyさん:2009/04/23(木) 11:51:44 ID:???
>>749
いや、逆だろ
Onの方が余計混乱するって
752745:2009/04/23(木) 12:03:37 ID:ai/dLDOC
>>747
ありがとうございます。
たしかにこれでテキスト間を調べることは出来ますが、
やっぱり、ファイル名を調べるには、
ディレクトリ一覧を取得する方法しかないのでしょうか?
753nobodyさん:2009/04/23(木) 12:03:58 ID:aSD7OG+w
ドコモでサイトを閲覧したとき、戻るボタンで前のページの戻ったとき、
キャッシュがなくて再読み込みされるらしいのですが、何が原因なのでしょうか
auでテストしてみたところ、キャッシュが残っていてすぐに表示されました
754nobodyさん:2009/04/23(木) 12:27:15 ID:???
>>745
その例だと曖昧検索じゃなくてただの部分一致だと思うけど、
単なる部分一致なら
http://jp.php.net/manual/ja/function.glob.php
で出来るよ。
755nobodyさん:2009/04/23(木) 12:37:06 ID:???
>>752
そういうことになりますね
756nobodyさん:2009/04/23(木) 13:19:05 ID:???
ドコモ?w
あのクッキーは使えねーどこも?w
あんなキャリア無視していいよ。
757nobodyさん:2009/04/23(木) 13:21:52 ID:aSD7OG+w
>>756
流石にお客さんの要望となると無視できないです・・・
758nobodyさん:2009/04/23(木) 13:21:58 ID:???
こんなことで嘆いているks野郎が働いてて
全キャリア対応できるノウハウを持ってる優秀な俺が無職でいる日本
759nobodyさん:2009/04/23(木) 13:45:30 ID:???
実際働いたら優秀でもなんでもない口だけニートか
760nobodyさん:2009/04/23(木) 13:47:34 ID:???
新米社員必死だな
761745:2009/04/23(木) 14:02:10 ID:???
>>754,755
globもファイル内一覧を検索する関数ですし、
やっぱりそうするしかないんですね。
勉強になりました。ありがとうございました。
762nobodyさん:2009/04/23(木) 14:04:59 ID:???
>>753
DoCoMoの試験機無いの?
763nobodyさん:2009/04/23(木) 14:05:35 ID:???
ない
764nobodyさん:2009/04/23(木) 15:02:49 ID:???
765nobodyさん:2009/04/23(木) 15:03:37 ID:???
ああ、試験機って手元で実際に使えるものかと思ってた
それってキャッシュの設定までできるの?
766nobodyさん:2009/04/23(木) 15:13:18 ID:???
>>753
というか、仕事なのにこんなとこで聞く程度のスキルでお金もらえるの?
どこの会社だろう。
いいな。うらやましい。2chで情報もらって金儲けか。
767nobodyさん:2009/04/23(木) 15:18:36 ID:???
>>753みたいな教えて君が俺たちを人力検索ボランティアに利用して金もらってて
俺みたいな何でも一人でこなせる優秀な人材が無職な日本
768nobodyさん:2009/04/23(木) 15:20:25 ID:???
横槍すまんが

>>766-767
だったら働けよと・・・
769nobodyさん:2009/04/23(木) 15:23:34 ID:???
誰か無職な日本のガイドラインをガイドライン板に立てて
770nobodyさん:2009/04/23(木) 15:30:10 ID:???
こんな優秀な俺が無職なのは社会のせいだ!
ですか?()笑
771nobodyさん:2009/04/23(木) 15:40:27 ID:???
>>768
心配すんな。いつでも判子押せるように横においてあるから
772nobodyさん:2009/04/23(木) 15:40:50 ID:???
履歴書ですねわかります
773nobodyさん:2009/04/23(木) 16:22:08 ID:???
この流れならうpできる!
昨日買ったメガネ
http://www.dotup.org/uploda/www.dotup.org30260.jpg
774nobodyさん:2009/04/23(木) 16:25:06 ID:???
775nobodyさん:2009/04/23(木) 23:06:46 ID:???
UTF8で書いたPHPファイルをレンタルサーバにアップして見てみると
日本語が全部?になってしまいます。ソースも?になっています。
XAMMPでみると正常に表示されるんですが、これはレンタルサーバの
設定によるものなのでしょうか?
だとするとPHPファイルの文字コードを合わせるしかないのでしょうか?
776nobodyさん:2009/04/23(木) 23:15:32 ID:???
>>775
(1)エディタで保存するときにUTF-8になっているか
(2)メタタグでutf-8を強制しても直らないか
777nobodyさん:2009/04/23(木) 23:28:39 ID:Slt+HzGf
波ダッシュ/全角チルダ問題についてですが

UTF-8のDBに対しUTF8のスクリプトからSET NAMES UTF-8を行った上でUTF-8のエンコードの文字列を書き込んでいるのですが「〜」(全角チルダ)のみ?と化けて書き込めません。
書き込む直前に波ダッシュに変換したりした場合は問題有りません。

原因は何が考えられますか?
778nobodyさん:2009/04/23(木) 23:32:31 ID:???
>>777
これが絶対っていう対処法は今のところない
ググると1ページめに対処法が2つあるからそれを読め
779nobodyさん:2009/04/23(木) 23:35:03 ID:???
>775
まずそのまま、ブラウザのエンコーディングをUTF-8にしてみろ。
これで直るようなら、スクリプトに
header('Content-Type: text/html; charset=UTF-8');
で解決。
適切なヘッダーを吐き出さないと脆弱性の元になるので、文字化けの有無に限らず常にヘッダは吐く癖をつけろ。

>776
自分でヘッダをいじれる環境で、メタタグを使う意味が分からない。
780nobodyさん:2009/04/23(木) 23:36:26 ID:???
>>777
まずその問題の知識はあるのかね?
ttp://www.informe.co.jp/useful/character/character14.html
781nobodyさん:2009/04/23(木) 23:37:36 ID:???
>>778
ありがとうございます。
波ダッシュ問題については認識しているのですが、全く同一仕様のサーバーに同一プログラムを置いているのですがそちらでは全角チルダをDBに書き込めています。
またphpの設定、DBの設定(phpMyAdminから見える範囲)も同一です。

phpMyAdminから見えないところでMySQLに設定しなければいけないものはありますか?
782nobodyさん:2009/04/23(木) 23:37:42 ID:???
>>779
こんな方法あるのか。
783nobodyさん:2009/04/23(木) 23:38:32 ID:???
>>779
ちなみにメタタグでの指定は
「utf-7攻撃」
を防ぐために必要です
784777:2009/04/23(木) 23:41:28 ID:???

$qry .= "str=〜(波ダッシュ)";
$result = mysql_query($qry, $sql_connect);

OK

$qry .= "str=〜(全角チルダ)";
$result = mysql_query($qry, $sql_connect);

NG(記録されるのが”?”)

化けるのは全角チルダONLYです。
785nobodyさん:2009/04/23(木) 23:41:57 ID:???
>>783
kwsk
786nobodyさん:2009/04/23(木) 23:42:48 ID:???
>>784
昔作った掲示板でそれ対処したがもう寝るので回答がなければ明日のこの時間までにまたくるわ
787nobodyさん:2009/04/23(木) 23:44:12 ID:???
>>786
ありがとうございます。
その時間までがんばりやす。
788nobodyさん:2009/04/23(木) 23:46:57 ID:???
>>776,779 ありがとう
メタタグは入れてテストしていた・・・つもりだったのですが、再度やってみると
あっさり直りました。もやもやしますが、再現できないのでOKとします。
>>779
スクリプトからのヘッダ指定は知りませんでした。ちょっと教えて欲しいのですが
メタタグもスクリプトもPHPの中の人が同じファイル内を読んでその指示に
沿っているという点では同じかと思うのですが、意味が分からないということは
スクリプトで書いた方が良いことがあるのでしょうか?
789775:2009/04/23(木) 23:47:44 ID:???
>>788
偽物乙
790nobodyさん:2009/04/23(木) 23:48:41 ID:???
>>788
とりあえずそのファイルをここに晒せ
検証してやる
791nobodyさん:2009/04/23(木) 23:55:56 ID:???
>>779は勝ち誇りながら上げ足をとったのに、
逆に上げ足を取られてクソフイタwwwwwwww
792nobodyさん:2009/04/24(金) 00:11:15 ID:???
>788
メタタグを読んでいるのはブラウザの中の人。

headerを使うのとmetaを使うのとどう違うのか、と言われると実は実際問題たいした差は無い。
けど、http-equivのequivってのは「代替品」って意味。文字通り、ヘッダーを生成できない場合の代替が目的。
本物と代替品を両方使えるなら、本物を使うのが自然だと俺は思う。
まあ、RFCや歴史的経緯や由来なんぞ知った事か!って意見もあるだろうし、両方使う、ってのがベストではあるけどな。
(Apacheの設定でヘンなヘッダを吐かれるケースの対策でもあったんだが、そういうケースは最近はあんま見ない)
793nobodyさん:2009/04/24(金) 00:14:29 ID:???
字義は「等価」だろ。歴史的経緯を考えると「代替」って解釈も妥当だが。
知らないってのは流石にダセぇとは思うが、どっちかを強制するような事じゃない。
794nobodyさん:2009/04/24(金) 00:22:28 ID:???
>>790
最初メタタグなしで?だったのでメタタグを入れてダメで、間違いに
気づいてメタタグを正確に直したけど表示されないなぁと思って
聞いてみたんですけど、改めて見てみると正確に直してるファイルは
普通に表示され、記述間違いはダメ、という当然の結果なのです。

直したつもりだったてことかと。

>>792
>メタタグを読んでいるのはブラウザの中の人。
そうでした。
>ヘンなヘッダを吐かれるケースの対策でもあった
メタタグは通用しないことがあるって記述をどこかで見てバシッと
指示できる方法がないものかと思ってたんですが当にこれですね。
メタタグがブラウザ対象ならPHPに通用しないのは当然か。
SQLも文字化けしてたんですけど
mysql_query("SET NAMES utf8");として解決したので
同様の指示方法を探してました。
795nobodyさん:2009/04/24(金) 01:41:32 ID:oXgFhkjs
@header('Content-Type: text/html; charset=UTF-8');
こんなん常識じゃね?
796nobodyさん:2009/04/24(金) 01:43:15 ID:???
@ はいらんけどな。
Content-Typeだしてねーサイト多すぎだよな。
Safariで見るとソースが化けるからすぐ分かる。
797nobodyさん:2009/04/24(金) 01:45:39 ID:oXgFhkjs
いやいやいあ
配列やオブジェクトを書き出してテストしたりすんべ
httpヘッダーくらいでエラーすんのもむかつくので
@必修にしてたよ俺orz
798nobodyさん:2009/04/24(金) 01:49:16 ID:oXgFhkjs
しかしhtmlの表示必死でhttpの基本しらない人大杉だよな
自分でサーバ運用したこと無いのかねぇ?
799nobodyさん:2009/04/24(金) 01:50:09 ID:???
@つけてる人に言われたかないわ
800nobodyさん:2009/04/24(金) 01:52:13 ID:oXgFhkjs
ははは、そりゃ悪かったw
意味わかってしてるんだから許せw
801nobodyさん:2009/04/24(金) 01:59:00 ID:???
>>777
偶然にも全く同じ問題に直面していたんだが、phpMyAdminで設定した照合順序は
各テーブル、フィールドに個別に設定出来てる?

UTF-8で全部やっているならとりあえず照合順序を全てutf8_general_ciにしてみると良いよ。
802nobodyさん:2009/04/24(金) 02:14:21 ID:???
>自分でサーバ運用したこと無いのかねぇ?
このスレ見てる人間はプログラマーではあってもおそらく鯖屋ではありません
Webプログラマーならhttpの知識知ってて当然
ようするに知らないのは初心者
そしてここはそういうスレ
803nobodyさん:2009/04/24(金) 02:28:31 ID:???
実業務に携わってたら、PHPerにはド素人が多いなんてのは常識(キリッ

>797
普通、画面出力は一箇所にまとめるだろjk。
echoが2箇所以上に存在するスクリプトは、構成にそもそも難がある。
あと、適当なテキストファイルに文字列を書き出す関数は常に用意しておいたほうが便利だぞ。
804nobodyさん:2009/04/24(金) 02:32:14 ID:???
文字コード設定してんのに自動的にcontent-type吐かないPHPが悪い
805nobodyさん:2009/04/24(金) 02:35:25 ID:???
どんなに小さいプログラム書くときでも
大体、render用の関数作って、変数をextractとかしてアサインするとかしてるんだけど、
あんまりやらないのかな?

function render($path, $array){
extract($array, EXTR_SKIP);
include "/view/".$path.".html";
}

とかといったような。
806nobodyさん:2009/04/24(金) 02:43:16 ID:???
なんのために?
807nobodyさん:2009/04/24(金) 03:33:28 ID:???
>806
例えば画面出力を突然Shift_JISにしたくなったとしよう。
お前のコードの場合、全ての出力部にmb_convert_encodingを入れる必要がある。
>850なら、render()の冒頭でob_start()とかやって、出力内容を変数に格納してからShift_JISに変換して出力する、とかいう改変がラクにできる。
同じように、render()を文字列を返す関数にして、ファイルに書き出す事も容易。

また、>805のようなパターンでスクリプトを構成していると、デザイン変更の際にview/*.htmlをいじるだけでよくなる。
逆にロジックだけを変えたい場合、view/*.html(つまり画面デザイン)には一切手をつけなくてよくなる。

最後に、$arrayが正しいかテストするほうが、画面出力結果が正しいかテストするよりも楽な事が多い。
この辺はPHPUnitを使ってみないとピンと来ないポイントかもな。
808nobodyさん:2009/04/24(金) 03:41:24 ID:???
お前のコードはとか勝手に決め付けてんなよ

つかテンプレートエンジンかフレームワーク使わないのはなんで?
809nobodyさん:2009/04/24(金) 03:58:49 ID:???
横槍スマンが、>>807で言われているようなことが必要ないからエコーデバッグという
原始的手法をとってるんだと思うよ。俺もたまにやるし。
あと、出力エンコーディングのごっそりな変換はiniで指定したほうがラクだよ。

個人的にはこのご時世コード的に小さいWebアプリなんてのがまずなくなってるから
FWのロガーとIDEのデバッガを適切に使うのがよいと思う。
ウニットテスト云々言ってるが、アサーションに漏れたらその変数とコールスタックのダンプなどをやってくれるので
初心者にもオススメだ。
810nobodyさん:2009/04/24(金) 04:04:03 ID:???
エコーが散らばってるのとレンダー関数が散らばってるのは大差ないかも分からんが出力はプリティーなほうが絶対いい
811nobodyさん:2009/04/24(金) 04:12:50 ID:???
>>809
どうだろう…抑止なると使ってるくらいだしな…
エコー → 自作関数 → FWスタンダード って感じでステップアップしていけばいいんじゃないか?
だいたい皆そうだろ
812nobodyさん:2009/04/24(金) 04:22:16 ID:???
header()に@貼り付けてるってことはヘッダー送れてないわけじゃんw
そうやってエラー無視してバグの元を作ってしまうことが問題だと思うんだが
素のechoだろうが自作フォーマットだろうがそっちは好きにしなさい
813nobodyさん:2009/04/24(金) 04:29:44 ID:???
>>812 はネタ?
814nobodyさん:2009/04/24(金) 09:15:12 ID:???
>>807
php.ini全否定か
815nobodyさん:2009/04/24(金) 09:26:01 ID:???
PHP_INI_ALLだからスクリプトや.htaccessからでも制御できるね
816nobodyさん:2009/04/24(金) 09:36:54 ID:???
マジレスするとxhtmlの最新版はmetaタグで文字コードを指定しないでheaderで文字コードを送信するようにしろとなっている
817nobodyさん:2009/04/24(金) 09:38:38 ID:???
それはXML宣言があるからw
818nobodyさん:2009/04/24(金) 11:46:30 ID:NYw9Sn8U
shift_jisでハングル文字を使う方法を教えてください
819nobodyさん:2009/04/24(金) 11:48:01 ID:???
その「使う」の真意によって可能かどうか分かれる
820nobodyさん:2009/04/24(金) 11:51:26 ID:NYw9Sn8U
sjisでハングル文字を表示させたいのです
821nobodyさん:2009/04/24(金) 11:52:20 ID:NYw9Sn8U
ユーザーから投稿されたハングル文字をsjisでログに保存して
それを表示したいです
822nobodyさん:2009/04/24(金) 11:54:10 ID:???
>>821
画像にすればいいじゃない。
823nobodyさん:2009/04/24(金) 12:42:44 ID:???
色んなソース見てるけど今だに
for ($i = 0 ; $i < count($array) ; $i++)
みたいな書き方のソース多いな
どこのオープンソースもこんなもん?
824nobodyさん:2009/04/24(金) 12:42:53 ID:NYw9Sn8U
あくまでも文字として使用するにはどうしたらいいでしょうか?
825nobodyさん:2009/04/24(金) 12:43:34 ID:???
>>823
有名所上げるとしたらどこのソース?
826nobodyさん:2009/04/24(金) 12:45:26 ID:???
E○-○U○Eとか
827nobodyさん:2009/04/24(金) 12:52:53 ID:???
別に伏字にしなくてもいいんじゃね
まあどれかわかるけど
828nobodyさん:2009/04/24(金) 13:11:39 ID:???
Smartyって便利みたいだけど
余計ややこしいとね^^;
829nobodyさん:2009/04/24(金) 13:12:31 ID:???
素のほうがややこしいやん
830nobodyさん:2009/04/24(金) 13:15:35 ID:???
>>829
そうか?
PHP自体がテンプレートエンジンのようなもんだし、わざわざ入れるまでもないと思うが
831nobodyさん:2009/04/24(金) 13:16:11 ID:???
そういうレベルの人は無理に使わなくて良いよ
832nobodyさん:2009/04/24(金) 13:17:46 ID:???
>>830
きっと君にはライブラリとかフレームワークは使うだけ無駄だよ
833818:2009/04/24(金) 13:18:26 ID:NYw9Sn8U
自分で考えてみましたが解決策がみつかりません
834nobodyさん:2009/04/24(金) 13:19:22 ID:???
google先生に考えてもらえばいいんじゃないでしょうか
835nobodyさん:2009/04/24(金) 13:20:30 ID:???
>>834
素人が頑張って回答しました(笑)
836nobodyさん:2009/04/24(金) 13:21:02 ID:???
まぁいきりは使わなくていいお
837nobodyさん:2009/04/24(金) 13:26:28 ID:???
>>834
×google先生に考えてもらえばいいんじゃないでしょうか
○私の知識ではわかりません
838nobodyさん:2009/04/24(金) 13:31:55 ID:???
for ($i=0;$i<count($a);$i++) $r[] = $a[$i];
839nobodyさん:2009/04/24(金) 14:08:57 ID:???
for($i = 0, $cnt = count($a); $i < $cnt; $i++) echo $a[$i];

こういう書き方すると怒られる?
840nobodyさん:2009/04/24(金) 14:09:36 ID:???
誰に?
841nobodyさん:2009/04/24(金) 14:10:19 ID:???
原則として,検索すれば分かるようなことを「聞くな」
842nobodyさん:2009/04/24(金) 14:17:13 ID:???
>>839
添字が連続していることを前提にしていいのか不安になるから嫌。
843nobodyさん:2009/04/24(金) 14:23:04 ID:???
>>839
個人で作るなら問題ないけど
他の人に見せる可能性があるなら可視性も大事

あと適度なコメント表示もお願いねほしみ
844nobodyさん:2009/04/24(金) 14:38:48 ID:???
>>823
別にそれでいいだろ
845nobodyさん:2009/04/24(金) 14:39:05 ID:???
846839:2009/04/24(金) 14:52:01 ID:???
>>841
コーディングの慣習として、どのような感じ方をされるのか気になったので、質問してしまいました。すいません。
847nobodyさん:2009/04/24(金) 14:59:09 ID:???
>>844の書いたコードはksそうだな
848nobodyさん:2009/04/24(金) 15:01:18 ID:???
君宛じゃなくてその上の連中宛だから気にすんな。
でも君の質問も言葉足らずで良くないけど。
何を問題にしてるの?スペースを空けること?条件部でcount使ってること?1ラインのfor使ってること?
849nobodyさん:2009/04/24(金) 15:06:20 ID:???
動けば何でもいいんだよ!

っていうのが今のゆとり
850nobodyさん:2009/04/24(金) 15:09:50 ID:aAv/eK7t
みなさんIPv6には対応してますか?
REMOTE_ADDRの中身とかどうなるのでしょう?
普段見慣れない0000:0000:0000:0000:0000:0000とかになるのでしょうか?
DNS逆引きでリモホを得た場合
IPv4のとIPv6のホスト名に大きな差異はあるのでしょうか?
PHPの質問とはかけ離れてますがアクセス解析を作りたいのでよろしくお願いします
851nobodyさん:2009/04/24(金) 15:12:55 ID:???
>>848
誰にレスしてるの?
852nobodyさん:2009/04/24(金) 15:13:30 ID:???
>>848
後、変数名にも問題あるな
cntとかPerlerにありがち
853nobodyさん:2009/04/24(金) 15:13:40 ID:???
>>850
板違い
854nobodyさん:2009/04/24(金) 15:14:20 ID:???
>>852
君が正しいコードに書きなおしてみて
855nobodyさん:2009/04/24(金) 15:22:40 ID:???
メールフォーム作成してますが送信内容に
名前<div>名前
といったようにタグを挟んだり
ネ申
といったものを入れると\が付加されてメールで飛んできます。
文字コード自体はmb_convert_encodingで変換しているので問題はないと思うのですが
どういしたら出ないように出来るのでしょうか。
856nobodyさん:2009/04/24(金) 15:24:54 ID:???
いまだにっていうかforの中でカウントする習慣は普通
わざわざそんなこと気にしてるのはPHPユーザーぐらいだろ
他の言語板で聞いてみな
857nobodyさん:2009/04/24(金) 15:32:32 ID:???
>>856
習慣は関係ないです
858nobodyさん:2009/04/24(金) 15:32:50 ID:???
countするぐらいなら foreach使うけどな。
859nobodyさん:2009/04/24(金) 15:33:13 ID:???
>>856
そして他の言語板で聞くとおもれなくお前からのレスが貰えます
860nobodyさん:2009/04/24(金) 15:36:08 ID:???
>>858
iがほしい場面じゃfor使わざるを得ないけど
使う必要がないならそのとおり

>>859
安心しな
JavaスレとJSスレぐらいしか見てないから
C系の人にきいてみな
861nobodyさん:2009/04/24(金) 15:39:14 ID:???
>>860
添え字の数値が欲しいなら foreach($array as $key=>$val) 書式使うし、
確実に連続した数値としてほしいなら、これは使えないから、別途カウント用の変数を使う。
862nobodyさん:2009/04/24(金) 15:44:25 ID:???
慣習とかじゃなくて速度のためにcountをforの外で使うんだろ
ベンチマークベンチマーク
863839:2009/04/24(金) 15:47:56 ID:???
>>848
普通にかくと、
$cnt = count($a);
for(〜

となると思うのですが、
forの中だけで使いたい$cntがforの外に出るのがかっこ悪いかなぁと思ったためです。

foreach($a as $i => $item) echo $a[$i];
のような書き方もあるとおもいますが・・・

上記のような書き方の違いがコーディングスタイルの範囲なのか、プログラムの動き的に
別の問題が発生するのかという疑問を持ったという感じです。長文すいません。
864nobodyさん:2009/04/24(金) 15:50:39 ID:???
その段階ではまだ細かなチューニングなんか意識しなくていいんじゃね?

865nobodyさん:2009/04/24(金) 15:53:53 ID:???
>>861
それ特殊だからな
PHPぐらいじゃね?そんな書式使えるのw
866nobodyさん:2009/04/24(金) 15:55:05 ID:???
>>862
それはわかってるけどそんなの意識するのPHPユーザぐらいじゃね?
劇的にかわるもんでもないでしょ?
もともと高速だし
867850:2009/04/24(金) 15:56:24 ID:aAv/eK7t
すみませんスレ変えます
868850:2009/04/24(金) 15:58:40 ID:aAv/eK7t
とおもったけどすみません・・・
やっぱ詳しい方教えてもらえないでしょうか?
スレ違いとは承知してますがこのスレならいると思うので
IPv6板で聞きなおそうと思ったのですがIPv6でしか書き込めないらしい・・・
869nobodyさん:2009/04/24(金) 16:41:18 ID:???
>>868
スレ違いじゃなくて板違い
870nobodyさん:2009/04/24(金) 16:58:31 ID:???
ttp://pc12.2ch.net/test/read.cgi/tech/1239708057/360-362

ようするに下らんところで口を出すPHPユーザの質が低いってことだな
871nobodyさん:2009/04/24(金) 17:00:59 ID:???
>>870
そりゃそうだろ
PHPは猿でもできるからな
872nobodyさん:2009/04/24(金) 17:01:21 ID:???
>>861
だったら最初からforでいいじゃん
873nobodyさん:2009/04/24(金) 17:02:08 ID:???
>>872
お前はケースバイケースって言葉しらんのか?

ああ、ゆとりか
874nobodyさん:2009/04/24(金) 17:04:38 ID:???
PHPユーザならもっと他のとこに着眼すべき
Webやってんのに全然セキュリティ意識がないのが多いね
そっちのほうがよほど問題
かくいう自分も100%安全なプログラムかけてるかというと自信はないけど
PHP選択してる時点でセキュリティ意識がないと言われたら終わりだが
875nobodyさん:2009/04/24(金) 17:09:25 ID:???
>>872
コードが汚いし、>>839 の書き方じゃ
$a[0] = 'hoge';
$a[100] = 'hogehoge'

ってした時に期待した動きにならんでしょ。
あぶねーよ。
876nobodyさん:2009/04/24(金) 17:09:55 ID:???
>>870
> ttp://pc12.2ch.net/test/read.cgi/tech/1239708057/360-362

javaは確か内部でsizeを持ってるんじゃないかな。
phpのcountとはオーバーヘッドが全然違うと思う。
877nobodyさん:2009/04/24(金) 17:11:02 ID:???
>>876
どっちもネイティブでしょ?
そういうことじゃなくて?
878876:2009/04/24(金) 17:16:30 ID:???
>>877
javaはlistオブジェクトが持ってるsizeメンバを返してるだけだが、
PHPはのcountはいちいち個数を調べてるってこと。
879nobodyさん:2009/04/24(金) 17:16:47 ID:???
ていうか>>839の書き方はじめてみた
そんな書き方あるのか
for ($i = 0; $i < $cnt = count($a); $i++)
ってのはあるが
これとは意味違うのかね
これじゃ$i < count($a)と変わらない?
880nobodyさん:2009/04/24(金) 17:18:13 ID:???
>>875 書いてから気づいたけど、

$a[100] = 'hogehoge'
$a[0] = 'hoge';

だと、foreachでも、ある意味、微妙な動きをするな。
それでも PHPの添え字はオフセット値とは扱いが違うんで、forとかは馴染まんなぁ。

>>878
それソースあったら教えて。
881nobodyさん:2009/04/24(金) 17:19:49 ID:???
>>839
for($i = 0, $cnt = count($a); $i < $cnt; print($a[$i]), $i++);
882nobodyさん:2009/04/24(金) 17:23:17 ID:???
>>878
静的に値保持してるってことかな?
まぁでもそんなに問題にするほどでもないと思うけど
883nobodyさん:2009/04/24(金) 17:25:22 ID:???
>>882
本当に数え直してるんだったら、2乗オーダになるから、チト引っかかるけどね。
本当に数え直してるんかなぁ。
884nobodyさん:2009/04/24(金) 17:28:34 ID:8/gQo6Yy
tp://hogehoge.com/dir/exec.php/aaaaa/asdfasdf.txt
というURLで、

exec.phpにそれ以降の文字列を渡したいんだけどどうすりゃいいの
885nobodyさん:2009/04/24(金) 17:29:58 ID:???
>>884
var_dump($_SERVER)
886nobodyさん:2009/04/24(金) 17:31:28 ID:???
>>885
書き方が悪かったです。
exec.phpじゃなくて、asdfasdf.txtで動いちゃうから困ってます
887nobodyさん:2009/04/24(金) 17:32:16 ID:???
?挟むかhtaccess使うか
888nobodyさん:2009/04/24(金) 17:35:56 ID:???
ていうかPHPとかんk(ry
889nobodyさん:2009/04/24(金) 17:37:09 ID:???
多分 AcceptPathInfo じゃないの。PHPとは関係ない。
890nobodyさん:2009/04/24(金) 17:40:25 ID:???
>>884
phpじゃ無理
891nobodyさん:2009/04/24(金) 17:53:00 ID:???
あんま追い討ちかけてやるなよw
まったくひどいスレだwww
892nobodyさん:2009/04/24(金) 17:54:01 ID:8/gQo6Yy
PHPの問題ではない予感はしてたけど、何の問題かも分からず
ここに頼ってしまいました

優しい諸兄に感謝。ありがとうございました。
893nobodyさん:2009/04/24(金) 17:57:05 ID:???
別にいいけど、AcceptPathInfo は見たんかなぁ。
894nobodyさん:2009/04/24(金) 18:27:44 ID:???
>>879
とりあえず配列を抜きにして考えれば、
for(初期化; ループ条件; ループ毎)なので、
どこが毎回評価されるのか自ずと解るはずだよ。
895878:2009/04/24(金) 18:50:20 ID:???
>>880
>>883
すいません嘘つきました。
phpのソースを見てみたところ、ハッシュテーブルの要素数を返してるだけでした
(ただ、再帰モードの時は全部足し合わせ)。

なので呼び出すコストはjavaとそんなに変わらないと思います。
896nobodyさん:2009/04/24(金) 19:03:27 ID:???
phpのソースとかよく見れるな
897nobodyさん:2009/04/24(金) 19:15:33 ID:???
>>895
ありがとう。
っていうか、いきなりソース読むとか、率直に尊敬する。
898nobodyさん:2009/04/24(金) 23:40:28 ID:???
いまどきfor文の議論してるとかwww

899nobodyさん:2009/04/24(金) 23:47:51 ID:uCohzQoD
PHPでMYSQL使ってるんですが、わからないことが出てきました
limitを使って3行目から5レコードを取り出すには
limit 3,5と書きますが
3行目からそれ以降の全部のレコードを出すにはなんと書けばいいのでしょうか?
900nobodyさん:2009/04/25(土) 00:02:30 ID:kxcSc4rc
>>900のためにどなたかお願いします
俺はちょっと初心者だから答えられませんが>>899さんを応援あげ
901nobodyさん:2009/04/25(土) 00:03:35 ID:ZrCQhtA9
>>901のためにどなたかお願いします
俺はちょっと初心者だから答えられませんが>>899さんを応援あげ
902nobodyさん:2009/04/25(土) 00:25:02 ID:???
>>899
つSELECT * FROM table LIMIT 3, 18446744073709551615
903nobodyさん:2009/04/25(土) 00:30:51 ID:???
904nobodyさん:2009/04/25(土) 00:37:29 ID:???
ネタかと思ったらマジだったwww
905nobodyさん:2009/04/25(土) 00:49:38 ID:Be7Ny8gy
なるほど、わかりました
10000くらい入れておきます

皆さんありがとうございました
906nobodyさん:2009/04/25(土) 07:39:56 ID:???
おまいらこんな基本的なこと知らんのか
for($i=0,$max=count($array); $i<$max; $i++){ }
907nobodyさん:2009/04/25(土) 08:56:13 ID:???
なんだこの流れw
908nobodyさん:2009/04/25(土) 11:57:17 ID:???
ここ最近forとか一切書いてないな、そういや。foreachばっかりだ。
キーを取れるforeachはPHPが誇れる数少ない便利機能のひとつだと思う。
PHP内部での配列の値の持ち方を考えると、自然な走査法なんだけどな。

>865
珍しい機能ではあるが、foreachでキーも取るのは例えばRubyもできる。
PHPのように挿入順を維持する機能は今はないが、予定に入ってるか議論中だったはず。
{1=>'a', 2=>'b', 3=>'c'}.each do |key, value|
 p key
 p value
end

lua、squirrelとかでもできるけど、マイナーで特殊な言語すぎるので割愛。
909nobodyさん:2009/04/25(土) 12:05:49 ID:???
アホの晒し合いみたいになってきたな
910nobodyさん:2009/04/25(土) 12:38:36 ID:???
それがPHPerクオリティです。
911nobodyさん:2009/04/25(土) 15:49:54 ID:aOAtk1JY
1通のメールに複数ファイルが添付されている場合、どうやってそれぞれを取り出せばいいのでしょ。
912nobodyさん:2009/04/25(土) 16:47:37 ID:???
普通にバウンダリーで切り分けてヘッダのエンコーディング見てデコードすればよくね
913nobodyさん:2009/04/25(土) 18:27:23 ID:BAT3f6Ea
リファラがらみの質問です
http://aaa.net/aaa.phpという自分のページにあるリンクで
そこからあいてサイトに行った場合、
相手サイトにはhttp://aaa.net/bbb.phplというページからのアクセスとして
カウントされたいのですが、どう書けばいいでしょうか

リンクの書式
<a href=http://auau.net/auau.html>auau</a>

aaa.phpはflameの右側のメニュー部分(2ちゃんで言えばカテゴリー一覧)なので、
http://aaa.net/bbb.php(flame構成ページ)にカウントさせたいんです
よろしくお願いします
914nobodyさん:2009/04/25(土) 18:32:58 ID:???
エロサイト業者乙
915913:2009/04/25(土) 18:35:49 ID:???
エロ業者ではないです
コンテンツがあまりないので、右flame部分にリンクを書いているのですが、
相手のサイトの逆アクセスランキングにはそのページが登録されてしまって、
余り意味がないので、ちゃんとしたページにリンクさせたいんです
916nobodyさん:2009/04/25(土) 19:03:01 ID:???
>>913
bbb.phplのページからaaa.phpを読み込んで表示させればおk
917本物の913:2009/04/25(土) 19:03:41 ID:???
>>914
まじきめえwwwwwwwwwww氏ねks

>>915
偽物乙
918913 ◆Itxg64K/6g :2009/04/25(土) 19:06:49 ID:???
あまりにもひどいのでトリップ付けさせていただきます。
919nobodyさん:2009/04/25(土) 19:11:15 ID:???
920nobodyさん:2009/04/25(土) 19:19:55 ID:???
スレタイの意味をよく考えよう。
921nobodyさん:2009/04/25(土) 19:28:44 ID:BAT3f6Ea
>>915は本物です
922nobodyさん:2009/04/25(土) 19:30:41 ID:BAT3f6Ea
>>916
bbb.phpはflameの一つなので、たぶん其れは無理だと思います
923nobodyさん:2009/04/25(土) 19:36:15 ID:???
>>915
擬似フレームにすればいいじゃん
924nobodyさん:2009/04/25(土) 19:58:59 ID:???
結論から言えば、フレームを使っている限り無理。
925nobodyさん:2009/04/25(土) 20:05:58 ID:???
フレームのリンクを工夫すれば?
一旦aaa.phpに飛ばしてからジャンプするとか、ime.nuみたいに。
926nobodyさん:2009/04/25(土) 20:13:12 ID:BAT3f6Ea
>>923
そのやり方を教えてください・・・
>>925
aaa.phpはメニュー一覧とリンクが書いてあるflameの一部
このページをジャンプページにすると言うことですか?
よく分かりません・・・
927nobodyさん:2009/04/25(土) 20:32:28 ID:???
ねずみ?
928nobodyさん:2009/04/25(土) 21:04:30 ID:???
>>926
擬似フレームはPHPとは関係ない
CSS 擬似フレーム でぐぐれ
929nobodyさん:2009/04/25(土) 21:11:21 ID:???
>>926
ごめん。bbb.phpだね。
930nobodyさん:2009/04/25(土) 22:11:57 ID:PKWkdbE9
巨大な画像(3500×3500)をGDを使ってリサイズしようとすると
レスポンスが返ってこなくなるのですが何か対策方法はあるでしょうか?
931nobodyさん:2009/04/25(土) 22:19:43 ID:???
php.iniでメモリの割り当てふやせや
932nobodyさん:2009/04/25(土) 22:23:27 ID:PKWkdbE9
>>931
memory_limit = 16Mにしたのですが足りないでしょうか?
933nobodyさん:2009/04/25(土) 22:24:04 ID:???
>>930
やめてください
迷惑です^;
934nobodyさん:2009/04/25(土) 22:39:13 ID:???
3500×3500は36MBだ。入らんだろ。
933のいうとおりそんなものをWeb上で処理するのがまちがってんだけど。
共用サーバならやけとけや。
935nobodyさん:2009/04/25(土) 22:42:18 ID:???
専鯖なので迷惑は掛かってないと思います
128MBに設定したら普通に処理できました
お騒がせしてすみません
936nobodyさん:2009/04/26(日) 00:23:18 ID:Cm1KZobT
一般的なWEBサイトにコメント投稿機能を設けたいと思っています。
(コメント投稿はブログでも可能ですが画面がゴチャゴチャしていることや
 htmlの自由度の観点からブログは候補から外しました)

・スパム投稿を防止するための画像認証機能
・NGワードの指定
・特定のホストからの書き込みの禁止機能
・書き込み時に削除パスを設定でき、書き込み後に削除パスで削除できる機能。
・書き込みがあったら管理人にメールで通知してくれる機能
・管理人による投稿はその書き込みが管理人によるものだと分かる機能
・大量に書き込まれるとサイトの表示速度がおちるから適当に次ページに送ってくれる機能

こういう機能を有すスクリプトは無いでしょうか?

あとこれらの機能に加えスパム対策として2ちゃんが採用しているようなBBQ機能も実装
してくれているスクリプトは無いでしょうか?
937nobodyさん:2009/04/26(日) 00:34:44 ID:???
すれ違い
938nobodyさん:2009/04/26(日) 00:39:37 ID:???
動物園動物園海
939nobodyさん:2009/04/26(日) 00:45:08 ID:???
>>936
金出すからスクリプト作ってよvol.1
http://pc11.2ch.net/test/read.cgi/php/1150508106/l50
940nobodyさん:2009/04/26(日) 00:46:27 ID:???
>>936
すれ違いどころか板違いなんだなこれが

こんなCGI探してます 23
http://pc11.2ch.net/test/read.cgi/hp/1219654359/
941nobodyさん:2009/04/26(日) 00:53:07 ID:Cm1KZobT
>>940
どうもです、そちらで探して参ります(´・ω・`)ノシ
942nobodyさん:2009/04/26(日) 02:22:48 ID:NR6bqMwg
正規表現の取得で

preg_match('/<body>(.*?)<\/body>/is',$html,$array);

とすれば、タグの<body>から</body>間を取得できますが、
その中に含まれている特定のタグ(例えば<strong></strong>とか
を取得するには、どう書けばいいのでしょうか?
943nobodyさん:2009/04/26(日) 03:18:51 ID:SODrJj0x
http://www.sankakucomplex.com/


この右側のrecent news はどうやって作ってるんでしょうか
944nobodyさん:2009/04/26(日) 03:27:29 ID:???
select * from news order by time desc limit 0, 20
945nobodyさん:2009/04/26(日) 06:12:55 ID:???
preg_match('/<body.*?(<strong.+?<\/strong>).*?<\/body>/is',$html,$array);
適当にこんな感じ?
946nobodyさん:2009/04/26(日) 06:30:32 ID:???
>>942
タグを取得したいの? タグ間を取得したいの?
947nobodyさん:2009/04/26(日) 11:19:37 ID:3+X1AYP5
948nobodyさん:2009/04/26(日) 11:21:55 ID:???
アクセスしてきたホストにLocationヘッダで飛ばしてるだけ
949nobodyさん:2009/04/26(日) 11:25:43 ID:3+X1AYP5
ということは管理人が愉快犯ってことでしょうか?
950nobodyさん:2009/04/26(日) 12:00:20 ID:???
知らんがな
管理人に意図聞けばいいんじゃね
951nobodyさん:2009/04/26(日) 12:01:38 ID:3+X1AYP5
ちなみに127.0.0.1の方じゃない方のIPなんですがこれってヘッダでどのように記載するのでしょうか?
952nobodyさん:2009/04/26(日) 12:03:33 ID:???
なんかの設定ミスだろ
HTTP/1.0で取ると普通のページになるな。
953nobodyさん:2009/04/26(日) 12:12:38 ID:???
$_SERVER["SERVER_ADDR"]
と書かないといけないところに
$_SERVER["REMOTE_ADDR"]
と書いてしまったとか。
954PHP大好き.php ◆Hentai.kRI :2009/04/26(日) 17:15:53 ID:???
>>947にアクセスしたいけど 怖い
955nobodyさん:2009/04/26(日) 17:21:05 ID:v3Zqb192
956nobodyさん:2009/04/26(日) 17:23:53 ID:???
telnet wiki.poyo.jp 80
して
GET / HTTP/1.0
リターン2回
ってやってみればいい
957PHP大好き.php ◆Hentai.kRI :2009/04/26(日) 17:26:55 ID:???
>>955
ありがとう。日本人なのね・・・
958nobodyさん:2009/04/26(日) 19:21:11 ID:???
結局このローカルを表示させてしまうURLはどういうこと?
959nobodyさん:2009/04/26(日) 19:30:40 ID:???
お前には脳ミソが無いのか!
つるっつるか!
960PHP大好き.php ◆Hentai.kRI :2009/04/26(日) 19:36:12 ID:???
^^;
961nobodyさん:2009/04/26(日) 19:43:06 ID:???
>>958
ヘッダーでローカルに飛ばしているのでは?
962nobodyさん:2009/04/26(日) 22:29:36 ID:???
メモ
is_ array
is_ bool
is_ callable
is_ double
is_ float
is_ int
is_ integer
is_ long
is_ null
is_ numeric
is_ object
is_ real
is_ resource
is_ scalar
is_ string
isset
963nobodyさん:2009/04/26(日) 22:30:25 ID:???
いやん。誤爆
失礼
964nobodyさん:2009/04/26(日) 22:38:02 ID:???
is_otaku
965nobodyさん:2009/04/27(月) 00:10:42 ID:OUJGurX7
無料でPHPの使えるレンタルサーバ、なんてないものかしら?
966nobodyさん:2009/04/27(月) 00:12:26 ID:???
星の数ほどあるよ
967nobodyさん:2009/04/27(月) 00:22:23 ID:Mkjlliv0
フォームに入力させるページをPHPで作ってるんだけどその際ページの先頭に
session_start();
を記述しておくとブラウザの「リロード」を押したり、一度他のページ移動してから
元のフォームのページに戻ってくると一生懸命入力したフォーム欄が一発で空欄になるんだね(´・ω・`)

session_start();
しないページにすれば何回リロードしてもどんだけ他のページとの間をいったりきたりしても
一度入力したフォーム欄は消えないんだけどそれだとPHPプログラムが正常に動いてくれない。

さてどうしたものか(´・ω・`)・・・
968nobodyさん:2009/04/27(月) 00:27:35 ID:???
>>967
後者はブラウザがよろしくやってくれてるだけ。ひょんなきっかけですぐ消えるよ

逆にセッションを正しく使ってれば消えるなんてありえない
969nobodyさん:2009/04/27(月) 00:29:09 ID:???
>>967
セッションって何かわかってて使ってるかい?w
ブラウザのキャッシュ制御機能じゃないんだぜ。
970nobodyさん:2009/04/27(月) 00:40:36 ID:???
くっきーみたいなもん
971nobodyさん:2009/04/27(月) 00:43:08 ID:Mkjlliv0
あら、本当だ。
IEは先頭にsession_start();があっても無くてもリロードするとフォームの内容が消えた。
Firefoxはsession_start();があるとリロード時に消えるけど無いときは何度リロードしても消えなかった。

ちなみにPHPの力を駆使してIEでもFFでもリロード時や他のページの間をいったり来たりしても
にフォームに記述した内容を保っておくことってできると思う(´・ω・`)?
972nobodyさん:2009/04/27(月) 00:59:38 ID:Xhu9KGLb
代入しなきゃ保存されないのわかるよな?
わかんない??
973nobodyさん:2009/04/27(月) 01:10:29 ID:Mkjlliv0
>>972
にゃるほど、でも訪問者がブラウザの進む・戻るボタンを押す直前のフォームの内容を記憶させることなんてできる?
974nobodyさん:2009/04/27(月) 01:10:54 ID:???
>>971
思うとか思わないじゃなくてそのための機能だから。
975nobodyさん:2009/04/27(月) 01:17:00 ID:???
unload時にjsでPHPにデータ投げとけばいけるんじゃね?
976nobodyさん:2009/04/27(月) 01:17:25 ID:Xhu9KGLb
フォーム→POSTからセッションに代入→セッションからデータ書き出し

ここまで書いたぞ
感謝して
977nobodyさん:2009/04/27(月) 01:18:58 ID:Xhu9KGLb
やべぇえええええええええええええええええ
答えてる側なのにsage入れてねぇええええええええええ

これから入れるね
スマン
978nobodyさん:2009/04/27(月) 05:33:47 ID:skcV1wh3
これってどういう意味ですかね
$pattern='-{2,}';
979nobodyさん:2009/04/27(月) 07:11:23 ID:???
正規表現のパターンなら - が2個以上連続することを表してる
コード晒すなら肝心なところを晒せw
980nobodyさん:2009/04/27(月) 08:54:04 ID:skcV1wh3
>>979
すいません
これです
function escape_data($data){
$pattern='-{2,}';
$data=eregi_replace($pattern,'',$data);
return $data;
}
981nobodyさん:2009/04/27(月) 08:55:09 ID:???
>>978
「-{2,}」って文字列を$patternに代入してる、って答えようとしたが
>>979の優しさに感動したから見逃してやろう
982nobodyさん:2009/04/27(月) 11:18:03 ID:???
連続するハイフンを削除する処理のようだな。
983nobodyさん:2009/04/27(月) 11:53:54 ID:???
eregiを使う意味ないと思うけど今はeregよりpreg使っとけばいい
-{2,}をもっと短く書くと--+
984nobodyさん:2009/04/27(月) 12:02:11 ID:???
その処理がエスケープなんだ
985nobodyさん:2009/04/27(月) 12:47:10 ID:???
何かのフィルタアプリに引数を渡されないための処理だろうか
986nobodyさん:2009/04/27(月) 12:50:04 ID:???
ファイル指定するとこを標準入出力に切り替えるのを防ぐとかか
987nobodyさん:2009/04/27(月) 13:05:09 ID:???
ぐぐったらこれが近そうだった

13-Dec-2003 01:12
It appears as though mysql_real_escape_string doesn't get rid of mysql comments, i.e. '--'; I want it to do so, not for security issues but just to keep from having partially inserted data. ...

function escape_data($data){
global $dbc;
$pattern='-{2,}';
$data=eregi_replace($pattern,'',$data);
return mysql_real_escape_string($data,$dbc);
}
で、Mysqlのマニュアルを見てみると
http://dev.mysql.com/doc/refman/5.1/ja/ansi-diff-comments.html

SQL中に--があった場合、それ以降がコメントと見なされて欠落する問題が先史時代にはあったようだ
それにしても --+ を丸ごと削除ってのは思い切った処理だな
988nobodyさん:2009/04/27(月) 13:31:30 ID:???
SQLは -- がコメントなのはどのRDBMSでもそうだが、それ落としてどうすんの、とは思った。
989nobodyさん:2009/04/27(月) 13:33:28 ID:???
謎だな
990nobodyさん:2009/04/27(月) 15:26:21 ID:3y+KLnhW
CSSファイルの特定のスタイルを取得したいと思います。

$css = 'a:link{background-color:#ffffff;color:#003399;}';
preg_match('/a:link{.*?color:#(.*?);/is',$css,$style);

とし、「color:#003399」の「003399」だけ取得したいのですが、
background-colorの方を取得してしまいます。
どういう正規表現を書けばいいのでしょうか?
991nobodyさん:2009/04/27(月) 15:41:39 ID:???
background-colorが引っかからない正規表現を書けばいいじゃん
992nobodyさん:2009/04/27(月) 18:43:11 ID:???
>>971
できる。

なんかの教科書に書いてあった。
993nobodyさん:2009/04/27(月) 18:44:00 ID:???
>>972
もっとちゃんと教えろよ。バカ>>973
994nobodyさん:2009/04/27(月) 18:46:46 ID:???
>>973
できる
キャッシュを残しておいて、それを読みに行くように設定すればいい
ただし、ショッピングカートとかで不具合が出ても責任はとらない
995nobodyさん:2009/04/27(月) 19:13:23 ID:???
同じクッキー名でset_cookie()を複数回読んだときに、
最後の1回だけを有効にするようなことはできますか。
996nobodyさん:2009/04/27(月) 20:12:57 ID:???
if($test == 1){$result = 'OK'}を1だけでなく1、2、3のいずれか
など3つ以上の複数の場合にTRUEとするにはIFを入れ子にするしか
ないのでしょうか?
$test == (1,2,3)みたいに簡潔に記述できないものでしょうか
997nobodyさん:2009/04/27(月) 20:18:13 ID:???
>>996
OR演算子
998nobodyさん:2009/04/27(月) 20:24:03 ID:???
>>996
さんくす!
999nobodyさん:2009/04/27(月) 20:25:20 ID:???

>>997
さんくす!!
1000nobodyさん:2009/04/27(月) 20:54:30 ID:???
in_arrayで良くね?
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。