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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん2009/04/06(月) 04:14:58ID:???
質問者はまず>>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等)・フレームワークは各該当スレへ
0002nobodyさん2009/04/06(月) 04:16:03ID:???
■過去ログ
【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/
0003nobodyさん2009/04/06(月) 04:16:45ID:???
関連リンク
■本家マニュアル   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/
0004nobodyさん2009/04/06(月) 04:17:27ID:???
【簡易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プログラムとして実行された結果になる。
0005nobodyさん2009/04/06(月) 04:18:29ID:???
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に保存?
 → 好きにしてください
0006nobodyさん2009/04/06(月) 07:48:13ID:???
姉妹スレ

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

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

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

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



あと
---------------------------------------------------------------------
最近のスクリプト言語は機能が多く、基本的な機能はほとんど実装されているので、
アルゴリズムをどうこうするより、どの機能を使うか選ぶ方が重要だったりしますね(コーディングの効率的にも)。
---------------------------------------------------------------------
0011nobodyさん2009/04/06(月) 12:43:03ID:???
>>9
それとforeachは配列を回すものだから勘違いしてることに気づこうね
君の場合はfopenを使う場面じゃないから
0012nobodyさん2009/04/06(月) 12:52:50ID: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()
)
0013nobodyさん2009/04/06(月) 13:09:48ID:???
順に代入すればいい
0014nobodyさん2009/04/06(月) 13:14:31ID:???
foreach($input as $a){
foreach($a as $b){
$output[]=$b;
}
}
001572009/04/06(月) 13:42:50ID:???
>>10
foreach使ってませんね。
簡単だと思ったのですが、難しいのかな?
0016nobodyさん2009/04/06(月) 13:46:54ID:???
>>15
当たり前だろ
fopenで開いたファイルは配列じゃないから無理に決まってるだろ
何でそんなにfopenにこだわるのか書け
0017nobodyさん2009/04/06(月) 13:50:40ID:???
>>7
fopenの意味を理解してない証拠
出直しておいで
001872009/04/06(月) 13:55:08ID:???
>>16
昔知り合いに作ってもらった。
そのスクリプト忘れて知り合いと連絡取れないのでここで聞いた。
ここの人なら簡単にできると思った。
0019nobodyさん2009/04/06(月) 13:58:22ID:???
>>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;
0020nobodyさん2009/04/06(月) 13:59:08ID:???
>>18
とりあえず、言動に気をつけましょう
そんなんでは教えてもらえませんよ
0021192009/04/06(月) 14:02:08ID:???
欲読め

最近のスクリプト言語は機能が多く、基本的な機能はほとんど実装されているので、
アルゴリズムをどうこうするより、どの機能を使うか選ぶ方が重要だったりしますね(コーディングの効率的にも)。
002272009/04/06(月) 14:17:56ID:???
じゃあwhileでもいいです。
でも>>19のように fgets($h,4096);←4096とか数字は入れたくない。なぜならすべてのファイルに対応できないから。
これでお願いします。
0023nobodyさん2009/04/06(月) 14:19:19ID:???
>>22

>>20
0024nobodyさん2009/04/06(月) 14:20:05ID:???
>>10>>19を読めば自分でできますよね
0025nobodyさん2009/04/06(月) 14:21:09ID:???
>>7
答えは出てますね
ここは手取り足取りスレじゃないんで
>>7はもう放置でおk

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


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

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

try
{

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

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

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

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


てst

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

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

>>1は死ね
0072nobodyさん2009/04/07(火) 06:14:03ID:???
出さなくていいほうがあるんだからそっちいけカス
0073nobodyさん2009/04/07(火) 14:08:44ID: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
}
------------------------------
0074nobodyさん2009/04/07(火) 14:47:40ID:???
>>73
ディストリは何使ってるんだ?それによって答えが若星変わる
0075nobodyさん2009/04/07(火) 16:31:53ID:4/ZzdyJu
>>74
ありがとうございます。
Red Hat Enterprise Linux ES release 3 です。
0076nobodyさん2009/04/07(火) 16:35:07ID:???
>>75
ああ、RHか
企業参入後のそれは使ったことないから控えとくわ
0077nobodyさん2009/04/07(火) 16:38:40ID:???
>>73
ディストリとか関係ないからw
/etc/logrotate.d/httpd にログファイルのパスを追加するだけ。
0078nobodyさん2009/04/07(火) 17:30:41ID: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
}
------------------------------
0079nobodyさん2009/04/07(火) 17:35:09ID:???
>>77
覚えたてで使いたかったんだろ。
0080nobodyさん2009/04/07(火) 19:57:49ID:???
質問初心者クンはここを見て質問の仕方を覚えてこい
ttp://www.gekiura.com/guest/m0005418.html
0081nobodyさん2009/04/07(火) 20:12:36ID:???
>>80
注意
0082nobodyさん2009/04/07(火) 21:57:01ID:nY33/bGj
csvファイルAからcsvファイルBへ特定の行だけを移動したいと思ってます。
チェックボックスで選ばれた行をAから削除しBへ書き込むプログラムを
色々考えたのですがさっぱり検討もつかず1週間経ちます
どうかヒントだけでもいいので教えてください。
0083nobodyさん2009/04/07(火) 22:09:02ID:???
ファイルを2つ同時に開いて出したり入れたり
0084nobodyさん2009/04/07(火) 22:11:16ID:???
csvのカラム構造はどうなってるのさ
一意なキーがあればあとは簡単だと思うが
0085nobodyさん2009/04/07(火) 22:58:39ID:???
ttp://wikiwiki.jp/web/

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

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

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

(参考)PHPと16人の仲間達 : is_numeric は・・・なぁ
http://php16.exblog.jp/4720976/
0096nobodyさん2009/04/08(水) 13:12:20ID:???
頻出すぎて萎える
0097nobodyさん2009/04/08(水) 13:16:37ID:???
>>95
試してないけどこれは?
$s = チェックする値
if($s<0)echo "負の数です";
0098nobodyさん2009/04/08(水) 13:16:47ID:???
pregだと数値か文字列か判別できんだろ
0099952009/04/08(水) 13:45:02ID: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)
しか思いつかないのですが、他に何か良い方法はないでしょうか?
0100nobodyさん2009/04/08(水) 13:48:37ID:???
>>99
それ、間違ってるだろ。とりあえず。
preg_match('/^[1-9]+\d*$/D', $param)
0101nobodyさん2009/04/08(水) 13:49:06ID:???
"+1"はどうなのよ"+0"はどうなのよ
0102952009/04/08(水) 13:56:41ID:cjj/9xGO
>>100
それは >>99の "0001" が trueになりませんし、
"0"がtrueになってしまいます。

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

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

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

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

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

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



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

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


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

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

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

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

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

<?php $file = file_get_contents("http://jp.php.net/manual/ja/indexes.php";);
echo $file;
?>
0123nobodyさん2009/04/08(水) 23:33:25ID:???
はい?違う内容って?
0124nobodyさん2009/04/09(木) 00:04:47ID: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」しか取得できませんでした。
0125nobodyさん2009/04/09(木) 00:35:29ID:???
>93
基本は、ループの頭に差し掛かった時点でループ回数が分かる場合はfor。
ループを回してみないと分からない場合はwhile。
whileの場合はループ変数がどう変わるかを意識しながらコードを読まなければいけない。
forならば基本的にループ回数はループに入る時点で分かるので、ラクに読める。

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

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

初心者的な質問ですいません。。。
0128nobodyさん2009/04/09(木) 02:19:15ID:???
>>127
http://ja.wikipedia.org/wiki/URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89
0129nobodyさん2009/04/09(木) 03:11:40ID:???
>>127
RFC1738とその関連文献を見るといいよ
0130nobodyさん2009/04/09(木) 05:12:24ID:???
グーグルランクをPHPで取得する方法がわかりません
01311302009/04/09(木) 05:15:38ID:sBmn/pA0
グーグルランク取得したいです。PHPで
でも、その方法が調べてもわからないんです
PHP暦は一年でそこそこです
01321242009/04/09(木) 08:53:26ID:???
>>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を取得する方法が解説されていました。
0133nobodyさん2009/04/09(木) 09:01:18ID:???
>>124
preg_match_all("/[a-zA-Z0-9]+/", $str, $regs);
$result = implode("",$regs["0"]);
0134nobodyさん2009/04/09(木) 09:03:14ID:???
正規表現(笑)
01351242009/04/09(木) 09:12:16ID:???
自己解決しました。

$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
01361242009/04/09(木) 09:14:20ID:???
>>133
implodeを使えば良いんですね!
どうもありがとうございます。
01371242009/04/09(木) 09:19:33ID:???
>>134
正規表現(涙)は、一度本を読んだんですが、頭に入らないです><
誰かチートシート(早見表)を作って配布してくれないですかね?
…てか、言いだしっぺ=自分で叩き台を作って、ここで添削してもらえばいいかな?
01381242009/04/09(木) 09:44:05ID:???
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
0139nobodyさん2009/04/09(木) 10:21:07ID:3wJSGAQj
mkdirでディレクトリを作成する時、開発環境(WinXP)では簡単に作成されますが、
ネットのLinuxサーバ上ではパーミッションの問題で作成出来ない場合があります。

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

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

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

みたいな感じで良いですかね?
0143nobodyさん2009/04/09(木) 12:52:32ID: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ファイルを書き換えればよろしいでしょうか?
0144nobodyさん2009/04/09(木) 12:53:27ID: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ファイルを書き換えればよろしいでしょうか?
0145nobodyさん2009/04/09(木) 12:59:56ID: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;
}

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

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

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

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

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

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

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

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

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

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

やはりforを使うのが普通なのですね。
いちおう、後学のためにforeachを使って途中から開始する方法も教えていただけないでしょうか?
0174nobodyさん2009/04/10(金) 10:58:47ID:???
forで初期indexがわかってる時しか使えないでしょ。
seekしてiterator使った方がいいよ。
0175nobodyさん2009/04/10(金) 11:03:41ID:???
>>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;
 }
}
0176nobodyさん2009/04/10(金) 11:11:03ID:???
foreach自体に途中から始める機能はないけど

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

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

>>176
array_sliceで途中から取り出すというのは思いつきませんでした!
これは使えそうですね!
0179nobodyさん2009/04/10(金) 11:32:44ID:???
>>176
プチマジレスするとforeachの中でarray_sliceすると回すたびに関数が実行されるから
一度別の配列に入れるのがいい
0180nobodyさん2009/04/10(金) 11:41:47ID:???
マジレスするとforでやりなYO
0181nobodyさん2009/04/10(金) 11:44:44ID:???
>>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";
0182nobodyさん2009/04/10(金) 11:50:13ID:???
>>178
$ai = new ArrayIterator(array(1, 3, 5, 7, 9));
$ai->seek(2);
while ($ai->valid()) {
echo $ai->current();
$ai->next();
}
0183nobodyさん2009/04/10(金) 11:53:22ID:???
>>175
forの中にcount入れるとかナイワ
0184nobodyさん2009/04/10(金) 11:55:38ID:FoG5RXFZ
プロキシでHPにアクセスする人います
80番ポートでアクセスしたとか8080番ポートでアクセスしたとか何番ポートを使ってアクセスしたかを調べたいのですが
どのような関数を使うのでしょうか?
0185nobodyさん2009/04/10(金) 12:00:51ID:???
>>183
よく嫁foreachだろ
forはiで現在位置がわかるが
foreachはわからないからな
0186nobodyさん2009/04/10(金) 12:00:54ID:/dNSLV40
ttp://www.phppro.jp/phpmanual/php/filters.string.html
文字列フィルタについて質問です
上記ページと公式サイトには例が4つまで載ってるのですが
これはあくまでも一例で他にもあるのでしょうか?
もしよろしければ掲載されてないコードをご教示お願い致します
0187nobodyさん2009/04/10(金) 12:01:22ID:???
>>179
こうやってもhogeは一度だけ表示されるけどもしかしてarray_sliceって特別な実行のされ方?

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

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

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

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

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

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

配列のループだけでもいろいろなやり方があって、勉強になります!
質問してみてよかったです!
0194nobodyさん2009/04/10(金) 13:04:28ID:???
// テスト用変数
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);
0195nobodyさん2009/04/10(金) 13:05:15ID:???
>>192
マニュアル読め。

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

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

ベンチマーク結果

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

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

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

http://jp.php.net/manual/ja/control-structures.foreach.php
0202nobodyさん2009/04/10(金) 13:16:50ID:???
さてベンチマークの俺の出番ですね
0203nobodyさん2009/04/10(金) 13:19:31ID:???
>>202
お願いします。勇者!
0204nobodyさん2009/04/10(金) 13:21:58ID:???
// テスト用変数
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);
0205nobodyさん2009/04/10(金) 13:22:39ID:???
続き

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

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

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

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

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

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

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

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

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


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

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

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

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

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

.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=<AAAAAAAAA@tba.t-com.ne.jp>, 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=<YYYYYYYYYY@ZZZZZZZZ.homeip.net>, relay=local, delay=0, status=sent (delivered to command: /usr/bin/php /var/www/html/test2.php)
postfix/qmgr[3669]: 2895E5DC486: removed
0248nobodyさん2009/04/11(土) 01:44:12ID:???
パフォーマンス云々よりも
count()っていうのはループ中に値が変わる可能性があるわけで
バグによってループする回数が変わってしまう危険性

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

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

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

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

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

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

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

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

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

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

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

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

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

phpは5.2.6です
0263nobodyさん2009/04/11(土) 08:31:57ID:???
コードが長けりゃどこかにうpすればいいのに
02642472009/04/11(土) 09:40:31ID:???
>>255
error_logはsystemの戻り値の判定のところに書けばいいの?
0265nobodyさん2009/04/11(土) 10:03:46ID:???
とりあえず、どこまで出来てるのか確認するのが基本
だから、<?phpの後でいいんじゃね?
02662472009/04/11(土) 10:37:14ID:???
エラーログを吐き出すようにしてみました。
単体で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");
?>
02672472009/04/11(土) 10:48:01ID:???
forwardでコマンドは実行されているみたいですがtest2.phpは動いていない。
・.forwardの中が間違っている。→/usr/bin/phpは存在する。 
               →/var/www/html/test2.phpでtest2.phpを
                動かせる。
・パーミッションが間違っている。→.forwardを600 test2.phpを705or755

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

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

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

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

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

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

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

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

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

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

>>282
できた! 

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

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

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

みたいな感じでファイルを保存せずImagePng($output_image);のように画像だけ表示したいのですが
0289nobodyさん2009/04/11(土) 16:23:20ID:???
>>288
http://jp.php.net/manual/ja/function.imagepng.php
0290nobodyさん2009/04/11(土) 21:29:10ID:???
>>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;
0291nobodyさん2009/04/11(土) 22:15:46ID:???
レスありがとうございます。
まだ帰れず試せないのですがもどったらやってみてまた報告します。
0292nobodyさん2009/04/11(土) 22:32:59ID:???
さくらインターネットスレで質問したのですが誰もわかる人がいないので
こちらにて質問させて下さい。


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

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

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

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

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

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

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

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

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

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

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

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

php -v

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

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

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

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

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

127.0.0.1 localhost
#::1 localhost

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

この質問キャンセルするわ
0488nobodyさん2009/04/16(木) 11:16:38ID: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
というエラーが出てしまいます
原因個所がわかりません
どなたかご指摘お願い致します
0489nobodyさん2009/04/16(木) 11:17:23ID:???
public function
0490nobodyさん2009/04/16(木) 11:17:42ID:???
>>488
public function
0491nobodyさん2009/04/16(木) 11:28:45ID: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の変数を出力する場合はどうしたらよろしいでしょうか?
0492nobodyさん2009/04/16(木) 11:31:29ID:???
セッターがあるならゲッター作ればいいじゃん
0493nobodyさん2009/04/16(木) 11:56:36ID:pfNZqllC
クラスの解説サイトを探してるのですがPHP4のしか見つかりません
PHP5でクラスのサンプルコードついてる入門サイトを教えてください
0494nobodyさん2009/04/16(木) 12:07:23ID:???
>>493
php.netでいいやん。
http://jp.php.net/manual/ja/language.oop5.php
0495nobodyさん2009/04/16(木) 12:08:47ID:???
>>492
セッターゲッターって初めて聞いた俺恥ずかしいwwwwwww
今までセット関数・ゲット関数って言ってたwww
0496nobodyさん2009/04/16(木) 14:54:55ID:???
>>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 のように語幹部が揃っているものをいう。
0497nobodyさん2009/04/16(木) 14:56:42ID:???
>>496
うん
俺もJavaやりはじめてsetXXXとgetXXX使い始めたけど(スクリプトの改造がメインで)
その言い方聞いたのは今日がはじめてだったわ
0498nobodyさん2009/04/16(木) 15:59:40ID:???
下駄と雪駄か
0499nobodyさん2009/04/16(木) 20:09:37ID: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は変わることがあるので、
テンプレートでデザイナが変更できるようにしたい。

こういうのは皆さんどうやって書いてますか?
0500nobodyさん2009/04/16(木) 21:00:43ID:???
foreachで回してifで分岐
0501nobodyさん2009/04/16(木) 21:14:34ID:???
$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_;

つづく
0502nobodyさん2009/04/16(木) 21:15:26ID:???
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_;

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

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

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

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

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

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

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

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

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

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

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

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

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

消えたら困るものはクッキーに保存してはいけない。
何かを保存するとしても、掲示板の名前欄みたいな、消えてもいいものだけにしとけ。
0541nobodyさん2009/04/18(土) 02:14:41ID:???
すっきりしますた。ありがたや。
0542nobodyさん2009/04/18(土) 02:14:48ID: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である、といった感じです。

断片的な情報しかなく稚拙な説明で申し訳ございませんが、どうかご教授下さい。
0543nobodyさん2009/04/18(土) 02:17:52ID:???
http://pc11.2ch.net/test/read.cgi/php/1023791370/l50
0544nobodyさん2009/04/18(土) 04:57:19ID:???
>>542
mod_rewrite
05455242009/04/18(土) 11:10:50ID:RfYbPRbr
返信が遅れてすみません。

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

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

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

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

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

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

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

>>553
だから、そいつをやさしく教えてくれ;;
そのオブジェクト指向ってのがよくわからんのだ><
0556nobodyさん2009/04/18(土) 14:12:11ID:???
>>552
たぶんこいつはスパゲッティコード
0557nobodyさん2009/04/18(土) 14:14:54ID:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
0558nobodyさん2009/04/18(土) 14:40:42ID:???
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:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
0559nobodyさん2009/04/18(土) 15:54:05ID:???
>551
・自分の書いたコードを晒して、ヒマな人に添削してもらう
・腕のいい奴の書いたコードを読む
前者のほうが力になりやすいかね。
屑コードを、クラスを使った近代的なコードに書き直していく過程を見るのが一番わかり易い。
そこらで公開されているPHPのコードはゴミと芸術品の両極端が多いから、初級→中級の勉強には微妙。

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



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

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

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

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

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

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

一応削除したい要素より後ろの要素を一つずつ前に詰めていく方法もありますが、一発でできるような方法があれば教えてください。
0581nobodyさん2009/04/19(日) 00:32:27ID:???
>>580
http://jp.php.net/manual/ja/function.unset.php

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

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

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

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

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

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

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

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

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

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

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

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

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

とか
0622nobodyさん2009/04/20(月) 20:11:16ID:???
>>621
通報しました
0623nobodyさん2009/04/20(月) 20:26:21ID:???
>>620
$rows = file('hoge.txt');
0624nobodyさん2009/04/20(月) 20:29:36ID:???
ごめん読んでなかった
明示的にロックしたいならやっぱflockで
freadはデフォルトでは行末まで読み込みでしょ
0625nobodyさん2009/04/20(月) 20:31:09ID:???
ありゃごめん、phpのfreadは違うのか
0626nobodyさん2009/04/20(月) 20:47:02ID:???
グダグダだなw
06276172009/04/20(月) 21:17:31ID: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);
0628nobodyさん2009/04/20(月) 21:19:29ID:???
かぶるって何?
0629nobodyさん2009/04/20(月) 21:20:03ID:???
>>628
俺もそれ書き込もうとしたけどめんどくさくなってやめたwwww
06306282009/04/20(月) 21:21:44ID:???
まぁそりゃ
abc
acb

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

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

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

=y速報】オラクャ汲ェサンを買収
http://headlines.yahoo.co.jp/hl?a=20090420-00000004-zdn_ait-sci
0639nobodyさん2009/04/21(火) 01:05:36ID:???
いや別に何も終らんだろ。
エンタープライズ方面への昇格は絶望的になったが。
0640nobodyさん2009/04/21(火) 01:49:26ID:???
前のデータを残したまま上書きしてるのが問題
書き込む前にftruncate($fp, 0);とかしてファイルをクリアしてから書き込めばいい
書き出しが完了する前にプロセスが落ちるとファイルが壊れるので、renameの()方が安全とは思う
しかしちょっとしたテキストなら `sed -e '/cba/d' test.txt`; でいいような木がする
0641nobodyさん2009/04/21(火) 13:14:45ID:aCugoNL+
$a=1;$b=1;$c=1;$d=1と$ary=array(1,1,1,1)はどちらが鯖に負荷がかかりませんか?
変数の数と値についてはサンプルのため簡略化しましたがどちらも一定ではないと捉えてください
0642nobodyさん2009/04/21(火) 13:19:13ID:???
どっちでも変わらん
0643nobodyさん2009/04/21(火) 14:10:04ID:???
【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でお願いします
06446432009/04/21(火) 14:13:13ID:???
ttp://www.rider-n.sakura.ne.jp/regexp/regexp.php
ここで色々試してるのですが、どうにもうまく動きません
どうかご教授おねがいします
0645nobodyさん2009/04/21(火) 14:53:31ID:???
5.26というバージョンはないんだぜ
06466432009/04/21(火) 14:58:44ID:???
ミスでした
【PHPのバージョン】PHP Version 5.2.6
でお願いします
0647nobodyさん2009/04/21(火) 14:59:50ID:???
おk
今調べてやるからちょっと待ってろ
06486432009/04/21(火) 15:00:35ID:???
>>647
お願いします
0649nobodyさん2009/04/21(火) 15:06:10ID:???
>>644リンク先のようなサイトあるのか
おれもつくろかな^^
0650nobodyさん2009/04/21(火) 15:11:53ID:???
一番はじめに回答できた方は下スレ公式認定回答者に認定します
0651nobodyさん2009/04/21(火) 15:21:52ID:???
例で使うドメインはexample.comにしろってテンプレ書いてあるじゃんよく読めよ
0652nobodyさん2009/04/21(火) 15:23:55ID:???
答えられない野郎がいきがるんじゃねえぞ!!!!!!!
0653nobodyさん2009/04/21(火) 15:28:23ID:???
^hoge|(?!<[^>]*>)hoge(?!<[^>]*>)

パターンがよくわからん、こういう感じ?
06546432009/04/21(火) 15:31:19ID:???
>>651
いえ、hrefの中身にもhogeがあった場合、
そこも無視してほしいのです
0655nobodyさん2009/04/21(火) 15:34:57ID:???
>>651
回答も添えられないだけのただの煽り厨(笑)
06566432009/04/21(火) 15:37:10ID:???
>>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に変える】なのです
0657nobodyさん2009/04/21(火) 15:39:50ID:???
一度Aタグで囲まれている部分を別のものに置き換えてからやってみれば?
0658nobodyさん2009/04/21(火) 15:39:52ID:???
そこまで執念深くhogeを置換したい理由は?
なんかされたの?
0659nobodyさん2009/04/21(火) 15:41:48ID:???
自分の力では解決できなくなると理由を捻じ曲げようとする低レベルのおじさん乙wwww
0660nobodyさん2009/04/21(火) 15:42:52ID:???
658じゃないが、一応何のために置き換えるか聞いておくと
別のやり方が見つかるかもしれんのじゃないかな?

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

メールアドレス置換
<a href="mailto:0909999999@xxxx.ne.jp">0909999999@xxxx.ne.jp</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とメールアドレスの変換を行った部分については無視し、
電話番号のリンクだけを作りたいと、そう思って質問した次第です
06696432009/04/21(火) 16:02:38ID:???
>>657
それが私のスキルでは一番早そうですね
一度それで組んでみます
ありがとうございます

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

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

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

これどういう意味?


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

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

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

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

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

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

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

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

textdata.txtがあります
このファイルはオフラインで更新した後に、サーバにアップロードします
この場合textdata.txtの内容を出力するときにhtmlspecialcharsは行うべきでしょうか?
0694nobodyさん2009/04/21(火) 19:41:39ID:???
textdata.txtは他人はいじるの?
06956932009/04/21(火) 19:49:32ID:gWZ6QvqO
いじりません
私が自宅のパソコンで編集してアップロードするだけで、他の人は一切編集することがありません
0696nobodyさん2009/04/21(火) 19:57:41ID:???
>>695
そしたらエスケープはしなくてよい。
自分でメモ帳で手打ちでHTMLを編集して
自分のホームページをアップロードしてるのと同じ。
0697nobodyさん2009/04/21(火) 19:59:20ID:W2YbvY8A
すまない/usr/bin/phpでhoge.phpをsystem()関数を利用して実行しようとしてるんだけど、
実行してもfalseが返ってくる。ほぼまる一日悩んでるんだけど、よくあるFAQがあったら教えてください
OSはCentOSでPHP5.1.6 Apache2.2.3
php.iniのsafe_modeはoffにしてあって、シェルから目的とするphpを実行するとしっかり動作するんだが、
system()から実行できない・・・
0698nobodyさん2009/04/21(火) 20:02:20ID:???
肝心のどう書いたかぐらい書けばいいのに
06996972009/04/21(火) 20:10:44ID:W2YbvY8A
>>698
ん、俺ですか?
0700nobodyさん2009/04/21(火) 20:39:39ID:???
>>697
以前、同じような書き込みを見たことがあるような記憶があるような。
bash -c php うんたら でもダメなの?
0701nobodyさん2009/04/21(火) 20:47:43ID:???
>>696
トロイの木馬に感染して自分のPCから悪意のあるコードがアップロードされたら?
0702nobodyさん2009/04/21(火) 21:00:07ID:???
悪意のあるHP管理者がファイルをアップロードしたらマズくない?
サニタイズされてたほうがいいんじゃないの?
0703nobodyさん2009/04/21(火) 21:23:43ID:???
>>702
おまえはなにをいってるんだ
0704nobodyさん2009/04/21(火) 22:04:48ID: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つしか入りません。どこをどう変えたらいいのでしょうか?
0705nobodyさん2009/04/21(火) 22:12:04ID:???
$this->list[] = array(... あるいは array_push($this->list, array()); でどうか
詳しくはマニュアルを読め
0706nobodyさん2009/04/21(火) 22:23:58ID:???
>>702
>>695が多重人格の可能性もあるからってことか。セキュアだなおまえは
0707nobodyさん2009/04/21(火) 22:59:38ID:???
>>704
$this->list = array($key=>$val);

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

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

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

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

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

/usr/bin/php ←これが間違ってるか
使えないコマンドを発行してる。
systemの中のコマンドをlsとか簡単なコマンドに変えてやってみ。
あとphpが/usr/bin/以外にないかfindしてみ
0718nobodyさん2009/04/22(水) 14:02:27ID: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,}〜$/
〜以降が思いつきません。

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

でよかないですか?
07217182009/04/22(水) 14:15:35ID:1Gt+zU8A
>>719
希望通りの動作をしました。ありがとうございます。
ついでにD修飾子の意味を教えていただけるとありがたいです。
0722nobodyさん2009/04/22(水) 14:17:56ID:???
まずググりました?
07237182009/04/22(水) 14:21:18ID:1Gt+zU8A
>>722
正規表現内で使用(\D)すると[^0-9]ということは分かりましたが
修飾子として使用するとどのような動作になるのかを明記しているサイトを見つけることができませんでした。
0724nobodyさん2009/04/22(水) 14:24:26ID:???
ググるといろいろ出てますねぇ・・・
ttp://www.google.co.jp/search?hl=ja&q=%E8%A3%85%E9%A3%BE%E5%AD%90%E3%80%80D+%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE&btnG=Google+%E6%A4%9C%E7%B4%A2&lr=&aq=f&oq=
07257182009/04/22(水) 14:30:29ID:1Gt+zU8A
>>724
装飾子ってのは修飾子のことを指してるんだとは思いますが、
その検索結果内には/regex/Dではなく/regex\D/の解説結果しかないと思います。
>>723で明記した通りです。
0726nobodyさん2009/04/22(水) 14:33:58ID:???
ゆとりは疲れるぜw
マニュアルも読まないのなw
ttp://php.benscom.com/manual/ja/reference.pcre.pattern.modifiers.php
0727nobodyさん2009/04/22(水) 14:51:06ID:MEQMnIq/
ttp://upthx.net/phpinfo.php

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

html中に

<?php
・・・
?>

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

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

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

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

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

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

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

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

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

・output_bufferingは0にするべきか
・mb_string不使用のレンタルサーバに対応するコードを書くためにmb_stringを使わないべきか
・セーフモードをオンにするだけでいいか。safe_mode_exec_dirなどセーフモードに関する設定も行うべきか
・[mbstring]項目のmbstring.http_inputなどの設定の仕方
0747nobodyさん2009/04/23(木) 11:22:01ID:???
>>745
ttp://jp2.php.net/manual/ja/function.similar-text.php
07487412009/04/23(木) 11:25:32ID: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>
0749nobodyさん2009/04/23(木) 11:30:20ID:???
>>744
それが分かる人はOffでいいと思う。
0750nobodyさん2009/04/23(木) 11:41:26ID:???
>>743>>749はPHP歴一か月未満とみた
0751nobodyさん2009/04/23(木) 11:51:44ID:???
>>749
いや、逆だろ
Onの方が余計混乱するって
07527452009/04/23(木) 12:03:37ID:ai/dLDOC
>>747
ありがとうございます。
たしかにこれでテキスト間を調べることは出来ますが、
やっぱり、ファイル名を調べるには、
ディレクトリ一覧を取得する方法しかないのでしょうか?
0753nobodyさん2009/04/23(木) 12:03:58ID:aSD7OG+w
ドコモでサイトを閲覧したとき、戻るボタンで前のページの戻ったとき、
キャッシュがなくて再読み込みされるらしいのですが、何が原因なのでしょうか
auでテストしてみたところ、キャッシュが残っていてすぐに表示されました
0754nobodyさん2009/04/23(木) 12:27:15ID:???
>>745
その例だと曖昧検索じゃなくてただの部分一致だと思うけど、
単なる部分一致なら
http://jp.php.net/manual/ja/function.glob.php
で出来るよ。
0755nobodyさん2009/04/23(木) 12:37:06ID:???
>>752
そういうことになりますね
0756nobodyさん2009/04/23(木) 13:19:05ID:???
ドコモ?w
あのクッキーは使えねーどこも?w
あんなキャリア無視していいよ。
0757nobodyさん2009/04/23(木) 13:21:52ID:aSD7OG+w
>>756
流石にお客さんの要望となると無視できないです・・・
0758nobodyさん2009/04/23(木) 13:21:58ID:???
こんなことで嘆いているks野郎が働いてて
全キャリア対応できるノウハウを持ってる優秀な俺が無職でいる日本
0759nobodyさん2009/04/23(木) 13:45:30ID:???
実際働いたら優秀でもなんでもない口だけニートか
0760nobodyさん2009/04/23(木) 13:47:34ID:???
新米社員必死だな
07617452009/04/23(木) 14:02:10ID:???
>>754,755
globもファイル内一覧を検索する関数ですし、
やっぱりそうするしかないんですね。
勉強になりました。ありがとうございました。
0762nobodyさん2009/04/23(木) 14:04:59ID:???
>>753
DoCoMoの試験機無いの?
0763nobodyさん2009/04/23(木) 14:05:35ID:???
ない
0764nobodyさん2009/04/23(木) 15:02:49ID:???
>>763
調べてみたらあるじゃん
ttp://www.nttdocomo.co.jp/service/imode/make/content/html/tool2/
0765nobodyさん2009/04/23(木) 15:03:37ID:???
ああ、試験機って手元で実際に使えるものかと思ってた
それってキャッシュの設定までできるの?
0766nobodyさん2009/04/23(木) 15:13:18ID:???
>>753
というか、仕事なのにこんなとこで聞く程度のスキルでお金もらえるの?
どこの会社だろう。
いいな。うらやましい。2chで情報もらって金儲けか。
0767nobodyさん2009/04/23(木) 15:18:36ID:???
>>753みたいな教えて君が俺たちを人力検索ボランティアに利用して金もらってて
俺みたいな何でも一人でこなせる優秀な人材が無職な日本
0768nobodyさん2009/04/23(木) 15:20:25ID:???
横槍すまんが

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

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

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

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

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

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

OK

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

皆さんありがとうございました
0906nobodyさん2009/04/25(土) 07:39:56ID:???
おまいらこんな基本的なこと知らんのか
for($i=0,$max=count($array); $i<$max; $i++){ }
0907nobodyさん2009/04/25(土) 08:56:13ID:???
なんだこの流れw
0908nobodyさん2009/04/25(土) 11:57:17ID:???
ここ最近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とかでもできるけど、マイナーで特殊な言語すぎるので割愛。
0909nobodyさん2009/04/25(土) 12:05:49ID:???
アホの晒し合いみたいになってきたな
0910nobodyさん2009/04/25(土) 12:38:36ID:???
それがPHPerクオリティです。
0911nobodyさん2009/04/25(土) 15:49:54ID:aOAtk1JY
1通のメールに複数ファイルが添付されている場合、どうやってそれぞれを取り出せばいいのでしょ。
0912nobodyさん2009/04/25(土) 16:47:37ID:???
普通にバウンダリーで切り分けてヘッダのエンコーディング見てデコードすればよくね
0913nobodyさん2009/04/25(土) 18:27:23ID: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構成ページ)にカウントさせたいんです
よろしくお願いします
0914nobodyさん2009/04/25(土) 18:32:58ID:???
エロサイト業者乙
09159132009/04/25(土) 18:35:49ID:???
エロ業者ではないです
コンテンツがあまりないので、右flame部分にリンクを書いているのですが、
相手のサイトの逆アクセスランキングにはそのページが登録されてしまって、
余り意味がないので、ちゃんとしたページにリンクさせたいんです
0916nobodyさん2009/04/25(土) 19:03:01ID:???
>>913
bbb.phplのページからaaa.phpを読み込んで表示させればおk
0917本物の9132009/04/25(土) 19:03:41ID:???
>>914
まじきめえwwwwwwwwwww氏ねks

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

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

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

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

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

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

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


この右側のrecent news はどうやって作ってるんでしょうか
0944nobodyさん2009/04/26(日) 03:27:29ID:???
select * from news order by time desc limit 0, 20
0945nobodyさん2009/04/26(日) 06:12:55ID:???
preg_match('/<body.*?(<strong.+?<\/strong>).*?<\/body>/is',$html,$array);
適当にこんな感じ?
0946nobodyさん2009/04/26(日) 06:30:32ID:???
>>942
タグを取得したいの? タグ間を取得したいの?
0947nobodyさん2009/04/26(日) 11:19:37ID:3+X1AYP5
ttp://wiki.poyo.jp/にアクセスしたら自分のローカルサイトが表示されるんですけど
ウイルスでしょうか?
0948nobodyさん2009/04/26(日) 11:21:55ID:???
アクセスしてきたホストにLocationヘッダで飛ばしてるだけ
0949nobodyさん2009/04/26(日) 11:25:43ID:3+X1AYP5
ということは管理人が愉快犯ってことでしょうか?
0950nobodyさん2009/04/26(日) 12:00:20ID:???
知らんがな
管理人に意図聞けばいいんじゃね
0951nobodyさん2009/04/26(日) 12:01:38ID:3+X1AYP5
ちなみに127.0.0.1の方じゃない方のIPなんですがこれってヘッダでどのように記載するのでしょうか?
0952nobodyさん2009/04/26(日) 12:03:33ID:???
なんかの設定ミスだろ
HTTP/1.0で取ると普通のページになるな。
0953nobodyさん2009/04/26(日) 12:12:38ID:???
$_SERVER["SERVER_ADDR"]
と書かないといけないところに
$_SERVER["REMOTE_ADDR"]
と書いてしまったとか。
0954PHP大好き.php ◆Hentai.kRI 2009/04/26(日) 17:15:53ID:???
>>947にアクセスしたいけど 怖い
0955nobodyさん2009/04/26(日) 17:21:05ID:v3Zqb192
>>954
http://www.aguse.jp/?m=w&url=wiki.poyo.jp&x=0&y=0
0956nobodyさん2009/04/26(日) 17:23:53ID:???
telnet wiki.poyo.jp 80
して
GET / HTTP/1.0
リターン2回
ってやってみればいい
0957PHP大好き.php ◆Hentai.kRI 2009/04/26(日) 17:26:55ID:???
>>955
ありがとう。日本人なのね・・・
0958nobodyさん2009/04/26(日) 19:21:11ID:???
結局このローカルを表示させてしまうURLはどういうこと?
0959nobodyさん2009/04/26(日) 19:30:40ID:???
お前には脳ミソが無いのか!
つるっつるか!
0960PHP大好き.php ◆Hentai.kRI 2009/04/26(日) 19:36:12ID:???
^^;
0961nobodyさん2009/04/26(日) 19:43:06ID:???
>>958
ヘッダーでローカルに飛ばしているのでは?
0962nobodyさん2009/04/26(日) 22:29:36ID:???
メモ
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
0963nobodyさん2009/04/26(日) 22:30:25ID:???
いやん。誤爆
失礼
0964nobodyさん2009/04/26(日) 22:38:02ID:???
is_otaku
0965nobodyさん2009/04/27(月) 00:10:42ID:OUJGurX7
無料でPHPの使えるレンタルサーバ、なんてないものかしら?
0966nobodyさん2009/04/27(月) 00:12:26ID:???
星の数ほどあるよ
0967nobodyさん2009/04/27(月) 00:22:23ID:Mkjlliv0
フォームに入力させるページをPHPで作ってるんだけどその際ページの先頭に
session_start();
を記述しておくとブラウザの「リロード」を押したり、一度他のページ移動してから
元のフォームのページに戻ってくると一生懸命入力したフォーム欄が一発で空欄になるんだね(´・ω・`)

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

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

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

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

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

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

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

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

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

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

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