【PHP】下らねぇ質問はID出して書き込みやがれ 83
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2009/04/06(月) 04:14:58ID:???過去スレ、関連スレ、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:???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:???→ 確認すべきは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+bfopenで開いたファイルをforeachで1行ずつ表示するにはどうしたらいいでしょうか?
$fp = fopen("file.txt","r");
foreach(
この続きがわかりません。よろしくお願いします。
0008nobodyさん
2009/04/06(月) 11:41:43ID:???$file = file("file.txt")
foreach ($file as $v) echo $v;
00097
2009/04/06(月) 12:05:09ID:YGaHAQ+bレスありがとうございます。
fileじゃなくてfopenで開いたファイルをforeachで1行ずつ表示したいと思ってます。
よろしくお願いします。
0010nobodyさん
2009/04/06(月) 12:41:05ID:???君の用途では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:???それとforeachは配列を回すものだから勘違いしてることに気づこうね
君の場合はfopenを使う場面じゃないから
0012nobodyさん
2009/04/06(月) 12:52:50ID:JQHQzsieサンプルのため値は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($a as $b){
$output[]=$b;
}
}
0016nobodyさん
2009/04/06(月) 13:46:54ID:???当たり前だろ
fopenで開いたファイルは配列じゃないから無理に決まってるだろ
何でそんなにfopenにこだわるのか書け
00187
2009/04/06(月) 13:55:08ID:???昔知り合いに作ってもらった。
そのスクリプト忘れて知り合いと連絡取れないのでここで聞いた。
ここの人なら簡単にできると思った。
0019nobodyさん
2009/04/06(月) 13:58:22ID:???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;
002119
2009/04/06(月) 14:02:08ID:???最近のスクリプト言語は機能が多く、基本的な機能はほとんど実装されているので、
アルゴリズムをどうこうするより、どの機能を使うか選ぶ方が重要だったりしますね(コーディングの効率的にも)。
00227
2009/04/06(月) 14:17:56ID:???でも>>19のように fgets($h,4096);←4096とか数字は入れたくない。なぜならすべてのファイルに対応できないから。
これでお願いします。
00267
2009/04/06(月) 14:28:17ID:???初心者を馬鹿にするのはどうかと思いますよ(自分も初心者のくせに)
ちなみにそれやるなら
while($b = fgets($fp,4096)){ }
こっちのほうが美しいですけどね。
0028nobodyさん
2009/04/06(月) 14:43:24ID:???>?こっちのほうが美しいですけどね。
顔真っ赤っかで必死に反論考えたんだろうけど、それじゃ動きませんよっと
とりあえず態度を改めた方がいい
0031nobodyさん
2009/04/06(月) 14:55:06ID:???0032nobodyさん
2009/04/06(月) 17:44:29ID:???バカもほどほどにしろよw
0033nobodyさん
2009/04/06(月) 18:02:44ID:???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:fgZcgjRX0039nobodyさん
2009/04/06(月) 20:24:04ID:???try
{
}
catch(Exception Error)
{
Debug.WriteLine(Error.Message);
}
finally()
{
}
とかはありませんか?
0040nobodyさん
2009/04/06(月) 20:26:56ID:???0041nobodyさん
2009/04/06(月) 20:27:22ID:???gotoよりもこっち実装しろと
0042nobodyさん
2009/04/06(月) 20:27:41ID:???0044nobodyさん
2009/04/06(月) 20:59:04ID:2EYsJzxb保存せずにブラウザーに表示するにはどんな方法があるんでしょうか?
0045nobodyさん
2009/04/06(月) 21:10:53ID:???0046nobodyさん
2009/04/06(月) 22:55:44ID:Lg8L8FIC$testの値が5なら「てst」と出力するのですができますでしょうか?
<?php
if ($test == 5):
?>
てst
<?php
endif;
?>
0047nobodyさん
2009/04/06(月) 22:57:50ID:tQxsy1N70049nobodyさん
2009/04/06(月) 23:03:12ID:???ttp://jp2.php.net/manual/ja/class.exception.phpにある内容がよくわかりません
例外というのはどういう時に使うのでしょうか?
005049
2009/04/06(月) 23:03:53ID:9ymstZFd0051nobodyさん
2009/04/06(月) 23:06:56ID:5SFFX38L何を基準で時刻が表示されるのですか?
0053nobodyさん
2009/04/06(月) 23:11:19ID:???簡単な例が出てる。
http://jp2.php.net/manual/ja/language.exceptions.php
0054nobodyさん
2009/04/06(月) 23:12:17ID:???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:qkQqSy3Ewindowsです
php5.2.9を一個インストールしました
apacheを3つ(1.3と2.0と2.2)インストールしました
apacheを三つ起動してphpを動かすことはできますでしょうか?
0056nobodyさん
2009/04/06(月) 23:19:35ID:???0058nobodyさん
2009/04/06(月) 23:23:18ID:tZqDzIhTなぜだめなのでしょうか?
<?php
/*
echo 'テストです'; /* このコメントが問題を生じます */
*/
?>
0059nobodyさん
2009/04/06(月) 23:26:28ID:???ダメだからじゃないの?
http://jp.php.net/manual/ja/language.basic-syntax.comments.php
0060nobodyさん
2009/04/06(月) 23:26:33ID:LvefCDF1$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:???http://jp.php.net/manual/ja/function.fopen.php
0064nobodyさん
2009/04/06(月) 23:35:05ID:???公式でこれ$fooが整数らしいんですけど何故ですか?
公式が間違えてるのでしょうか?
0066nobodyさん
2009/04/06(月) 23:40:16ID:???$strに含まれる文字列を1bit右にずらしたいのですが思う通りの結果になりません
どなたかご教示お願い致します
$str ="abcde";
echo $str ^ 1;
006766
2009/04/06(月) 23:41:03ID:PTpMIEWr申し訳ございません
0068nobodyさん
2009/04/06(月) 23:43:47ID:???なんで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超えた^^
0072nobodyさん
2009/04/07(火) 06:14:03ID:???0073nobodyさん
2009/04/07(火) 14:08:44ID:4/ZzdyJuPHPは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
}
------------------------------
0075nobodyさん
2009/04/07(火) 16:31:53ID:4/ZzdyJuありがとうございます。
Red Hat Enterprise Linux ES release 3 です。
0077nobodyさん
2009/04/07(火) 16:38:40ID:???ディストリとか関係ないからw
/etc/logrotate.d/httpd にログファイルのパスを追加するだけ。
0078nobodyさん
2009/04/07(火) 17:30:41ID:4/ZzdyJuあ、そっか。。 ありがとうございます!
# 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
}
------------------------------
0080nobodyさん
2009/04/07(火) 19:57:49ID:???ttp://www.gekiura.com/guest/m0005418.html
0082nobodyさん
2009/04/07(火) 21:57:01ID:nY33/bGjチェックボックスで選ばれた行をAから削除しBへ書き込むプログラムを
色々考えたのですがさっぱり検討もつかず1週間経ちます
どうかヒントだけでもいいので教えてください。
0083nobodyさん
2009/04/07(火) 22:09:02ID:???0084nobodyさん
2009/04/07(火) 22:11:16ID:???一意なキーがあればあとは簡単だと思うが
0085nobodyさん
2009/04/07(火) 22:58:39ID:???一応、一問一答でwikiにためてたりスレのテンプレを記録するために借りてみた
一緒に更新お願いします
PHP用のwikiってことでお願いします
ページ下部のアフィは勝手についたもので俺には1円も入らないから気にしないで下され
0086nobodyさん
2009/04/07(火) 22:59:22ID:???0087nobodyさん
2009/04/07(火) 23:03:12ID:???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:???$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:???どっちがいいんだかいつも迷う
0093nobodyさん
2009/04/08(水) 11:11:24ID:r8DEvZ6R特にこだわりなくforでやってても問題ないでしょうか?
○○な理由で、できる限りこっちでやったほうがいいみたいなことないですかね。
よろしくお願いします。
0094nobodyさん
2009/04/08(水) 11:13:40ID:???だと、エディタが変数の色代えてくれるけど、
設定で"の中の$も代えてくれるかもしれん
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:???0098nobodyさん
2009/04/08(水) 13:16:47ID:???009995
2009/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:???それ、間違ってるだろ。とりあえず。
preg_match('/^[1-9]+\d*$/D', $param)
0101nobodyさん
2009/04/08(水) 13:49:06ID:???010295
2009/04/08(水) 13:56:41ID:cjj/9xGOそれは >>99の "0001" が trueになりませんし、
"0"がtrueになってしまいます。
>>101
どちらもfalseです。trueになるのは"正の整数"と>>95,>>99で書いています。
あと、符号を含むものはfalseのつもりでした。
しかしこの流れだと、正規表現以外なさそうですね。
0103nobodyさん
2009/04/08(水) 14:01:54ID:???http://php16.exblog.jp/6067489/
【結果】
strpos = 1.4秒
preg_match = 7.0秒
・・・あー・・・結構違いますね・・・。
寝ます。
http://php16.exblog.jp/4940100/
上記の結果は・・・
"1234" の出力になります。("1212"じゃなく)
つまり、static宣言した変数の値は
メソッド呼び出し元のインスタンスが変わっても保持されています。
なんでこうなってんだろう?
とか言ってるレベルの奴のblogだぞ?
010495
2009/04/08(水) 14:13:53ID:cjj/9xGO引用したページが私の質問の意図をうまく説明するものだったので貼りました。
他のページが全部間違いでも問題ないと思います。
0105nobodyさん
2009/04/08(水) 14:15:08ID:???is_numeric("0xFF"); // 16進表記
や
is_numeric("+0123.45e6"); // 指数表記
をTRUEとしてしまうようです。(マニュアルに書いてありますけどね)
マニュアルに書いてあるんじゃん
0106nobodyさん
2009/04/08(水) 14:16:58ID:???それ10の倍数だとfalseだけど。
ctype_digit($param) && $param > 0
でいいんじゃないの。
010795
2009/04/08(水) 14:24:10ID:???ご指摘のバグは今さっき気づいたところです。
> ctype_digit($param) && $param > 0
まさに望みどおりのものです。ありがとうございます。
010895
2009/04/08(水) 14:24:40ID:cjj/9xGO0109nobodyさん
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:???いくらみてくれはよかっても、アフィをみてほしいのか記事(内容)をみてほしいのか
意味不明なサイトじゃなきゃ問題ない。
もちろん見た目は大事だけど内容と見易さ(使いやすさ)だよ。
0113nobodyさん
2009/04/08(水) 16:59:27ID:???このスレではPHPの文法以外のことを聞いても、あんまり答えは返ってこない。
悪いこと言わないから、この辺↓に移動して聞きなおしたほうがいいと思うよ。
Webサイト制作初心者用質問スレ Part 208
http://pc11.2ch.net/test/read.cgi/hp/1238669869/
0115nobodyさん
2009/04/08(水) 17:39:59ID:9xKyaecaたとえばチャットシステムのように
数秒単位でデータの挿入、更新、削除が行われる場合ってどっちがいいんでしょうか。
どっちでも扱いやすいほうで、構いませんか?
0116nobodyさん
2009/04/08(水) 17:42:13ID:???0117nobodyさん
2009/04/08(水) 18:13:22ID:???0118nobodyさん
2009/04/08(水) 18:20:30ID:???サンクス
先ずは、見易さ第一に作り次に自分が綺麗と思うサイトのHPのデザイン
を真似する事から始めます。
※真似されたHPの管理人は怒るかもしれませんが。
0119nobodyさん
2009/04/08(水) 20:24:35ID:???使ったことないけど。
0120nobodyさん
2009/04/08(水) 22:25:24ID:???0122nobodyさん
2009/04/08(水) 23:16:49ID:tkomkeANurl先とは違う内容が$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【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:???基本は、ループの頭に差し掛かった時点でループ回数が分かる場合はfor。
ループを回してみないと分からない場合はwhile。
whileの場合はループ変数がどう変わるかを意識しながらコードを読まなければいけない。
forならば基本的にループ回数はループに入る時点で分かるので、ラクに読める。
ただまあ、例外はいっぱいある。
「1000以下の3の倍数を全て列挙」なんて場合、事前にループ回数を調べる事はできる。
だけど、「変数が1000を超えるまで繰り返す」という意図ならば、それを反映してwhileで書いた方が読みやすいわけで。
一般論にするなら、自分の意図がもっとも読者に伝わりやすい表現を選べ、という事になる。
0127nobodyさん
2009/04/09(木) 02:12:40ID:8Md27rPNある文字がURLエンコードするべきかどうかってどうやって判断すればよいでしょうか?
初心者的な質問ですいません。。。
0128nobodyさん
2009/04/09(木) 02:19:15ID:???http://ja.wikipedia.org/wiki/URL%E3%82%A8%E3%83%B3%E3%82%B3%E3%83%BC%E3%83%89
0130nobodyさん
2009/04/09(木) 05:12:24ID:???0131130
2009/04/09(木) 05:15:38ID:sBmn/pA0でも、その方法が調べてもわからないんです
PHP暦は一年でそこそこです
0132124
2009/04/09(木) 08:53:26ID:???詳しく見てないけど、結構情報があるみたいですよ
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:???preg_match_all("/[a-zA-Z0-9]+/", $str, $regs);
$result = implode("",$regs["0"]);
0134nobodyさん
2009/04/09(木) 09:03:14ID:???0135124
2009/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
0137124
2009/04/09(木) 09:19:33ID:???正規表現(涙)は、一度本を読んだんですが、頭に入らないです><
誰かチートシート(早見表)を作って配布してくれないですかね?
…てか、言いだしっぺ=自分で叩き台を作って、ここで添削してもらえばいいかな?
0138124
2009/04/09(木) 09:44:05ID:???(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ネットのLinuxサーバ上ではパーミッションの問題で作成出来ない場合があります。
その場合、「パーミッションエラーで作成できない」事を
伝える必要があると思うのですが、そう言うことを調べる関数ってあるのでしょうか?
0140nobodyさん
2009/04/09(木) 10:32:12ID:???0141nobodyさん
2009/04/09(木) 10:37:10ID:???レンタルサーバだと、モジュール版のPHPがセーフモードに設定されていることが原因で、mkdirの利用が制限されている場合もありますね。
http://jp.php.net/manual/ja/function.mkdir.php
返り値
成功した場合に TRUE を、失敗した場合に FALSE を返します。
↑mkdirの返り血(FALSE)を浴びるだけではダメですか?
0142139
2009/04/09(木) 11:15:45ID:3wJSGAQjつまり、単純に
if(!mkdir("test")){
die("ディレクトリが作成できませんでした。パスかパーミションを確認して下さい。");
}
みたいな感じで良いですかね?
0143nobodyさん
2009/04/09(木) 12:52:32ID:GoKaiEbvローカルの特定のファイルを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全文修正版です↓
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];
とか??
0148nobodyさん
2009/04/09(木) 14:51:46ID:IIKZIRWt背景がいつも黒になってしまうのですが、
どのように設定すればよいのでしょうか?
0149nobodyさん
2009/04/09(木) 16:01:29ID:OhmeRcsrミラーサイトは公式サイトに断らなくても公開してもいいのでしょうか?
また、公式サイトで公開されているhtml形式のヘルプをダウンロードしてそのまま自分のレン鯖においても問題ないでしょうか?
0150nobodyさん
2009/04/09(木) 16:32:39ID:???0151nobodyさん
2009/04/09(木) 16:37:45ID:???0153nobodyさん
2009/04/09(木) 19:50:40ID:???SEO対策なのかな?
PHPの公式マニュアルよりも、検索結果で上位に来るミラーサイトが多いですよね
自分の場合は、PHPの公式マニュアルをブラウザのお気に入りに入れてます。
http://jp.php.net/manual/ja/
google検索でヒットした結果を、改めてPHPの公式マニュアルで確認すればOK
0155nobodyさん
2009/04/09(木) 23:15:50ID:YWPkP/9rこのときブラウザの青い帯の部分(タイトルが表示される部分)に
任意の好きなタイトルを表示させたいのですが不可能でしょうか?
どなたかご教示お願い致します
【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:???たぶん君も知識が足りないと思うんだがfxのタイトルバーの色が何色か見てごらん
あとoperaもな
大丈夫^^?
0159nobodyさん
2009/04/10(金) 00:18:26ID:???角丸つくるのにいまだに透過ジフ?w
0160nobodyさん
2009/04/10(金) 00:22:27ID:???0162nobodyさん
2009/04/10(金) 00:28:34ID:z5toBuCmファイルを一意な名前で renameする良い方法ないですか?
tempnam を使ってファイル名を生成すると、その時点でファイルが生成されてしまうため、
renameできません。tempnam で作った後に unlinkするのは、やっぱり気分が良くないし、
厳密には一意性が保証されない気がするので。
0163nobodyさん
2009/04/10(金) 00:29:13ID:???<title>好きなタイトル</title>を出力するしかない
0165nobodyさん
2009/04/10(金) 02:28:23ID:bYC4ar8CそれがHoge::moge()の形で呼ばれたのか、
$hoge->moge()の形で呼ばれたのかを判別するにはどうしたらいいですか?
0166nobodyさん
2009/04/10(金) 02:53:25ID:???0168nobodyさん
2009/04/10(金) 09:47:55ID:???0169168
2009/04/10(金) 09:48:47ID:???0170nobodyさん
2009/04/10(金) 10:13:06ID:0gMhmbJC0171nobodyさん
2009/04/10(金) 10:32:51ID:BYyPBH+iこのような場合はforを使うのが普通なのでしょうか?
よろしくお願いします。
0172nobodyさん
2009/04/10(金) 10:38:07ID:???>foreach を 配列の途中から始めることはできますでしょうか?
できないけど結果として同じものを得るのは可能
>このような場合はforを使うのが普通なのでしょうか?
はい
0173171
2009/04/10(金) 10:53:33ID:BYyPBH+iレスありがとうございます。
やはりforを使うのが普通なのですね。
いちおう、後学のためにforeachを使って途中から開始する方法も教えていただけないでしょうか?
0174nobodyさん
2009/04/10(金) 10:58:47ID:???seekしてiterator使った方がいいよ。
0175nobodyさん
2009/04/10(金) 11:03:41ID:???途中から開始するわけではなくて無駄な分はしっかりまわす感じ
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 (array_slice($array, N) as $value) こうやるのが普通?かな
0178173
2009/04/10(金) 11:20:09ID:BYyPBH+iすみません。
知識不足で「seekしてiterator」というのがわかりません;
>>175
なるほど・・・
こうしてみると、たしかに後者は無駄が多いですね。
>>176
array_sliceで途中から取り出すというのは思いつきませんでした!
これは使えそうですね!
0179nobodyさん
2009/04/10(金) 11:32:44ID:???プチマジレスするとforeachの中でarray_sliceすると回すたびに関数が実行されるから
一度別の配列に入れるのがいい
0180nobodyさん
2009/04/10(金) 11:41:47ID:???0181nobodyさん
2009/04/10(金) 11:44:44ID:???以下のようにすると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:???$ai = new ArrayIterator(array(1, 3, 5, 7, 9));
$ai->seek(2);
while ($ai->valid()) {
echo $ai->current();
$ai->next();
}
0184nobodyさん
2009/04/10(金) 11:55:38ID:FoG5RXFZ80番ポートでアクセスしたとか8080番ポートでアクセスしたとか何番ポートを使ってアクセスしたかを調べたいのですが
どのような関数を使うのでしょうか?
0186nobodyさん
2009/04/10(金) 12:00:54ID:/dNSLV40文字列フィルタについて質問です
上記ページと公式サイトには例が4つまで載ってるのですが
これはあくまでも一例で他にもあるのでしょうか?
もしよろしければ掲載されてないコードをご教示お願い致します
0187nobodyさん
2009/04/10(金) 12:01:22ID:???こうやってもhogeは一度だけ表示されるけどもしかしてarray_sliceって特別な実行のされ方?
function slice2()
{
echo "hoge<br>\n";
return array(1,3,5);
}
foreach (slice2() as $value) echo $value,"<br>\n";
0188186
2009/04/10(金) 12:01:35ID:/dNSLV40以後、気を付けます
0189nobodyさん
2009/04/10(金) 12:02:41ID:???よく読んだらこう書いてありますね
for ($i = 2; $i < count($array); $i++) {
echo $array[$i];
}
0190nobodyさん
2009/04/10(金) 12:24:25ID:???配列の長さ取得するのってPHPだとcountじゃないの?
JavaやJavaScriptでいうlengthと一緒だよね?
0191nobodyさん
2009/04/10(金) 12:54:09ID:???なんかオフセット的なパラメータが出てくるのはうざったい。
自分の作ったコードでgrepしたら foreachの 1/10 以下だった。
while は半分ぐらい。
>>190
javascriptは微妙だけどね。
いきなり配列に x[100] = 'hogehoge'; とかすると、length は 101 になるくせに、
for(in) だと登録した1つしか出てこないし。そのわりに join は 101個結合するし。
0192nobodyさん
2009/04/10(金) 12:56:45ID:???でも、大抵 foreach 文で処理しちゃうけどね...
0193178
2009/04/10(金) 12:58:57ID:BYyPBH+iそうだったんですか!
ということは、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:???マニュアル読め。
http://jp.php.net/manual/ja/control-structures.for.php
>この書き方には問題があります。 このコードは実行速度が遅くなることでしょう。 配列のサイズを毎回計算しているからです。 ...
>>179 の意味がイマイチ取りきれんのだけど、foreach がループ回数分だけ式を評価するってのは初耳。
ちょっとありえんと思う。
0196nobodyさん
2009/04/10(金) 13:06:32ID:???ベンチマーク結果
0.00026893615722656(countをforから外したコード)
0.016515970230103(>>175と>>185が進めるのコード)
0199nobodyさん
2009/04/10(金) 13:08:59ID:???そういうこと
foreach (array_slice(foo(), 2) as $value) echo $value,"<br>\n";
fooは一度しか呼び出されないが、配列の数だけarray_sliceが動いてる
0201nobodyさん
2009/04/10(金) 13:14:39ID:???マニュアルを読む限り、foreach が式をループ回数だけ評価するようには読めないんだけど。
っていうか、foreachが式が関数の場合に、関数は評価するが、その引数は評価しないとか、ありえんと思うが。
http://jp.php.net/manual/ja/control-structures.foreach.php
0202nobodyさん
2009/04/10(金) 13:16:50ID:???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:???0209nobodyさん
2009/04/10(金) 15:08:50ID:???昨日から詰まってます。。。。助けてください。
.forwardのパーミッションは600。メールの転送ができることは確認済みです。
PHP 5.0.4 FedoraCore
.forwardの中身
"| /usr/bin/php -q /var/www/html/test2.php"
test2.phpは単体で動かせることは確認済みです。
メールを受け取った後、test2.phpが動いてる様子がありません。。。
0212nobodyさん
2009/04/10(金) 15:17:53ID:???.forwardの中身
"| /usr/bin/php /var/www/html/test2.php"
test2.phpの中身の一行目(パスは自分の環境にあわせてね)
#!/usr/bin/php -q
0215nobodyさん
2009/04/10(金) 15:20:35ID:???PHPだけの糞仕様を広めないでください
まともな言語なら差は出ません
0217nobodyさん
2009/04/10(金) 15:23:22ID:???0218nobodyさん
2009/04/10(金) 15:24:05ID:???バイトはスーパーwwwwwwwwwwwww
タッパに葉っぱwwwwwwwwwwwwwwww
詰め込む河童wwwwwwwwwwww
頭はテンパーwwwwwwwwwwww
パッパカパーwwwwwwwwwwwwwwwwww
0220nobodyさん
2009/04/10(金) 15:33:34ID:???JAVAやC#なんかからきたやつはforの中でlength書いてるだろうし、
PHPでも別にcountを中に書いてもいいよ。
速度ってもミリ秒の誤差程度だし別に気にする必要もない。
0221nobodyさん
2009/04/10(金) 15:35:33ID:???入れてませんでした。
だけれど試して見ましたがダメでした。
>>212
変化ありませんでした。
パーミは705でやってます。
あまりにも解けなさすぎて吐き気が。。。
0222207
2009/04/10(金) 15:39:26ID:???forの中で関数使うな
for () {
//ここで使うな
}
っていってるのかと思っただけなんだが
0223nobodyさん
2009/04/10(金) 15:41:31ID:???まず、パイプ前なのか、パイプ後なのか切り分けろや
とりあえず、シェルスクリプトならうごくかどうかやってみ。
touch hoge とかでいいから
0225nobodyさん
2009/04/10(金) 16:08:39ID:???メールうけとったあとのシェルの動かし方がわからん。
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:???0229nobodyさん
2009/04/10(金) 17:20:06ID:???0230nobodyさん
2009/04/10(金) 17:24:58ID:???0231nobodyさん
2009/04/10(金) 17:25:20ID:???ごめんなさいお。疲れたのでたったいまVMwareを落としたとこだお。
夜風を浴びて飯食べたら、また来るお。
メールサーバのローカル配送ログは観方が判らなかったので
スルーしてたお。あとで確認するお。
0232nobodyさん
2009/04/10(金) 17:33:36ID:???0233nobodyさん
2009/04/10(金) 18:00:19ID:???レンタルサーバでcronを使って、2chを定期的に監視するプログラムを作ろうと思うのですが、
公開されているプログラムなどありませんでしょうか?
スレ違いならすみません。
0234nobodyさん
2009/04/10(金) 18:01:57ID:???0239nobodyさん
2009/04/10(金) 20:35:19ID:???0241nobodyさん
2009/04/10(金) 20:46:12ID:???0242nobodyさん
2009/04/10(金) 20:48:58ID:???まず、自分がどうやってるか書いたら?
良い方法は?って言われてもな。
一意な名前を取得する方法なんて腐るほどあるっしょ。
インデックスを保持するファイルを一つ作っといて、そこで一意を確保してからrenameするとか
すきなアルゴリズムにしたらいいよ
0243nobodyさん
2009/04/10(金) 20:56:57ID:???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:???コンパイラや実行環境が最適化してくれる場合もあるし、大した差がつかないのは事実だけどな。
初心者がやってたら理解していない可能性を考えて訂正するのは正しい姿勢だと思うが。
>194-196, >204
ベンチマーク取るにしては処理が短すぎる。
そのくらいだとPC内のほかのタスクとかがノイズになって意味のある数字が出ない。
1秒とか10秒とかの単位で時間がかかるような規模の試験をした方がいい。
0246nobodyさん
2009/04/10(金) 21:58:27ID:???0247209
2009/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:???arr.lengthとfor(x in arr )を同じつもりで使うのは危ないよ。
例えばDOM使うと、forだと思ったとおりにならないときがあると思う。
0250nobodyさん
2009/04/11(土) 02:13:44ID:jaJ+Ur9l送った、あるいは送る予定のheaderを取得するにはどうしたらいいですか?
0251nobodyさん
2009/04/11(土) 02:28:50ID:???0252nobodyさん
2009/04/11(土) 02:36:37ID:???ありがとうございました。
0253nobodyさん
2009/04/11(土) 02:55:15ID:???デフォルトで送る予定のContent-Type: text/http等は
決めうちで取得させるしかないですか?
0254nobodyさん
2009/04/11(土) 05:24:48ID:HAu5s/9P$_FILEのtypeは信用できないということを聞いたので、
別の方法で取得するようにしたのですが、
その他のname、size、errorなどは信用してもよいのでしょうか?
nameなどはエスケープ処理などする必要がありますか?
よろしくお願いします。
0256nobodyさん
2009/04/11(土) 06:24:24ID:???>1秒とか10秒とかの単位で時間がかかるような規模の試験をした方がいい。
そこまで両者に差が出るとは思えないし
そんな結果が出るまでやるとなるとメモリが足りなくなるでは?
できるならぜひベンチ結果をみてみたいが
というかそんな規模のものPHPじゃ作らないだろうし杞憂な気もするけど・・・
>>248
>count()っていうのはループ中に値が変わる可能性があるわけで
>バグによってループする回数が変わってしまう危険性
だいたいこういう処理は配列を1つずつ取り出す場合に使うのであって
対象の配列数が変わるような処理をやるほうがおかしいのでは?
具体的にどのようなことをするのか検討もつかないけど・・・
バグによってループ回数が変わるっていうのも意味不明
>>183もナイワと批判を書くのではなくて
外におけばPHPではパフォーマンスがあがるという注釈をつければここまで伸びなかった
0257nobodyさん
2009/04/11(土) 06:53:18ID:/nX8neeQこのあたりはドライバ依存ってことなんでしょうか?
http://jp.php.net/manual/ja/pdo.query.php
http://jp.php.net/manual/ja/pdo.exec.php
例外で処理するのか戻り値で処理するのか、イマイチわかりません。
とりあえず、今使ってるSQLiteでは戻り値で判断できるみたいですが、ちょっと不安だなぁと言うことで。
0260nobodyさん
2009/04/11(土) 07:18:25ID:???でたらめな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:???0265nobodyさん
2009/04/11(土) 10:03:46ID:???だから、<?phpの後でいいんじゃね?
0266247
2009/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");
?>
0267247
2009/04/11(土) 10:48:01ID:???・.forwardの中が間違っている。→/usr/bin/phpは存在する。
→/var/www/html/test2.phpでtest2.phpを
動かせる。
・パーミッションが間違っている。→.forwardを600 test2.phpを705or755
あと考えられる事象はなんでしょうか。
0269nobodyさん
2009/04/11(土) 11:32:38ID:???.forward
"| /usr/bin/php -q /var/www/html/test2.php"
にしてみ
0270nobodyさん
2009/04/11(土) 11:35:55ID:???"| /var/www/html/test2.php"
うちは、これで動くけど?
0271nobodyさん
2009/04/11(土) 11:59:26ID:???"| touch /tmp/hoge"
ってやってみて処理してるユーザ名を把握してはどうだろう
0272247
2009/04/11(土) 12:15:02ID:???ディストリというのは環境という意味でいいのかな?
PHP 5.0.4kfedoracore4です。
>>269
>>270
試してみました。
>>271
suxxxxxxxのユーザーの空ファイルとなりました。
……test2.phpはroot。……まさか。。。
0273261
2009/04/11(土) 12:15:24ID:YDJbdlsq自己解決しました。
実際は、
$a .= "あ"
. $i+1
. "う"
;
という風に、”い”の部分は計算式をいろいろと入れていたのですが、
その計算式を()でくくって
$a .= "あ"
. ($i+1)
. "う"
;
のようにしたら、できました。
0274247
2009/04/11(土) 12:23:05ID:???作成されたファイル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:jPW674z30276nobodyさん
2009/04/11(土) 12:43:26ID:???スーパーグローバルは使うけど
0277nobodyさん
2009/04/11(土) 13:12:41ID:???モジュールごと、クラスごとにテストを書かないといけないような、ややっこしいコードを作る時は避けた方がいい。
グローバル変数は使うべきではない、とされている。
これは、グローバル変数はどこでどう値が変えられるか分からないのが最大の理由。
ある時点でグローバルに何が入っているかは、プログラムの最初から最後まで全部読まないと分からない。
不具合発生時に原因を特定しづらいし、機能追加時などにどの時点でどの変数がどうなってるか分かりづらくなる。
いっぽう、一時変数は、その関数の中で生成され、その関数が終わったら消えるので、その関数の中だけ見れば値が分かる。
グローバルに依存しない関数は、同じ引数を渡せば同じ結果が常に返って来る。
プログラムのどこで呼ばれても(引数が同じならば)同じ結果が返る事が保証されているので、バグの原因を探しやすい。
0278247
2009/04/11(土) 14:11:26ID:???test2.phpまで届いてログが出るようになりました。
ですが、system("touch hoge")が実行されず
まだ空ファイルが作られない状態です。
0279nobodyさん
2009/04/11(土) 14:16:55ID:???カレントディレクトリを把握してはどうだろう。そしたらパーミッションを確認してと・・
0280247
2009/04/11(土) 14:38:11ID:???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:???>注意: セーフモード が有効な場合、 safe_mode_exec_dirの中にある実行プログラムのみ実行可能です。実際的な理由により、現在、実行プログラムへのパスに ..を含めることはできません。
0282nobodyさん
2009/04/11(土) 14:53:15ID:???chdir("/path/to");を先に書いておくか・・
0283247
2009/04/11(土) 15:06:27ID:???セーフモードは無効になっていました!
>>282
できた!
ようやく全て結合してDBも動きました。
ありがとうございます!
0284nobodyさん
2009/04/11(土) 15:29:01ID:???http://jp.php.net/manual/ja/pdo.error-handling.php
0285nobodyさん
2009/04/11(土) 15:57:01ID:???nameはクライアントの自己申告
move_uploaded_file() や header('Content-Disposition: attachment; filename=""') なんかに使う時は
使っていい・出力していいファイル名か審査する必要がある
sizeとerrorはPHPが決める値なのでそのまま使える
このあたりの処理は /main/rfc1867.c に書いてある
0287nobodyさん
2009/04/11(土) 16:16:03ID:/nX8neeQありがとう。なんで見逃してたんだろ。
すんません。
0288nobodyさん
2009/04/11(土) 16:20:58ID:6UsgbN52ImagePng($output_image);
とすれば画像を表示しますが、表示するんじゃなく、
imagemagickでexecコマンドで扱えるようにするにはどうすればいいんでしょうか?
$cmd = "convert -resize 80x80 {$output_image} ";
exec($cmd);
みたいな感じでファイルを保存せずImagePng($output_image);のように画像だけ表示したいのですが
0289nobodyさん
2009/04/11(土) 16:23:20ID:???http://jp.php.net/manual/ja/function.imagepng.php
0290nobodyさん
2009/04/11(土) 21:29:10ID:???これでいいかい?
// 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を実行させる事が出来ますか?
0293292
2009/04/11(土) 22:37:47ID:???0294nobodyさん
2009/04/11(土) 22:38:31ID:???telnet(ssh?)とか使えるんなら普通にcrontab -eで編集できるんちゃうん
0297nobodyさん
2009/04/12(日) 04:19:11ID:???0298nobodyさん
2009/04/12(日) 08:30:14ID:???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:???ttp://www.itt-web.net/modules/xeblog/?action_xeblog_details=1&blog_id=314
0301nobodyさん
2009/04/12(日) 11:35:08ID:???0303nobodyさん
2009/04/12(日) 13:58:53ID:Vo0Yfswz0304nobodyさん
2009/04/12(日) 14:05:14ID:???0305nobodyさん
2009/04/12(日) 14:05:17ID:???つうか、初期設定が糞すぎるので書き換えた方が開発効率が良い。
PHPかApacheかに拡張モジュール入れる場合とかは書き換えざるを得ないしな。
0306nobodyさん
2009/04/12(日) 14:22:16ID:???0308nobodyさん
2009/04/12(日) 23:28:19ID:???if ($section = $abc::getObj($a))
{
処理
}
これは$abc::getObj($a)の返り値が$sectionに代入されたら
trueになるのでしょうか。
0309nobodyさん
2009/04/12(日) 23:32:47ID:???$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解決できません・・
何か原因の想像がつく方や改善方法を知ってる方は教えてください。お願いします。
0314312
2009/04/13(月) 00:22:05ID:Yv15gfHGドキュメントのインストールガイドとはなんですか?
0315nobodyさん
2009/04/13(月) 00:22:53ID:???apache1.3〜2.0ならapache.exe(だっけ?)
インストール先がc:\apache2.2\bin\httpd.exeであるなら
コマンドプロンプトでbinディレクトリまで移動して「httpd.exe -t」を入力
syntax okって表示されてればおk
されてれば設定ファイルを見直してみろ
linuxも↑と同じやり方
0316315
2009/04/13(月) 00:23:51ID:???明日起きたときまたくる
0317312
2009/04/13(月) 00:29:16ID:Yv15gfHGapache2.2です。
syntax okって表示されたところまでは行きましたがlocalhostのページは
ページ読み込みエラーで接続できませんでした・・
ちなみに「httpd.exe -t」の作業はどういったものなのでしょうか?
0321315
2009/04/13(月) 00:33:11ID:???じゃあ寝るからレスは期待するな
319は俺
0322nobodyさん
2009/04/13(月) 00:34:49ID:???0324nobodyさん
2009/04/13(月) 00:37:19ID:???0325312
2009/04/13(月) 00:48:08ID:???ping localhostってのをしてみたらよくわからない時間と統計が出てきました。
0326nobodyさん
2009/04/13(月) 01:03:57ID:???0327312
2009/04/13(月) 01:12:01ID:???スレ汚してすみませんでした。
0329312
2009/04/13(月) 01:34:25ID:???それでもせめて少しは頑張って、わからなくて・・
助けを願って期待してたんですけどね・・
0330nobodyさん
2009/04/13(月) 02:01:41ID:???0332nobodyさん
2009/04/13(月) 02:15:21ID:???まぁ自分で何とかするならいいけど
0333nobodyさん
2009/04/13(月) 02:21:59ID:???0335312
2009/04/13(月) 02:44:40ID:???phpを使いたくて、テキストに従って環境作ってたらApacheでつまづいたので・・
>>331
xamppってのちょっとやってみます・・
0336nobodyさん
2009/04/13(月) 02:44:48ID:???xamppバグだらけじゃん
0339312
2009/04/13(月) 02:59:44ID:???0340nobodyさん
2009/04/13(月) 03:05:13ID:???RPGツクーラーのためのPHP講座
http://phptkool.wordpress.com/
0341312
2009/04/13(月) 03:11:45ID:???0343312
2009/04/13(月) 03:38:33ID:???思いました。
0344nobodyさん
2009/04/13(月) 03:44:14ID:???xamppのインストールができたかどうかだよ!
そんなサイトの更新のことなんかきいてねえwww
0347nobodyさん
2009/04/13(月) 05:25:22ID:???xamppがインストールできたら、
MS-DOSプロンプト立ち上げて、
php -v
って打って、なんか出てくれば、
phpのインストールはできてる。
0349nobodyさん
2009/04/13(月) 10:22:38ID:???一応定番なので載せておく
俺が初心者にPHPを伝授する
http://pc11.2ch.net/test/read.cgi/php/1167984858/
0350nobodyさん
2009/04/13(月) 13:58:24ID:ypI4OeZj0351nobodyさん
2009/04/13(月) 13:59:39ID:???// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
_____ _____ ______ _______
| ウェブ | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
._________________
|windows cron │・検索オプション
└────────────────┘・表示設定
| Google検索 | I'm Feeling Lucky | ・言語ツール
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
○ウェブ全体から検索 ◎日本語のページを検索
0353nobodyさん
2009/04/13(月) 21:54:51ID:FmgZe7wfどういう手を使うのがいいですか?
0354nobodyさん
2009/04/13(月) 21:57:23ID:???0356nobodyさん
2009/04/13(月) 22:28:10ID:???ん?
隠しページ駄目なの?
俺は今さくらインターネットでログインしないと見れないページを作ってるんだけど。
0357nobodyさん
2009/04/13(月) 22:31:42ID:???日本語が不自由な奴だな
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
隠しページ禁止のレンタルサーバでメンバー専用の機能を使えるようにするには
0358nobodyさん
2009/04/13(月) 22:32:31ID:???^^^^^^^^^^^^^^^^^^^^^^^^^^^^
0359nobodyさん
2009/04/13(月) 22:52:28ID:???0360nobodyさん
2009/04/13(月) 23:05:34ID:???無料で提供してる鯖は広告収入でマイナスを埋めてるからこういうDQN(>>353)がやるような
メンバー専用ページを排除しているところもある
0362nobodyさん
2009/04/13(月) 23:27:01ID:oGeHUnbf.NetのArryalListに似たコードはありますか?
0363nobodyさん
2009/04/13(月) 23:33:24ID:???ないよりかはマシでよければ
http://www.php.net/manual/ja/class.arrayobject.php
5.3からはこっちも使える
http://www.php.net/manual/ja/spl.datastructures.php
0366nobodyさん
2009/04/14(火) 01:25:07ID:???0369nobodyさん
2009/04/14(火) 01:41:02ID:???http://127.0.0.1/
上がダメで下がOKならhostsの問題だけど
hosts知らないやつが書き替えてるとは思えないのだが
0373nobodyさん
2009/04/14(火) 10:10:38ID:???0374nobodyさん
2009/04/14(火) 11:22:46ID:???0375374
2009/04/14(火) 11:35:28ID:???::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:???0377nobodyさん
2009/04/14(火) 11:46:31ID:???0378nobodyさん
2009/04/14(火) 11:48:29ID:???0380374
2009/04/14(火) 11:55:59ID:???スレ違いなのでさっくりこの話題終わらせたいから思い当たったこと言っただけ
これで解決できればいいけどね
0381nobodyさん
2009/04/14(火) 11:57:22ID:???0382nobodyさん
2009/04/14(火) 11:58:14ID:???放置でおk
0383nobodyさん
2009/04/14(火) 11:59:49ID:???正規表現降臨乙
0386nobodyさん
2009/04/14(火) 12:04:17ID:???vistaはその特定の環境のようだが
_______ __
// ̄~`i ゝ `l |
/ / ,______ ,_____ ________ | | ____ TM
| | ___ // ̄ヽヽ // ̄ヽヽ (( ̄)) | | // ̄_>>
\ヽ、 |l | | | | | | | | ``( (. .| | | | ~~
`、二===-' ` ===' ' ` ===' ' // ̄ヽヽ |__ゝ ヽ二=''
ヽヽ___// 日本
_____ _____ ______ _______
| ウェブ | | イメージ | | グループ | | ディレクトリ |
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
._________________
|localhost ipv6 vista │・検索オプション
└────────────────┘・表示設定
| Google検索 | I'm Feeling Lucky | ・言語ツール
 ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
○ウェブ全体から検索 ◎日本語のページを検索
0387nobodyさん
2009/04/14(火) 12:05:25ID:???x.x.x.x localhost
を追加して悪さするやつがいたからDefenderは無条件に全て消すという愚挙を・・
だから127.0.0.1 localhost を追記するだけでいけるよ。
0390nobodyさん
2009/04/14(火) 12:08:35ID:???質問(屮゚O゚)屮 カモーン
0392nobodyさん
2009/04/14(火) 12:10:05ID:???察してやれよ
0394nobodyさん
2009/04/14(火) 12:11:22ID:???ipv6をアンスコするなんて馬鹿馬鹿しい
0395nobodyさん
2009/04/14(火) 12:14:25ID:???自分と意見が違えば徹底的にたたくとかどこのガキだよ
スレが無駄に伸びるし解決するまで黙って見守ってろや
それか思い当たる解決法があるなら淡々と列挙しろ
0396nobodyさん
2009/04/14(火) 12:18:39ID:XUS8hYov0398nobodyさん
2009/04/14(火) 12:21:10ID:???0400nobodyさん
2009/04/14(火) 12:54:52ID:pC/MAxND【PHPのバージョン】php5.2.9
【連携ソフトウェア】
【質問内容】
php.iniの
デフォルトでoutput_buffering = 4096が適用されてますがこれって無効にしたらまずいですか?
有効・無効にするメリットとデメリットを教えてください
あとその下にoutput_handlerとあるんですが教本にmb_output_handlerを設定してって書かれてあります
これを設定する意味はなんでしょうか?
0404nobodyさん
2009/04/14(火) 13:41:29ID:???いるんだけど、投稿をすると常にIDが「???」になってしまいます。
このスレでは「IDを出す」事が必須らしいいのですが、
どうすれば出す事が出来るのでしょうか?
0405nobodyさん
2009/04/14(火) 13:44:47ID:???JANEは使ったことないけど、デフォルトがsageなんだろう。
0406nobodyさん
2009/04/14(火) 13:46:23ID:???0408nobodyさん
2009/04/14(火) 14:10:05ID:???0412nobodyさん
2009/04/14(火) 17:06:33ID:O0pp8kVu肝心の使い方がわかりません
わざとエラーになるようなコーディングをしてもいつもと変わらないエラーが表示されるだけで困ってます
これはどのようにして使うのでしょうか?
0413nobodyさん
2009/04/14(火) 17:24:10ID:???出力内容に対する後処理を追加したいとか
バックエンドへ出力を引き渡す際のオーバーヘッドを減らしたい時に有効にする
mb_output_handlerの場合は前者で
エンコーディング変換のためのハンドラだ
0414nobodyさん
2009/04/14(火) 17:32:26ID:???PHPの実行状態を外部から知るためのもので
Zend StudioやPDTなどと連携しなければ役に立たない
エラー表示時にスタックトレースを追加したいとかならXdebugが合っている
http://www.xdebug.org/
0415nobodyさん
2009/04/14(火) 17:47:02ID:???0416nobodyさん
2009/04/14(火) 19:49:14ID:h4ximX71CPUとかメモリとか物理的な部分はどこが重要でしょうか?
現在のPCスペックがCPU P4 3.2GHz メモリ 1.5GB
ですがCORE2とかメモリ増設とかすればそれなりに早くなるのでしょうか?
0417nobodyさん
2009/04/14(火) 19:57:42ID:???ただP4のマザボにCore2はのらないでしょ
メモリはプログラムが高速にアクセスするために使う記憶領域なので
容量が足りてればいい(増設したからといって必ずしも早くなるわけではない)
P4時代のメモリよりは最新のDDR3とかのほうが早いだろうけどね
DB使った中規模な処理とかでもそのスペックで十分
0418416
2009/04/14(火) 20:08:08ID:h4ximX710419nobodyさん
2009/04/14(火) 20:21:46ID:???.Netとか動かすとかなりきついけど
0420nobodyさん
2009/04/14(火) 20:25:03ID:???0423nobodyさん
2009/04/14(火) 21:26:48ID:???CeleronM@1.3Ghz 768MB RAM で動かしてんだぞ
0425nobodyさん
2009/04/14(火) 22:39:54ID:QCyTU2q5旧バージョンはどこから落とすのかご存知の方いらっしゃいましたらご教示お願い致します
0426nobodyさん
2009/04/14(火) 22:46:59ID:???0427nobodyさん
2009/04/14(火) 23:06:32ID:???winで5.2.9-2にしてからcakephpとか負荷のかかるもの使うとapacheが停止する
不具合はうちだけかと思ったら仲間がいてほっとした
早く修正版でねえかな
0428nobodyさん
2009/04/14(火) 23:13:30ID:???マジレスすると、H/W買い替えを視野に入れたくなるほど処理速度が重要な局面でPHPを使うのが間違い。
PHPもRubyもPerlも、言語仕様上、JavaやC++に比べると速度がかなり遅くなる。
アルゴリズム見直して、APCやeAcc入れて、DBアクセス最適化すりゃ、恐らくじゅうぶん早くなる。
H/W増強はそれから。
0429nobodyさん
2009/04/14(火) 23:32:35ID:???>>416
一行目をよく見たら気づいたが、現状遅いってわけじゃないのか?
0430nobodyさん
2009/04/15(水) 00:48:27ID:???あと普通のサイトを作ってるんだけど、そこまで遅いと感じた事は無いんだけどな。
0431nobodyさん
2009/04/15(水) 01:49:07ID:???0432nobodyさん
2009/04/15(水) 02:43:25ID:+Ew/BfEW0433nobodyさん
2009/04/15(水) 02:50:07ID:???スレ違いじゃね
0434nobodyさん
2009/04/15(水) 02:51:55ID:???3万のPCオークションで買って、自宅サーバだよ。http://corega.jp/product/navi/corede-net/
0436nobodyさん
2009/04/15(水) 02:56:38ID:???ネットワークについてあまり詳しく無いので質問させて頂きたいのですが、
現在マンションに備え付けの回線を引いているのですが、
先日までIP電話を使用していた時にはルータ(NEC製のルータ、Alterm)が
ついていたのでポートマッピング等を行う事が出来た(専用画面から)
のですが、IP電話の契約を解除してから(Atermを返送)ポートの開放が
出来なくなりました。
マンションに最初っから回線が引かれている場合には、自宅サーバはする事は
出来ないのでしょうか?
0437434
2009/04/15(水) 03:04:00ID:???マンションにサーバがあってそっからIP振り分けてるのなら無理だろうけど。
でも、多分できるよ。
0439nobodyさん
2009/04/15(水) 03:11:25ID:???0442436
2009/04/15(水) 04:00:51ID:???実は、IP電話を使用していたころ(ルータのあった頃)は、Windows /Linux 双方で
自宅サーバを運営してました。
だけどIP電話を解約するとルータを返さなくてはならなくなったせいでこれまでの
手順で自宅サーバを公開する事が出来なくなってしまいました。
>>438
レンタルのルーターがあった頃は普通にポートを開放して自宅サーバを公開出来ていたのでその
辺りが少し疑問です。
0443nobodyさん
2009/04/15(水) 08:55:33ID:???1万ぐらいでそこそこのやつが買えるでしょ
直にネット繋いでるとか危険すぎる
後マンションの場合はたぶん共有だろうから
ほかの住人に迷惑かからない程度にな
可能ならネット用の動的IPとは分けて
別途固定IPとったほうがいい
0444nobodyさん
2009/04/15(水) 09:09:45ID:???0445nobodyさん
2009/04/15(水) 09:14:54ID:???0447nobodyさん
2009/04/15(水) 10:26:31ID:???おいおい固定IPでクソ高いって何本IP取得するつもりだ?
1本なら5000円出せばおつりが来るがまさか5000円程度が
クソ高いというわけじゃないだろうな?
0448nobodyさん
2009/04/15(水) 10:41:32ID:???0450nobodyさん
2009/04/15(水) 11:17:19ID:???0451nobodyさん
2009/04/15(水) 11:50:50ID:???0452nobodyさん
2009/04/15(水) 12:28:42ID:???確かに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:???まず落ち着いて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は自分です
お騒がせしました
0457nobodyさん
2009/04/15(水) 13:28:22ID:???0458nobodyさん
2009/04/15(水) 13:38:16ID:???載せていく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:???そんな局所的な情報いらない
0462nobodyさん
2009/04/15(水) 14:35:27ID:???0463455
2009/04/15(水) 16:10:02ID:???私のトラブルって結構検索したら見つかりましたが
yahoo知恵袋でも同じ質問でてますが解決方法ってあまり出回ってないようですね
0464416
2009/04/15(水) 16:20:30ID:TbWWsoJFCにすれば早いのは教えてもらわなくてもわかってる
ハードの交換でどのくらい変わるのかと思い質問したのです。
ぐぐっても比較してるところって案外すくないんですよね
0465nobodyさん
2009/04/15(水) 16:33:28ID:???文句だけ言う人?
0466nobodyさん
2009/04/15(水) 16:49:59ID:???VPSを借りようと思って比較検討してたけど、さくらの専用サーバの一番安いやつがいいでしょうか?
0467nobodyさん
2009/04/15(水) 16:51:27ID:???参考になります。ありがとうございます。
バッファローの無線LANを買おうと思っていたけど、コレガにした方が便利かな?
ダイナミックDNSサービスを試しに使ってみようかな?
0468nobodyさん
2009/04/15(水) 17:10:29ID:???スレチだがXreaのCore Serverがおすすめ
Xreaは昨今の騒動で信頼性が落ちたけど
運営実績はあるからね
安いわりにさくらより条件がいい
0470nobodyさん
2009/04/15(水) 17:51:41ID:???coregaとか使ってないからしらないが
DDNSのためだけにcoreag選ぶのはどうかと思うわ
DDNSサービスなんていろんな人が無料でやってるでしょ
CCNAに興味があるならCisco選んどくかぐらいで
ルーターは基本的な機能があればなんでもいい
0471nobodyさん
2009/04/15(水) 18:45:34ID:???phpの実行速度なんてニッチな比較してるところはそりゃ少ないだろうよw
というか本当にボトルネックはHWなのか?
APCとかeAccを既にやっていて、かつ>>416のスペックで遅いっていうなら
設計・実装・(使ってれば)DB設計、もしくはその全部が原因としか思えない。
0472nobodyさん
2009/04/15(水) 19:27:39ID:???サーバをリプレイスしたレポートがありました。参考になるでしょうか?
http://gigazine.net/index.php?/news/comments/20070119_gigazine_new_server/
設定の最適化だけでもパフォーマンスは改善されるみたいですよ。
http://gigazine.net/index.php?/news/comments/20060701_loadavarage_battle/
はてなは300台くらいサーバを使ってるのかな?仮想化してリソースに無駄が出ないように工夫しているらしいです。
データベースがボトルネックなら、サーバ台数を増やしてクラスタリングするより、メモリを増やした方が効くそうです。
0476nobodyさん
2009/04/15(水) 23:25:32ID:???0477nobodyさん
2009/04/15(水) 23:29:14ID:4khjLUbvで保存するファイル名を$file_nameにしようとしたのですが
この$file_nameに半角スペースが含まれると、それがアンダーバーに置換されてしまいます。
IE7とFirefox3で試したのですがIE7のみこの現象がおきます。
IE7でも半角スペースは半角スペースのままにできないでしょうか?
0478nobodyさん
2009/04/15(水) 23:34:49ID:???PHPはサーバサイドで処理を行うので
同じ処理でブラウザによって挙動が変わるというのは
PHP側ではなくてブラウザ側に問題があると考えたほうがいい
0479416
2009/04/16(木) 00:09:30ID:CSR5Re1Eたぶん現状でもだいぶ早いと思います。
H/Wの変更が速度にどれぐらい影響あるかが質問の趣旨です
>>472
サンクス
>>473
かなり大規模な部類だと思います。
0480nobodyさん
2009/04/16(木) 01:00:04ID:???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:???IE8はましになると信じたい、まぁ実際結構ましっぽいけど
0482nobodyさん
2009/04/16(木) 10:28:05ID:???0483nobodyさん
2009/04/16(木) 10:45:47ID:???IE6、IE7よりはずっとW3C標準に準拠してるじゃん
逆に駄目だという根拠はどこにある?
>>482みたいな馬鹿がいるから対応がめんどくせーんだよ
0484nobodyさん
2009/04/16(木) 11:00:19ID:???0485nobodyさん
2009/04/16(木) 11:03:38ID:???○headerの解釈がブラウザによって微妙に異なる
0486nobodyさん
2009/04/16(木) 11:12:52ID:???鯖落ち半端ないし、重すぎる
0487nobodyさん
2009/04/16(木) 11:13:07ID:6tbBKPlQ新着メッセージがある場合にポップアップするのって、Ajaxで定期的に通信を行っているのでしょうか
それとも、オンラインゲームのような通信方法なのでしょうか
定期的な通信の場合、サーバーに負荷がかかると思ったので、オンラインゲームのような、サーバーからクライアントに情報を送信するような方法ってPHPでできませんか?
とか、あー何か色々書いてるうちに、Ajaxで定期的に通信したほうがいいかなと思ってしまったorz
この質問キャンセルするわ
0488nobodyさん
2009/04/16(木) 11:16:38ID:y04hknOTclass 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:???0491nobodyさん
2009/04/16(木) 11:28:45ID:y04hknOTfunctionが抜けてました
セットした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:pfNZqllCPHP5でクラスのサンプルコードついてる入門サイトを教えてください
0494nobodyさん
2009/04/16(木) 12:07:23ID:???php.netでいいやん。
http://jp.php.net/manual/ja/language.oop5.php
0495nobodyさん
2009/04/16(木) 12:08:47ID:???セッターゲッターって初めて聞いた俺恥ずかしいwwwwwww
今までセット関数・ゲット関数って言ってたwww
0496nobodyさん
2009/04/16(木) 14:54:55ID:???私も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:???うん
俺も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:???0501nobodyさん
2009/04/16(木) 21:14:34ID:???$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:???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拡張でできたっけ?
0505nobodyさん
2009/04/16(木) 21:20:17ID:???0506nobodyさん
2009/04/16(木) 21:57:06ID:XUzGmp6dその方法で半角スペースの問題は解決しました。
しかし今度は長いファイル名のときにファイル名の先頭が文字化けに・・・orz
IEが糞なのを実感した。
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では連想配列
だいたいJava C#で配列なんて使わないし
どうせならPHPがコレクション実装すればいい
ってここでほえても仕方ないんだが
0512nobodyさん
2009/04/17(金) 10:09:01ID:???0513nobodyさん
2009/04/17(金) 10:12:53ID:???0515nobodyさん
2009/04/17(金) 11:09:10ID:???0519nobodyさん
2009/04/17(金) 14:26:53ID:rayC69Kt例えば、パラメータ$_POST['hoge']やセッション変数$_SESSION['hoge']
というのが、特に代入なしに
$hoge
で取れてしまい、そういうものだと思っていたら、あるとき、
それでは取得できなくなったりし、この辺の仕様ってどうなっている?
結局怪しいので、全部きちんと$_POSTなどで取るようにしたが。
0520nobodyさん
2009/04/17(金) 14:27:49ID:???0521nobodyさん
2009/04/17(金) 14:28:33ID:???それ昔の仕様
今でもiniで設定できたはずだけどやめたほうがいい
$_POST、$_GET、$_SESSIONで取得するのが一般的
0523nobodyさん
2009/04/17(金) 15:09:52ID:???0524nobodyさん
2009/04/17(金) 17:12:12ID:uEgfagTh1:MySQL上のconfigテーブルを読み込む
2:configに設定してある内容によって処理を分岐
3:ログを書き込む
という処理が発生します。
1アクセスで何回かのSQLを実行することになるのですが、
サイトのアクセスが増えると、処理の負荷などで後々問題になるでしょうか?
現時点では問題ないのですが、先の事を考える時になります。
0526nobodyさん
2009/04/17(金) 17:25:30ID:???configテーブルが満たす仕様による。
高度な検索性を必要とするconfigテーブルでないのなら、そんな設計はやめた方がいい。
0527nobodyさん
2009/04/17(金) 19:34:25ID:hTOqIwMv例えば写真だけ違うの見せたい場合ってPHPが役立つのですか?
0528nobodyさん
2009/04/17(金) 19:35:39ID:???0529nobodyさん
2009/04/17(金) 19:36:03ID:???・DWのテンプレ機能
・PHP
・Java
・Perl
・Ruby
・JavaScript
0530nobodyさん
2009/04/17(金) 19:59:08ID:???0531nobodyさん
2009/04/17(金) 21:19:55ID:???0532nobodyさん
2009/04/17(金) 21:23:35ID:???0533524
2009/04/17(金) 21:58:50ID:uEgfagThそれも考えたのですが、ファイルに書き出すなら
データベースの利便性が失われる気がして悩んでます。。
セキュリティとかも気になるし。
>>526
高度な検索は必要ありません。テーブルからconfigファイルを読み込み
配列に入れて、各条件(ログインなど)の時に参照すると言った仕様です。
0534nobodyさん
2009/04/17(金) 22:04:21ID:3OZ9UJNj(!($fpではなくて
!$fpみたいなコーディングスタイル使ってる?
0535nobodyさん
2009/04/17(金) 22:05:41ID:???0536nobodyさん
2009/04/17(金) 22:08:53ID:???iniとかXMLとかJSONとか、なんでもいいから好きなファイルフォーマットで書き出しておけ。
もしくは単純にPHPコードに配列として書き込む(当然設定だけ別ファイルに隔離)のもアリ。
(本当はあまりよくないのだが、APCなどのキャッシュが効くようになるという大きなメリットがある)
とりあえず、「データベースの利便性」ってなんだ?
上記のような手段ではなく、わざわざ遅く難しいDBに情報を格納している理由は?
0537nobodyさん
2009/04/17(金) 22:16:19ID:???データベースの接続に必要な情報はファイルの方に書き込まないといけないじゃん
その情報を知ってしまえば、わざわざデータベースに突っ込んでも無意味じゃん
それに設定項目が分散しちゃうと、後でめんどくさくなるだけじゃん
0538nobodyさん
2009/04/18(土) 01:11:57ID:???そもそも>>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:dAOHt7Vpindex.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:???0545524
2009/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:???実行時に扱いやすいデータに変換したXMLを出力して、こっちを読み込ませてる。
一次データの管理はDBの方が安全だしね。
serializeの方がいいかなぁとも思ったが、なんかあった時にデバッグしにくそうなんで止めた。
後からでも変更できる話だし。
0547nobodyさん
2009/04/18(土) 11:49:03ID:oOFMY9IY何故こういう書き方にするのか、何故こう書いたらこういう風に出力されるのか、といったことがまったく理解できません
フレームワークを始める前にOOPの勉強をした方がよろしいでしょうか?
また、学習の順番としてはクラスの書き方を覚えてからOOPに移行したらいいでしょうか?
0548nobodyさん
2009/04/18(土) 11:49:56ID:???0549nobodyさん
2009/04/18(土) 13:08:50ID:???0550nobodyさん
2009/04/18(土) 13:10:05ID:xPyKg5dr0551nobodyさん
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/0555nobodyさん
2009/04/18(土) 14:06:59ID:B6cKaOUWそう割り切っちゃえば話は簡単なんだが、理解が出来ないってのがつらい;;
>>553
だから、そいつをやさしく教えてくれ;;
そのオブジェクト指向ってのがよくわからんのだ><
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:???
ウェブプログラムの規模だとクラス使って書いても便利だと実感できないだろ
0559nobodyさん
2009/04/18(土) 15:54:05ID:???・自分の書いたコードを晒して、ヒマな人に添削してもらう
・腕のいい奴の書いたコードを読む
前者のほうが力になりやすいかね。
屑コードを、クラスを使った近代的なコードに書き直していく過程を見るのが一番わかり易い。
そこらで公開されているPHPのコードはゴミと芸術品の両極端が多いから、初級→中級の勉強には微妙。
そこのステップは知識云々じゃなく、考え方の転換を迫られるから、引っかかる奴が多いのは事実。
>557みたいに諦めちゃう人も多いけど、身に着ければ強力で便利なツール。
0560nobodyさん
2009/04/18(土) 15:59:44ID:???受信に使っているプロトコルの仕様にならって実装する
OOPについて勉強したい的な話題はこちらでどうぞ
http://pc11.2ch.net/test/read.cgi/php/1172205352/
0561nobodyさん
2009/04/18(土) 16:01:28ID:???まぁ、なんかWebアプリとかを作成していく中で、
誰かが作成したライブラリだとかPEARだとかを使うことになったとして
そのライブラリがただのユーザ定義関数だけで書かれていて、設定用に
大量のグローバル変数を有していたら、困ったことにならない?
それだけでも、機能の集合がクラスになっているということに意味はあると思うけど。
0562nobodyさん
2009/04/18(土) 17:09:46ID:???どの辺まで理解できて無いかによってはスレ全部埋めることになるが・・・ム板行ったら?
とりあえず全部自分ひとりで趣味レベルのモノ組むのであればオブジェクト指向にこだわる理由は無い。
どーしても理解したいって言うなら、近道は無いとだけ言っておく。
0563nobodyさん
2009/04/18(土) 17:49:55ID:zbLkqu9f20090418162123をいう文字列を(int)を用いてキャストした場合に
なぜか同じ数字ではなく2147483647という数字に変換されてしまいます。
これはどういった問題が考えられるでしょうか?
すいませんがアドバイスよろしくお願いします。
0564nobodyさん
2009/04/18(土) 18:04:18ID:moRQGLP/0565nobodyさん
2009/04/18(土) 18:09:53ID:???0566nobodyさん
2009/04/18(土) 18:10:35ID:???0567nobodyさん
2009/04/18(土) 18:13:15ID:moRQGLP/インスタンス全然つかわんようになったよ。せいぜいmysqliのインスタンス作るぐらい。
staticの方が3倍速いからね
みんなはどうなの?
0568nobodyさん
2009/04/18(土) 18:19:54ID:???0569nobodyさん
2009/04/18(土) 18:26:13ID:???0572nobodyさん
2009/04/18(土) 18:33:40ID:???それを分離して補ってくれるのがフレームワーク
OOPOOP言うのは面倒だからまとめてJavaのサイトで勉強してきなさい
0573nobodyさん
2009/04/18(土) 18:34:42ID:???コードス補完があると便利なんですが
0574nobodyさん
2009/04/18(土) 18:55:58ID:moRQGLP/普及率が高いから。jspやaspは搭載してないレンタルホストがほとんどだしね。
>>569
カプセル化だけほしいんだよね。変数の扱いが楽だから。漢は手続きと言ってみたいけど、へっぽこなので変数汚染しまくり。
0577nobodyさん
2009/04/18(土) 19:36:21ID:???例えばCakeやRailsなどのフレームワークはTableModuleパターンを押し付けてくるが、ストラウストラップのOOPの考え方に一番近いのはドメイン駆動型の設計。
で、フレームワーク上でドメイン駆動設計を実現しようとすると、クラス階層を1枚上に丸ごと被せざるを得ない、というくらい両者は相性が悪い。
(基盤となるM-V-C間の繋ぎこみ自体はポリモーフィックに行なわれている事が多いので、無関係でもないが)
まあ、その「押し付け」のおかげでscaffoldingなどの高い開発効率を確保できるわけで、悪いとは言わないけどな。
少なくとも、MVC構造を理解する事と、OOPの考え方を理解する事は、別の問題と考えるべき。
実際、GoFをひとつも理解してなくともRailsやCakeで生産性は出るし、OOPを突きつめると必然的にRailsやCakeの設計に行き着く、というわけでもない。
0578nobodyさん
2009/04/18(土) 20:16:51ID:???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/
0579563
2009/04/18(土) 23:12:47ID:???>>565
>>566
返事が遅くなりすいません。
単純にint型の最大値を超えてた訳ですね。
本当にありがとうございました!
0580nobodyさん
2009/04/19(日) 00:13:57ID:KO8gMtKF【PHPのバージョン】5.2.9-2
【質問内容】
配列の任意の要素を削除する方法はありますか?
先頭や末尾の削除は簡単にできますが、任意の要素の削除ができません。
一応削除したい要素より後ろの要素を一つずつ前に詰めていく方法もありますが、一発でできるような方法があれば教えてください。
0581nobodyさん
2009/04/19(日) 00:32:27ID:???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解決しました
ありがとうございます
0584nobodyさん
2009/04/19(日) 12:09:11ID:???オブジェクトは、データに処理がくっついたもの。
言ってしまえばそれだけのことでしかない。
OOPを難しく考える必要はないよ。
0585nobodyさん
2009/04/19(日) 12:21:06ID:???ラムダ計算、関数型プログラミングに慣れておくために、LISPも勉強しておくと良いと思います。
0587nobodyさん
2009/04/19(日) 13:10:40ID:???いわゆる Stateパターンとか OOD的にはかなりビミョーと言う認識。
0588nobodyさん
2009/04/19(日) 13:15:49ID:TOquu1lD入力画面→確認→投稿という形で作ってまして
作成手順は入力画面でポストされたものをセッションに代入、
値を保持しながら確認→投稿という形で作成しました。
申し込みフォーム自体は問題がないのですが、
例えば、入力画面から確認に行き、そこから投稿せず会社概要など
他のページに移動して再度入力画面にいくと以前入力された値が
表示されてしまいます。おそらくセッションが残ったままに
なってるのが原因だとは思います。
入力画面←→確認←→投稿は値を保持させ他のページに飛んだ場合は
値を消去するやり方を教えていただけませんか?
アドバイスよろしくお願いします。
0590588
2009/04/19(日) 13:44:00ID:???返信ありがとうございます!
入力画面、確認画面、投稿画面以外の全てのページに
unset($_SESSION['hoge'])を設定しとこうかなとも考えましたが、
もしかしたら違うスマートやり方もあるのかなと思い質問してみました。
0591nobodyさん
2009/04/19(日) 13:46:19ID:???0592nobodyさん
2009/04/19(日) 14:16:20ID:???そうだよな。CakePHPの例で言っても、所謂OOP的な書き方って、Model, Controllerのextendsくらいだもんな。
基本、コンストラクタは省略されてるし、セッター、ゲッターなしにいきなりプロパティ変数に設定値を代入でOKとか。
あと、命名規則とか記述に縛りが多いのも独特。
0593588
2009/04/19(日) 15:05:06ID:???返信ありがとうございます。
hiddenも検討したんですが今回は項目が多く
入力←確認、確認→投稿時に全ての値をセットしないと
いけなくなりますので出来ればセッションでいけたらと思います。
変な質問すいません・・
0594nobodyさん
2009/04/19(日) 15:08:27ID:???0595nobodyさん
2009/04/19(日) 15:18:01ID:???0596nobodyさん
2009/04/19(日) 16:04:10ID:???複数の画面から同じフォームを生成する場合などは、使い回しが効くと非常にラクになる。
2. hiddenは別に面倒じゃない。確認画面は
foreach($_POST as $k => $v) echo "<input type=\"hidden\" name=\"$k\" value=\"$v\">";
でじゅうぶんだろ?(XSSを考え、実際はエスケープする事)。
0597nobodyさん
2009/04/19(日) 17:04:22ID:???まずCAKE使うだけならOOPの勉強しなくても、まぁ使える。
さらにCAKE使ってるとOOPに触れざる得ないから多少慣れるのもいい事かも。
で、クラスの書き方と使い方ぐらい入門系の情報でやっておくとある程度身に付いてくるよ。
0598nobodyさん
2009/04/19(日) 18:56:04ID:???まぁ好きにすれば良いんだけど、自分だったらそのセッションの内容をXMLに変換して、
これをhidden に持たせて、サーバ側ではsimplexml_load_stringでパースする。
0599nobodyさん
2009/04/19(日) 19:09:23ID:???あんま意味ないけどhiddenはbase64_encode(serialize())とかすれば一個ですむよ
とこでいくつかのWebアプリでは、プレビューには投稿画面に入力データのリストを追加しただけのものを表示するね
確認画面というフェーズを新たに作るより省力化になっていいと思う。確認画面から投稿画面にもどって、、、という作業もいらないし
0600nobodyさん
2009/04/19(日) 22:41:24ID:???ここだけケチをつけて済まないが
クライアントに渡すデータは他のフォーマットにしとけ
unserialize()時にコードインジェクションが起きる
0602nobodyさん
2009/04/19(日) 23:14:21ID:cHMoaxlc0603nobodyさん
2009/04/19(日) 23:14:45ID:???0604nobodyさん
2009/04/19(日) 23:17:02ID:???0605nobodyさん
2009/04/19(日) 23:24:48ID:???0606nobodyさん
2009/04/20(月) 15:46:47ID:yRu17DN3$ary[2]= "red";
$ary[3]= "yellow";
$ary[4]= "white";
上記のような配列があって、
一番大きい数字のキー(上記なら4)を取得したいのですが、
$aryをforeachで繰り返してキーを取得するより何かスマートな方法はありませんか?
0607nobodyさん
2009/04/20(月) 15:54:14ID:???0608nobodyさん
2009/04/20(月) 15:54:32ID:???その数値の定義のルールは?
1番目から1、2・・・5ってつけるなら
count($ary)でいけるんじゃね?
キーに文字列とか、飛ばし飛ばしの数値とかだったらループさせないといけないはず
キーソートあったと思うけど、個人的には何か使いたくないな
というか、使う機会がないな
0609nobodyさん
2009/04/20(月) 15:56:10ID:???foreach($ary as $value){
$abc[] = $value;
}
$abc[0];
こうするのがいやってことね。
0611nobodyさん
2009/04/20(月) 16:04:04ID:yRu17DN3>>608
ほんとだ、こんな方法が・・・。
自分の頭の固さを痛感しました。
>>609
ですね。でもシンプルなのが書けそうです。
ありがとうございました!
0612nobodyさん
2009/04/20(月) 16:15:13ID:yRu17DN3結果は同じでも、命令としてはこっちのが命令の意図に近いですね。
どっち使うかちょっと考えてみます。
ありがとうございます!
0613nobodyさん
2009/04/20(月) 16:20:28ID:???http://jp.php.net/manual/ja/function.end.php
で済むけど。
0614nobodyさん
2009/04/20(月) 16:54:04ID:yRu17DN3そんな便利なものが。
今回は取得したキー値を使い回すコード書いてるので、
endは使えませんが今後参考にさせてもらいます。
ありがとうございます!
0615nobodyさん
2009/04/20(月) 18:29:43ID:???意味を取り違えてるかも知れんが、キー値も必要ということなら、
http://jp.php.net/manual/ja/function.key.php で取得できる。
0617nobodyさん
2009/04/20(月) 19:12:07ID:9zjWZummcba
acb
上記の内容のテキストファイルの"cba"の行を削除する場合、どのようなコードを書けばよいのでしょうか?
0618nobodyさん
2009/04/20(月) 19:18:18ID:???0620nobodyさん
2009/04/20(月) 19:39:36ID:9zjWZummありがとうございます。
それと、そもそもファイルの内容を行ごとに配列に格納するのはfreadでも可能でしょうか?
file関数だとロックができないようなんですが…
0621nobodyさん
2009/04/20(月) 19:48:57ID:???$buff = fread($fp, 4096);
$lines = explode("\n", $buff);
とか
0624nobodyさん
2009/04/20(月) 20:29:36ID:???明示的にロックしたいならやっぱflockで
freadはデフォルトでは行末まで読み込みでしょ
0625nobodyさん
2009/04/20(月) 20:31:09ID:???0626nobodyさん
2009/04/20(月) 20:47:02ID:???0627617
2009/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:???0630628
2009/04/20(月) 21:21:44ID:???abc
acb
を
abc
cba
acb
の先頭から書き込んでるんだから重複するだろう
0631nobodyさん
2009/04/20(月) 21:22:19ID:9zjWZumm>>629
分かりにくくてすいません。
abc
acb
acb
このようなファイルが出来てしまいました…
0632nobodyさん
2009/04/20(月) 21:32:10ID:9zjWZumm一度ロックを解除して新規に作成するしかないんでしょうか…
できればロック内ですべて行いたいのですが…
0633nobodyさん
2009/04/20(月) 21:34:06ID:???0634nobodyさん
2009/04/20(月) 21:44:46ID:???0635nobodyさん
2009/04/20(月) 22:34:03ID:???fopenについてマニュアル呼んで来い
rとかwとかaとかbとか何を指定したらいいのか根本的にわかってなさ杉
0636617
2009/04/20(月) 23:01:16ID:9zjWZumm>>635
私が>>632で書いたようにwで新規に作るしかないってことじゃないんですか…?
0637nobodyさん
2009/04/21(火) 00:07:36ID:???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+変数の数と値についてはサンプルのため簡略化しましたがどちらも一定ではないと捉えてください
0642nobodyさん
2009/04/21(火) 13:19:13ID:???0643nobodyさん
2009/04/21(火) 14:10:04ID:???【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でお願いします
0644643
2009/04/21(火) 14:13:13ID:???ここで色々試してるのですが、どうにもうまく動きません
どうかご教授おねがいします
0645nobodyさん
2009/04/21(火) 14:53:31ID:???0646643
2009/04/21(火) 14:58:44ID:???【PHPのバージョン】PHP Version 5.2.6
でお願いします
0647nobodyさん
2009/04/21(火) 14:59:50ID:???今調べてやるからちょっと待ってろ
0650nobodyさん
2009/04/21(火) 15:11:53ID:???0651nobodyさん
2009/04/21(火) 15:21:52ID:???0652nobodyさん
2009/04/21(火) 15:23:55ID:???0653nobodyさん
2009/04/21(火) 15:28:23ID:???パターンがよくわからん、こういう感じ?
0656643
2009/04/21(火) 15:37:10ID:???入力例はただの例で、下記のような場合も考えられます
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:???0658nobodyさん
2009/04/21(火) 15:39:52ID:???なんかされたの?
0659nobodyさん
2009/04/21(火) 15:41:48ID:???0660nobodyさん
2009/04/21(火) 15:42:52ID:???別のやり方が見つかるかもしれんのじゃないかな?
まぁ658の聞き方はちょっと良くないかもしれんが・・・
0661nobodyさん
2009/04/21(火) 15:43:32ID:???使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
使用するのはpreg_replaceでお願いします
0662nobodyさん
2009/04/21(火) 15:48:27ID:???0663nobodyさん
2009/04/21(火) 15:49:15ID:???preg_replaceとstr_replace組み合わせるだけだろ
0664nobodyさん
2009/04/21(火) 15:50:37ID:???0665643
2009/04/21(火) 15:59:30ID:???0666643
2009/04/21(火) 15:59:48ID:???>>660
本当にやりたいことは、
与えられた文字列の中のURLとメールアドレスと電話番号を
自動的にリンクに置換する関数を作るというものです
(それぞれ<a href="">と<a href="mailto:">と<a href="tel:">に)
0667nobodyさん
2009/04/21(火) 16:00:20ID:???0668643
2009/04/21(火) 16:01:03ID:???電話番号の置換で意図しない動きをしたので、困ったのです
というのも
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とメールアドレスの変換を行った部分については無視し、
電話番号のリンクだけを作りたいと、そう思って質問した次第です
0669643
2009/04/21(火) 16:02:38ID:???それが私のスキルでは一番早そうですね
一度それで組んでみます
ありがとうございます
>>667
名簿業者じゃないです
携帯サイトを作っていて
ユーザーの書き込みを自動リンクさせたいだけなのです・・・
0672nobodyさん
2009/04/21(火) 16:14:23ID:???基本的に文字の並びがシンプルなのから置換するのがベスト
0673643
2009/04/21(火) 16:16:11ID:???そうしてしまうと、
先ほどの例のような
0909999999@xxxx.ne.jp
が
<a href="tel:0909999999">0909999999</a>@xxxx.ne.jp
になってしまいます
ここはやはりメールアドレスで置換したいと思っています
0674nobodyさん
2009/04/21(火) 16:17:29ID:???0675nobodyさん
2009/04/21(火) 16:18:14ID:???まさか掲示板に書き込まれた内容とかじゃないよな・・・?
0677nobodyさん
2009/04/21(火) 16:20:04ID:???0679nobodyさん
2009/04/21(火) 16:22:22ID:???0680nobodyさん
2009/04/21(火) 16:23:32ID:???これどういう意味?
自分で新着情報とかそういうのに番号載せて、それにリンクつけるってこと?
それだったら<tel:0120000000>のような形式で記述してそれを置換すればよくね?
一般ユーザーから投稿された電話番号の置換はやめとけ
あと、ただの数字の羅列か電話番号かの判断などさまざまなパターンを考えれ
0682680
2009/04/21(火) 16:29:37ID:???@preg_match_allで数字の羅列を全て取得
Aループさせて色々なパターンをマッチ
0Xで始まる10桁の数字かどうか
090or080or070で始まる11桁の数字かどうか
0120で始まる10桁の数字かどうか
etc
B一致したものを、変換後の数字に持たせる
Cループさせてstr_replaceとかで置換
書き方アバウトですまん。
あと他にいい方法あれば俺にも教えてくれ
0683643
2009/04/21(火) 16:35:59ID:???なるほど・・・
>CMSに内容〜
これは、一般ユーザーの投稿内容でサイトの内容を変更する感じのサイトっていう意味でした
0686680
2009/04/21(火) 16:43:12ID:???ああ、社内ネットワークで使うのか
電話番号だけ[]で囲ってもらうようにするとかすればいいんじゃないかな?
それか文字の先頭にTel:またはрつけてもらうとか
具体的にどのようなものを作るかによって変わってくるからなぁ
0687nobodyさん
2009/04/21(火) 16:44:00ID:???0689nobodyさん
2009/04/21(火) 16:57:51ID:yGbAtJxQタグの中がちゃんとクォートされてるならこれだけでいいんだけどね
0692nobodyさん
2009/04/21(火) 19:35:57ID:???foreach ($file as $v) {
echo $v."
0693nobodyさん
2009/04/21(火) 19:37:46ID:gWZ6QvqOforeach ($file as $v) {
echo $v."<br>";
}
textdata.txtがあります
このファイルはオフラインで更新した後に、サーバにアップロードします
この場合textdata.txtの内容を出力するときにhtmlspecialcharsは行うべきでしょうか?
0694nobodyさん
2009/04/21(火) 19:41:39ID:???0695693
2009/04/21(火) 19:49:32ID:gWZ6QvqO私が自宅のパソコンで編集してアップロードするだけで、他の人は一切編集することがありません
0696nobodyさん
2009/04/21(火) 19:57:41ID:???そしたらエスケープはしなくてよい。
自分でメモ帳で手打ちでHTMLを編集して
自分のホームページをアップロードしてるのと同じ。
0697nobodyさん
2009/04/21(火) 19:59:20ID:W2YbvY8A実行してもfalseが返ってくる。ほぼまる一日悩んでるんだけど、よくあるFAQがあったら教えてください
OSはCentOSでPHP5.1.6 Apache2.2.3
php.iniのsafe_modeはoffにしてあって、シェルから目的とするphpを実行するとしっかり動作するんだが、
system()から実行できない・・・
0698nobodyさん
2009/04/21(火) 20:02:20ID:???0699697
2009/04/21(火) 20:10:44ID:W2YbvY8Aん、俺ですか?
0700nobodyさん
2009/04/21(火) 20:39:39ID:???以前、同じような書き込みを見たことがあるような記憶があるような。
bash -c php うんたら でもダメなの?
0702nobodyさん
2009/04/21(火) 21:00:07ID:???サニタイズされてたほうがいいんじゃないの?
0704nobodyさん
2009/04/21(火) 22:04:48ID:uVsldpzX// 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:???詳しくはマニュアルを読め
0707nobodyさん
2009/04/21(火) 22:59:38ID:???$this->list = array($key=>$val);
ここで上書きしてるからそうなるんだよ
$this->list[$key] = $val;
にすればよい
0708nobodyさん
2009/04/21(火) 23:06:23ID:???一般論として考えるならこの手の類の問題は
なるべくなら最悪の可能性を考えて設計すべきだけど、
絶対に他人が触らず自分も忘れないという前提なら構わないよな
ただ、ちょっとした汎用関数を通すぐらいでカバーできるのなら、
最低それはしておくべきのような気がする
設計思想や仕様以前の安全対策として
0709nobodyさん
2009/04/21(火) 23:10:54ID:???0711nobodyさん
2009/04/21(火) 23:33:40ID:???サイト乗っ取られたらどうするってのと、同じレベルの話に聞こえるけどな。
これアップローダの話じゃないんだろ。
っていうか、 textdata.txtに入ってるのがHTMLだったらhtmlspecialcharsしちゃアカンし、
テキストだったらしといた方がラクだろ。
0713nobodyさん
2009/04/21(火) 23:41:38ID:???<br>を行末に添付しているから、.txtがhtmlでないことはわかる
だからエスケープ処理しとくべきかもね
0714nobodyさん
2009/04/21(火) 23:43:54ID:???エスケープ刷る必要ねえだろw
0717nobodyさん
2009/04/22(水) 03:30:58ID:JOPttRIE/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:???0720nobodyさん
2009/04/22(水) 14:11:24ID:???(2)ドット+1文字以上の数字 又は 1文字以上の数字
(3)(2)が1回以上続く
でよかないですか?
0721718
2009/04/22(水) 14:15:35ID:1Gt+zU8A希望通りの動作をしました。ありがとうございます。
ついでにD修飾子の意味を教えていただけるとありがたいです。
0722nobodyさん
2009/04/22(水) 14:17:56ID:???0723718
2009/04/22(水) 14:21:18ID:1Gt+zU8A正規表現内で使用(\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=
0725718
2009/04/22(水) 14:30:29ID:1Gt+zU8A装飾子ってのは修飾子のことを指してるんだとは思いますが、
その検索結果内には/regex/Dではなく/regex\D/の解説結果しかないと思います。
>>723で明記した通りです。
0726nobodyさん
2009/04/22(水) 14:33:58ID:???マニュアルも読まないのなw
ttp://php.benscom.com/manual/ja/reference.pcre.pattern.modifiers.php
0727nobodyさん
2009/04/22(水) 14:51:06ID:MEQMnIq/↑
上記のサーバーはapacheモジュール版のPHPをサポートしているでしょうか?
html中に
<?php
・・・
?>
で記述されたPHPコードを実行させられるかどうか知りたいです。
0728718
2009/04/22(水) 14:51:58ID:1Gt+zU8A>>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:???phpinfo.php が動いてるんだから動くだろうよ。
Server API CGI/FastCGI
だからcgiモードだろうけど。
0732nobodyさん
2009/04/22(水) 15:20:24ID:MEQMnIq/ありがとうございます。
Apacheモジュール版ではできて、cgiモードではできないことの代表例といったらどんなものがありますか?
参考までにPHPで作られたカウンタやキャプチャ機能付き掲示板、ブログ等を実装しようとおもっています。
0734nobodyさん
2009/04/22(水) 15:29:57ID:???0735nobodyさん
2009/04/22(水) 15:40:35ID:MEQMnIq/それほど関係ないならほぼ全てのレンタルサーバーはPHPをcgiモードで
動かしてしまえばいいと思うのですが、そうではないということはユーザー
のなかにはApachモジュールでの動作にこだわられてる方が多いということなんでしょうか?
0738nobodyさん
2009/04/22(水) 22:56:16ID:???cgiで動作する場合、
Apache → php.exeとかが起動される → 実行
となる。対して、mod_phpはApache自身が実行するので、php.exeの起動を毎回する必要がなくなる。その分早い。
(Apacheがphp.exeを予め起動し、常時スタンバイ状態にしておくイメージ)
(実際はUnix系サーバだろうからexeなんてファイル名じゃないわけだが、まあイメージだ)
0739nobodyさん
2009/04/23(木) 04:26:39ID:113Aszds更新pingを送信してやるプログラムを作っているのですが
そこでpingサーバーにPOSTしてやると言うことまでは
わかっています。
POSTするのはソケットかcurlだと思うのですがパラメーターの
名前がなくてもPOSTできるものなのですか?
ヤフーなら
http://api.my.yahoo.co.jp/RPC2
のURLにPOST送信して下さい
としか書かれていません。
よろしくお願いします。
0740nobodyさん
2009/04/23(木) 04:40:06ID:???0741nobodyさん
2009/04/23(木) 10:21:51ID:QVnMbBVw0742nobodyさん
2009/04/23(木) 10:26:02ID:???0743nobodyさん
2009/04/23(木) 10:29:34ID:???文字周りを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などの正規表現でファイル名を調べる方法もありますが、
もう少し短い手順で、簡単に調べられる方法はないでしょうか?
0746741
2009/04/23(木) 11:20:07ID:QVnMbBVwそこで具体的な質問なのですが一部の箇所だけでも構いませんのでどなたかご教示お願い致します
・output_bufferingは0にするべきか
・mb_string不使用のレンタルサーバに対応するコードを書くためにmb_stringを使わないべきか
・セーフモードをオンにするだけでいいか。safe_mode_exec_dirなどセーフモードに関する設定も行うべきか
・[mbstring]項目のmbstring.http_inputなどの設定の仕方
0747nobodyさん
2009/04/23(木) 11:22:01ID:???ttp://jp2.php.net/manual/ja/function.similar-text.php
0748741
2009/04/23(木) 11:25:32ID:QVnMbBVw$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>
0752745
2009/04/23(木) 12:03:37ID:ai/dLDOCありがとうございます。
たしかにこれでテキスト間を調べることは出来ますが、
やっぱり、ファイル名を調べるには、
ディレクトリ一覧を取得する方法しかないのでしょうか?
0753nobodyさん
2009/04/23(木) 12:03:58ID:aSD7OG+wキャッシュがなくて再読み込みされるらしいのですが、何が原因なのでしょうか
auでテストしてみたところ、キャッシュが残っていてすぐに表示されました
0754nobodyさん
2009/04/23(木) 12:27:15ID:???その例だと曖昧検索じゃなくてただの部分一致だと思うけど、
単なる部分一致なら
http://jp.php.net/manual/ja/function.glob.php
で出来るよ。
0756nobodyさん
2009/04/23(木) 13:19:05ID:???あのクッキーは使えねーどこも?w
あんなキャリア無視していいよ。
0757nobodyさん
2009/04/23(木) 13:21:52ID:aSD7OG+w流石にお客さんの要望となると無視できないです・・・
0758nobodyさん
2009/04/23(木) 13:21:58ID:???全キャリア対応できるノウハウを持ってる優秀な俺が無職でいる日本
0759nobodyさん
2009/04/23(木) 13:45:30ID:???0760nobodyさん
2009/04/23(木) 13:47:34ID:???0761745
2009/04/23(木) 14:02:10ID:???globもファイル内一覧を検索する関数ですし、
やっぱりそうするしかないんですね。
勉強になりました。ありがとうございました。
0763nobodyさん
2009/04/23(木) 14:05:35ID:???0764nobodyさん
2009/04/23(木) 15:02:49ID:???調べてみたらあるじゃん
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:???というか、仕事なのにこんなとこで聞く程度のスキルでお金もらえるの?
どこの会社だろう。
いいな。うらやましい。2chで情報もらって金儲けか。
0767nobodyさん
2009/04/23(木) 15:18:36ID:???俺みたいな何でも一人でこなせる優秀な人材が無職な日本
0769nobodyさん
2009/04/23(木) 15:23:34ID:???0770nobodyさん
2009/04/23(木) 15:30:10ID:???ですか?()笑
0772nobodyさん
2009/04/23(木) 15:40:50ID:???0773nobodyさん
2009/04/23(木) 16:22:08ID:???昨日買ったメガネ
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:???日本語が全部?になってしまいます。ソースも?になっています。
XAMMPでみると正常に表示されるんですが、これはレンタルサーバの
設定によるものなのでしょうか?
だとするとPHPファイルの文字コードを合わせるしかないのでしょうか?
0777nobodyさん
2009/04/23(木) 23:28:39ID:Slt+HzGfUTF-8のDBに対しUTF8のスクリプトからSET NAMES UTF-8を行った上でUTF-8のエンコードの文字列を書き込んでいるのですが「〜」(全角チルダ)のみ?と化けて書き込めません。
書き込む直前に波ダッシュに変換したりした場合は問題有りません。
原因は何が考えられますか?
0779nobodyさん
2009/04/23(木) 23:35:03ID:???まずそのまま、ブラウザのエンコーディングをUTF-8にしてみろ。
これで直るようなら、スクリプトに
header('Content-Type: text/html; charset=UTF-8');
で解決。
適切なヘッダーを吐き出さないと脆弱性の元になるので、文字化けの有無に限らず常にヘッダは吐く癖をつけろ。
>776
自分でヘッダをいじれる環境で、メタタグを使う意味が分からない。
0780nobodyさん
2009/04/23(木) 23:36:26ID:???まずその問題の知識はあるのかね?
ttp://www.informe.co.jp/useful/character/character14.html
0781nobodyさん
2009/04/23(木) 23:37:36ID:???ありがとうございます。
波ダッシュ問題については認識しているのですが、全く同一仕様のサーバーに同一プログラムを置いているのですがそちらでは全角チルダをDBに書き込めています。
またphpの設定、DBの設定(phpMyAdminから見える範囲)も同一です。
phpMyAdminから見えないところでMySQLに設定しなければいけないものはありますか?
0784777
2009/04/23(木) 23:41:28ID:???$qry .= "str=〜(波ダッシュ)";
$result = mysql_query($qry, $sql_connect);
OK
$qry .= "str=〜(全角チルダ)";
$result = mysql_query($qry, $sql_connect);
NG(記録されるのが”?”)
化けるのは全角チルダONLYです。
0788nobodyさん
2009/04/23(木) 23:46:57ID:???メタタグは入れてテストしていた・・・つもりだったのですが、再度やってみると
あっさり直りました。もやもやしますが、再現できないのでOKとします。
>>779
スクリプトからのヘッダ指定は知りませんでした。ちょっと教えて欲しいのですが
メタタグもスクリプトもPHPの中の人が同じファイル内を読んでその指示に
沿っているという点では同じかと思うのですが、意味が分からないということは
スクリプトで書いた方が良いことがあるのでしょうか?
0792nobodyさん
2009/04/24(金) 00:11:15ID:???メタタグを読んでいるのはブラウザの中の人。
headerを使うのとmetaを使うのとどう違うのか、と言われると実は実際問題たいした差は無い。
けど、http-equivのequivってのは「代替品」って意味。文字通り、ヘッダーを生成できない場合の代替が目的。
本物と代替品を両方使えるなら、本物を使うのが自然だと俺は思う。
まあ、RFCや歴史的経緯や由来なんぞ知った事か!って意見もあるだろうし、両方使う、ってのがベストではあるけどな。
(Apacheの設定でヘンなヘッダを吐かれるケースの対策でもあったんだが、そういうケースは最近はあんま見ない)
0793nobodyさん
2009/04/24(金) 00:14:29ID:???知らないってのは流石にダセぇとは思うが、どっちかを強制するような事じゃない。
0794nobodyさん
2009/04/24(金) 00:22:28ID:???最初メタタグなしで?だったのでメタタグを入れてダメで、間違いに
気づいてメタタグを正確に直したけど表示されないなぁと思って
聞いてみたんですけど、改めて見てみると正確に直してるファイルは
普通に表示され、記述間違いはダメ、という当然の結果なのです。
直したつもりだったてことかと。
>>792
>メタタグを読んでいるのはブラウザの中の人。
そうでした。
>ヘンなヘッダを吐かれるケースの対策でもあった
メタタグは通用しないことがあるって記述をどこかで見てバシッと
指示できる方法がないものかと思ってたんですが当にこれですね。
メタタグがブラウザ対象ならPHPに通用しないのは当然か。
SQLも文字化けしてたんですけど
mysql_query("SET NAMES utf8");として解決したので
同様の指示方法を探してました。
0795nobodyさん
2009/04/24(金) 01:41:32ID:oXgFhkjsこんなん常識じゃね?
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自分でサーバ運用したこと無いのかねぇ?
0799nobodyさん
2009/04/24(金) 01:50:09ID:???0800nobodyさん
2009/04/24(金) 01:52:13ID:oXgFhkjs意味わかってしてるんだから許せw
0801nobodyさん
2009/04/24(金) 01:59:00ID:???偶然にも全く同じ問題に直面していたんだが、phpMyAdminで設定した照合順序は
各テーブル、フィールドに個別に設定出来てる?
UTF-8で全部やっているならとりあえず照合順序を全てutf8_general_ciにしてみると良いよ。
0802nobodyさん
2009/04/24(金) 02:14:21ID:???このスレ見てる人間はプログラマーではあってもおそらく鯖屋ではありません
Webプログラマーならhttpの知識知ってて当然
ようするに知らないのは初心者
そしてここはそういうスレ
0803nobodyさん
2009/04/24(金) 02:28:31ID:???>797
普通、画面出力は一箇所にまとめるだろjk。
echoが2箇所以上に存在するスクリプトは、構成にそもそも難がある。
あと、適当なテキストファイルに文字列を書き出す関数は常に用意しておいたほうが便利だぞ。
0804nobodyさん
2009/04/24(金) 02:32:14ID:???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:???例えば画面出力を突然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:???原始的手法をとってるんだと思うよ。俺もたまにやるし。
あと、出力エンコーディングのごっそりな変換はiniで指定したほうがラクだよ。
個人的にはこのご時世コード的に小さいWebアプリなんてのがまずなくなってるから
FWのロガーとIDEのデバッガを適切に使うのがよいと思う。
ウニットテスト云々言ってるが、アサーションに漏れたらその変数とコールスタックのダンプなどをやってくれるので
初心者にもオススメだ。
0810nobodyさん
2009/04/24(金) 04:04:03ID:???0811nobodyさん
2009/04/24(金) 04:12:50ID:???どうだろう…抑止なると使ってるくらいだしな…
エコー → 自作関数 → FWスタンダード って感じでステップアップしていけばいいんじゃないか?
だいたい皆そうだろ
0812nobodyさん
2009/04/24(金) 04:22:16ID:???そうやってエラー無視してバグの元を作ってしまうことが問題だと思うんだが
素のechoだろうが自作フォーマットだろうがそっちは好きにしなさい
0815nobodyさん
2009/04/24(金) 09:26:01ID:???0816nobodyさん
2009/04/24(金) 09:36:54ID:???0817nobodyさん
2009/04/24(金) 09:38:38ID:???0818nobodyさん
2009/04/24(金) 11:46:30ID:NYw9Sn8U0819nobodyさん
2009/04/24(金) 11:48:01ID:???0820nobodyさん
2009/04/24(金) 11:51:26ID:NYw9Sn8U0821nobodyさん
2009/04/24(金) 11:52:20ID:NYw9Sn8Uそれを表示したいです
0823nobodyさん
2009/04/24(金) 12:42:44ID:???for ($i = 0 ; $i < count($array) ; $i++)
みたいな書き方のソース多いな
どこのオープンソースもこんなもん?
0824nobodyさん
2009/04/24(金) 12:42:53ID:NYw9Sn8U0826nobodyさん
2009/04/24(金) 12:45:26ID:???0827nobodyさん
2009/04/24(金) 12:52:53ID:???まあどれかわかるけど
0828nobodyさん
2009/04/24(金) 13:11:39ID:???余計ややこしいとね^^;
0829nobodyさん
2009/04/24(金) 13:12:31ID:???0831nobodyさん
2009/04/24(金) 13:16:11ID:???0833818
2009/04/24(金) 13:18:26ID:NYw9Sn8U0834nobodyさん
2009/04/24(金) 13:19:22ID:???0836nobodyさん
2009/04/24(金) 13:21:02ID:???0838nobodyさん
2009/04/24(金) 13:31:55ID:???0839nobodyさん
2009/04/24(金) 14:08:57ID:???こういう書き方すると怒られる?
0840nobodyさん
2009/04/24(金) 14:09:36ID:???0841nobodyさん
2009/04/24(金) 14:10:19ID:???0843nobodyさん
2009/04/24(金) 14:23:04ID:???個人で作るなら問題ないけど
他の人に見せる可能性があるなら可視性も大事
あと適度なコメント表示もお願いねほしみ
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/eK7tREMOTE_ADDRの中身とかどうなるのでしょう?
普段見慣れない0000:0000:0000:0000:0000:0000とかになるのでしょうか?
DNS逆引きでリモホを得た場合
IPv4のとIPv6のホスト名に大きな差異はあるのでしょうか?
PHPの質問とはかけ離れてますがアクセス解析を作りたいのでよろしくお願いします
0855nobodyさん
2009/04/24(金) 15:22:40ID:???名前<div>名前
といったようにタグを挟んだり
ネ申
といったものを入れると\が付加されてメールで飛んできます。
文字コード自体はmb_convert_encodingで変換しているので問題はないと思うのですが
どういしたら出ないように出来るのでしょうか。
0856nobodyさん
2009/04/24(金) 15:24:54ID:???わざわざそんなこと気にしてるのはPHPユーザーぐらいだろ
他の言語板で聞いてみな
0858nobodyさん
2009/04/24(金) 15:32:50ID:???0860nobodyさん
2009/04/24(金) 15:36:08ID:???iがほしい場面じゃfor使わざるを得ないけど
使う必要がないならそのとおり
>>859
安心しな
JavaスレとJSスレぐらいしか見てないから
C系の人にきいてみな
0861nobodyさん
2009/04/24(金) 15:39:14ID:???添え字の数値が欲しいなら foreach($array as $key=>$val) 書式使うし、
確実に連続した数値としてほしいなら、これは使えないから、別途カウント用の変数を使う。
0862nobodyさん
2009/04/24(金) 15:44:25ID:???ベンチマークベンチマーク
0863839
2009/04/24(金) 15:47:56ID:???普通にかくと、
$cnt = count($a);
for(〜
となると思うのですが、
forの中だけで使いたい$cntがforの外に出るのがかっこ悪いかなぁと思ったためです。
foreach($a as $i => $item) echo $a[$i];
のような書き方もあるとおもいますが・・・
上記のような書き方の違いがコーディングスタイルの範囲なのか、プログラムの動き的に
別の問題が発生するのかという疑問を持ったという感じです。長文すいません。
0864nobodyさん
2009/04/24(金) 15:50:39ID:???0866nobodyさん
2009/04/24(金) 15:55:05ID:???それはわかってるけどそんなの意識するのPHPユーザぐらいじゃね?
劇的にかわるもんでもないでしょ?
もともと高速だし
0867850
2009/04/24(金) 15:56:24ID:aAv/eK7t0868850
2009/04/24(金) 15:58:40ID:aAv/eK7tやっぱ詳しい方教えてもらえないでしょうか?
スレ違いとは承知してますがこのスレならいると思うので
IPv6板で聞きなおそうと思ったのですがIPv6でしか書き込めないらしい・・・
0870nobodyさん
2009/04/24(金) 16:58:31ID:???ようするに下らんところで口を出すPHPユーザの質が低いってことだな
0874nobodyさん
2009/04/24(金) 17:04:38ID:???Webやってんのに全然セキュリティ意識がないのが多いね
そっちのほうがよほど問題
かくいう自分も100%安全なプログラムかけてるかというと自信はないけど
PHP選択してる時点でセキュリティ意識がないと言われたら終わりだが
0875nobodyさん
2009/04/24(金) 17:09:25ID:???コードが汚いし、>>839 の書き方じゃ
$a[0] = 'hoge';
$a[100] = 'hogehoge'
ってした時に期待した動きにならんでしょ。
あぶねーよ。
0876nobodyさん
2009/04/24(金) 17:09:55ID:???> ttp://pc12.2ch.net/test/read.cgi/tech/1239708057/360-362
javaは確か内部でsizeを持ってるんじゃないかな。
phpのcountとはオーバーヘッドが全然違うと思う。
0878876
2009/04/24(金) 17:16:30ID:???javaはlistオブジェクトが持ってるsizeメンバを返してるだけだが、
PHPはのcountはいちいち個数を調べてるってこと。
0879nobodyさん
2009/04/24(金) 17:16:47ID:???そんな書き方あるのか
for ($i = 0; $i < $cnt = count($a); $i++)
ってのはあるが
これとは意味違うのかね
これじゃ$i < count($a)と変わらない?
0880nobodyさん
2009/04/24(金) 17:18:13ID:???$a[100] = 'hogehoge'
$a[0] = 'hoge';
だと、foreachでも、ある意味、微妙な動きをするな。
それでも PHPの添え字はオフセット値とは扱いが違うんで、forとかは馴染まんなぁ。
>>878
それソースあったら教えて。
0881nobodyさん
2009/04/24(金) 17:19:49ID:???for($i = 0, $cnt = count($a); $i < $cnt; print($a[$i]), $i++);
0884nobodyさん
2009/04/24(金) 17:28:34ID:8/gQo6YyというURLで、
exec.phpにそれ以降の文字列を渡したいんだけどどうすりゃいいの
0887nobodyさん
2009/04/24(金) 17:32:16ID:???0888nobodyさん
2009/04/24(金) 17:35:56ID:???0889nobodyさん
2009/04/24(金) 17:37:09ID:???0891nobodyさん
2009/04/24(金) 17:53:00ID:???まったくひどいスレだwww
0892nobodyさん
2009/04/24(金) 17:54:01ID:8/gQo6Yyここに頼ってしまいました
優しい諸兄に感謝。ありがとうございました。
0893nobodyさん
2009/04/24(金) 17:57:05ID:???0894nobodyさん
2009/04/24(金) 18:27:44ID:???とりあえず配列を抜きにして考えれば、
for(初期化; ループ条件; ループ毎)なので、
どこが毎回評価されるのか自ずと解るはずだよ。
0895878
2009/04/24(金) 18:50:20ID:???>>883
すいません嘘つきました。
phpのソースを見てみたところ、ハッシュテーブルの要素数を返してるだけでした
(ただ、再帰モードの時は全部足し合わせ)。
なので呼び出すコストはjavaとそんなに変わらないと思います。
0896nobodyさん
2009/04/24(金) 19:03:27ID:???0898nobodyさん
2009/04/24(金) 23:40:28ID:???0899nobodyさん
2009/04/24(金) 23:47:51ID:uCohzQoDlimitを使って3行目から5レコードを取り出すには
limit 3,5と書きますが
3行目からそれ以降の全部のレコードを出すにはなんと書けばいいのでしょうか?
0903nobodyさん
2009/04/25(土) 00:30:51ID:???ttp://dev.mysql.com/doc/refman/5.1/ja/select.html
0904nobodyさん
2009/04/25(土) 00:37:29ID:???0905nobodyさん
2009/04/25(土) 00:49:38ID:Be7Ny8gy10000くらい入れておきます
皆さんありがとうございました
0906nobodyさん
2009/04/25(土) 07:39:56ID:???for($i=0,$max=count($array); $i<$max; $i++){ }
0907nobodyさん
2009/04/25(土) 08:56:13ID:???0908nobodyさん
2009/04/25(土) 11:57:17ID:???キーを取れる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:???0911nobodyさん
2009/04/25(土) 15:49:54ID:aOAtk1JY0912nobodyさん
2009/04/25(土) 16:47:37ID:???0913nobodyさん
2009/04/25(土) 18:27:23ID:BAT3f6Eahttp://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:???0915913
2009/04/25(土) 18:35:49ID:???コンテンツがあまりないので、右flame部分にリンクを書いているのですが、
相手のサイトの逆アクセスランキングにはそのページが登録されてしまって、
余り意味がないので、ちゃんとしたページにリンクさせたいんです
0918913 ◆Itxg64K/6g
2009/04/25(土) 19:06:49ID:???0920nobodyさん
2009/04/25(土) 19:19:55ID:???0921nobodyさん
2009/04/25(土) 19:28:44ID:BAT3f6Ea0922nobodyさん
2009/04/25(土) 19:30:41ID:BAT3f6Eabbb.phpはflameの一つなので、たぶん其れは無理だと思います
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そのやり方を教えてください・・・
>>925
aaa.phpはメニュー一覧とリンクが書いてあるflameの一部
このページをジャンプページにすると言うことですか?
よく分かりません・・・
0927nobodyさん
2009/04/25(土) 20:32:28ID:???0930nobodyさん
2009/04/25(土) 22:11:57ID:PKWkdbE9レスポンスが返ってこなくなるのですが何か対策方法はあるでしょうか?
0931nobodyさん
2009/04/25(土) 22:19:43ID:???0932nobodyさん
2009/04/25(土) 22:23:27ID:PKWkdbE9memory_limit = 16Mにしたのですが足りないでしょうか?
0934nobodyさん
2009/04/25(土) 22:39:13ID:???933のいうとおりそんなものをWeb上で処理するのがまちがってんだけど。
共用サーバならやけとけや。
0935nobodyさん
2009/04/25(土) 22:42:18ID:???128MBに設定したら普通に処理できました
お騒がせしてすみません
0936nobodyさん
2009/04/26(日) 00:23:18ID:Cm1KZobT(コメント投稿はブログでも可能ですが画面がゴチャゴチャしていることや
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:???金出すからスクリプト作ってよvol.1
http://pc11.2ch.net/test/read.cgi/php/1150508106/l50
0940nobodyさん
2009/04/26(日) 00:46:27ID:???すれ違いどころか板違いなんだなこれが
こんなCGI探してます 23
http://pc11.2ch.net/test/read.cgi/hp/1219654359/
0941nobodyさん
2009/04/26(日) 00:53:07ID:Cm1KZobTどうもです、そちらで探して参ります(´・ω・`)ノシ
0942nobodyさん
2009/04/26(日) 02:22:48ID:NR6bqMwgpreg_match('/<body>(.*?)<\/body>/is',$html,$array);
とすれば、タグの<body>から</body>間を取得できますが、
その中に含まれている特定のタグ(例えば<strong></strong>とか
を取得するには、どう書けばいいのでしょうか?
0943nobodyさん
2009/04/26(日) 03:18:51ID:SODrJj0xこの右側のrecent news はどうやって作ってるんでしょうか
0944nobodyさん
2009/04/26(日) 03:27:29ID:???0945nobodyさん
2009/04/26(日) 06:12:55ID:???適当にこんな感じ?
0947nobodyさん
2009/04/26(日) 11:19:37ID:3+X1AYP5ウイルスでしょうか?
0948nobodyさん
2009/04/26(日) 11:21:55ID:???0949nobodyさん
2009/04/26(日) 11:25:43ID:3+X1AYP50950nobodyさん
2009/04/26(日) 12:00:20ID:???管理人に意図聞けばいいんじゃね
0951nobodyさん
2009/04/26(日) 12:01:38ID:3+X1AYP50952nobodyさん
2009/04/26(日) 12:03:33ID:???HTTP/1.0で取ると普通のページになるな。
0953nobodyさん
2009/04/26(日) 12:12:38ID:???と書かないといけないところに
$_SERVER["REMOTE_ADDR"]
と書いてしまったとか。
0954PHP大好き.php ◆Hentai.kRI
2009/04/26(日) 17:15:53ID:???0955nobodyさん
2009/04/26(日) 17:21:05ID:v3Zqb192http://www.aguse.jp/?m=w&url=wiki.poyo.jp&x=0&y=0
0956nobodyさん
2009/04/26(日) 17:23:53ID:???して
GET / HTTP/1.0
リターン2回
ってやってみればいい
0957PHP大好き.php ◆Hentai.kRI
2009/04/26(日) 17:26:55ID:???ありがとう。日本人なのね・・・
0958nobodyさん
2009/04/26(日) 19:21:11ID:???0959nobodyさん
2009/04/26(日) 19:30:40ID:???つるっつるか!
0960PHP大好き.php ◆Hentai.kRI
2009/04/26(日) 19:36:12ID:???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:???0965nobodyさん
2009/04/27(月) 00:10:42ID:OUJGurX70966nobodyさん
2009/04/27(月) 00:12:26ID:???0967nobodyさん
2009/04/27(月) 00:22:23ID:Mkjlliv0session_start();
を記述しておくとブラウザの「リロード」を押したり、一度他のページ移動してから
元のフォームのページに戻ってくると一生懸命入力したフォーム欄が一発で空欄になるんだね(´・ω・`)
session_start();
しないページにすれば何回リロードしてもどんだけ他のページとの間をいったりきたりしても
一度入力したフォーム欄は消えないんだけどそれだとPHPプログラムが正常に動いてくれない。
さてどうしたものか(´・ω・`)・・・
0968nobodyさん
2009/04/27(月) 00:27:35ID:???後者はブラウザがよろしくやってくれてるだけ。ひょんなきっかけですぐ消えるよ
逆にセッションを正しく使ってれば消えるなんてありえない
0970nobodyさん
2009/04/27(月) 00:40:36ID:???0971nobodyさん
2009/04/27(月) 00:43:08ID:Mkjlliv0IEは先頭にsession_start();があっても無くてもリロードするとフォームの内容が消えた。
Firefoxはsession_start();があるとリロード時に消えるけど無いときは何度リロードしても消えなかった。
ちなみにPHPの力を駆使してIEでもFFでもリロード時や他のページの間をいったり来たりしても
にフォームに記述した内容を保っておくことってできると思う(´・ω・`)?
0972nobodyさん
2009/04/27(月) 00:59:38ID:Xhu9KGLbわかんない??
0973nobodyさん
2009/04/27(月) 01:10:29ID:Mkjlliv0にゃるほど、でも訪問者がブラウザの進む・戻るボタンを押す直前のフォームの内容を記憶させることなんてできる?
0975nobodyさん
2009/04/27(月) 01:17:00ID:???0976nobodyさん
2009/04/27(月) 01:17:25ID:Xhu9KGLbここまで書いたぞ
感謝して
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:???コード晒すなら肝心なところを晒せw
0980nobodyさん
2009/04/27(月) 08:54:04ID:skcV1wh3すいません
これです
function escape_data($data){
$pattern='-{2,}';
$data=eregi_replace($pattern,'',$data);
return $data;
}
0981nobodyさん
2009/04/27(月) 08:55:09ID:???「-{2,}」って文字列を$patternに代入してる、って答えようとしたが
>>979の優しさに感動したから見逃してやろう
0982nobodyさん
2009/04/27(月) 11:18:03ID:???0983nobodyさん
2009/04/27(月) 11:53:54ID:???-{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:???0989nobodyさん
2009/04/27(月) 13:33:28ID:???0990nobodyさん
2009/04/27(月) 15:26:21ID:3y+KLnhW$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:???0994nobodyさん
2009/04/27(月) 18:46:46ID:???できる
キャッシュを残しておいて、それを読みに行くように設定すればいい
ただし、ショッピングカートとかで不具合が出ても責任はとらない
0995nobodyさん
2009/04/27(月) 19:13:23ID:???最後の1回だけを有効にするようなことはできますか。
0996nobodyさん
2009/04/27(月) 20:12:57ID:???など3つ以上の複数の場合にTRUEとするにはIFを入れ子にするしか
ないのでしょうか?
$test == (1,2,3)みたいに簡潔に記述できないものでしょうか
1000nobodyさん
2009/04/27(月) 20:54:30ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。