【PHP】下らねぇ質問はID出して書き込みやがれ 88
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2009/09/16(水) 09:39:37ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0002nobodyさん
2009/09/16(水) 09:40:24ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 87
http://pc11.2ch.net/test/read.cgi/php/1251447028/
【PHP】下らねぇ質問はID出して書き込みやがれ 86
http://pc11.2ch.net/test/read.cgi/php/1249042741/
【PHP】下らねぇ質問はID出して書き込みやがれ 85
http://pc11.2ch.net/test/read.cgi/php/1245074032/
【PHP】下らねぇ質問はID出して書き込みやがれ 84
http://pc11.2ch.net/test/read.cgi/php/1240835951/
【PHP】下らねぇ質問はID出して書き込みやがれ 83
http://pc11.2ch.net/test/read.cgi/php/1238958898/
【PHP】下らねぇ質問はID出して書き込みやがれ 82
http://pc11.2ch.net/test/read.cgi/php/1236532468/
【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/
0003nobodyさん
2009/09/16(水) 09:41:07ID:???■本家マニュアル 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/09/16(水) 09:41:49ID:???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/09/16(水) 09:42:35ID:???→ 確認すべきは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/09/16(水) 12:02:45ID:???0007nobodyさん
2009/09/16(水) 12:15:04ID:???0008nobodyさん
2009/09/16(水) 12:30:27ID:???0010nobodyさん
2009/09/16(水) 12:33:08ID:???0012nobodyさん
2009/09/16(水) 13:34:38ID:98tPbj3wvar_dump(mysql_connect($this->m_HostName,$this->m_UserName,$this->m_Password));
localhostだと→resource(5) of type (mysql link) ??
と出る これはまぁいいんだがレンタルサーバーに挙げる際だと
→bool(false) そして何故かgoogle曰く
このページはでデンマーク語のページです翻訳しますか? と。
host,user,passは合ってた。
なんで上げたらデンマーク行ってんの??
0013nobodyさん
2009/09/16(水) 13:36:19ID:???女性が居る前とかで「おい、お前フェッチしろよ」とか言うと変な目で見られそうで・・・
0015nobodyさん
2009/09/16(水) 13:40:56ID:98tPbj3wコネクト失敗の原因がデンマークじゃないかと思ったんだが・・・
0016nobodyさん
2009/09/16(水) 16:53:16ID:lLF0irRw0017nobodyさん
2009/09/16(水) 17:14:59ID:???本当はリアルで会うと萎縮しちゃうヘタレばっかり
0018nobodyさん
2009/09/16(水) 17:20:38ID:???0020nobodyさん
2009/09/16(水) 20:57:32ID:sA/eEQSw【PHPのバージョン】PHP 5.2.9
【連携ソフトウェア】mysql
現在携帯サイトを構築中です。
DB の文字コードを UTF8 にしている関係上
mb_substitute_character('long')を使用し
絵文字を BAD+FFFF の形式に変換をして保存しています。
http://ke-tai.org/blog/2007/12/03/emoji_escape/
ページを表示時には SJIS で吐き出すため、絵文字に関しては
下記のような関数で、絵文字を復元しています。
$regex = '/BAD\\+(F[346789][0-F]{2})/e';
return preg_replace($regex, "pack('H*', $1)", $str);
mb_substitute_character('long')を使用すると
ローマ数値や丸文字も下記のように変換されてしまいます。
�@ → JIS+2D21
�T → JIS+2D35
こちらを復元する関数がわかる方はいますでしょうか?
よろしくお願いします。
0021nobodyさん
2009/09/16(水) 21:28:16ID:???DBに入れる前にsjis -> utf-8の変換をしているってことだと思うんだけど、
これをsjis-win -> utf-8にすればイケるんじゃないだろうか。
002220
2009/09/16(水) 21:47:28ID:sA/eEQSwmb_convert_encoding($str, 'UTF-8', 'SJIS-win'); とすると
別のライブラリ(toInlineCSSDoCoMo)でこけるので
ちょっと厳しいんです^^;
0023nobodyさん
2009/09/16(水) 22:08:30ID:???> toInlineCSSDoCoMo
バージョンアップしてHTML_CSS_Mobileになってるそうだけど、これでも同じかな?
普通に考えるとsjis-winを使うことになると思うんだけどな
�@や�Tのutf-8変換自体はそれでできるわけだし
HTML_CSS_Mobileの中身をチラッと見ても、shift_jisの場合はsjis-winを使っているようだし
まあ使ったことないので実際のところはわからないけども
002420
2009/09/16(水) 22:47:55ID:sA/eEQSw同じです。
HTML_CSS_Mobile だと使ってるテンプレートライブラリが
うまく動かなかったので toInlineCSSDoCoMo を使ってます。
この辺のライブラリの変更は厳しいので
JIS+2D21形式をSJISに変換する関数を探しているところです。
0025nobodyさん
2009/09/16(水) 23:01:43ID:???try{
throw new Exception($error);
} catch (Exception $e) {
echo "例外キャッチ:", $e->getMessage(), "\n";
}
例外使用時通常上記のように、try でthrowをして catchすると思うのですが、下記のように
try catchをせずに直接throwをした場合どう違いがあるのでしょうか。
public function myError($message = null)
{
throw new myException($messag);
}
0026nobodyさん
2009/09/16(水) 23:08:54ID:???その関数の呼び出し側でキャッチしなければいけなくなる。
キャッチされなかった場合、さらにその呼び出し元に遡る。ずーっと上までキャッチされるまで上っていく。
最終的に誰も例外をキャッチしなかった場合、エラーになる(確か500 Internal Server Error)。
0027nobodyさん
2009/09/17(木) 00:29:13ID:???http://jp2.php.net/manual/ja/function.set-exception-handler.php
こんなのもある
あとageと入れてもID出ないぜ
0028nobodyさん
2009/09/17(木) 05:40:12ID:h/ZKc5z/int値をバイナリで渡すような関数とかないでしょうか?
echo base64_encode( '65535');
echo base64_encode( 65535); // '65535'と同じ結果
echo base64_encode( 0xffff); // '65535'と同じ結果
echo base64_encode( "\xff\xff"); // 意図した結果
$val = 65535;
echo base64_encode( $val); // 意図してない結果
0029nobodyさん
2009/09/17(木) 06:35:22ID:9yQ2lneqcheckdnsrr($host,'mx') || checkdnsrr($host,'a');
でokですか?($hostはメールアドレスの@以降)
0030nobodyさん
2009/09/17(木) 06:36:43ID:9yQ2lneqホストの有無を調べる目的です
0031nobodyさん
2009/09/17(木) 06:55:57ID:xpaZffPp【PHPのバージョン】php5
【連携ソフトウェア】無し
【質問内容】
重みを付きランダム数値を出したいのですが、
どのようにしたら良いのでしょうか?
具体的には、1〜6の数値を、
1は40%、2は30%、3は20%
4は5%、5は3%、6は2%
の割合で取得したいのです。
アドバイスよろしくお願いします。
0032nobodyさん
2009/09/17(木) 06:59:10ID:???重み(割合)は、小まめに変更させる必要があるため、
40:30:20:5:3:2 の部分は、
変更しやすい作りであると助かります。
0033nobodyさん
2009/09/17(木) 09:27:35ID:???いいんじゃないかな
おれはdnsに問い合わせるまでもないやつをはじくために
その前に簡単に形式チェックも行ってる
当然ながら、問い合わせる先のdnsがちゃんとした結果を返すというのが前提
自分で設定したネームサーバーの場合は注意
キャッシュしている内容が既に古くなっているかもしれないとか、
dnsレコードは残っているけどサーバーが既にない、一時的に停止している
とかで通信できない可能性はあるけど、それはどうしようもないし
0034nobodyさん
2009/09/17(木) 09:36:37ID:???指定の割合で1-6の数字が含まれる文字列を作成
その文字列の中から1文字だけ取得する
何番目の文字を取得するかは乱数で決める
とかで、それらしくなるんじゃないかな
0035nobodyさん
2009/09/17(木) 09:54:23ID:???参考に
$str = "JIS+2D21JIS+2D35";
echo preg_replace_callback("/JIS\+([a-zA-Z0-9]{4})/",
create_function(
'$match',
'return mb_convert_encoding( pack("H*","1B2440".$match[1]."1B284A") ,"SJIS-win","JIS") ;'
),$str );
003631
2009/09/17(木) 10:10:18ID:???ありがとうございます。
えっと・・・・重要なポイントである
「指定の割合で1-6の数字が含まれる文字列を作成」
これの方法が見つかりません。
詳しくは調べますので、ヒントをお願いいたします。
0037nobodyさん
2009/09/17(木) 10:45:05ID:???$ratio = array(1=>40,2=>30,3=>20,4=>5,5=>3,6=>2);
$randstr="";
$randnum=0;
foreach( $ratio as $eachkey => $eachval ){
$randstr .= str_repeat($eachkey,$eachval);
$randnum += $eachval;
}
$rand = mt_rand(1,$randnum);
print substr( $randstr , $rand ,1);
0038nobodyさん
2009/09/17(木) 11:02:12ID:???自分の部屋で一人で構文やデータベース構築などやったの?
それとも会社とか学校で人に教えられながらとか、元々ほぼ設定されていたところで勉強したとか
どんな環境で勉強したの?
0040nobodyさん
2009/09/17(木) 11:35:46ID:???自分の部屋でコツコツやってたな。
学校は商学部だったしプログラムの類は一切やったこともなかった。
趣味のホームページ作りが高じてって感じかな。
深くやるつもりもなかったしネットに転がってたマンモス本を読んで基礎を学んだ。
そこから2chのこのスレ(もう4.5年前だが)で質問して色々教えてもらって、
スレ眺めながらたまに出るいい質問と回答を見ながら勉強したもんだ。
どういうわけか今じゃ基本情報なんて資格もとるほど結構はまってる。
結局今やってる仕事とは無関係で趣味の領域ではあるけどね。
0041nobodyさん
2009/09/17(木) 13:03:32ID:???よく分からんがこうか?
$val = 65535;
echo base64_encode ( pack( "H*", dechex($val) ) );
004220
2009/09/17(木) 13:19:40ID:nJam0Pemありがとうございます。ばっちり変換されました!
0043nobodyさん
2009/09/17(木) 13:21:30ID:gTpdsldOAPIキーを取得してmd5化されたブラックリストを取得してきたところまでうまくいきまして、それと任意のドメインを比較する所で質問です。
Googleの診断ページで危険と診断されるドメインをmd5()した文字列が、そのリストに含まれていないのに
http://safebrowsing.clients.google.com/safebrowsing/diagnostic?&hl=ja&site=martuz.cn
では危険と診断されています。
どなたかGoogleSafebrowsing使ってうまくいってる方いらっしゃいますでしょうか…
あと、素朴な疑問なんですがなんでGoogleがくれるブラックリストはmd5化してあるのでしょうか?
@
PHP4.4.4
CentOS
0044nobodyさん
2009/09/17(木) 14:03:27ID:???あ、あ、あ、あ、ありがとうございます。
何か、内容がチンプンカンプン(^^;
PHP辞典で調べながら習得したいと思います。
ありがとうございました!!
0045nobodyさん
2009/09/17(木) 14:14:52ID:???ようやく概要が見えてきました。
「指定の割合で1-6の数字が含まれる文字列を作成」
は、この文字列↓を生成する、って事だったんですね!
1111111111111111111111111111111111111111222222222222222222222222222222333333333333333333334444455566
すごく勉強になったと共に、思いつかなかったアイデアで驚きです。
これで十分に求めている事が出来ます。
ほんとうに本当にありがとうございました!
0046nobodyさん
2009/09/17(木) 14:27:12ID:???ごめん。
$rand = mt_rand(1,$randnum); を
$rand = mt_rand(0,$randnum-1); にしてね。
0047nobodyさん
2009/09/17(木) 14:56:51ID:3Z6JGFqVどこか間違ってる箇所がございましたらご教授お願いします。
<?php
print "test";
?>
0051nobodyさん
2009/09/17(木) 17:37:31ID:???0052nobodyさん
2009/09/17(木) 17:41:42ID:9yQ2lneqどうやればいいですか?
socket_createのSOCK_RAWでやればいいと思うのですが
それ以降どうやればいいのか分かりません
0054nobodyさん
2009/09/17(木) 18:04:43ID:???ネットやっててWeb制作してれば自然とphpという文字が目に入ってくるからな。
PHP/FIとかの時代はperl触ってたわ
HTML埋め込み型ってのにひかれてPHPはじめた
0055nobodyさん
2009/09/17(木) 18:45:23ID:???何か、たまに取得できないな〜、
って思って調べていた所でした。
またまた助かっちゃいました。
ありがとうございました!!
0057nobodyさん
2009/09/17(木) 20:27:16ID:???>HTML埋め込み型ってのにひかれてPHPはじめた
同じだわ
学生の頃、まだblogとか無いときに、HTML/CSSを勉強して、次は動的ページにとなった時に
Perlは正直サンプルのソースが懲りすぎてて俺にはわかりにくくて挫折した。
そんな時にHTMLに埋め込む形で作成できるphpと出会い、簡単に動的ページ作れて感動した。
005828
2009/09/17(木) 22:13:50ID:h/ZKc5z/意図した結果になりました。
pack()は試してたんですが、dechex()も使うとは気付きませんでした・・・
早々にレスを頂けて助かりました。
0059nobodyさん
2009/09/17(木) 22:31:31ID:???0060nobodyさん
2009/09/17(木) 22:47:28ID:???結局分離して作っていく流れになるんだよな。
0061nobodyさん
2009/09/17(木) 23:01:05ID:???0062nobodyさん
2009/09/17(木) 23:47:27ID:???0063nobodyさん
2009/09/17(木) 23:48:19ID:???0064nobodyさん
2009/09/17(木) 23:57:28ID:???作ってたシステムが大きくなりすぎれば、否応無くOOP的なプログラムを書かざる得ない状況になる
0065nobodyさん
2009/09/17(木) 23:59:19ID:???0066nobodyさん
2009/09/18(金) 00:12:43ID:???だいたいデザイナってデザインが仕事だしまともな会社ならそれ以上のことはさせられない
まともじゃない会社でもview部分だけいじらされるだけなんじゃね
0067nobodyさん
2009/09/18(金) 00:15:07ID:???0068nobodyさん
2009/09/18(金) 00:28:21ID:???0069nobodyさん
2009/09/18(金) 00:36:35ID:???0070nobodyさん
2009/09/18(金) 04:12:01ID:yZl5pJrO0071nobodyさん
2009/09/18(金) 05:58:42ID:???それとも英数字のこと?
0072nobodyさん
2009/09/18(金) 06:11:30ID:???外国からSPAMされてるので・・
0073nobodyさん
2009/09/18(金) 06:44:23ID:???if( preg_match('/^[\x20-\x7f]+$/',$string) == 1){
echo "日本語でおk";
}
文字列$stringの最初から最後までが\x00-\x7f(ASCIIコード)の範囲内のみであれば日本語でおkと表示する
文字列には改行などの制御文字が入ることが予想されるので16進で書いた方がスマートで分かりやすいかな
0074nobodyさん
2009/09/18(金) 06:44:50ID:???http://e-words.jp/p/r-ascii.html
制御文字も含めるなら\x00-\x7f
スペースを含めた図形文字だけなら\x20-\x7e
図形文字のみなら\x21-\x7e
実証コード
<?php
$str = "<a href=\"mailto:[email protected]\">mail me!</a>";
if (preg_match('/^[\x00-\x7f]+$/', $str)) {
echo "spam";
}
?>
0075nobodyさん
2009/09/18(金) 06:45:30ID:???0076nobodyさん
2009/09/18(金) 06:47:12ID:???0077nobodyさん
2009/09/18(金) 07:07:13ID:???条件式で、==使うのと使わないのとで遅い早いとかあるんだっけというの
だけふと気になった
0078nobodyさん
2009/09/18(金) 08:46:55ID:???0079nobodyさん
2009/09/18(金) 08:52:27ID:???グループ開発を体験してみようなんていう2chでのプロジェクトってないのかね
SourceForge当たり使って誰でも参加可能な感じで
0080nobodyさん
2009/09/18(金) 10:46:36ID:???君が作ればいいじゃん
0081nobodyさん
2009/09/18(金) 10:57:29ID:???svn導入すると感動すると思うw
0082nobodyさん
2009/09/18(金) 11:04:16ID:???SEは求めすぎだとしてもプロジェクトリーダー経験者ぐらいじゃないと
段取りがわからなくてまとめられないと思うから自分じゃ無理なんだわ
昔はなんかそういうスレあった気がするけどもうやってないんだろうね
0083nobodyさん
2009/09/18(金) 11:06:58ID:???スレチな話題を平気な面して書き込むぐらいだから言わなくても分かるよ
0084nobodyさん
2009/09/18(金) 11:07:27ID:???0086nobodyさん
2009/09/18(金) 11:14:36ID:???0087nobodyさん
2009/09/18(金) 11:18:14ID:bD/6aRH+mime_content_typeでファイルの情報を調べようとしたら
Call to undefined function mime_content_type()
というエラーが出ました。
これはmime_content_type関数が無いという意味ですよね?
こういう場合どうしたらいいのでしょうか?PHPは5.2.5です。
0088nobodyさん
2009/09/18(金) 11:19:50ID:???どっかのスレの質問者がお怒りだぞ!
0089nobodyさん
2009/09/18(金) 11:21:07ID:???mime_content_typeで検索すると
http://www.syuhari.jp/blog/archives/770
ってのがあったけど
> PHP マニュアルには mime_content_type 関数は非推奨で、PECL の Fileinfo を使用するように書かれている。
だそうだ。
0090nobodyさん
2009/09/18(金) 11:32:13ID:???公式マニュアルに誘導してやれよ
http://jp.php.net/manual/ja/book.mime-magic.php
0091nobodyさん
2009/09/18(金) 11:41:40ID:???そうだな
すまんかった
fileコマンドを使った代替関数が載ってたから、PECL使うより敷居が低かろうと思ってな
0092nobodyさん
2009/09/18(金) 12:00:56ID:+5AwuBV9設定が異なる部分ってどこでしょうか?
xamppを導入したいのですがなるべくphp.ini.recommentedの設定にあわせたいのです
0093nobodyさん
2009/09/18(金) 12:02:59ID:???009487
2009/09/18(金) 12:05:41ID:bD/6aRH+試みたのですが、なぜか上手く行きません・・。
WindowsのPHPが原因かも知れませんが、ネットで調べると
同じようにインストールできない人がいます。
それで>>89さんの方法が手っ取り早いかと思い、
ソースをコピーして実行しても何も出力されません。
おそらくWindows環境なのでexecのfileコマンドが動作してないと思います。
と言うわけで、自分の環境に問題がありそうなので環境を見直します。
>>89-90さん、ありがとうございました
0095nobodyさん
2009/09/18(金) 13:14:33ID:???ナツカシス
0097nobodyさん
2009/09/18(金) 13:36:39ID:???だからdiffを(ry
xampp落としてきてdiffとって見たが、差分多すぎて書ききれないぞ?
ざっと見た限り、xmappはメモリ使用量とか多めになってるみたいだな
とりあえず一部だけ抜粋な
※()内がphp.ini.recommented
max_execution_time = 60 (30)
memory_limit = 128M (8M)
error_reporting = E_ALL & ~E_NOTICE & ~E_DEPRECATED (E_ALL)
display_errors = On (Off)
display_startup_errors = On (Off)
log_errors = Off (On)
post_max_size = 128M (8M)
extension_dir = "\xampp\php\ext" ("./")
include_path = ".;\xampp\php\PEAR" (".;c:\php\includes")
で、extensionも結構違うから、xmappのphp.iniを素直に使ったほうがいい。
なるべくphp.ini.recommentedにあわせたいといっても、php.ini.recommentedの設定にしたら
動かなくなる箇所もあるからな。
やっぱり自分で差分みて一つ一つ確認するのが良い
0099nobodyさん
2009/09/18(金) 14:15:15ID:???0102nobodyさん
2009/09/18(金) 14:38:22ID:???使うxmappのバージョン(phpのバージョン)かけよ
php5.3にはもうphp.ini.recommentedなんてないんだけど
0104nobodyさん
2009/09/18(金) 18:35:21ID:???コンストラクタ:合体前にコアチェンジ・ドッキング・ゴーと言うタイミングで
アムロがやっている何か
デコンストラクタ:こんなに嬉しいことはに・・・というタイミングで、アムロが
やっている何か
0105nobodyさん
2009/09/18(金) 19:33:17ID:dQen4OfJもしかしてずっと反応が返ってこないのでしょうか?
Net::DNSを使えばタイムアウトを設定できるそうですが
そっちを使った方が無難ですか?
0106nobodyさん
2009/09/18(金) 20:37:22ID:???ソースを見るとres_searchを呼び出すようなので、実行するサーバーの環境変数やresolv.confの設定とかに依存するんじゃないだろうか
Net::DNSでタイムアウトを指定でき、かつ実際に効果があるなら、それを使うのが無難だし環境に左右されなくて安全なんじゃないかと。
0107nobodyさん
2009/09/18(金) 20:56:24ID:???http://archives.free.net.ph/message/20080922.180611.825aa7c3.ja.html
これを見ると、
1.putenvを使えばcheckdnsrrでもタイムアウト時間を設定できる
2.Net::DNSでも、同じルーチンを使ってる
っぽいですのでputenvで何とかなるかな?
0108nobodyさん
2009/09/18(金) 22:57:31ID:???独自にソケット通信してるみたいですね
0109nobodyさん
2009/09/19(土) 11:33:21ID:cyMxg+G4PHP5.3について質問なんですがスレッドセーフとノースレッドセーフはどちらを使えばいいのでしょうか?
Windows版Apacheはスレッドセーフって対応してませんよね?
0110nobodyさん
2009/09/19(土) 16:26:43ID:???あるウェブサービスAPIを取得して、XSLT処理をしたあと、XML出力するという
PHPのコードを書いています。
このコード自体問題なく動いているのですが、問題はこのXMLのある文字列を
置換したいのですが、その場合のstr_replaceの書き方がわかりません。
XSLT処理後XMLが格納されている変数 = $result
置き換えたい文字列 = hiropon
置き換え後の文字列 = <iframe src="xxxx" border="0"></iframe>
xxxにはURLが入ります。
そのまんま、str_replace('hiropon',置き換え後の文字列,$result)でやっても
うまくいかんのです。
変数にHTMLのタグを丸ごとつっこんでも駄目でした。どうしたらいいでしょうか?
0112nobodyさん
2009/09/19(土) 16:52:32ID:???http://pc11.2ch.net/test/read.cgi/hp/1251728499/
答えなくていいよ
0113110
2009/09/19(土) 16:56:25ID:???あの・・・・ 俺、マルチしてないんですが・・・
しかも、ウェブサイトつくるためのXMLじゃないんですが・・・
0115110
2009/09/19(土) 17:04:42ID:???>>112の板そのものが、ウェブ製作となっているから。
そもそも、PHPからXMLで出力後、アプリケーションで使う為のXMLに
コードを入れるのが目的なのに、なんでweb製作板に張ってあるのか
それすら、自分のものじゃないし。
それでマルチって言われても迷惑なんですよ。
0116nobodyさん
2009/09/19(土) 17:06:58ID:???http://pc11.2ch.net/test/read.cgi/php/1252590753/151
こっちはどうなんだよ?
0117nobodyさん
2009/09/19(土) 17:08:38ID:???「どっかの誰かが自分の書き込みをコピペして他スレに勝手に貼り付けた
自分は関係無い、迷惑だ」
こう言いたいのか?
0118nobodyさん
2009/09/19(土) 17:16:39ID:???0119110
2009/09/19(土) 20:39:28ID:???>>116
そっちも知らない。
俺はここにしか投下していない。すごく迷惑だ。
真面目に質問しているのに。だいたい、PHPのコードを書いているって
書いてあるのに、他のスレにコピペしているどっかの馬鹿は本当に迷惑
だ。
0121nobodyさん
2009/09/19(土) 21:26:39ID:???0122nobodyさん
2009/09/19(土) 21:29:13ID:???0123nobodyさん
2009/09/19(土) 21:32:34ID:???マルチかどうかもバレバレ。
0124nobodyさん
2009/09/19(土) 21:33:33ID:???0125nobodyさん
2009/09/19(土) 21:40:09ID:???本人かどうかも判らんのだから構うだけ無駄だろう
0127nobodyさん
2009/09/19(土) 22:23:06ID:???他人を煽るためにわざわざ他のスレにマルチ装って投稿するって
0128nobodyさん
2009/09/19(土) 22:30:44ID:???0130nobodyさん
2009/09/20(日) 01:12:48ID:mauzFl2wMysqlに接続されているかされていないかって簡単に判断する方法はありませんか?
mysql_real_escape_stringあたりがたまにエラー出してて気になるので、
ちゃんとこの関数が使えるかどうかをチェックするための処理がほしいと思っています。
0131nobodyさん
2009/09/20(日) 01:21:01ID:???3行くらいの、DB接続しないでmysql_real_escape_string呼ぶスクリプト書いて確認してみれ?
0132nobodyさん
2009/09/20(日) 01:33:46ID:???http://phpspot.net/php/man/php/function.mysql-real-escape-string.html
接続なしで出来るのであれば、ここに質問なんてしませんよ
0133nobodyさん
2009/09/20(日) 02:19:52ID:???>131
>131
>130
mysql_connectした時点で確認しろ。
0134nobodyさん
2009/09/20(日) 07:37:56ID:???0135nobodyさん
2009/09/20(日) 10:17:42ID:???mysql_connect 時にリンクが確立されているのに、
途中でmysql_real_escape_stringが使えなくなるって事?
本来なら途中で使えなくなる原因を特定するべきだけど、
とりあえず、mysql_stat あたりで確認してから
mysql_real_escape_string実行するようなfunction作っちゃえば?
0136nobodyさん
2009/09/20(日) 11:32:15ID:???0137130
2009/09/20(日) 11:52:17ID:???0138nobodyさん
2009/09/20(日) 12:07:00ID:???ひとつひとつアクセスする以外に方法はありませんか?
0139nobodyさん
2009/09/20(日) 12:09:55ID:???あとスレタイ
0140nobodyさん
2009/09/20(日) 12:12:08ID:pS/nR+SKa, b, c, d, eをキーに持つ配列xがあったとして、
x->foo(array('a', 'b', 'e'))
みたいにしてa, b, eをキーに持つ配列を得ようとしてるんです
0141nobodyさん
2009/09/20(日) 12:30:14ID:???0142nobodyさん
2009/09/20(日) 12:48:08ID:???0146nobodyさん
2009/09/20(日) 13:21:44ID:b7b/LRof.htaccessに
AddType application/x-httpd-php .html
と書いて、htmlへアクセスすると、ブラウザには表示されず、
htmlがダウンロードされてしまいます(phpもそのまま見えてしまう)
どっか設定見落としありますか?
0148nobodyさん
2009/09/20(日) 14:22:50ID:???ありがとう、自分で契約してる鯖じゃないんで、直接聞くのも時間かかるのでココできいたのでした…
あきらめて鯖屋さん経由をとります
0149nobodyさん
2009/09/20(日) 17:42:12ID:61IiHty0<?php
class foo {
var $bar = 'I am bar.';
}
$foo = new foo();
$bar = 'bar';
$baz = array('foo', 'bar', 'baz', 'quux');
echo "{$foo->$bar}\n";
echo "{$foo->$baz[1]}\n";
//echo "{$baz[1]}\n";
?>
で、なんで
I am bar.
I am bar.
と表示されるんですか?
一つ目は分かるんですけど、二つ目はてっきりbarだけが表示されると思ったんですけど…
(echo "{$baz[1]}\n"; にすると bar だけになりました)。
ていうか、$foo->$baz[1]って呼んでますけど、$baz[1]ってclass fooのメンバーじゃないんじゃないですか?
何が起こっているのかさっぱり分かりません。
どなたか説明してください。
0151nobodyさん
2009/09/20(日) 17:59:36ID:???つまり
$foo->$baz[1] は $foo->bar って解釈される。
$bar = 'bar'
$foo->$bar
が理解できるのなら同じだと思うけどー。
0152149
2009/09/20(日) 18:04:08ID:61IiHty0あア、ナルほど!
二段階で変換されてるんですね。
ありがとうございました。
0153nobodyさん
2009/09/20(日) 21:10:32ID:???サーバーに何かが足りないんでしょうか?
0154nobodyさん
2009/09/20(日) 21:11:13ID:r/z84N/d0155nobodyさん
2009/09/20(日) 23:12:32ID:qCT4pyHGSQLiteの使い方がわからねえんだけどこれはどこにデータが保存されるのか教えてくんない?
0156nobodyさん
2009/09/20(日) 23:14:16ID:???0157nobodyさん
2009/09/20(日) 23:34:49ID:7Axymed3文字コードで
wMOV8seKwJSdvpCElt0←こういうタイプのエンコード何を使ってるのか分かる人いませんか?
0158nobodyさん
2009/09/20(日) 23:42:44ID:???0159nobodyさん
2009/09/20(日) 23:50:48ID:7Axymed3ありがとう
0160nobodyさん
2009/09/21(月) 00:11:27ID:???拡張子 db のファイルがそれ。
Accessと同じく、単体のデータベースファイルとなっている。
SQLite 2用のODBCドライバがあるから、それを利用すれば、
Accessからも接続ができる。
http://www.ch-werner.de/sqliteodbc/
ウェブとの親和性も高いから、mdb形式よりも使い勝手はいい
かもしれない。
0161nobodyさん
2009/09/21(月) 00:38:11ID:???> かもしれない。
シングルユーザ
データベース全体ロック
0162nobodyさん
2009/09/21(月) 00:41:54ID:???SQLiteは上記の問題があってウェブアプリケーションには向いてない
スタンドアロンで動くからこそ重宝されてる
0163nobodyさん
2009/09/21(月) 01:04:55ID:???0164nobodyさん
2009/09/21(月) 05:48:17ID:???WebAppって(もしくは用途によっては)SELECTがほとんどだからファイルロックの
影響はそれほど無いと思ってたんだけど、読み込みでもロックの被害甚大?
0165nobodyさん
2009/09/21(月) 07:00:02ID:5/lX4mwCよくフォームなどで、
そのページで入力された値を自身のファイルで受け取り、
チュックし、セッションに保存して、
次の確認ページなどに飛ばす
という一連の動作を使います。
このときフォームのactionに指定するURIは
自身のページのURIになるのですが、
いちいち自身のURIを記述するのは煩わしいですし、
コードの融通性の観点からもあまりよろしくないと思われます。
そこでフォームのactionに自身のURIが指定されるようにしたいのですが、
どのような方法がベストなのでしょうか?
考え付いたのは
1・$_SERVERで取得しactionに指定。
今のとこ自分の中で最有力候補?
2・actionに値を指定しない
これで自動で自身のページに飛ぶかと思いきやダメでした…。
3・セキュリティーの観点から絶対にきちんとURIを記述し指定する。
本末転倒ですが、取得するのは危険だという可能性もあるかと思います。
見当違いなこと書いてるかと思われますが、
ベストな方法をご教授ください。
0167nobodyさん
2009/09/21(月) 09:52:29ID:???読み出しはスケールさせるのが比較的簡単だが、書き込みはスケールしにくい
DB全体ロックだと、利用者が増えると比較的すぐ行き詰ると思う
MTなんかは、書き込みをするユーザー数が少ないからあまり問題がないのだろう
恐らく設置の容易さを取ったんだろうな
0168nobodyさん
2009/09/21(月) 09:57:05ID:???MTって、
書き込みは、ロックで待たせても別にいいだろうし、
読み出しは再構築のときくらいでしょ。それもロックで待たせておk。
って、触ってたのは3年くらい前のことなんで、
近頃では再構築不要とか言うなら、また違う話になるかもしれん。
0169nobodyさん
2009/09/21(月) 10:04:51ID:xFfP11ss【PHPのバージョン】php5
【連携ソフトウェア】
【質問内容】
htmlに
�@html
�APHP
�Bhtml
のようにPHPを使ってますが
Fatal error: Maximum execution time of 5 seconds exceeded
になった場合この�AのエラーのPHP処理をスキップさせて
�Bを表示したい場合どうすればいいですか?
0170nobodyさん
2009/09/21(月) 10:26:12ID:???(1)
(3)
(2)
の順に記述する。
(2)のPHP部分でも(正常なら)何かを表示するので、上のようにしたら見た目上の位置関係が
崩れるというのなら、スタイルシートで対応。
では駄目かの?
でもなあ、5秒超かかる処理ってどんなの?
そういう処理が十分有り得る状況なら、5秒で致命的エラーとされる設定の方を何とかすべき
だろうし、そうでないなら、5秒以上かかってしまっていることを何とかすべきじゃなかろか。
0172nobodyさん
2009/09/21(月) 11:22:59ID:c8BcA53t$string = "もじ";
$string = (function($string){
return $string.$string;
})();
echo $string; //もじもじ
のように無名関数を使うことは出来ないのですか
0173nobodyさん
2009/09/21(月) 11:27:07ID:???0174nobodyさん
2009/09/21(月) 12:16:54ID:???ダサいけどね
ttp://www.php.net/manual/ja/function.create-function.php
0175nobodyさん
2009/09/21(月) 12:28:34ID:c8BcA53t文字列を渡すのか・・これはひどい
ありがとう
0176nobodyさん
2009/09/21(月) 12:30:33ID:???>>175
お前らは何を言ってるんだ
http://www.php.net/manual/ja/functions.anonymous.php
0177nobodyさん
2009/09/21(月) 12:31:22ID:/inoxiUx0178nobodyさん
2009/09/21(月) 12:35:57ID:???スレッドセーフにしたくない時はノンスレッドセーフ版
0179nobodyさん
2009/09/21(月) 12:37:46ID:/inoxiUxあとスレッドセーフにするとどうなるんですか?
0180nobodyさん
2009/09/21(月) 12:38:49ID:???0181nobodyさん
2009/09/21(月) 12:38:54ID:c8BcA53tjavascriptなどで実装されている("(function(){〜})()"のような)スマートな使い方は出来ないかなあと思って質問しました
0182nobodyさん
2009/09/21(月) 12:39:38ID:???0183169
2009/09/21(月) 12:43:41ID:???>>171
@ではちょっと無理でした。
>>172
スタイルシートは出来る限り使わない方法を探しています。
通常は1秒もかからないんですがなぜかたまにタイムアウトに?
すべて自作ではなくPEARを使った処理なのでその内部をいじれるほどPHPに慣れてないので
なんらかの方法でスキップができればと思います。
0184nobodyさん
2009/09/21(月) 12:52:24ID:c8BcA53t読みました。
例2 変数への無名関数の代入
$greet = function($name)
{
printf("Hello %s\r\n", $name);
};
$greet('World');
たとえばこれは変数に関数を代入していますが直接結果を代入したいのです。
このような感じで既存のコードを置き換えたいと思っています
function example(){
return "aaa";
}
$test = example();//aaaが返り$testにaaaが代入される
↓
$test = (function(){//aaaが返り$testにaaaが代入される
return "aaa";
})();//関数を()で囲って末尾の()で関数を実行している
ググったら無理なようであきらめます・・PHP6で実装されることを祈りながら
0185nobodyさん
2009/09/21(月) 13:11:03ID:???PHPは構文解析周りが貧弱なので諦めて下さい
俺も下記とかやりたいわ…
$a = new stdClass():
$a->b = function () {};
$a->b();
0187nobodyさん
2009/09/21(月) 13:40:18ID:rQWWzoEt【PHPのバージョン】php5.3.0
【質問内容】
外部からGETで取得した値が数字でも、is_intで整数値じゃないと言われてしまいます。
外部から取得した値が整数かを調べる方法はありますか?
0188nobodyさん
2009/09/21(月) 13:44:34ID:???まじっすか!
と思ってPHP6のスナップショットまで確認したけどできないじゃないか
ぬかよろこびさせやがって畜生…
0189nobodyさん
2009/09/21(月) 13:47:14ID:???文字の"1"と数値の1は本来は別物。PHPは必要に応じて自動で変換してくれるからあまり意識しないけどな。
is_intは1を許可し、"1"は許可しない、PHP内では珍しい関数(というか、両者を区別するための関数)
多分最速なのはctype_digit()。ただし、"009"とかが通るし"-10"は通らない。
あとは「整数値」のルール次第。たとえば、負の整数や0はどうするんだ?"009"は?(郵便番号とかなら有効だよな)
0190nobodyさん
2009/09/21(月) 14:00:03ID:???0191nobodyさん
2009/09/21(月) 14:14:12ID:rQWWzoEt回答ありがとうございます。
自然数以外を弾きたかったので最初に ctype_digit() で数字以外を弾いて preg_match("/(^0)(\d)/" , "") で009等を弾くことにしました。
0192nobodyさん
2009/09/21(月) 15:02:06ID:???それだと動かないよ先頭に数字が付けば1が返る(1abcdもOKになる)
先頭に"-"も含めるなら /^-*[^0](\d)+$/
0193nobodyさん
2009/09/21(月) 15:03:51ID:???でもctype_digit()の後にpreg_matchするならpreg_matchだけで済ました方がいいんじゃないかな
0194nobodyさん
2009/09/21(月) 15:13:16ID:???0195nobodyさん
2009/09/21(月) 15:18:32ID:???0196nobodyさん
2009/09/21(月) 15:50:25ID:???$はD修飾子なしじゃ改行にもマッチするぞ
0197189
2009/09/21(月) 17:01:17ID:???こんな下らん事で悩む時間が惜しい。>190に一票。
0198165
2009/09/21(月) 17:19:58ID:SD2dtHFE0199nobodyさん
2009/09/21(月) 17:22:27ID:???0201nobodyさん
2009/09/21(月) 17:49:34ID:uPBGfkaiあ
0203198
2009/09/21(月) 18:30:02ID:FunJFz74ドメインなんかをチェックすることを考えたら、
直書きのがパフォーマンスもいいしセキュリティ的にも安心なんですね。
サイト内検索の場合、どのページでも使うので手書きは避けたいのですが…。
>>202
やっぱりそうですか。
0204nobodyさん
2009/09/21(月) 18:35:29ID:???$_SERVER['SCRIPT_NAME']を使っていれば良いと思う
もちろん値の確認は必要だが。
0206nobodyさん
2009/09/21(月) 20:02:54ID:MAV91RaJ0208nobodyさん
2009/09/21(月) 20:17:07ID:???0209nobodyさん
2009/09/22(火) 00:18:54ID:cla4TgUg0210nobodyさん
2009/09/22(火) 00:58:13ID:???オマエモナー
ってな会話でもしてたか?
0211nobodyさん
2009/09/22(火) 02:17:23ID:???0212nobodyさん
2009/09/22(火) 11:42:42ID:Mwzzxg9y大まかにどのような仕組みなのでしょうか?
0213nobodyさん
2009/09/22(火) 12:06:16ID:???例えばhoge.php?aaa=1&bbb=2とかいうページで(他に変数なし)、ユーザーによって表示内容が違ったりしないという前提で
1.普通に処理して画面表示するが、ついでにhoge_1_2.htmlとかいうファイルに結果を書き出しておく
2.アクセスが来たらパラメータに応じてhoge_?_?.htmlというファイルを探す。あればそれを読み込んでそのまま画面表示する
なければ1同様に普通にに処理してファイルに書き出して画面表示する
3.この際、htmlの方には有効期限を決めておく。読み込みの際に更新日時をチェックし、古かったら消す。
あるいは、データが更新されるとかでキャッシュが無効になるタイミングがあるなら、その時に消すというルールでもいい。
という機構を実装するのが一番シンプル。
ファイルじゃなくてmemcacheとか使ってもいいし、phpに処理を渡さずにwebサーバだけでなんとかする手段もあるし
リクエストがあったその場で生成するんじゃなくてデータが更新された時点でHTMLを書き換える手もあるし、その辺は色々。
上記は「あるリクエストに対し、どういうHTMLが返るか」をキャッシュしたわけだが。
一歩内側でキャッシュするなら、「あるリクエストに対し、どういうデータがテンプレートに渡るか」だけをキャッシュする手もある。
さらに内側だと、「あるSQLに対し、どういうデータが返るか」をキャッシュしても速度は向上する。
0214nobodyさん
2009/09/22(火) 12:13:10ID:???そのURIに次にアクセスがあったときにタイムスタンプと比較してライフタイム以下だったら
キャッシュを出力、越えてたりデータが更新されてたら新たに生成して出力しする、
民主に入れたならそれ位わからなきゃねw
0215nobodyさん
2009/09/22(火) 12:15:21ID:???0216nobodyさん
2009/09/22(火) 12:16:32ID:???0217213
2009/09/22(火) 12:29:14ID:???「外側」の方がキャッシュされた時のレスポンス速度はいいが、組み合わせ数が増える。
(たとえば、10パラメータが10通りの値を取る時、一番外側でのキャッシュなら10^10通りのキャッシュが必要になる
SQLをキャッシュする形式なら、各パラメータがそれぞれ独立で各1つのSQLにしか影響しないなら、10*10通りで済む)
組み合わせ数が増えると、キャッシュのヒット率が落ちるので、初回アクセス時のレスポンスが落ちる。
100通りしかパターンが無い場合と、10,000,000,000通りのパターンがある場合だと、「既にキャッシュがある確率」が段違いだからな。
SQLキャッシュだと、「4つのパラメータのうち3つは既出」という場合でもキャッシュの恩恵が受けられるので、速度が上がるというのもある。
0218nobodyさん
2009/09/22(火) 12:33:16ID:6wpNucdwありがとうございます。
二つの違いについて詳しく調べてみます。
>>205
それを相対パスで指定すると良さそうですね。
セキュリティ面はどうか調べてみます。
ありがとうございます。
0219nobodyさん
2009/09/22(火) 13:45:11ID:???ありがとうございます
0220nobodyさん
2009/09/22(火) 13:48:04ID:HmGOH+g/コードサンプルが掲載されているわかりやすいサイトってありませんか?
国内でも海外でも問いません
0221nobodyさん
2009/09/22(火) 13:48:55ID:???綺麗なソースコードのある程度の規模のアプリとか。
0222nobodyさん
2009/09/22(火) 13:50:51ID:???オブジェクト指向を勉強したいなら一度Javaを勉強したほうがいい
0224nobodyさん
2009/09/22(火) 14:43:52ID:dG0Jqx1chttp://host/test.php?=key[]=val1&key[]=val2で遷移しようとして
遷移先で$_GET['key']で受け取りたいのですが、val2のデータしか受け取りません
http://host/test.php?=key[]=val1&key[]=val2&key[]=val3と
3つ以上を受け渡そうとしても、val2、val3は取得しても同様に最初の1つ目を取得しないことが分かりました
どのようにすれば全てのデータを受け取れますか?
よろしくお願いします
0225nobodyさん
2009/09/22(火) 14:46:27ID:???結果を見るより、過程を見るほうが勉強になる。
0226nobodyさん
2009/09/22(火) 15:03:12ID:???key[1] や key[2] とかで
0228224
2009/09/22(火) 16:03:05ID:dG0Jqx1c配列の受け渡しはもう少し考えるべきでした
0231nobodyさん
2009/09/22(火) 21:28:48ID:???0232nobodyさん
2009/09/22(火) 22:34:13ID:???addressというテーブルを作りたく、以下のようにしました
フィールドレイアウトで、usernameは主キー、unamは漢字で設定したいのですが主キー、漢字の設定というのが分かりません
どのように書き換えれば良いのでしょうか?
<?php
try {
$db=new PDO('samples');
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
$db->exec('CREATE TABLE address(
id INTEGER PRIMARY KEY
,username VARCHAR(50)
,password VARCHAR(32)
,unam VARCHAR(50)
)');
print('addressテーブルの新規作成に成功しました。');
} catch (PDOException $e) {
die('エラーメッセージ:'.$e->getMessage());
}
?>
0233nobodyさん
2009/09/22(火) 22:34:42ID:???0234232
2009/09/22(火) 22:35:27ID:qHgxG+da0235nobodyさん
2009/09/22(火) 22:40:26ID:???主キーの書き方は PRIMARY KEY (id)
0236232
2009/09/22(火) 23:42:40ID:qHgxG+daありがとうございます
この場合、
$db->exec('CREATE TABLE address(
username VARCHAR(50)
,password VARCHAR(32)
,unam VARCHAR(50)
,PRIMARY KEY(username)
)');
のように設定すればいいのでしょうか?
0237nobodyさん
2009/09/22(火) 23:46:31ID:???0238nobodyさん
2009/09/23(水) 00:04:21ID:kQ5zUYAtというので、usernameにPRIMARY KEYを設定したいのですが、
CREATE TABLE test (username VARCHAR(50),password VARCHAR(32) PRIMARY KEY(username))
のように設定すればいいのでしょうか?
主キーの設定の仕方が分からないもので教えていただけたらと思います
0239238
2009/09/23(水) 00:05:48ID:kQ5zUYAt間違いです
無視して下さい・・・ごめんなさい
0240nobodyさん
2009/09/23(水) 00:19:14ID:???0241nobodyさん
2009/09/23(水) 00:21:49ID:???マニュアルサイトみて、実際にDBを弄りながら覚えるのが一番。
0242nobodyさん
2009/09/23(水) 00:23:21ID:???最初は、phpmyadmin でやってみたらいいと思う。
都度に発行したSQLが表示されるから参考になるよ。
>>240
MS Access とかあると理解早いんだけどなぁ。
SQL関係は情報ソースが浅いの多いのが難点だと思う。
実装が分散しているからね。共通点とツボを理解するには、
SQL92以降の、一般SQL規格を扱った参考書を読むといいと思う。
0243nobodyさん
2009/09/23(水) 00:27:57ID:???0244nobodyさん
2009/09/23(水) 00:31:58ID:???主キーって言ってる分にはテーブル構造ってコンセプトは理解してるんでしょ。
あとは記法の問題だからサンプルを得るには仕掛けに頼ってもいいんじゃん、
と思うけど。基礎から学ぶなら、実装を問わないSQLのコンセプトから理解した
方がいいとは思うけど、テーブル設計できる人がそこまで遡らなくてもいいと
思う。違う実装に移る前に、SQL**を一通りやったほうがいいとは思うけどさ。
0245nobodyさん
2009/09/23(水) 00:32:34ID:???0246nobodyさん
2009/09/23(水) 00:41:59ID:???他にも設定とか訳分かんなかったし
だから、PHPが簡単で、早ければ2日で習得できるとか言うヤツの言う事は聞かないw
皆はSQLはどういう過程で勉強したの?
やっぱPHPとは別に勉強したでしょ?
0247nobodyさん
2009/09/23(水) 00:46:56ID:???0248nobodyさん
2009/09/23(水) 00:48:45ID:???0250nobodyさん
2009/09/23(水) 00:54:47ID:???CREATE DROP SELECT UPDATE INSERT DELETE
こんだけ覚えれば趣味PHPで使う分には問題ないしな
PHPをある程度理解している中級者なら1日で覚えられる
もっと難しいことしたいならOracleの資格本でも読んでついでにとってみようって感じでおk
0251nobodyさん
2009/09/23(水) 00:55:44ID:???0252nobodyさん
2009/09/23(水) 00:56:43ID:???0253nobodyさん
2009/09/23(水) 00:56:52ID:???0254nobodyさん
2009/09/23(水) 01:00:47ID:???0255nobodyさん
2009/09/23(水) 01:00:52ID:???http://ja.wikipedia.org/wiki/%E9%95%B7%E9%96%80%E8%A3%95%E4%B9%8B
有名な人だぞ
0256nobodyさん
2009/09/23(水) 01:01:20ID:???皆SQLで詰まらなかったの?
俺は1週間は勉強したけど
0257nobodyさん
2009/09/23(水) 01:03:03ID:???0258nobodyさん
2009/09/23(水) 01:04:25ID:???しらなかったのか?
0259nobodyさん
2009/09/23(水) 01:08:41ID:???0260nobodyさん
2009/09/23(水) 01:08:59ID:???実装ごとに癖がある最たる機能だな。
ただインデックスの概念は標準SQL規格で覚えておいたほうがいいと思う。
0261nobodyさん
2009/09/23(水) 01:23:26ID:???FROM データベース
WHERE コードデータ
RDER BY 攻性情報戦闘
HAVING ターミネートモード
というネタのことかと思ったのに誰だよ俳優の長門って
0262nobodyさん
2009/09/23(水) 01:27:41ID:???0263nobodyさん
2009/09/23(水) 04:04:40ID:RxoSRe3uincludeした場所にBOMが入ってしまって
どうしても取れないんだけど消す方法ありませんか?
0264nobodyさん
2009/09/23(水) 04:18:19ID:???0265nobodyさん
2009/09/23(水) 04:20:13ID:RxoSRe3u0266nobodyさん
2009/09/23(水) 04:22:03ID:???0267nobodyさん
2009/09/23(水) 04:23:33ID:RxoSRe3u0268nobodyさん
2009/09/23(水) 05:43:23ID:???0269nobodyさん
2009/09/23(水) 09:46:42ID:???皆さん、推測で頑張ってください、という所か。
0270nobodyさん
2009/09/23(水) 10:32:55ID:???質問スレには、何も考えてない質問者しか来ない。
0271nobodyさん
2009/09/23(水) 11:10:49ID:???理屈上あり得ないのだよ。
EmEditorを使いなさい。BOMありなしこれで見分けがつくし、きちんとした
エディタだ。
実際に、俺も同じ事やっているが、プログラムでそういう処理をしている
場合を除いて勝手にもともとあったファイルにBOMがつくなんて、そういう
挙動が許されるわけがない。
はっきりいってセキュリティホールとまではいかないが、異常な動作だ。
0272nobodyさん
2009/09/23(水) 13:00:07ID:hkbr2oQC0273nobodyさん
2009/09/23(水) 13:03:31ID:hkbr2oQCなんとか調節して解決したが?何か
0274nobodyさん
2009/09/23(水) 13:11:43ID:hkbr2oQCダウンロウドしたけど
レジストリいじるみたいなので気持ち悪いので捨てました
0276nobodyさん
2009/09/23(水) 13:19:02ID:hkbr2oQCob_start() ob_get_clean()したら出なくなりました
0277nobodyさん
2009/09/23(水) 13:32:54ID:???0278nobodyさん
2009/09/23(水) 13:41:35ID:hkbr2oQCへんないちゃもんつけないで下さい
0279nobodyさん
2009/09/23(水) 13:58:32ID:???0280nobodyさん
2009/09/23(水) 14:00:24ID:???0282nobodyさん
2009/09/23(水) 14:51:30ID:???0283nobodyさん
2009/09/23(水) 14:52:16ID:???0284nobodyさん
2009/09/23(水) 15:17:06ID:???0285nobodyさん
2009/09/23(水) 15:42:40ID:???0286nobodyさん
2009/09/23(水) 15:46:30ID:???0287nobodyさん
2009/09/23(水) 15:54:23ID:???0288nobodyさん
2009/09/23(水) 16:07:25ID:???0289nobodyさん
2009/09/23(水) 16:14:06ID:9rOaA9Thpreg_replace_callback('/\{([^\}]+)\}/', '$this->test', $str);
preg_replace_callback('/\{([^\}]+)\}/', '\$this->test', $str);
preg_replace_callback('/\{([^\}]+)\}/', $this->'test', $str);
のようにやってもダメでした。
すいませんが教えてください。
0290nobodyさん
2009/09/23(水) 16:29:18ID:???preg_replace_callback('/\{([^\}]+)\}/', array( &$this, 'test') , $str);
0291nobodyさん
2009/09/23(水) 16:36:07ID:???0292nobodyさん
2009/09/23(水) 16:38:24ID:???0293nobodyさん
2009/09/23(水) 16:43:08ID:9rOaA9Thでもなしでやろうとすると undefined function て言われてできなかったんだ・・・なんでだろ。
0294nobodyさん
2009/09/23(水) 17:06:55ID:???0295nobodyさん
2009/09/23(水) 17:27:03ID:???0296nobodyさん
2009/09/23(水) 17:37:41ID:???0298nobodyさん
2009/09/23(水) 18:18:34ID:???0299nobodyさん
2009/09/23(水) 18:25:25ID:???0300nobodyさん
2009/09/23(水) 19:08:14ID:???0301nobodyさん
2009/09/23(水) 19:12:18ID:???0302nobodyさん
2009/09/23(水) 19:16:37ID:???0303nobodyさん
2009/09/23(水) 19:48:27ID:???0305nobodyさん
2009/09/23(水) 20:03:29ID:???0306nobodyさん
2009/09/23(水) 20:05:49ID:???フリーのテキストエディタと有料のテキストエディタで共に一番いいのは何かを
0307nobodyさん
2009/09/23(水) 20:07:27ID:???0309nobodyさん
2009/09/23(水) 20:18:23ID:???0311nobodyさん
2009/09/23(水) 21:49:16ID:???0312nobodyさん
2009/09/23(水) 22:27:25ID:???edlin って今も健在だったのね。
0314nobodyさん
2009/09/23(水) 22:58:07ID:YDDYzS74質問もしない、回答もしない、あげく回答者、質問者に文句だけ言う。
ほんとお前はクズだよ。 何回言えば分かるんだ?
0316nobodyさん
2009/09/23(水) 23:31:29ID:???0318nobodyさん
2009/09/24(木) 01:59:27ID:???0319nobodyさん
2009/09/24(木) 07:03:53ID:???0320nobodyさん
2009/09/24(木) 08:35:30ID:???0321nobodyさん
2009/09/24(木) 10:10:10ID:???0322nobodyさん
2009/09/24(木) 10:18:27ID:ZrqsxmrO0323nobodyさん
2009/09/24(木) 10:55:43ID:+rwbC943民主党が次の臨時国会でこっそり成立させようとしています。
選任された在日朝鮮人が委員長を務める「人権委員会」に「差別を取り締まる」強力な権限を与える法律だよ。
人権委員会が差別と認定したら一般人はもちろん警察官も罰せられます。
つまり事件の容疑者に朝鮮人が浮かび上がった時点で、警察は捜査できなくなります。
容疑者が「俺が朝鮮人だから疑うのか!」と人権委員会に訴えて、それが差別と認定されれば警察官が処罰されます。
レイプ事件の犯人が「俺が朝鮮人だから拒否したのか!」と訴えて、それが差別と認定されれば被害者の女性が処罰されます。
このように人権委員会の権限は「非常に強固」あり「簡単に悪用」できます。
非常に危険な法律なのですが、民主党は実現させようとしています。
つまり彼らは「在日朝鮮人に悪い人はいない」と確信しています。
その確信は、民主党の根底にある非常に「偏った思想」から来ています。
「日本人は差別する悪い人種。朝鮮人は差別されて可哀相な人種。」という、
これはすなわち「日本は悪い国、日本人が嫌い。」という、
いわゆる「反日思想」です。
朝鮮人や中国人は日本が嫌いですが、日本人が日本を嫌いになるのは異常です。
異常な思想の人間が現在の日本には大勢います。
その原因は主に「日教組」にあります。
戦後GHQの指導で設立された日教組の構成員は、当時の在日朝鮮人であり、
彼らはごく自然に日本の教育現場に反日思想を持ち込んだのです。
戦後70年近く日本人に反日教育をやり続けた成果として、異常な日本が出来上がりました。
反日団体である「民主党」が日本人の圧倒的な支持を得て政権を取りました。
民主党は人権擁護法だけでなく、次々と反日政策が実現します。
在日外国人に日本の参政権を与えるのもそのひとつ。
受給者の7割以上が在日朝鮮人と言われている生活保護を手厚くするのもそのひとつ。
日本は朝鮮人の楽園になります。
0324nobodyさん
2009/09/24(木) 11:59:58ID:???0325nobodyさん
2009/09/24(木) 13:15:41ID:???Terapadにこだわる人は何故なの?
その理由を教えてくれよ
別に煽ってるわけじゃなくてその理由を聞きたいだけだから理由を聞いても別に煽る気はないからね
14歳 中学生より
0326nobodyさん
2009/09/24(木) 13:19:38ID:???0327nobodyさん
2009/09/24(木) 13:21:54ID:???質問もしない、回答もしない、あげく回答者、質問者に文句だけ言う。
ほんとお前はクズだよ。 何回言えば分かるんだ?
0328nobodyさん
2009/09/24(木) 13:24:48ID:???0329nobodyさん
2009/09/24(木) 14:01:08ID:???http://pc11.2ch.net/test/read.cgi/php/991372719/
こっちでやれ
0330nobodyさん
2009/09/24(木) 14:35:18ID:???やれやれだぜって感じだな
0331nobodyさん
2009/09/24(木) 14:38:47ID:???サボりか登校拒否か・・・
0332nobodyさん
2009/09/24(木) 14:44:04ID:ZrqsxmrOrequire_once('HTML/QuickForm.php');
require_once('HTML/QuickForm/Renderer/Default.php');
function showProcess($values) {
global $file;
if($file->isUploadedFile()) {
$file->moveUploadedFile('./doc/');
print('アップロードに成功しました。');
}else{
print('不正なファイルが指定されました。');
}
}
$form=new HTML_QuickForm('myForm','POST');
$form->addElement('header',NULL,'HTML_QuickFormアップロード');
$file=$form->addElement('file','name','ファイル名:'); //�@
$form->addElement('submit','sbm','アップロード');
$form->addRule('name','ファイルを選択してください。','uploadedfile'); //�A
$form->addRule('name','ファイルサイズは10KBまでです。','maxfilesize',10240); //�B
$form->addRule('name','テキストファイルのみアップロード可能です。','mimetype','text/plain'); //�B
if($form->validate()) {
$form->process('showProcess',FALSE);
}else{
$renderer=new HTML_QuickForm_Renderer_Default();
$renderer->setRequiredNoteTemplate('<tr><td></td><td><font color="Red">*</font>必須項目です。</td></tr>');
$form->accept($renderer);
print($renderer->toHtml());
}
?>
0333332
2009/09/24(木) 14:45:12ID:ZrqsxmrOいったいこの*マークはどこがの何が作用してマークが付くのでしょうか?
�@のnameを変更すれば当然消えますが、�Aのnameを変更しても消えます
しかし、�Bの部分のnameを変更したら消えません
自分にはどうしても分かりません
0334nobodyさん
2009/09/24(木) 14:46:01ID:???329 名前:nobodyさん[sage] 投稿日:2009/09/24(木) 14:01:08 ID:???
中ニ病患者が多いな
http://pc11.2ch.net/test/read.cgi/php/991372719/
こっちでやれ
330 名前:nobodyさん[sage] 投稿日:2009/09/24(木) 14:35:18 ID:???
14歳のガキがこのスレにいたとはな・・・
やれやれだぜって感じだな
0335nobodyさん
2009/09/24(木) 15:21:52ID:???どんだけ膨らませたらTerapad信者になるんだ
0336nobodyさん
2009/09/24(木) 15:52:37ID:???addRuleでuploadedfileを指定した場合は、必須になります。
QuickForm.php
function addRule($element, $message, $type, $format=null, $validation='server', $reset = false, $force = false)
0337nobodyさん
2009/09/24(木) 15:52:52ID:Y4H9ZJk5それを通さずに特定の画像(例:www.hogehoge.com/hoge.jpg)を直接クリックした
カウントを表示するにはどのようにすればいいですか?
例として ttp://naruserv.ddo.jp/img/ の○○viewsがそうです。
スクリプトを使ってるかどうかわからないのですが・・・
0338nobodyさん
2009/09/24(木) 16:08:11ID:???1、example.com/example.jpg のアクセスで実は count.php?file=example.jpgが起動してアクセス記録後画像表示。
2、アクセスログから集計。
0341337
2009/09/24(木) 16:39:07ID:Y4H9ZJk5サイトのソースを見てもcount.php?file=example.jpgのような記述がないのですが
どのように起動しているのでしょうか?
たびたびすみません。
0342nobodyさん
2009/09/24(木) 16:40:46ID:???0343nobodyさん
2009/09/24(木) 16:59:20ID:yE0K6uT6PHPが動かないプロバイダってありますか?
0345337
2009/09/24(木) 17:15:11ID:Y4H9ZJk5ありがとうございます。
何となくですが理解できた気がします。
0346nobodyさん
2009/09/25(金) 01:29:16ID:nHivhU16CD
1
2
3
と次は4になって、仮に3番のレコードが削除されていても
4となってくれるのはいいのですが、
この3や4以前のレコードが削除されていた時に
phpで4というのを知るにはどうしたらよいでしょうか。
いったんインサートして4を知るしか方法は無いのでしょうか。
早い話がphpadminでいうNext Autoindexを取得できないかな、と。
よろしくお願いします
0347nobodyさん
2009/09/25(金) 01:48:43ID:nHivhU16show table status like table_name
でAuto_incrementに書いてありました。
0348nobodyさん
2009/09/25(金) 01:57:43ID:nHivhU16だめみたいでした。
SHOW TABLE STATUS LIKE 'table_name';
0349nobodyさん
2009/09/25(金) 14:37:38ID:Z7rJvuWorequire_once('Cache/Lite.php');
$params=array(
'cacheDir'=>'c:/tmp/',
'lifeTime'=>600);
$cache=new Cache_Lite($params);
$cid='query'.$_GET['category']; //この部分の'query'の意味が分かりません
if($data=$cache->get($cid)){
print($data);
} else {
$data='クエリ情報"category"の値:'.$_GET['category'].'('.date('G:i:s').')';
$cache->save($data,$cid);
print($data);
}
?>
失礼しますが質問させて下さい
上記のPEAR::Cache_Liteコードの、コメントを書いた部分の文字列'query'の意味が分かりません
実行しても別に画面上に出てくるわけでもないですし、何故この文字列を書き加えなければいけないのかが分かりません
何かキャッシュ実行時にqueryという文字がないとキャッシュと認識しないとかいう理由とかあって書き加えているのでしょうか?
0351nobodyさん
2009/09/25(金) 14:57:03ID:???キャッシュデータにつける名前みたいなもん。
だから、違うデータをキャッシュしたければそこは違う文字列にしないといけない。その後につけたしてる$_GET['category']も、名前の一部。
0352nobodyさん
2009/09/25(金) 14:58:09ID:???・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
って書いてるのに
PEARスレあるだろ超過疎ってるけど
もうPEARなんて使うのやめなさいよ
0353nobodyさん
2009/09/25(金) 19:41:22ID:jTI+YC2wmkdirやtouchでディレクトリおよびファイルを作成したいのですが、
作成する箇所の親ディレクトリのパーミッションが777でないと作成できません。
作成するときに親ディレクトリを一時的にchmodで777への変更を試みましたが、
chmod関数の仕様上不可能でした。
アップロード時のディレクトリのパーミッションがデフォルトで755です。
このパーミッションをアップロード時に777に変更すれば可能ですが、
変更せずに(755のままで)ファイルやさらにディレクトリをつくり出す方法はありませんか?
あるいは上述した通り自分がやった方法ではできませんでしたが、
一時的に777にして作成後755に戻す方法でもよいです。
どなたか分かる方よろしくお願いします。
0354nobodyさん
2009/09/26(土) 11:20:01ID:???yahooで無料でやっているとか
そこで以下のようにphp.iniを書き換えてapache再起動したのですが、
Warning: mail() [function.mail]: Failed to connect to mailserver at "smtp.mail.yahoo.co.jp" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set()
と怒られ、メール送信ができませんでした。
根本的に勘違いしているのでしょうか?
よろしくお願いします
[mail function]
; For Win32 only.
SMTP = smtp.mail.yahoo.co.jp
smtp_port = 25
; For Win32 only.
sendmail_from = [email protected] (xxxxxは自分のもっているyahooアドレス)
0355354
2009/09/26(土) 11:52:48ID:???0356nobodyさん
2009/09/26(土) 11:53:34ID:???smtpならxmail使っとけ
0357nobodyさん
2009/09/26(土) 12:04:29ID:Ka/xy5+X【環境】
MySQL5.1.38
WindowsXP SP3
Apache2.2.13
PHP5.2.11
phpMyAdmin3.2.2
【エラー内容】
phpMyAdminに、以下のようなメッセージが表示されます。
「お使いの PHP MySQL ライブラリのバージョン 5.0.51a が MySQL サーバのバージョン 5.1.39 と異なります。これは予期しない不具合を起こす可能性があります。」
【詳細】
以前、MySQL5.0を使っていたため、それが残っていると思われるため、
以下の手順を試みましたが、エラーが直りませんでした。
1. C:\Program Files\MySQL\MySQL Server 5.1\bin\libmySQL.dllをC:\WINDOWS以下にコピーしてApacheを起動。
2. Apacheは起動するものの、PHPからDBに接続しようとするWindowsの予期せぬエラーで接続ができない。
3. Apacheのエラーログや、MySQLのエラーログにも、この件についてログが吐かれていない。
4. {phpのインストールパス}\libmysql.dllをC:\WINDOWS以下にコピーしてApacheを起動すると、正常にDBにも接続できます。
【そのほか】
libmysql.dllが、MySQLの5.1系に対応できていないためだと思われますが、
肝心のlibmysql.dllはどこから入手できるのでしょうか?
また、MySQL5.1についてきたlibmySQL.dllのファイル名[libmySQL]のSQLが大文字であることも気になります。
0358nobodyさん
2009/09/26(土) 12:06:19ID:???まず、MySQLとPHPをアンインスコして、フォルダも消す。
できればその対象のファイルがレジストリに残ってないか調べておく。
その上で、PHPとMySQLをインスコする。
0359nobodyさん
2009/09/26(土) 12:53:58ID:???PHP5.2系に含まれるphp_mysql.dllとMysql5.1は相性が悪いので動作しない
以下のサイトで修正済みphp_mysql.dllと入れ替えればおk
ttp://friendsofed.infopop.net/4/OpenTopic?a=tpc&s=989094322&f=2963027307&m=3641072581
0360nobodyさん
2009/09/26(土) 12:55:22ID:???英語が良く分からなければ日本語の解説も書いとくから見とけ
ttp://plaza.rakuten.co.jp/gontata/diary/20090120/
0361nobodyさん
2009/09/26(土) 13:30:38ID:???どうもありがとうございました。
そんな不具合があったんですね。知りませんでした。
手順通りやってみたところ直りました。
深く感謝します!
0362361
2009/09/26(土) 13:32:04ID:Ka/xy5+X助かりました。
0363nobodyさん
2009/09/26(土) 14:31:17ID:kclaUDciperlとmysqlとphpが使えればいいのですが
d:\xamppにインストールした後は何の設定ファイルをいじったらいいのでしょうか?
0364nobodyさん
2009/09/26(土) 14:39:05ID:???あとはインストール用のbatクリックすればいいんじゃね
xamppのHPにインストール方法かいてるんだからそれ嫁
0365nobodyさん
2009/09/26(土) 15:24:23ID:Tg4hzrYm0366nobodyさん
2009/09/26(土) 15:32:53ID:???0367nobodyさん
2009/09/26(土) 15:48:33ID:Tg4hzrYm0368nobodyさん
2009/09/26(土) 15:51:21ID:???書いてることはちゃんとよめ
読むことすらしないやつはやる資格はない
0369nobodyさん
2009/09/26(土) 16:23:26ID:Tg4hzrYm0370nobodyさん
2009/09/26(土) 16:29:53ID:???0371nobodyさん
2009/09/26(土) 16:51:32ID:???http://pc11.2ch.net/test/read.cgi/mysv/1128262593/
0374nobodyさん
2009/09/26(土) 21:56:48ID:???ttp://blogs.yahoo.co.jp/sutarbarjunkie/44164177.html
ttp://ja.wikipedia.org/wiki/%E5%A2%83%E7%95%8C%E6%80%A7%E4%BA%BA%E6%A0%BC%E9%9A%9C%E5%AE%B3>>373
0376nobodyさん
2009/09/26(土) 22:25:02ID:???この場合は違うだろw
トラブルの原因となる可能性があるのであれば
しっかりとレジストリの掃除してからの方がトラブルが出た際に要因から外せる
絶対ならないのであればそれも要因から外せる
アドバイスをするのであればソースの確認なり検証なりして確実な答えが必要だと思うぞ
てっきりのレジストリの件についてソースを出してきたのかと思えば…
件に関係ないページかよ…
0377nobodyさん
2009/09/26(土) 23:00:48ID:???0379nobodyさん
2009/09/26(土) 23:25:24ID:suqPWTbxgetであればlocation(http://example.com/?hoge=piyo)
でいけるようなのですが。
また、http_clientやcurlでも無理なようでした。
perlならできるようなのですが、phpだと無理なのでしょうか?
0380nobodyさん
2009/09/26(土) 23:28:37ID:???ソフトウェアのインストールや設定時のレジストリを完全に綺麗にしてくれるなら
巷にあるレジストリクリーナーの役目は無くなっているんだがなぁ
その部分はどう思う?
MYSQLのインストーラは確実に消してくれているのだろうか?
0382381
2009/09/26(土) 23:47:11ID:???補足。
HTTP_Client::post()の結果を受け取って自サイト内で(本来は外部サイトのコンテンツを)表示するのに問題があるのであれば、
post用のページを一枚はさんで、ユーザーに送信クリックさせる(あるいはjavascriptで自動submit?)のが簡単かな。
ところで、perlでやってる実例なりがあるのであれば、phpで同じことをすれば良いのでは?
0383nobodyさん
2009/09/27(日) 04:05:29ID:wLv38OPrhttp://www.php.net/manual/ja/language.operators.bitwise.php
の「例3 整数値のビットシフト」で
32ビットと64ビットの出力例が紹介されていて
自分のパソコンは64ビットなんですけど
32ビットで出力されているようです:
--- BIT SHIFT RIGHT ON POSITIVE INTEGERS ---
Expression: 2 = 4 >> 1
Decimal:
val=4
res=2
Binary:
val=00000000000000000000000000000100
res=00000000000000000000000000000010
NOTE: copy of sign bit shifted into left side
なぜだか教えてください。
どこかPHPの設定で64ビットに切り替えるところがあるんですか?
0384nobodyさん
2009/09/27(日) 05:30:09ID:wLv38OPr### "form_comparison_operators.html" ###
<form action="comparison_operators03.php" method="post">
名前:<input type="text" name="name" />
<input type="submit" />
</form>
### "comparison_operators03.php" ###
<?php
var_dump($_POST['action']);
// 三項演算子の使用例
$action = (empty($_POST['action'])) ? 'default' : $_POST['action'];
if ('default' == $action)
echo "デフォルト";
else
echo "デフォルトじゃない";
?>
…この出力が
NULL
デフォルト
になってしまいます。
ちゃんと"comparison_operators03.php"が呼ばれているんですから
$_POST['action']は"comparison_operators03.php"になるんじゃないんですか?
なぜ、NULLになってしまうんでしょうか?
0385nobodyさん
2009/09/27(日) 05:37:01ID:???挙動は正しいです
var_dump($_POST['action']); でNULLと出力されていますので$_POST['action']の中身はNULLです
よって(empty($_POST['action'])) はtrueとなり、$actionには'default'が入ります
最後にif ('default' == $action) がtrueとなり'デフォルト'と出力されます
0386nobodyさん
2009/09/27(日) 05:40:42ID:???あれ?意味が違う気がしてきた
<form action="comparison_operators03.php" method="post">
のactionがPOSTされると思い込んでいるようですが、全く意味が違います
また、form_comparison_operators.htmlのフォームからは$_POST['name'](NULL)のみPOSTされます
HTMLの勉強をお勧めします
0387nobodyさん
2009/09/27(日) 05:48:05ID:wLv38OPrありがとうございます。
>$_POST['name'](NULL)のみPOSTされます
では、actionをempty「ではない」ように設定するには
form_comparison_operators.htmlをどう書けばよいのでしょうか?
0388nobodyさん
2009/09/27(日) 05:53:16ID:???0389nobodyさん
2009/09/27(日) 06:04:19ID:wLv38OPrでは、
### "form_comparison_operators.html" ###
<form action="comparison_operators03.php" method="post">
名前:<input type="text" name="name" />
アクション:<input type="text" name="action" />
<input type="submit" />
</form>
…ですか?確かに
string(3) "foo"
デフォルトじゃない
という出力になりましたけど、
http://www.php.net/manual/ja/language.operators.comparison.php
の「例2 デフォルト値を設定する」は本当にそういう意図で書かれてるんですかね?
変数に$nameではなく、$actionを使ってるところがすごく気になるんですけど…。
第三者の意見も聞きたいです。
0390nobodyさん
2009/09/27(日) 06:05:13ID:???0391nobodyさん
2009/09/27(日) 06:06:30ID:???そういう意図じゃないってどういうこと?
どうなるべきだと思ってるの?
0392nobodyさん
2009/09/27(日) 06:19:41ID:wLv38OPr「アクション:<input type="text" name="action" /> 」の行が無くても
$_POST['action']に"comparison_operators03.php"が入って
常に"デフォルトじゃない"と表示されるべきだと思っていました。
まぁ、
<form action="" method="post">
のようにactionが空だったら、
"comparison_operators03.php"すらも呼ばれないわけですから
三項演算子を使う意味がないですね。
結論として、
<form action="comparison_operators03.php" method="post">
のactionと
empty($_POST['action']
のactionは「別物」ということでいいですか?
…でも、actionが使われているのは腑に落ちないですねぇ…無駄にややこしいです…。
0393nobodyさん
2009/09/27(日) 06:22:11ID:???0394nobodyさん
2009/09/27(日) 06:24:05ID:???三項演算子より先にちゃんと基礎を身に付けたほうがいいかと
0395nobodyさん
2009/09/27(日) 06:34:16ID:wLv38OPr…これに同意してくださるなら、HTMLを勉強してあげてもいいですけど
0396nobodyさん
2009/09/27(日) 06:48:37ID:???0397nobodyさん
2009/09/27(日) 07:10:48ID:wLv38OPrnameでもfooでもbarでもunkoでもいいから
本当に「適当な」変数名を付けてくれていれば
こんな大惨事になることもなかったのに
わざわざピンポイントでactionを使うなんて
この例を書いた人の品性を疑いますね
昔から「李下に冠を正さず」「瓜田の靴を納れず」と言うでしょう?
疑わしい行動は慎むべきです
下記の者たちには次回からは気を付けていただきたいですね
著者:
Mehdi Achour
Friedhelm Betz
Antony Dovgal
Nuno Lopes
Hannes Magnusson
Georg Richter
Damien Seguy
Jakub Vrana
0398nobodyさん
2009/09/27(日) 08:16:55ID:???0399nobodyさん
2009/09/27(日) 08:38:48ID:1afp6/JG用途は、特定10サイト程度を定期的に巡回して、新しいリンクが在ればリンク先を保存(2階層まで)する。
と、単純なものなのですが、PHPでの作成は適していますか?
何かアドバイスを頂ければ幸いです。
0400nobodyさん
2009/09/27(日) 08:54:03ID:???HEADでリクエスト送ってレスポンスヘッダのExpiresの値を前回のものと比較して違っていれば新しいリンクを探す
0401nobodyさん
2009/09/27(日) 09:12:57ID:???PHPなら簡単にできる
0402nobodyさん
2009/09/27(日) 10:00:57ID:???PHP本体をコンパイルしたCコンパイラのintの大きさに依存する。
設定ではなく、コンパイルからやり直さないとダメ。
WindowsならPHPのサイトから64bit版を落とせばいけるはず、あるか知らんが。
0403399
2009/09/27(日) 11:44:01ID:1afp6/JG最初は、file_get_contents関数で取得しようと思ってたのですが、
HTTP_Requestの方が細かい設定ができて良いですね。
PHPでのHTTPアクセスを超簡単に行える「PEAR::HTTP_Request」
ttp://phpspot.org/blog/archives/2007/03/phphttppearhttp.html
HTTP_RequestでIf-Modified-Sinceを設定する
ttp://blog.elkc.net/?p=45
ファイルを取得できたので次に、スクレイピング処理?について、
タグの値などを取得するには、TIDY関数やhtmlSQLが便利だと分りました。
で、次の問題が…
前回と今回の変更箇所(更新された部分)は、どのように見つけたらよいのでしょうか?
0404nobodyさん
2009/09/27(日) 12:15:33ID:???0405nobodyさん
2009/09/27(日) 12:38:06ID:???function test($a, $b){
if ($a!==$b) {
$r = "wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww";
}else{
$r = "lol";
}
return $r;
}
$test_hensu = array_map("test", $line[$i], $oldLine[$i]);
print_r($test_hensu);
?>
0406nobodyさん
2009/09/27(日) 12:46:37ID:???そこを考える事を楽しめない奴はプログラマには向いてないな
まあ、コーディングは手段であって必ずしも生業や趣味じゃないからどうでもいい話だが
追跡するのはリンクだけだろ?なら、更新の有無とかチェックしないで、毎回片っ端から全リンクを拾い出せばいい
取得済URLのリストだけ保存しておいて、なかったら新規に追加されたリンクと見なしてデータを取得する
0407406
2009/09/27(日) 12:49:26ID:???個々のファイルが更新されたか否かは、結局ファイルを読みに行かないと分からない
正攻法なら前回クロールで作ったファイルリスト全部に対しIf-Modified-Sinceを送り、更新されていたファイルを取得するのが効率がいい
0408nobodyさん
2009/09/27(日) 14:03:51ID:wLv38OPr初心者からも文句が出ないように書くのも教える側の義務だと思います
今度彼らに会ったらキツく言っておきます
0409nobodyさん
2009/09/27(日) 14:06:19ID:???ここは義務で回答しに来てるわけではなく、あくまでボランティアだ
0410nobodyさん
2009/09/27(日) 14:07:23ID:wLv38OPrあら、コンパイルからですか。
64bit版落とすのも面倒なので今回は諦めておきます。
次回PHPが大きくヴァージョンアップしたら、ついでに64bit版に変えてもいいですね。
ありがとうございました。
0411nobodyさん
2009/09/27(日) 14:20:37ID:???それが面倒なら何ができるんだw
0412チラシの裏
2009/09/27(日) 14:36:50ID:???これCとかJavaにもあったらいいのにな
0413チラシの裏
2009/09/27(日) 15:57:19ID:???残念っ!!!
0415nobodyさん
2009/09/28(月) 00:37:04ID:nPgUeQzt<?php
$aaa = $_GET["bbb"];
print ($aaa);
?>
をindex.phpとしたとき
http://localhost/?bbb=文字列
というURLでアクセスすると
文字列がページに表示されますが
このURLの
bbb=を省いて
http://localhost/?文字列
これで文字列がページに表示するようにしたいのですが
どうすればいいんでしょうか?
よろしくお願いします
0418nobodyさん
2009/09/28(月) 00:54:12ID:???とやって、PATH_INFOで受け取る手もある。拡張子隠蔽はMultiViewとかmod_rewrite
0419nobodyさん
2009/09/28(月) 00:58:51ID:nPgUeQzt迅速なレスありがとうございます
超絶初心者なのでわからない単語などありますが
そこらへんはググって試行錯誤やってみます
ありがとうございました
0420nobodyさん
2009/09/28(月) 02:52:20ID:gXHj/gRY0422nobodyさん
2009/09/28(月) 06:11:36ID:xItyGbMUの「例3 IteratorAggregateを実装するオブジェクトの反復処理」ですが:
<?php
class MyCollection implements IteratorAggregate
{
private $items = array();
private $count = 0;
// Required definition of interface IteratorAggregate
public function getIterator() {
return new MyIterator($this->items);
}
public function add($value) {
$this->items[$this->count++] = $value;
}
}
$coll = new MyCollection();
$coll->add('value 1');
$coll->add('value 2');
$coll->add('value 3');
foreach ($coll as $key => $val) {
echo "key/value: [$key -> $val]\n\n";
}
?>
…を実行するとHTTP 500 Internal Server Errorが出ます。
最後のforeachをコメントアウトしてやるとエラーは出なくなりますが、真っ白で何も表示されません。
どこを直せばよいか教えてください。
0424nobodyさん
2009/09/28(月) 06:59:12ID:xItyGbMUありがとうございます。
残念ながら、{ }を付けてもやっぱりHTTP 500 Internal Server Errorが出ます。
何か他に思い当たるところはないですか?
0425422
2009/09/28(月) 07:16:07ID:xItyGbMU// echo "key/value: [{$key} -> {$val}]\n\n";
と、その行だけコメントアウトしてもHTTP 500 Internal Server Errorが出ます。
php.netによると、正しい出力は
rewinding
current: value 1
valid: 1
current: value 1
key: 0
key/value: [0 -> value 1]
next: value 2
current: value 2
valid: 1
current: value 2
key: 1
key/value: [1 -> value 2]
next: value 3
current: value 3
valid: 1
current: value 3
key: 2
key/value: [2 -> value 3]
next:
current:
valid:
…となるそうです。
何かのヒントになりますか?
0426nobodyさん
2009/09/28(月) 08:11:32ID:???もちろんMyIteratorクラスは、そのページのサンプル通りのものを
><?php
>class MyCollection implements IteratorAggregate
この二行の間に書いているか、またはincludeしてるんだよね?
それと、エラーログ見てみようよ。
0427422
2009/09/28(月) 08:13:11ID:xItyGbMUclass MyCollection implements IteratorAggregate
{
private $items = array();
private $count = 0;
public function getIterator() {
return new MyIterator($this->items);
}
public function add($value) {
$this->items[$this->count++] = $value;
print_r($this->items); // 追加した行; 配列の内容を表示するため
}
}
$coll = new MyCollection();
$coll->add('value 1');
$coll->add('value 2');
$coll->add('value 3');
//foreach ($coll as $key => $val) {
//echo "key/value: [{$key} -> {$val}]\n\n";
//}
?>
一行追加してみました。その結果、
Array ( [0] => value 1 [1] => value 2 [2] => value 3 )
…と、配列に正しくkeyとvalが入っているのが分かります。
後は問題は「なぜforeach文が正しく動かないか」です。
自分が出来るのはここまでです。どなたかお力を貸してください。
0428422
2009/09/28(月) 08:18:10ID:xItyGbMUありがとうございます。
>もちろんMyIteratorクラスは、そのページのサンプル通りのものを
>
>><?php
>>class MyCollection implements IteratorAggregate
>
>この二行の間に書いているか、またはincludeしてるんだよね?
いえ、MyIteratorクラスは>>422に書いた通りで、何もincludeしていません。
「何」を「どのように」includeすればいいんですか?
それと、エラーログはどうやって見るのですか?
0429nobodyさん
2009/09/28(月) 10:00:32ID:A4zPaHMymysql_eofは廃止になったとことですけど
mysql_errorやmysqlerrnoでどうやって終端チェックできるんでしょうか?
if(mysql_errno($db)!=0){echo "End of Record";}
とか
if(mysql_errno($db)){echo "End of Record";}
やってるんだけど0が帰ってきて、終端とそうでない場合に違いがでないんだけど...
0430nobodyさん
2009/09/28(月) 10:14:57ID:???エラーログの出し方を知らずにコーディングとか、服を着ないで原宿に買い物に行くようなもの。
error_reportingとdisplay_errorでぐぐれ、もしくはマニュアル検索れ。
0431nobodyさん
2009/09/28(月) 11:51:50ID:/RfVJ8GXスレッドが作られる数だけ
タスクマネージャのプロセスがたくさん表示されるってことでしょうか?
0432422
2009/09/28(月) 13:50:33ID:xItyGbMUerror_reportingは知ってたんですけど、
display_errorsがOffになってて表示されなかったようです
(どっかの例でdisplay_errorsをOffにしたんですよ、確か、ちきしょー)。
それでエラーメッセージ読んでたら速攻で解決しました。
ありがとうございました!
0434422
2009/09/28(月) 14:13:46ID:???いやいや、マジでそうですって。
display_errorsはデフォルトではOnですし、それ以外考えられないですよ。
右も左も分からん人間にdisplay_errorsをOffにさせるなんて
オレオレ詐欺に次ぐ悪質な手口じゃないですか。
で、実際にどこで変えたのか検索しようとしたら
Windows Vistaの糞野郎が「拡張子が".php"のファイルの内容は検索できない」とか言いやがりますし、
世の中絶対におかしいですよ。
ちょっとこれから服を着ないで原宿に買い物に行ってみます。
0435nobodyさん
2009/09/28(月) 14:36:59ID:???0437nobodyさん
2009/09/28(月) 16:06:56ID:+8HTDnRb例外処理を書きたいのですが
try{
例外が起こりそうな処理
}catch(Exception $e){
例外時の処理
}
これでよろしいでしょうか?
なにか足りないものがあればお願いします
0438nobodyさん
2009/09/28(月) 16:09:50ID:???お前俺の友達に似てるな。
ネットに書いてあることをそのままコピペでやって
うまくいかなかったらそいつのせいだと?
馬鹿にするのも大概にしろよ。
0439nobodyさん
2009/09/28(月) 16:21:51ID:???それでいいよ
ただJavaのようにエラー全てを例外で処理するような言語ではないので
PHPで例外処理使う場合はPDOなんかの勝手にthrowしてくる最近のクラスだけでいいんじゃない?
PHPは後つけのオブジェクト指向なので昔からあるような関数はエラー出て止まるだけだから
そういうものに対しても例外処理をしたいとなると自分でthrowしないといけない
0440nobodyさん
2009/09/28(月) 16:32:03ID:+8HTDnRb予測不能な物は自分でthrowしなくていいんですね
ありがとうございます
0441nobodyさん
2009/09/28(月) 17:09:14ID:???サーバー側でHTMLをjqueryで整形できるよ。
http://code.google.com/p/phpquery/
$doc = phpQuery::newDocumentHTML("http://www.yahoo.co.jp/");
$html = $doc['div'] -> html();
サーバーサイド側でこんな簡単にHTMLが抜け出せる。
正規表現も使わないで済む。jqueryライクな書き方でOK
0442nobodyさん
2009/09/28(月) 19:09:33ID:???マルチ死ね
0443nobodyさん
2009/09/28(月) 20:41:17ID:???PHPなんだからサーバ側処理なのは当たり前だろ
ただのjQueryライクにかけるようにしたクラスライブラリだろ
PHP知らないJS使いが使う分にはいいがこのスレでは不要
0444nobodyさん
2009/09/28(月) 21:08:56ID:???これができるって事?
0445nobodyさん
2009/09/28(月) 22:16:10ID:???0446nobodyさん
2009/09/28(月) 23:54:07ID:???0447nobodyさん
2009/09/29(火) 05:28:20ID:???タスクマネージャにスレッドまでは表示しないだろ。
0448nobodyさん
2009/09/29(火) 09:48:41ID:ZXmjIu3r・ある瞬間をあらわす「時刻」
・時刻と時刻の間を表す「時間」
・時間の量
の三種類の別種のオブジェクトがありうると思いますが
それらを提供しているライブラリがあれば教えてください
0449nobodyさん
2009/09/29(火) 09:51:04ID:???1
time(); or microtime();
2
意味がわからない
3
意味がわからない
具体的に書いていただかないと回答もつきませんよ
0450nobodyさん
2009/09/29(火) 10:55:40ID:???disk_total_spaceで取得すると、-844980224の様にマイナスになってしまいます。
正しく取得するにはどうしたらいいですか?
0451nobodyさん
2009/09/29(火) 10:56:45ID:???0452nobodyさん
2009/09/29(火) 11:00:21ID:rvLghs2tdisk_total_spaceで取得すると、-844980224の様にマイナスになってしまいます。
正しく取得するにはどうしたらいいですか?
追記:マイナスは消えたのですが、実際のサイズとは違う値が返ってきました。
0453nobodyさん
2009/09/29(火) 11:02:02ID:???0456nobodyさん
2009/09/29(火) 11:18:30ID:???挙動は同じ
マルチスレッドを想定しているかそうでないかの違い
>>448
>・ある瞬間をあらわす「時刻」
http://www.php.net/manual/ja/class.datetime.php
>・時刻と時刻の間を表す「時間」
http://www.php.net/manual/ja/class.dateinterval.php
>・時間の量
上の二つの表現だけでは表わせられないもの?
0457nobodyさん
2009/09/29(火) 12:00:55ID:CnNpVgYIお前ってほんと冷たいよな。
0458nobodyさん
2009/09/29(火) 13:52:05ID:???duコマンドでとったほうがいいんじゃない?
自分も昔PHPの関数でどうにかとろうとしてうまくいかなかったから
duコマンドで取得することにしたよ
Windowsの場合でも似たようなものがぐぐればVectorで配布されてるので
それ通してやればいいんでないかな
0459nobodyさん
2009/09/29(火) 13:54:45ID:lVskSDkS他の言語もやってたから、なんかメインルーチン書くと落ち着くし。
<?php $var=main(); ?>
<html><body>
<?php echo $var; ?>
</body></html>
<?php function main(){return $var;} ?>
0460nobodyさん
2009/09/29(火) 13:58:00ID:???0461nobodyさん
2009/09/29(火) 14:50:34ID:???0464nobodyさん
2009/09/29(火) 16:44:19ID:nmAs+ASN<?php
class SubObject {
static $instances = 0;
public $instance;
public function __construct() {
$this->instance = ++self::$instances;
}
public function __clone() {
$this->instance = ++self::$instances;
}
}
class MyCloneable {
public $object1;
public $object2;
function __clone() {
$this->object1 = clone $this->object1;
}
}
$obj = new MyCloneable();
$obj->object1 = new SubObject();
$obj->object2 = new SubObject();
$obj2 = clone $obj;
print("元のオブジェクト\n");
print_r($obj);
print("クローンオブジェクト\n");
print_r($obj2);
?>
0465nobodyさん
2009/09/29(火) 16:47:50ID:lVskSDkS>>463
あー、ページ全体を別ファイルから読み込んだり変数から生成するってわけね。
なんか処理のオーバーヘッドが気になってなるべくできる場所は生HTMLで出力するようにしてるんだよね。
0466nobodyさん
2009/09/29(火) 16:49:33ID:kJl2bky+0467464の続き
2009/09/29(火) 16:51:05ID:nmAs+ASN元のオブジェクト
MyCloneable Object
(
[object1] => SubObject Object
(
[instance] => 1
)
[object2] => SubObject Object
(
[instance] => 2
)
)
クローンオブジェクト
MyCloneable Object
(
[object1] => SubObject Object
(
[instance] => 3
)
[object2] => SubObject Object
(
[instance] => 2
)
)
…でも、$obj2->object2が「2」になる理由が分かりません。$instancesはstaticですよね? だから
$obj->object1 = new SubObject(); $obj->object2 = new SubObject();
で1, 2となって
$obj2 = clone $obj;
で3. 「4」になるんじゃないんですか?
0469nobodyさん
2009/09/29(火) 17:01:53ID:???ここでクローンが作成されてるのが、$obj->object1 だけだからだろ。
0470nobodyさん
2009/09/29(火) 17:03:55ID:???「$obj->object1 と $obj->object2 のうち、$object1 しかクローンが作成されてないからだろ」
だな。
0471464, 467
2009/09/29(火) 17:11:25ID:nmAs+ASNありがとうございます。
ええーっ!でもぉ?…と思ったら、アッー!
$this->object1 = clone $this->object1;
で $obj->object1 だけクローンが作成されてるんですね。
その際に ++self::$instances されるわけですね、なるほど。
$obj2->object2 の「2」は $obj->object2 のクローンのままの「2」なんですね。
ありがとうございました!
0472nobodyさん
2009/09/29(火) 19:05:29ID:kJl2bky+pdoで動かすにはどのような設定とファイルが必要でしょうか?
PHPは5.2.10です
0474nobodyさん
2009/09/30(水) 03:09:00ID:PdAV1SS2【PHPのバージョン】php4.4.8
【質問内容】
特定のユーザーエージェントだったらフラグを立てる、というつもりで
以下のように書いたところ
Fatal error: Cannot break/continue 1 level in 〜
と出てしまいます。break指定なんかしてないんですが・・・どういうことでしょうか。
function axs_ck(){
$mfl = 0;
if($_SERVER["HTTP_USER_AGENT"] =="Webaster") {//自分専用エージェント名。
$mfl=1;
}//この行がエラーとか言われてます。
}
ここで立てたフラグを使って、管理者ページへのリンクを付けたり消したり、
立ち入り禁止ページを作ったりしようと思っています。
0475nobodyさん
2009/09/30(水) 03:15:49ID:???その記述ならエラーは出ないはず。
ファイルが違うとか保存してないとか参照先が違うとかもう一度見直してみるといいかも
0476474
2009/09/30(水) 03:52:48ID:???axs.phpにこの内容を書いて、呼び出し元のindex.phpに
require("axs.php");
axs_ck();
と書いてUP済みです。
>>474の内容をindex.phpに書けばエラー出ない・・・動く・・・普通に。うーん、どうしてだ。
0477nobodyさん
2009/09/30(水) 07:59:41ID:???0478nobodyさん
2009/09/30(水) 15:17:52ID:erJ6uHWW<li>リストです</li>
</ul>
というHTMLから「リストです」の部分を抽出したいと思い
preg_match("/<ul><li>(.*?)<\/li><\/ul>/s",$html,$array);
という正規表現を書いたのですが、抽出できません。
見直すとHTMLが改行されていたので、改行を削除したら抽出されました。
しかし、改行する場合・しない場合もあり、両方対応させたいと思います。
上記コードをどのように変更すればいいのでしょうか?
0479nobodyさん
2009/09/30(水) 15:25:41ID:???試してないから間違ってたらsry
preg_match("/<ul><li>(.*?)<\/li><\/ul>/sm",$html,$array);
0480nobodyさん
2009/09/30(水) 15:26:58ID:6H2Mywyh返り値に負の値が出るのはなんでだろうorz
0481nobodyさん
2009/09/30(水) 15:32:27ID:???いくらs付けてもそれじゃ無理だろ
君のパターンでは<ul>と<li>の間に改行がこないパターンになってるんだから
<?php
$html ="
<ul>
<li>リストです</li>
</ul>
";
preg_match("!<ul>.*<li>(.*?)</li>.*</ul>!s",$html,$array);
print_r($array);
?>
0482nobodyさん
2009/09/30(水) 15:33:27ID:i3D4XUwa\n*
0483nobodyさん
2009/09/30(水) 15:34:12ID:???preg_match("|<ul>.*?<li>(.+?)</li>.*?</ul>|ms",$html,$array);
0484nobodyさん
2009/09/30(水) 15:39:32ID:???0485478
2009/09/30(水) 15:50:44ID:erJ6uHWWみなさんありがとうございます。上手くできました。
/を|にして、ulとliに.*を入れれば良いんですね。
勉強になりました。
0486nobodyさん
2009/09/30(水) 16:49:42ID:???デリミタに|は使わないほうがいいよ
#とか!とか&とかそういうほとんど使わないものをデリミタにしな
0487nobodyさん
2009/09/30(水) 17:21:38ID:???0488474
2009/09/30(水) 17:26:12ID:PdAV1SS2!!
index.phpからprint $mfl;としても真っ白な理由が分かった・・・
ような気がします。ありがとうございます。
どうやってもダメなので考え方変えました・・・フラグ立てずにアク禁だけの
ルーチンとリンク用ルーチンに分けることにしました。
スレタイ通りに超くだらない質問を最後に。
ページにアクセスした時にユーザーエージェントごとに違う内容を
100回ループで出力する時、
(1)ヘッダ付近でエージェントを取得してFフラグを立てておき、
ループの所でtrue or falseで出力
(2)ループの所でエージェントを取得してtrue or falseで出力
やはり(2)が効率悪いですか?
ホスト名取得だと負荷がかかるとかなんとか聞き覚えがありますが・・・
0491nobodyさん
2009/09/30(水) 17:49:19ID:???UAの取得って$_SERVER["HTTP_USER_AGENT"] 見るだけでしょ?
既に変数として定義されているんだから、フラグ用の変数を見るのと大差無い。
0492nobodyさん
2009/09/30(水) 18:01:48ID:2VTuEGW2【PHPのバージョン】php5
【連携ソフトウェア】?
【質問内容】 質問させて頂きます。
現在ウェブサイトを制作しており、cgiを弄っています。
そこで、何度やってもエラーが出るのですが
ご教授お願い致します。
print "Content-type: text/html\n\n";
↑たとえばこういうのだとまったく問題ないです。(当たり前ですが)
print "<!--[if IE 6]>\n";
print "<![endif]-->\n";
↑こういうのがうまくいきません。
多分!や--が悪いと思うのですが・・・
どうすれば<!--[if IE 6]>をprint出来るのでしょうか?
ものすごく初歩的なことだと思うのですが、
検索しても全然それらしいものが出なかったので
どなたかご回答をお願い致します。
0493nobodyさん
2009/09/30(水) 18:06:33ID:i3D4XUwaが正しい。うしろにも前にも--
0494nobodyさん
2009/09/30(水) 18:13:40ID:???>>493は何か勘違いしてるのでスルーするとして
コメントだから単にブラウザ表示されてないだけ
ブラウザのHTMLソースを見ればちゃんと出力されてるよ
あとPHPはWebアプリケーション専用に開発されてるのでPerlのように
print "Content-type: text/html\n\n";
みたいのは不要
0495494
2009/09/30(水) 18:21:21ID:???HTMLで<>を実体参照に置き換えるのと同じ要領でやればいい
0496nobodyさん
2009/09/30(水) 18:23:38ID:???PHPはデフォルトでHTMLとして出力するのでContent-typeとかは書かなくていい。
これを拡張子phpで保存して動かしてみるといい
--
<h1>
<?php
echo "Hello world";
?>
</h1>
--
明示的にContent-typeを変えたい場合は
header('Content-Type: text/plain');
こんな感じで。
0498nobodyさん
2009/09/30(水) 18:56:32ID:???(a-z|0-9)こういうパターンの時に困るだろ
0499nobodyさん
2009/09/30(水) 19:04:05ID:2VTuEGW2迅速な回答ありがとうございます。
ブラウザ上で表示されていないのは分かるのですが、
internal server errorがでるのでソースを見ることすら出来なかったのです。
あとprint "Content-type: text/html\n\n"; は不要とのアドバイス
ありがとうございます。
文字列として出力するのもやりたかったので
ご回答嬉しいです。ありがとうございます!
とりあえず実態参照って何か分からないのでググってみます。
ご回答ありがとうございました!
>>496
こちらも迅速な回答ありがとうございます。
今編集しているのは、拡張子が.cgiというファイルです。
0500nobodyさん
2009/09/30(水) 19:17:00ID:???0502nobodyさん
2009/09/30(水) 19:37:46ID:???0503nobodyさん
2009/09/30(水) 21:46:51ID:AbgTvS5i【PHPのバージョン】xampp-win32-1.7.2に入っているバージョンで多分最新だと思います。
【連携ソフトウェア】なし。
【質問内容】
http://www.navit-tokubai.jp/tenpo.asp?ShopID=1658
ここにアクセスして、『ピーコック』『目白店』のみの文字列を抽出し表示させるソースを教えて下さい。
よろしくお願いします。
0504503
2009/09/30(水) 21:51:27ID:AbgTvS5i$url = "http://www.navit-tokubai.jp/tenpo.asp?ShopID=1658";
$thread = file_get_contents($url);
mb_ereg("会社名</td>\r\n <td width=\"70%\" class=\"tenpo003\">\r\n (\W)", $thread, $matches);
print_r($matches);
ここまで、自分でやったんですけど、うまくいかないんです。
0505nobodyさん
2009/09/30(水) 21:57:14ID:???0506503
2009/09/30(水) 22:37:15ID:AbgTvS5iはい。 それは↓の実験で確認出来てます。
問題は、正規表現とか検索の関数の使い方がわかんないんです。
<?php
$url = "http://www.navit-tokubai.jp/tenpo.asp?ShopID=1658";
$thread = file_get_contents($url); // スレッドの全読み込み
$fp = @fopen("保存.txt", "w");
fwrite($fp, $thread);
fclose($fp);
0507nobodyさん
2009/09/30(水) 22:41:00ID:???正規表現で1発で抜き出せるとは思うけど自分は苦手なのでこれが精一杯
$list = file("http://www.navit-tokubai.jp/tenpo.asp?ShopID=1658");
$a = array();
for ($i = 0; $i < count($list); $i++) {
if (preg_match("/<td.*会社名.*?<\/td>/", $list[$i])) {
$a[] = trim($list[$i + 2]);
continue;
}
if (preg_match("/<td.*店舗名.*?<\/td>/", $list[$i])) {
$a[] = trim($list[$i + 2]);
break;
}
}
print_r($a);
0508nobodyさん
2009/09/30(水) 22:44:07ID:???$url = "http://www.navit-tokubai.jp/tenpo.asp?ShopID=1658";
$thread = file($url);
echo $thread[41];
echo $thread[48];
0510503
2009/09/30(水) 22:54:58ID:AbgTvS5iありがとうございます。しかし、
Parse error: syntax error, unexpected '@' in
というエラーが出ました。
> if (preg_match("/<td.*会社名.*?<\/td>/", $list[$i])) {
この行です。
0511nobodyさん
2009/09/30(水) 22:58:00ID:???コピペしただけじゃ動かない
スペースを消すか半角スペースかタブにおきかえてくれ
0512nobodyさん
2009/09/30(水) 23:02:17ID:3aUw1Dx6function hogeFunc($hoge1,hoge2){
if($hoge2==1){
$hoge1++;
}
return $hoge1;
}
上みたいな関数を実行するのに
hogeFunc(10); って感じに2つめの引数を指定しなくても動くわけですが
NULLでもいいから指定すべきなんでしょうか? hogeFunc(10,NULL);
糞質問ですみませんがお願いします
0513nobodyさん
2009/09/30(水) 23:03:34ID:???デフォルト値設定すれば出ないけど
0515503
2009/09/30(水) 23:05:25ID:AbgTvS5iどうもです。
>>511
おお、正しく動きました。
ご両人のソースをこれからじっくり分析しようと思います。
有り難うございました。
0516nobodyさん
2009/09/30(水) 23:07:32ID:3aUw1Dx6そうそう、その問題なんですよ
エラーがずらずらでてきて動いてるのになんで?ってのが始まりで。
「まあ動いてるから良いか」的に思ってたんですが良いわけないですね…
>>514
なるほど、そのデフォルト値の設定ってこういう状況のため(?)にあるんですね
ありがとうございました
0517nobodyさん
2009/09/30(水) 23:09:26ID:???じゃあ、引数消せよと
0518nobodyさん
2009/09/30(水) 23:12:39ID:3aUw1Dx6ほんとうにありがとう
0519nobodyさん
2009/09/30(水) 23:38:17ID:???0520503
2009/10/01(木) 05:49:02ID:ZppROofQfor ($page = 80; $page < 10000 ; $page++) {
echo $page;
echo "\r\n";
$url = "http://www.navit-tokubai.jp/tenpo.asp?ShopID=";
$url .=$page;
$thread = file($url);
if (preg_match("/.*東京都.*?/",$thread[62]))
{
$WriteData=$page;
$WriteData.=",";
$WriteData.=mb_ereg_replace("\r\n","",mb_ereg_replace(" ","",$thread[41]));
$WriteData.=",";
$WriteData.=mb_ereg_replace("\r\n","",mb_ereg_replace(" ","",$thread[48]));
$WriteData.=",";
$WriteData.=mb_ereg_replace("\r\n","",mb_ereg_replace(" ","",$thread[62]));
echo $WriteData;
$WriteData2.=$WriteData;
$WriteData2.="\r\n";
};
}
$fp = fopen("スーパー.txt", "w");
fwrite($fp,$WriteData2);
fclose($fp);
こんな感じで東京都にあるスーパーの住所録を全部抜いてやろと思ったのですが、↓みたいに途中で止まってしまいます。
これって、相手のサーバーが規制をかけた、ってことでしょうか?
0521503
2009/10/01(木) 05:50:36ID:ZppROofQ91 91,イトーヨーカ堂,三ノ輪店,東京都荒川区南千住1-9-192 92,イトーヨーカ堂,ザ・プライス西新井店,東京都足立区興野1-12-793 93,イトーヨーカ堂,高砂店,東京都葛飾区高砂3-12-594 94,イトーヨーカ堂,上板橋店,東京都板橋区常盤台4-26-195
96 96,イトーヨーカ堂,金町店,東京都葛飾区東金町1-10-897 97,イトーヨーカ堂,東村山店,東京都東村山市本町2-2-1998 98,イトーヨーカ堂,府中店,東京都府中市本町1-13-399 99,イトーヨーカ堂,竹の塚店,東京都足立区竹の塚5-17-1100
101 101,イトーヨーカ堂,武蔵境店,東京都武蔵野市境南町2-2-20102 102,イトーヨーカ堂,ザ・プライス滝山店,東京都東久留米市滝山4-13-10103 103,イトーヨーカ堂,小岩店,東京都江戸川区西小岩1-24-1
104 104,イトーヨーカ堂,多摩センター店,東京都多摩市落合1-44105 105,イトーヨーカ堂,綾瀬店,東京都足立区綾瀬3-4-25106 106,イトーヨーカ堂,エスパ昭島店,東京都昭島市田中町562-1107 107,イトーヨーカ堂,四つ木店,東京都葛飾区四つ木2-21-1
108 108,イトーヨーカ堂,東久留米店,東京都東久留米市本町3-8-1109 110 110,イトーヨーカ堂,赤羽店,東京都北区赤羽西1-7-1111 111,イトーヨーカ堂,亀有駅前店,東京都葛飾区亀有3-26-1112 112,イトーヨーカ堂,恋ヶ窪店,東京都国分寺市東恋ヶ窪5-6-3
113 113,イトーヨーカ堂,大井町店,東京都品川区大井1-3-6114 114,イトーヨーカ堂,南大沢店,東京都八王子市南大沢2-28-1115 115,イトーヨーカ堂,八王子店,東京都八王子市狭間町1462-1116 116,イトーヨーカ堂,葛西店,東京都江戸川区東葛西9-3-3
117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165
Fatal error: Maximum execution time of 60 seconds exceeded in C:\xampp\htdocs\xampp\akkun\baka002.php on line 10
0522nobodyさん
2009/10/01(木) 05:55:23ID:???Fatal error: Maximum execution time of 60 seconds exceeded
を機械翻訳でもしてみろw
ttp://honyaku.yahoo.co.jp/transtext
0524503
2009/10/01(木) 06:01:53ID:ZppROofQ機械翻訳したところ、
『上回られる60秒の最大の実行時間』
だそうですが、これはどういう意味でしょうか?
PHPの実行時間が60秒を越えたらダメとか?
0525503
2009/10/01(木) 06:04:45ID:ZppROofQなんか、設定をいじればいいとか?
つか、もう寝ます。
0526sage
2009/10/01(木) 09:29:22ID:XQ4QcZJw質問しといて勝手に寝るな
php.iniみとけや
0527nobodyさん
2009/10/01(木) 09:45:31ID:???0528nobodyさん
2009/10/01(木) 10:09:23ID:twwty8uPクラスわけとか、メソッドわけ?とか。
動くものは作れるし、それなりに勉強してるつもりなんですが、
いまいち自信もてないので・・・
0529nobodyさん
2009/10/01(木) 10:29:38ID:???他人のコードを読む、でもある程度勉強になるが、優れたコードは読みやすいので良さに気づかずに何気なくスルーしてしまう事が多い。
本で勉強するなら、PHPの本ではなく、OOPの本を読む時期に来ていると思う。
このスレは書かれるコードが断片的すぎて設計レベルの勉強には向かない。
0530nobodyさん
2009/10/01(木) 10:32:54ID:???0531nobodyさん
2009/10/01(木) 10:36:26ID:twwty8uPレスどうもです。
ちゃんと指摘してくれそうなうな人が回りにいないんですよね・・・(^^;
OOPの本でいいの知ってたら教えてください
0533529
2009/10/01(木) 11:22:34ID:???『リファクタリング』
『デザイン・パターン』
『コード・コンプリート』
『達人プログラマー』
上から順に、でいいかな。多分値段順、明日から使える順に並んでる。
『デザイン・パターン』は類書でもいいし、webでもいい。結城さんの本とか。
0534nobodyさん
2009/10/01(木) 11:24:52ID:twwty8uPありがとうございます。
0535nobodyさん
2009/10/01(木) 11:30:48ID:qQSI8C4c動的URLを静的URLにしたいです。
下記の場合のRewriteRuleの書き方を教えてください。
↓を試してみたら、2行目が優先されてしまい、1行目が対応できませんでした。
RewriteRule ^([^/]+)/([^/]+)_([^/]+)/$ view.php?q=$1&mode=$2&pref=$3
RewriteRule ^([^/]+)/([^/]+)_([^/]+)/$ view.php?q=$1&mode=$2&city=$3
http://sample.jp/v.php&q=tokyo&mode=pref&pref=q0001
↓
http://sample.jp/tokyo/pref_q0001/
http://sample.jp/v.php&q=daiba&mode=city&city=z0001
↓
http://sample.jp/daiba/city_z0001/
0536nobodyさん
2009/10/01(木) 11:41:38ID:???とにかく説明が下手糞
0539nobodyさん
2009/10/01(木) 12:25:15ID:???RewriteRule ^([^/]+)/city_([^/]+)/$ view.php?q=$1&mode=city&city=$2
0540nobodyさん
2009/10/01(木) 12:26:30ID:???RewriteRule ^([^/]+)/([^/]+)_([^/]+)/$ view.php?q=$1&mode=$2&$2=$3
0541nobodyさん
2009/10/01(木) 13:48:26ID:9PvgZ/Pgphp.iniの設定はどうするの?
サイトごとに別々に用意して読み込ませるとか出来るもの?
0542nobodyさん
2009/10/01(木) 14:08:55ID:qQSI8C4c0543nobodyさん
2009/10/01(木) 14:36:36ID:twwty8uP共通のを使って、違うところはそれぞれのvhostの中で独自定義したりする
0544503
2009/10/01(木) 14:40:00ID:ZppROofQmax_execution_time = 60
を書き換えても、全然かわらないから、
ソース内に
set_time_limit(0);
を書いたらうまく行きました。
どうもでした。
0545nobodyさん
2009/10/01(木) 14:41:46ID:/dzREAM4>>543
レンサバで、そういうのいじれない場合はどうすればいいでしょうか。
0546nobodyさん
2009/10/01(木) 14:55:09ID:???いじれないことないと思うが。
普通ディレクトリ内にphp.iniを置けば認識する場合が多い。
でなければPHPスクリプト内で代用できるコマンドがあると思うけど。
上のset_time_limitみたいに
0547nobodyさん
2009/10/01(木) 15:01:25ID:9PvgZ/Pgなるほどー
凄く勉強になりました。ありがとう
0548nobodyさん
2009/10/01(木) 15:02:24ID:v/9aEp650549nobodyさん
2009/10/01(木) 15:04:07ID:???変更できるパラメータはini_setで変更
変更できるかどうかはマニュアルの「変更の可否」を参照
http://jp2.php.net/manual/ja/ini.list.php
0550nobodyさん
2009/10/01(木) 15:06:17ID:???ただし設定ファイルを上書きしてしまわないよう注意
システム的にはこれでアップデートは完了だが
新しい機能を有効にしたい場合は当然設定しなおさないとだめ
0551nobodyさん
2009/10/01(木) 20:19:36ID:PoVmDbv70552nobodyさん
2009/10/01(木) 20:32:26ID:hYnFYsU30553湯ノ口
2009/10/01(木) 20:39:02ID:???.htaccessで教えて頂ければ助かります。
pcからmbにアクセスしたら、こちらはmb専用ページですと表示したいです。
その逆(mbからpcサイト)も教えて頂ければ助かります。
あとseoの事を考えると検索ロボットのipを全部許可したいんです。
これも教えて頂ければ非常に助かります。
もっと簡単でいい方法があればそれでも結構です。
以上宜しくお願いします。
0554nobodyさん
2009/10/01(木) 20:40:06ID:???0555nobodyさん
2009/10/01(木) 20:40:09ID:hYnFYsU3の「例1 例外クラスを構築する」なんですけど、なにもコメントアウトしないとHTTP 500 Internal Server Errorが出ます。
それで、下半分をコメントアウトすると
Fatal error: Cannot redeclare class Exception in C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs\extended_exception01.php on line 7
が出ます(長いので次レス参照のこと)。
下半分をコメントアウトしたまま、クラス名をMyExceptionにすると、真っ白な画面ですが通ります。
これってクラス名は本当にExceptionのままでいいんですか?
それとコメントアウトせずに通すにはどうしたらいいんですか?
0556555
2009/10/01(木) 20:41:14ID:hYnFYsU3error_reporting(-1);
ini_set('display_errors', 'On');
ini_set('log_errors', 'On');
class Exception
{
protected $message = 'Unknown exception'; // exception message
private $string; // __toString cache
protected $code = 0; // user defined exception code
protected $file; // source filename of exception
protected $line; // source line of exception
private $trace; // backtrace
private $previous; // previous exception if nested exception
/*
public function __construct($message = null, $code = 0, Exception $previous = null);
final private function __clone(); // Inhibits cloning of exceptions.
final public function getMessage(); // message of exception
final public function getCode(); // code of exception
final public function getFile(); // source filename
final public function getLine(); // source line
final public function getTrace(); // an array of the backtrace()
final public function getPrevious(); // previous exception
final public function getTraceAsString(); // formatted string of trace
*/
/* Overrideable */
// public function __toString(); // formatted string for display
}
?>
0558555
2009/10/01(木) 20:53:49ID:hYnFYsU3ありがとうございます。
ちなみに質問する前に例2も一緒にコピペしてみたんですけどダメでした。
しかも、困ったことに下半分をコメントアウトしない限りエラーメッセージも出ないんですよね。
cloneはfinalにしてあってcloneできないようにしてありますよね。
しかも、どこからも呼ばれていません。
ですからE_FATAL エラーの発生ではないですね。
Exceptionクラスのみでさえエラーが出るんですから
それ以上足しても・・・と思うんですけどどうですか?
0559nobodyさん
2009/10/01(木) 20:57:35ID:???0560555
2009/10/01(木) 21:01:20ID:hYnFYsU3読んで分からないから質問しているんです。
マニュアル読んだだけですべて理解できるならこの質問スレの意義すらないでしょう。
せめてヒントをください。あなたのレスでは抽象的過ぎて分かりません。
0561nobodyさん
2009/10/01(木) 21:15:34ID:???激しくうざい存在
0563555
2009/10/01(木) 21:24:20ID:hYnFYsU3激同です
(出来ればIDを晒して文句を言っていただけると幸いです、自演と思われるとアレですので…)。
前回質問したときも、まったく的外れだったことがあります。
>>562
こっちだって出来るだけのことは調べて質問しているんです。
あなたが教える気がないのは分かりましたのでお引取りください。
代わりに他の回答者の方、お願いします。
0564nobodyさん
2009/10/01(木) 21:31:31ID:???じゃ六法全書も読めばすぐに弁護士になれるよな?
http://www.ron.gr.jp/law/
マニュアルがあればこの世の問題はすべて解決
・・・って馬鹿じゃね?
0566555
2009/10/01(木) 22:03:39ID:hYnFYsU3自演乙です
0567nobodyさん
2009/10/01(木) 22:07:27ID:???答えが出てくるまで黙ってろボケ
0568nobodyさん
2009/10/01(木) 22:15:15ID:???本家PHPサイトの和訳を教えていただけませんか?
英語辞書あるから完璧ですよね
和訳を俺に伝授してくれませんか?^^
0569nobodyさん
2009/10/01(木) 22:18:51ID:???// 例2
try {
$o = new TestException(TestException::THROW_DEFAULT);
} catch (MyException $e) { // この型にはマッチしない
echo "Caught my exception\n", $e;
$e->customFunction();
} catch (Exception $e) { // キャッチされる
echo "Caught Default Exception\n", $e;
}
これだけためして
ちゃんとExceptionしてくれてるよ
0570555
2009/10/01(木) 22:42:33ID:hYnFYsU3ありがとうございます。
今、「例2 例外クラスを拡張する」のみを試したら、実行できました。
その中の「例1」「例2」「例3」「例4」も含めていますが、実行できます。
ということは、「例1 例外クラスを構築する」は元々既にPHPに組み込まれているクラスなのですか?
つまり、「例1 例外クラスを構築する」は「わざわざ打ち込んで実行する必要はない」という解釈で良いですか?
0571nobodyさん
2009/10/01(木) 22:44:17ID:BF5xnbImよかったですねまともな回答者にめぐり合えて。
>>562みたいな回答したいだけの香具師(知識はもちろん初心者レベルでしょうね)の事は気にしてはいけませんよ
0572nobodyさん
2009/10/01(木) 22:49:02ID:59iiS7vg>以下のメンバーおよびプロパティは、 組み込みの Exception クラスから派生した子クラスの中でアクセス可能です。
ってマニュアルに書いてあるでしょ?
解答示せと言うのもわかる。ググレで終わるのもどうかと思う。
だがそれに対して逆ギレするのもどうかと思うぞ。
>>1のテンプレ位読んでくれ
0573nobodyさん
2009/10/01(木) 22:56:26ID:???0574nobodyさん
2009/10/01(木) 23:00:50ID:???そのとおりだよ。
php5にもともと入ってるクラスを書きだしたのが例1
例2 例外クラスを拡張する の
class MyException extends Exception
の親クラスの中を見てみ
0575555
2009/10/01(木) 23:21:44ID:hYnFYsU3応援、ありがとうございます。
正直、今回のは納得いきませんでしたね。
中途半端に回答して煽るくらいなら回答要りませんよね。
>>572
>以下のメンバーおよびプロパティは、 組み込みの Exception クラスから派生した子クラスの中でアクセス可能です。
それは「分かっている人の、分かっている人による、分かっている人のための」説明文でしょう。
では、少し長いですが「法人税法」第23条第2項を読んでみましょう:
「法人(公益法人等及び人格のない社団等を除く。以下この条において同じ)の株主等である内国法人が当該法人から
次に掲げる金銭その他の資産の交付を受けた場合において、その金銭の額及び金銭以外の資産の価値の合計額が
その交付の起因となった当該法人の株式(出資等も含む)の帳簿価額を超えるときは、この法律の規定の適用については、
その超える部分の金額のうち、当該法人の資本等の金額から成る部分の金額以外の金額は、利益の配当又は剰余金の分配の額とみなす」
・・・こういう文章がすっと頭に入る人は、頭が良いというより、「少しおかしいのではないか」と思う。 by 野口悠紀雄
確かに、どう見ても良い説明文ではないですよね。今回の件はそれと同じ印象を受けました。
それに、一言言ってくれれば済んだ話じゃないですか?
僕だって今はこうやって理解しているんですし。
回答者に不備があればこれからも一質問者として指摘していくつもりです。
その代わり、正しい回答が得られればきちんと感謝の意を示すつもりです。
0576555
2009/10/01(木) 23:26:41ID:hYnFYsU3やはり、その通りでしたか。
実はエラーメッセージに「Exceptionが再度宣言された」とあったので
元のExceptionが既に宣言されているのではないかと察してはいました。
しかし、それならわざわざ例として出す必要もないと思っていましたし、
なんと言っても題名が「例1 例外クラスを構築する」でしたからね(それでMyExceptionにしてみた訳ですが)。
原文のように「例1 既に組み込まれている例外クラス(=Example #1 The Built in Exception class)」であれば理解できたはずです。
僕も将来、あなたのような回答者になれるように努力します。
今回は本当にありがとうございました!
0578nobodyさん
2009/10/01(木) 23:47:23ID:???0580nobodyさん
2009/10/01(木) 23:53:01ID:???0581nobodyさん
2009/10/02(金) 00:30:18ID:???クラスの拡張は継承してやってください
0582nobodyさん
2009/10/02(金) 00:40:26ID:4UZHJi/j【OS名】ubuntu 804.3
【PHPのバージョン】php5.24
【連携ソフトウェア】apche2.1mysql5.05
【質問内容】
質問ですがあります。ご指導いただけないでしょうか
現在動画ファイルを
ファイルアップロード時にmymeTypeを判別して条件分岐させる関数を作成しています。
しかし、正確にmymeTypeを判別しません。
fileinfoでも正確に判別できませんでした。
しかたないので、一度mymeTypeを判別してから
正確に判別できない動画ファイルのみ拡張子で条件分岐させています。
しかしこれでは、正確とは程遠いバグがある関数になってしまいます。
なにかphpに動画ファイルmymeTypeを正確に判別するクラスはあるのでしょうか?
もしなければ、なにかポピュラーな判別方法をご教授いただけないでしょうか?
0583nobodyさん
2009/10/02(金) 00:43:55ID:4UZHJi/j/**
* 画像フォーマット判定
*/
function t_check_movie_format($file, $type = 0)
{
// サーバーで判断できない場合使用
if ($file['type']== 'application/octet-stream') {
// fileinfo
$finfo = finfo_open(FILEINFO_MIME, "/usr/share/misc/magic");
$file['type'] = finfo_file($finfo, $file['tmp_name']);
finfo_close($finfo);
// 拡張子
$extens_tmp = strrchr($file['name'], '.');
$extens = strtolower($extens_tmp);
}
下に続きます
0584nobodyさん
2009/10/02(金) 00:44:39ID:4UZHJi/j$format = false;
switch ($file['type']) {
case 'video/mp4':
if (($file['tmp_name'])) $format = 'mp4';
break;
case 'video/avi':
if (($file['tmp_name'])) $format = 'avi';
break;
case 'application/octet-stream':
if (($file['tmp_name'])) ($extens=='.flv') ? $format = 'flv' : '';
break;
case 'video/x-ms-wmv':
if (($file['tmp_name'])) $format = 'wmv';
break;
case 'video/x-msvideo':
if (($file['tmp_name'])) $format = 'avi';
break;
default:
break;
}
return $format;
}
0585nobodyさん
2009/10/02(金) 00:49:46ID:???http://www.php.net/manual/ja/function.finfo-file.php
finfo-file関数ってのがある
0586nobodyさん
2009/10/02(金) 00:59:29ID:4UZHJi/jでも現在使用しているphpバージョンは5.24ですので使用できません・・・
それ以外だとなにかありますか?
0587nobodyさん
2009/10/02(金) 01:04:44ID:???0588nobodyさん
2009/10/02(金) 01:05:02ID:4UZHJi/jそれ現在使用中です。
0589nobodyさん
2009/10/02(金) 01:07:13ID:4UZHJi/jなんとかならないですかね。
0590nobodyさん
2009/10/02(金) 01:21:43ID:???0591nobodyさん
2009/10/02(金) 01:26:27ID:???確かUnix系のコマンドでmimetypeを判別するやつがあったから
その外部コマンド使ってやるのがベターだったような気がする
もっと正確に判別可能な外部プログラムがあったらそれを通すのも手
とにかくPHPではやらないほうがいいと思う
昔自分もしょうがないからヘッダを見てmimetypeを決定するライブラリ作ろうとしたけど
車輪の再開発だからやめとけと説得されてやめた
0592nobodyさん
2009/10/02(金) 01:30:13ID:4UZHJi/jしかし、関数でmyme Typeを正確に判別していない点がバグと言った本当の意味なんです。
ですのでなにかご教授いただきたかったのですが。。
0593nobodyさん
2009/10/02(金) 01:30:57ID:???条件に
(PHP >= 5.3.0, PECL fileinfo >= 0.1.0)
って書いてるんだから
PHPのバージョンも5.3.0以上じゃないと
0594nobodyさん
2009/10/02(金) 01:32:49ID:???何をどう誤検出するのか分かると対策もあるかもしれないよ
まぁ591の方法でいいと思うけど
あとmimeな
>>593
できてるじゃないか
0595nobodyさん
2009/10/02(金) 01:35:07ID:0fN7wMTr携帯識別情報を送信しない場合は投稿を否定したいです。
どのように組めば宜しいでしょうか?
refererチェックをうまく改変して作成したいです^^;
#個体識別チェック
if (!isset($_SERVER['HTTP_REFERER']) or !$_SERVER['HTTP_REFERER']){
#refererが無い場合は携帯からの書きこみチェック
if (!strstr($_SERVER['HTTP_USER_AGENT'], 'DoCoMo') and
!strstr($_SERVER['HTTP_USER_AGENT'], 'J-PHONE') and
!strstr($_SERVER['HTTP_USER_AGENT'], 'SoftBank') and
!strstr($_SERVER['HTTP_USER_AGENT'], 'UP.Browser'))
DispError("ERROR!","ERROR:固体番号を送信してください!");
}
ちなみに・・・
$_SERVER[HTTP_USER_AGENT] → 送信必須(SN,ser,ezweb.ne.jp)
$_SERVER[HTTP_X_UP_SUBNO] → au
$_SERVER[HTTP_X_DCMGUID] → ドコモ
$_SERVER[HTTP_X_JPHONE_UID] → ソフトバンク
です^^;
0597nobodyさん
2009/10/02(金) 01:45:42ID:4UZHJi/jありがとうございます。勉強しなおします。
>>591 >>594
OSの登録myme Typeを確認・追加して
phpでUnixコマンド使うみたいな感じですかね
それならいけそうなきがしますね
ちょっとやってみます。ありがとうございます。
0598nobodyさん
2009/10/02(金) 02:07:40ID:???アップロードされたファイルをこのコマンドにiオプションつけてexec関数あたりで叩けばいいんじゃね?
実行して返ってきた文字列から使う部分だけ抜き出してみたいな流れで
まぁどのプログラムも結局登録されたヘッダーを元に独自に解析してるので
未知のものも出てくるし100%判別できないこともあるのでどこかしら妥協が必要だよ
0599nobodyさん
2009/10/02(金) 02:33:33ID:???ゆとり率がぐんと減ったなw
0601nobodyさん
2009/10/02(金) 07:20:30ID:???getID3()というライブラリを使うという手も
ttp://getid3.sourceforge.net/
mp3のタグ情報とかzipに入ってるファイルのリストとかも取れる
使い方も簡単。
include('../getid3/getid3.php');
$file = './test.zip';
$getID3 = new getID3;
$ThisFileInfo = $getID3->analyze($file);
getid3_lib::CopyTagsToComments($ThisFileInfo);
print_r($ThisFileInfo);
0602nobodyさん
2009/10/02(金) 11:01:05ID:Zilzfd9cphpでpostgresに接続ができなくて、phpPgAdminだと
-------------------------------------------------------
データベースをサポートするように PHP のコンパイル・インストールがされていません。configure の --with-pgsql オプションを用いて PHP を再コンパイルする必要があります。
-------------------------------------------------------
というエラーがでます。Windowsなんで再コンパイルもくそもないだろうと思って
php.iniを確認。
extension=php_pgsql.dll
とかかれてるのでOKかと思ったら、Apache起動時に以下のエラーがphp.logに
-------------------------------------------------------
PHP Warning: PHP Startup: Unable to load dynamic library 'C:/PHP/ext/php_pgsql.dll' - このオペレーティング システムでは %1 は実行されません。
-------------------------------------------------------
/がだめなのかと\に変えても駄目で、phpinfoをみてみると、php.iniはちゃんと
読み込んでる様子。ひとつわからないのが以下の部分で、
d:\〜とか書いてますが、そもそもDドライブなんて無いのになぜ出てるのか?
-------------------------------------------------------
Configure Command cscript /nologo configure.js
"--enable-snapshot-build"
"--enable-debug-pack"
"--with-snapshot-template=d:\php-sdk\snap_5_2\vc6\x86\template"
"--with-php-build=d:\php-sdk\snap_5_2\vc6\x86\php_build"
"--with-pdo-oci=D:\php-sdk\oracle\instantclient10\sdk,shared"
"--with-oci8=D:\php-sdk\oracle\instantclient10\sdk,shared"
-------------------------------------------------------
いろいろ調べてみたんですが、ぐぐっても解決方法は見つからないので、
何か調べるべきところがあれば教えてください。
ちなみにapache2.2もなぜか入ってたので、それは削除しました。
0603nobodyさん
2009/10/02(金) 11:13:18ID:???0604602
2009/10/02(金) 11:30:10ID:Zilzfd9c過去ログにあった
http://pc11.2ch.net/test/read.cgi/php/1200314111/944-957
windows版php_pgsqlはずっとばぐりっぱなしで5.2.5にしないと駄目らしい。
>603
試してみたけどこれも駄目でした・・・。
0605nobodyさん
2009/10/02(金) 16:48:17ID:1rF2YxUP2<>C<>7<>
3<>E<>7<>
4<>F<>1<>
5<>G<>4<>
6<>D<>2<>
7<>B<>1<>
上記の配列を
1<>A<><>
7<>B<>1<>
2<>C<>7<>
6<>D<>2<>
3<>E<>7<>
4<>F<>1<>
5<>G<>4<>
というように並び替えたいんですが
どうにも煮詰まってます。
何かいい知恵はないでしょうか
A〜Gは仮の物なので実際は適当な日本語ですので
アルファベット順でソートはできません。
0606nobodyさん
2009/10/02(金) 17:07:16ID:???元の配列をvar_dumpしてくれると助かるんだが
array_multisortとかじゃ駄目?
PHP: array_multisort - Manual
http://jp2.php.net/manual/ja/function.array-multisort.php
あとアルファベット順ではなく、何順でソートすればいいの?
0607nobodyさん
2009/10/02(金) 17:09:24ID:???$a = array("いいい", "めめめ", "さささ", "ぎぎぎ", "ほほほ", "あああ", "こここ", "たたた");
$b = array("伊伊伊", "目目目", "左左左", "義義義", "歩歩歩", "亜亜亜", "子子子", "多多多");
sort($a, SORT_LOCALE_STRING);
sort($b, SORT_LOCALE_STRING);
print_r($a);
print_r($b);
?>
これ実行してみ
これなら漢字もソートできてるように思えるが不確実な要素も多いので
漢字も含む場合はソート用にかな(orカナ)読みの配列を用意したほうがいいかもしれない
0608605
2009/10/02(金) 17:33:10ID:1rF2YxUParray(7) {
[0]=>
string(11) "1<>鈴木<><>"
[1]=>
string(12) "2<>佐藤<>7<>"
[2]=>
string(12) "3<>田中<>7<>"
[3]=>
string(12) "4<>小林<>1<>"
[4]=>
string(12) "5<>高橋<>4<>"
[5]=>
string(12) "6<>渡辺<>2<>"
[6]=>
string(12) "7<>加藤<>1<>"
}
先ほどのA〜Gを置き換えました。
結果として
鈴木
├加藤
│├佐藤
││└渡辺
│└田中
└小林
└高橋
こんな感じの表示をしたいです。
0610nobodyさん
2009/10/02(金) 17:41:33ID:Zilzfd9c階層はどうやって判断させる気?
0611nobodyさん
2009/10/02(金) 17:42:00ID:???0613nobodyさん
2009/10/02(金) 17:50:36ID:???元々のデータがこんな状態でしたので悩んでいました。
足らない=できない と判断して諦めます。
>610
並び替えさえ上手くできればなんとかなるかなと思ってました。
皆様、ありがとうございました。
0615nobodyさん
2009/10/02(金) 18:43:28ID:???0616nobodyさん
2009/10/02(金) 19:01:54ID:???自己結合・自己参照・ツリー構造
0617nobodyさん
2009/10/02(金) 19:06:55ID:???0618nobodyさん
2009/10/02(金) 19:17:19ID:???0619nobodyさん
2009/10/02(金) 20:12:17ID:CFt8Mg+b加藤の下につく佐藤と田中は初期の並び通りなのはなにを基準にしてかな
0620nobodyさん
2009/10/02(金) 21:17:08ID:3TAJH0/w$res = imagecreatefromstring($data);
でデータから画像リソースを生成する事は出来るのですが、生成元の画像形式を判別したいです。
それらしい関数が存在しないのですが・・・自前でバイナリデータを解析するしか無いのでしょうか?
0622nobodyさん
2009/10/03(土) 01:35:48ID:uCD1ueGG後からプラグインで機能を追加できるようにしています。
プラグインによっては別のプラグインに含まれている関数と
重複してしまうファイルがあるのですが、
その場合もプラグイン用のフォルダには必要なファイルを入れています。
同じファイルが2つ3つと増えていくので無駄だと思うのですが、
プラグインのような後から追加するかも知れないファイルの場合
どのように管理すればいいか悩みます。
同じようなシステムを作った事がある方は、助言をいただければ助かります。
0623nobodyさん
2009/10/03(土) 01:42:02ID:???0624nobodyさん
2009/10/03(土) 01:44:51ID:???俺が思うに1TBのHDが1万円の時代に数十KBのPHPファイルが重複してどうこうとみみっちいこと気にしなくてもいいんじゃないかと
リッチプログラミングってやつですよ
0625nobodyさん
2009/10/03(土) 01:46:40ID:uCD1ueGG似たようなファイルがプラグイン毎にあるとおかしくないかな?と思いまして。
例えば、メール送信が入るプラグインって結構作ると思うんです。
それようの関数ファイルってプラグインによって微妙に違ったりするし。。
0626nobodyさん
2009/10/03(土) 01:56:25ID:???0627nobodyさん
2009/10/03(土) 01:58:04ID:???プラグイン化されてるってことはファイルの相互依存関係なんてないはずだと思うけど
0628nobodyさん
2009/10/03(土) 02:14:19ID:uCD1ueGG後から自分が見て改善する事も良くありますから、
メール送信用の関数ファイルが、AのプラグインとBのプラグインで
違う事ってたまにないですか?
0629nobodyさん
2009/10/03(土) 02:15:01ID:???/plugin001/mail.php
/plugin002/mail.php
/plugin003/mail.php
こんな感じになってるって事?であれば共有出来るコードはプラグインから出して、共通ライブラリにでも配置すればいいんじゃないかね。
>似たようなファイルがプラグイン毎にあるとおかしくないかな?と思いまして。
おかしくは無いよ。
特定のプラグインの関数にだけ修正をいれたい時等に柔軟に対応出来る。
反面、全部の関数に修正をいれたい場合に面倒になるけど・・・
理想としては、共通コードは1つのファイルに纏めておくべきだけど、
プラグイン間の相互依存関係が複雑になるので、事前にしっかりとした設計が必要になるよ。
0630nobodyさん
2009/10/03(土) 02:15:28ID:uCD1ueGGAが古くてBが新しければ、Aの該当箇所もB用に作り替えますよね。
0632nobodyさん
2009/10/03(土) 02:17:07ID:???0633nobodyさん
2009/10/03(土) 02:17:37ID:uCD1ueGGそんな感じです。
共通ライブラリ(メインのCMSに元からあるファイル)を
定期的に更新しているのですが、判断に迷う時がありまして。
新しい作り方をしたからと言って該当するファイル全て修正するのは手間だし、
どういう設計・管理方法をすればいいか悩み、質問しました。
0634nobodyさん
2009/10/03(土) 02:20:06ID:uCD1ueGGメール送信の場合はclassを作っていますが、
作り始めの物は関数使っています。
だんだん規模が大きくなってきたらclassにしてますが
0635nobodyさん
2009/10/03(土) 02:21:47ID:???SDKのような感覚で
プラグイン作成に必要なものがあるならそれは共通ファイルとして分けておくべき
まぁその辺のCMSのプラグインは単独で動作するようになってるので
もう少しシステムを見直したほうがいいと思うけど
0636nobodyさん
2009/10/03(土) 02:24:14ID:???0637nobodyさん
2009/10/03(土) 02:25:14ID:???具体的に何が問題で何をしたいか言ってくれないと分からん。
0638nobodyさん
2009/10/03(土) 02:30:09ID:uCD1ueGG指摘を受けているように効率化の面で設計がおかしいかな?と思いまして。
とりあえず、共通ファイルに分けられるものは分けるようにして、
必要なものは似たような関数(ファイル)でも入れておくようにします。
みなさん、アドバイスありがとうございました。
0639nobodyさん
2009/10/03(土) 02:31:57ID:???99%各プラグインで普遍的に共通であろう処理は、CMS側に実装すればいいんじゃない?
メールであれば、MIME処理や、mail送信処理とかね。
きっちりOOP設計して、細かいclass群にわけて置けば将来的に拡張し放題だろうけど、面倒だし管理も大変になるからなぁ・・・
今どんなに完璧に書いたとしても、1年後には書き直したい衝動にかられてるだろうしw
0640nobodyさん
2009/10/03(土) 08:46:12ID:???まず、共通になるように関数(クラス)のインターフェイスを変えろ 。
function hoge(a){
return fuga(a, 10)
}
みたいに処理の委譲を使うとか
$mail = new Mail( new Signature('Masashi Tashiro') );
みたいに、非共通部分を引数化するとか。
0641nobodyさん
2009/10/03(土) 09:38:16ID:???どんな機能を用意してるんだろう。
そのへん気になる。
ただ特定ディレクトリ以下のファイルを自動で
includeするだけ、っていうオチもあるだろうけど。
0642nobodyさん
2009/10/03(土) 10:52:21ID:???全て関数にすればいい
0643nobodyさん
2009/10/03(土) 11:46:45ID:???ポストメソッドで大容量のファイル(600MBくらい)を扱いたく、
php.iniの、post_max_sizeを変え見たんですが、(post_max_size=1000M)
型がintegerなのか、512MBを超えるとのエラーが出てしまいます。
エラーは以下です。
Warning: POST Content-Length of 618534863 bytes exceeds the limit of 536870912 bytes in Unknown on line 0
サイズの制限をより大きく、あるいは無制限にする方法を教えてください。
0644nobodyさん
2009/10/03(土) 11:47:26ID:pEIS+Jzz0645nobodyさん
2009/10/03(土) 11:48:49ID:???個人的には、Mac OSをお薦めします。
今の時代、Vistaの後継OSまで発売されている時勢に、XPは時代遅れです。
XPで開発していると、たびたびトラブルが発生しますので、
OSごと乗り換える方が得策ではないでしょうか?
0647nobodyさん
2009/10/03(土) 13:07:47ID:pEIS+Jzz解決法はないのですか?
>>646
変えてます。
無理なようですので、フォームではファイル名入力してもらうようにして、
ftpでアップロードさせるようにします。
他にいい方法があれば、ご教授いただければ幸いです。
0649nobodyさん
2009/10/03(土) 13:18:33ID:???0650nobodyさん
2009/10/03(土) 13:18:44ID:tYIqChf6昼間はレベルの低い初心者回答者がいますので気長に夜まで待ってれば素晴らしい回答者が現れますよ
ぼくも応援するのであげますね
0651nobodyさん
2009/10/03(土) 16:04:45ID:???WindowsXPの場合、32bitだけど、
Mac OSの場合、最大1024bitまでオーバークロックできる。
XPの制約に飽き飽きしているし、
パフォーマンス改善に有効なメモリーも3.2GBしか認識できないなどサーバーとしては致命的。
0652nobodyさん
2009/10/03(土) 16:36:06ID:???\ / /
\ 丶 i. | / ./ /
\ ヽ i. .| / / /
\ ヽ i | / / /
\
-‐
ー / ̄`Y  ̄ヽ、
. __ / / / / l | | lヽヽ --
二 / / // ⌒ ⌒ヽ = 二
 ̄ | | |/ (●) (●)  ̄
-‐ (S|| | ⌒ ・ィ ヽ ‐-
| || | ト-=-ァ ノ
/ | || | |-r 、/ /| \
| || | \_`ニ'_/ |
/ \
/ ヽ
/ / 丶 \
/ / / | i, 丶 \
/ / / | i, 丶 \
0653nobodyさん
2009/10/03(土) 16:54:58ID:???phpinfoで確認してみて
0654nobodyさん
2009/10/03(土) 17:11:39ID:???おい、どうでもいいけどこのシャラポワの顔酷くないか???
瞬間的な顔で変な顔に写ったのか、それとも相当顔が崩れたのかどっちなんだ?
0655nobodyさん
2009/10/03(土) 17:13:59ID:pEIS+Jzzpost_max_sizeでしたら、ともに1000Mと表示されています。
0656nobodyさん
2009/10/03(土) 17:15:01ID:???0657nobodyさん
2009/10/03(土) 17:21:54ID:???典型的なリンゴ信者だなw
サーバOSに通常のXPなんかつかわねーよw
開発機にMac?比較にならんほどの資産があるWindowsを切り捨てるメリットがねぇよw
0658nobodyさん
2009/10/03(土) 17:23:02ID:???0659nobodyさん
2009/10/03(土) 17:31:31ID:???っていうかサーバーならwindowsじゃなくて、
現状RedHatの方が数段上だろ。ほかのLinuxやUnixにしても同様。
windowsを使うメリットを教えて欲しいくらいだ。
0660nobodyさん
2009/10/03(土) 17:32:37ID:pEIS+Jzzお願いします。
http://kissho1.xii.jp/7/src/7jyou26589.jpg
http://kissho1.xii.jp/7/src/7jyou26590.jpg
0661nobodyさん
2009/10/03(土) 17:33:00ID:???WindowsServer系を使うのが普通だし、
MacOS使うくらいならLinux/Unix/BSD系を選択するわw
0662nobodyさん
2009/10/03(土) 17:37:08ID:???ごめん、開発機での話な。
素人でも導入が簡単、ネットに情報が溢れている、開発ツールも豊富、って意味でMACより楽だよ。と。
WindowsServerはインストールが簡単で、慣れ親しんだGUIで扱える、Windowsアプリが動作する、ってのがポイントかねぇ・・・
動画変換とか、WEBキャプチャとか面白いフリーソフトが揃ってるし。
WEBサーバとしてはウンコだけど
0663nobodyさん
2009/10/03(土) 17:43:51ID:???memory_limitが512Mになっとらんか?
エラーの出方がそっちくさいんだが…
0664nobodyさん
2009/10/03(土) 17:45:39ID:???0665nobodyさん
2009/10/03(土) 17:48:19ID:pEIS+Jzzそれは-1になってます。
いままで、いろいろと値を変えて試してみましたが、
エラーの値に影響するのはpost_max_sizeの値だけでした。
0666nobodyさん
2009/10/03(土) 17:50:45ID:???0667nobodyさん
2009/10/03(土) 17:52:41ID:pEIS+Jzzそうです。
それのせいでしょうか?
0668nobodyさん
2009/10/03(土) 17:52:50ID:???0669nobodyさん
2009/10/03(土) 17:53:54ID:???なんでだめなんだ?
0671nobodyさん
2009/10/03(土) 17:57:56ID:UkWOIQsIIDだしたぞ
教えてくれ
0672nobodyさん
2009/10/03(土) 18:06:22ID:???array
'name' => string 'CentOS-5.3-i386-LiveCD.iso' (length=26)
'type' => string 'application/x-iso9660-image' (length=27)
'tmp_name' => string 'D:\desktop\workspace\xampp\tmp\php354.tmp' (length=41)
'error' => int 0
'size' => int 724725760
0673nobodyさん
2009/10/03(土) 18:12:02ID:???0674nobodyさん
2009/10/03(土) 18:15:59ID:???単に、持っているPCが中古で、メモリーが32GBだって落ちはないの?
単に、持っているPCが中古で、メモリーが32GBだって落ちはないの?
単に、持っているPCが中古で、メモリーが32GBだって落ちはないの?
0675nobodyさん
2009/10/03(土) 18:30:36ID:???> WindowsXPの場合、32bitだけど、
> Mac OSの場合、最大1024bitまでオーバークロックできる。
WindowsXPはSP2以降で物理アドレス拡張に対応してるから64GBまで利用可能
Macは知らんがオーバークロックの”クロック”がクロック周波数を指すなら単位はbitじゃなくてhzだろ
0676nobodyさん
2009/10/03(土) 19:23:23ID:???0677nobodyさん
2009/10/03(土) 19:24:01ID:???0678nobodyさん
2009/10/03(土) 19:29:19ID:???512MBならそれらは関係無いだろ。
0679nobodyさん
2009/10/03(土) 21:05:53ID:???0680nobodyさん
2009/10/03(土) 21:20:01ID:???0681nobodyさん
2009/10/03(土) 21:44:39ID:???お前は馬鹿なの?
ほかのソフトがメモリーを使っていることは一切ないのか?
Apache立ち上げるだけでも、設定によって使用メモリーが300MBになるのは普通にある。
0682nobodyさん
2009/10/03(土) 21:51:46ID:???ファイルに書き出すのは受信が終わってから、おもむろに全部一気になんですか? >>681
0684nobodyさん
2009/10/03(土) 22:28:55ID:???0685nobodyさん
2009/10/03(土) 23:06:30ID:???32GBに脊髄反応しているやつって、馬鹿じゃないの?メモリーなんて、PCの色々な個所につかわれていることをしらないのか?
もっと情報工学とか勉強しろよwww
0686nobodyさん
2009/10/03(土) 23:20:45ID:???0687nobodyさん
2009/10/03(土) 23:44:07ID:???HDDのメモリーが32GBなんじゃないかってことだよ
HDDのメモリーが32GBなんじゃないかってことだよ
HDDのメモリーが32GBなんじゃないかってことだよ
HDDのメモリーが32GBなんじゃないかってことだよ
HDDのメモリーが32GBなんじゃないかってことだよ
HDDのメモリーが32GBなんじゃないかってことだよ
0688nobodyさん
2009/10/03(土) 23:48:56ID:???0689nobodyさん
2009/10/03(土) 23:49:23ID:???0690nobodyさん
2009/10/04(日) 00:16:56ID:???フェラーリ買えるぞw
0691nobodyさん
2009/10/04(日) 01:30:39ID:???極限まで削ればdiskキャッシュ約32GBのディスク装置は構成できるぞ。
SANは解らんが、40Gbのinfini-bandで1対1接続すれば相当な
パフォーマンス出せるとおもうが。
信頼性を気にしなければ100万ぐらいで作れるだろ。
フェラーリって何の冗談だ。
0692nobodyさん
2009/10/04(日) 01:38:00ID:???0693nobodyさん
2009/10/04(日) 01:40:39ID:???http://www.unitycorp.co.jp/si/acard/ram_disk/ans-9010/index.html
フェラーリとか言った奴はシメジ。
0694nobodyさん
2009/10/04(日) 01:46:31ID:???ディスク装置が備えるべき高信頼性、高可用性、高保守性と
ディスクキャッシュのサイズは関係ないしな。
うちの製品はソフトウェア設計がカスなんで32GBのディスクキャッシュが
意味を持つかもしれんがw
0695nobodyさん
2009/10/04(日) 01:47:25ID:???>>643のエラーは SG(request_info).content_length > SG(post_max_size) の時だけ出る。
んで exceeds the limit of 536870912 bytes のバイト数は post_max_size の値。
>>660では1GB弱と認識されてるが、エラーが出るスクリプト上で phpinfo() してみたか?
0696nobodyさん
2009/10/04(日) 02:01:05ID:???0697nobodyさん
2009/10/04(日) 02:01:55ID:???http://www.thosp.com/PC/RAID/ANS_9010_RAID_ICH10R/
http://www.thosp.com/PC/RAID/ANS_9010_RAID_Adaptec/
このレベルでウチのDB動かしてみたいわ・・・
0699nobodyさん
2009/10/04(日) 07:13:27ID:???そりゃ他言語になめられるわ
0701nobodyさん
2009/10/04(日) 10:08:44ID:???OS上のメモリをキャッシュと言われてもな・・・
うちは政治的な理由でDBはOracleしか使わないので、DISK装置もこういうのしか使わない
でこのレベルのDISK装置でもキャッシュは4GBしかない。
そしてこのレベルで1000万超えだよ。
http://www-06.ibm.com/systems/jp/storage/products/disk/ds6000/ds6000.shtml
0702nobodyさん
2009/10/04(日) 10:18:29ID:???0703nobodyさん
2009/10/04(日) 10:18:57ID:???0704nobodyさん
2009/10/04(日) 10:20:25ID:???0705nobodyさん
2009/10/04(日) 10:23:32ID:???0706nobodyさん
2009/10/04(日) 10:28:58ID:???リリースが来年末だから今のうちから使っとけという事らしいorz
0707nobodyさん
2009/10/04(日) 10:36:33ID:???もっともunicode対応で手こずってるから1年後も出てないかもしれんが…
0708nobodyさん
2009/10/04(日) 10:38:01ID:???0709nobodyさん
2009/10/04(日) 10:43:18ID:???0710nobodyさん
2009/10/04(日) 11:33:28ID:BwS37vJUストレージ装置の高可用性とディスクキャッシュのサイズは
無関係だって>>694でいってんじゃん。
あと、DBのように局所参照性が強いファイルアクセスについては
キャッシュ増加に対するヒット率の向上はある閾値を超えたあたりから
急速に鈍化するから32GBに意味があるなんて主張してない。
むしろRAMの増加は装置全体の故障率の上昇に繋がるから、あえて
RAMの容量を絞るってのもディスク装置の構成としては正しいかもしれない。
んで、その装置のキャッシュをディスクキャッシュと認めるなら、
PC Linuxで作ったファイルサーバーのメモリもページキャッシュも
情報工学の定義上は立派な「ディスクキャッシュ」ですが?
「ディスクキャッシュのサイズを32GBにすること」だけが要件なら、
フェラーリが必要なほどの金がかかるわけねーぞ、という話なのに、
1000万円台で4GBキャッシュの装置の存在を示して何を主張したいの?
0712nobodyさん
2009/10/04(日) 11:52:16ID:???0714nobodyさん
2009/10/04(日) 11:59:56ID:???php6は今からでも言語仕様変わるかもしれないから危険過ぎるだろ
来年末リリースって事は大規模プロジェクトだろ??
0715EM114-48-151-94.pool.e-mobile.ne.jp ◆ooIHwxrYyg
2009/10/04(日) 12:00:25ID:+Jd1EQ8S男ならIP出してID出してコテハン付けろ!
0717EM114-48-151-94.pool.e-mobile.ne.jp ◆ooIHwxrYyg
2009/10/04(日) 12:51:26ID:+Jd1EQ8Sくたばれ社会のクズが!
0718nobodyさん
2009/10/04(日) 13:19:46ID:tlZK7xE+このコマンドはPHP4.X.X以前だと動く、とかよく書いてあるんだけど
そんな古いPHPのバージョン使わないといけない状況って実際にあるの?
PHP4からPHP5にメジャーチェンジした場合なんかは
その時点でコードもPHP5に変えるんじゃないの?
ちょっとした手直しくらいならそのままにしとくかもしんないけど
その後の生産効率を考えると変えた方が楽でしょ?
0719nobodyさん
2009/10/04(日) 13:20:12ID:???0720nobodyさん
2009/10/04(日) 13:23:27ID:???0721nobodyさん
2009/10/04(日) 13:36:33ID:???0722nobodyさん
2009/10/04(日) 13:41:39ID:???動きゃーいいってレベルのはバージョン変わっても変えない
0723718
2009/10/04(日) 13:50:04ID:tlZK7xE+>>721
怖いんでなるべく使わないようにします
>>722
いつか誰かが変えるだろうってのがあるんでしょうね
0724nobodyさん
2009/10/04(日) 13:58:41ID:MEZU4PyM凄腕の天然釣り師登場?
0725nobodyさん
2009/10/04(日) 14:13:23ID:???メインメモリに1GBのSRAM
容量は少ないが一度は使ってみたいものだ
0726nobodyさん
2009/10/04(日) 14:16:16ID:???俺はサーバリプレイスをよくやってる。
リプレイスする理由はスペック不足とかリース切れなどの理由
ハードを変えるからついでにOSも上げる場合が多い(RHEL4から5とか)
でもプログラムまで変更する余裕が無い場合が多く、古いPHPを使わざる得ない。
register_globals=on前提のシステムも驚くほど多いよ
いつか変えなきゃと思っても、今まで問題無く動いているモノになかなか費用はかけられない現実
一応指摘はするけど、「まぁしょうがないですよね」で終わる。
0727718
2009/10/04(日) 14:28:25ID:tlZK7xE+ありがとうございます
>今まで問題無く動いているモノになかなか費用はかけられない現実
やっぱりそういう理由ですか
ではPHP4.X.Xの記法も一応知っておかなきゃですね
0728nobodyさん
2009/10/04(日) 14:28:59ID:XbHwbnY60729nobodyさん
2009/10/04(日) 14:53:58ID:???HDDのメモリ32GBってどんだけ多いの?wwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwwww
0730nobodyさん
2009/10/04(日) 14:55:45ID:???0731nobodyさん
2009/10/04(日) 14:58:16ID:???0732nobodyさん
2009/10/04(日) 16:11:53ID:PUBs4o84たぶんここまでコード数少ないのは国内初めてだと思います
どなたか採点お願いします
<?php
// キャッシュ生成
function kyasshu($file) {
$fp=fopen($filename,"w");
flock($fp,LOCK_EX);
fwrite($fp,$file);
fclose($fp);
}
// 出力
function shuturyoku($kyasshufile) {
echo $kyasshufile;
}
?>
0733nobodyさん
2009/10/04(日) 16:23:33ID:???一瞬釣りだと思ったけど、
言われてみれば究極的にはそういうことだよな。
今フレームワークの改良をしているところなんだが、
おかげで良いアイデアがヒラメイタ。
ありがと。
0734nobodyさん
2009/10/04(日) 16:40:51ID:???>$fp=fopen($filename,"w");
?
0735732
2009/10/04(日) 16:45:38ID:???あ
改良
function kyasshu($file) {
if (タイムスタンプの比較)
$fp=fopen("kasshu.html,"w");
flock($fp,LOCK_EX);
fwrite($fp,$file);
fclose($fp);
}
}
// 出力
function shuturyoku() {
echo file_get_contents("kyasshu.html");
}
0736732
2009/10/04(日) 16:46:35ID:???0737nobodyさん
2009/10/04(日) 16:50:45ID:???0738732
2009/10/04(日) 16:52:38ID:???shuturyoku();
2行を書きっぱなしでおk
あとはファイルを更新するだけでおk
0739732
2009/10/04(日) 17:02:12ID:???自由に使ってください^^
0740nobodyさん
2009/10/04(日) 17:28:00ID:???0741nobodyさん
2009/10/04(日) 17:31:22ID:???0742nobodyさん
2009/10/04(日) 19:08:52ID:???PHPやってるなら2次だとJK
0743nobodyさん
2009/10/04(日) 19:41:37ID:???具体的にはどんな感じになりますか?
0744nobodyさん
2009/10/04(日) 19:51:40ID:XbHwbnY60745nobodyさん
2009/10/04(日) 19:55:31ID:???0746nobodyさん
2009/10/04(日) 20:09:08ID:???強制されるべきと考えるほうが正しいな
俺は小学6年のとき、便所のカギを中から閉めて壁をよじ登り上から脱出できる技を閃いて
学校の女子トイレすべてそれをやったら、
時間外にテストを受けてトイレに行った女子が用を足せなくて漏らしちゃって大問題
当然俺は死にたくなるくらい叱られて、それ以来そういうバカな行動はとらないと心に決めた
いっぺん死ぬほど叱られるか、罰を受けるかしないとだめだな
奇行癖のある人間は
0747nobodyさん
2009/10/04(日) 20:14:50ID:???0748nobodyさん
2009/10/05(月) 02:00:37ID:???0749質問
2009/10/05(月) 07:25:13ID:bFH+sh6Gclass obj implements arrayaccess {
public function offsetSet($offset, $value) {
var_dump(__METHOD__);
}
public function offsetExists($var) {
var_dump(__METHOD__);
if ($var == "foobar") {
return true;
}
return false;
}
public function offsetUnset($var) {
var_dump(__METHOD__);
}
public function offsetGet($var) {
var_dump(__METHOD__);
return "value";
}
}
$obj = new obj;
var_dump(empty($obj["foobar"]));
?>
・・・この結果が
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)
になる流れを教えてください。
まず、empty($obj["foobar"])なので、offsetExists("foobar")が呼ばれて、
($var == "foobar")が真なのでtrueが返り値になりますよね? ←ここまでは自信あり
次に、offsetGet(true)が呼ばれて、(評価はどうであれ)"value"が返り値になるんですか??
最後にempty("value")になって、「"value"が入っているんで空じゃないよ」ということでfalseになる、ということですか???
0750nobodyさん
2009/10/05(月) 09:14:20ID:???offsetExistsで$varは foobarではないので falseになります。
0751nobodyさん
2009/10/05(月) 10:00:19ID:OAxwPoQMよく見るのは、(システム名・略語)_(機能名)と言うのです。
例えば、Zend_Mailとか。
他には機能名だけ書く場合もありますが、毎回どういう名前にすれば
後々わかりやすいだろうかと悩みます。何か法則とかあるのでしょうか?
0752nobodyさん
2009/10/05(月) 10:30:55ID:???愛称にしない。
スペル間違えない。
0753nobodyさん
2009/10/05(月) 10:44:37ID:???0755nobodyさん
2009/10/05(月) 10:46:43ID:???0756nobodyさん
2009/10/05(月) 11:46:32ID:X54Rskkj現場ごとにルールがあったりするよ。
なければあなたの言うようなのが一般的かと
0757749
2009/10/05(月) 12:56:00ID:KN+hGN3yありがとうございます。
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
という順番から推測しますと
offsetExists の var_dump(__METHOD__); が実行された「後」の if ($var == "foobar") で
offsetGet が呼ばれてfoobarからvalueに変更され、
最後はoffsetExistsがfalseを返すんですね。
すみません、それを踏まえてもう一つ質問です。
var_dump(empty($obj["foobaz"]));
にした場合、結果が
string(17) "obj::offsetExists"
bool(true)
になるんですけど、これがoffsetGetを呼ばない理由が分かりません。
しかも($var == "foobaz")じゃないのに、結果はtrueです。
分かりますでしょうか?
0758749
2009/10/05(月) 13:00:35ID:KN+hGN3y($var == "foobaz")じゃないのに、結果はtrueです。
↓
実際は ($var == "foobaz") で
($var ≠ "foobar") なので
評価式は偽となってfalseが返されるだろうはずなのに結果はtrueです。
0759nobodyさん
2009/10/05(月) 13:28:36ID:???0761nobodyさん
2009/10/05(月) 14:54:27ID:???0762nobodyさん
2009/10/05(月) 15:43:53ID:???俺はJava風につけてる
FileNotFoundExceptionみたいに
単語別に先頭に大文字をつける感じで
0763nobodyさん
2009/10/05(月) 16:31:42ID:???empty($obj["foobaz"]);
ってのは
!$obj->offsetExists('foobaz') || !(bool)$obj->offsetGet('foobaz')
と等価
0764749,750,757
2009/10/05(月) 18:40:09ID:KN+hGN3yいえいえ、でも、為になりました。
>>763
なるほど、この炉利ORは短絡評価が適用されるので
!$obj->offsetExists('foobaz') が true であれば
!(bool)$obj->offsetGet('foobaz') の評価がなんであろうが
全体の評価は true になるんですね。
では、前回の問題に戻りますが、
var_dump(empty($obj["foobar"]));
の結果が
string(17) "obj::offsetExists"
string(14) "obj::offsetGet"
bool(false)
になるというのは、まず、!$obj->offsetExists('foobar') が false になるので
短絡評価にならずに !(bool)$obj->offsetGet('foobar') の評価が必要となるんですね。
!(bool)$obj->offsetGet('foobar') は (bool) に型変換されてますが
""以外の文字列はすべて true と評価されるので
ここの返り値 'value' も true と評価されるんですね。
それが ! で反転して false ということですね。
false || false = false
ということで bool(false) ですね。
ありがとうございました!
0765nobodyさん
2009/10/05(月) 18:49:30ID:qMw9OmRLどのような手順で見れば、ソースが分かるでしょうか?
例えば、substringの関数のソースを見るための手順を教えて頂けないでしょうか?
宜しくお願いします。
0766nobodyさん
2009/10/05(月) 18:50:44ID:qMw9OmRL失礼しました。宜しくお願いします。
0767nobodyさん
2009/10/05(月) 18:51:11ID:yHTqrIVVHTTPヘッダーを送信するタイミングで、手動でクッキーを設定したいと思い、質問しました。
0768nobodyさん
2009/10/05(月) 18:55:19ID:???hook 系の処理はない。出力内容は、PHP側で、echo された
文字列やheader関数、cookie 系の関数または、session 系
の関数などの結果を常にバッファしており、必要なときに、
PHP側で出力順序を判断してから送信される。
ヘッダ出力直前に処理を行いたいのであれば、処理の最後に
関連の処理を記述することだと思う。
0769nobodyさん
2009/10/05(月) 19:41:05ID:???ガーン。残念。
> ヘッダ出力直前に処理を行いたいのであれば、処理の最後に
> 関連の処理を記述することだと思う。
これって難しくないですか?
MVCがきれいに分離できていて、フロントコントローラパターンをちゃんと使っていれば、簡単にできるんでしょうけど。
PHP4の時代から残っているようなごちゃごちゃしたソースだと、難しいです。
0770nobodyさん
2009/10/05(月) 19:43:25ID:???0771nobodyさん
2009/10/05(月) 22:59:39ID:???ob_start();
require("unko.php");
header("Set-Cookie云々");
ob_end_flush();
0772nobodyさん
2009/10/05(月) 23:14:52ID:cxXnIhTs【PHPのバージョン】PHP Version 5.2.9
【連携ソフトウェア】
【質問内容】
blogの背景画像をランダムに表示させたく思い、phpを勉強しています。
とりあえず画像を表示させてみようと、以下の文を書きました。
<?php
$imgpath="img/common/header.jpg";
readfile($imgpath);
?>
これで画像は表示されたのですが
header('Content-Type: image/jpeg');などの表記もしたほうがいいのでしょうか?
0773nobodyさん
2009/10/05(月) 23:31:32ID:IP5avodC画像だけを出力するならあったほうがよい
0774nobodyさん
2009/10/05(月) 23:38:29ID:cxXnIhTsなるほど、ありがとうございます
0775nobodyさん
2009/10/06(火) 00:09:14ID:???どっちにしてもContent-Typeは必ず要るぞ
0776772
2009/10/06(火) 00:33:26ID:xjSaXbC3ありがとうございます
header('Content-Type: image/jpeg');の挿入位置ですが、readfile()の直前で問題ないでしょうか?
<?php
$headimgdir='img/header/';
$dn=opendir($headimgdir);
while($file=readdir($dn)){if($file!='.' && $file!='..'){$files[]=$file;
// echo "ファイル名:$file<br>";}}
closedir($dn);
$imgnum= array_rand($files);
$imgpath=$files[$imgnum];
header('Content-Type: image/jpeg');
readfile($headimgdir.'/'.$imgpath);
?>
0777nobodyさん
2009/10/06(火) 00:33:28ID:AOFtA4fUってのがあって、それを再評価するってのはどうやるんだっけ?
eval以外にやり方ありましたっけ?
0779772
2009/10/06(火) 00:56:55ID:xjSaXbC3ありがとうございます、助かりました。
0780nobodyさん
2009/10/06(火) 02:21:00ID:BEe+JBrPそこで相談です。
Pagerって、最初に対象の検索結果rowを全部取得して、その行数を指定した一ページ当たりのアイテム数で割って
リンク部分を出力し、以降のページでは最初にとった全アイテムの連想配列を元にリストをつくったりしてるんだと思いますが、
最初に全部取得するのが気に入らないです。なので、
1)ページリンクを作るために全体の件数は欲しい
2)でも、全部の行を取得するなんて無駄はしたくない、最低限のrowの実データだけ取得したい
各ページでそれぞれ必要なアイテムをその都度取得したい
1ページ10アイテムでpageId=2なら where itemId>$pageId*10 and itemId<$pageId*10+10 みたいな…
という要望を満たそうと思ったら、アイテムの実データを用意したテーブルとは別に、数だけをカウントするテーブルを
別に作らないといけないんでしょうか?
それだと単純にデータベースの話になっていまいますが、PHPのプログラム的に解決する方法はありますか?
それとも、こんな試み自体、意味ないでしょうか? 全部のデータを取得するなんて負荷になりそうだなぁという考えからですが。。
環境はPHP5.2.8 MySql5です
0781nobodyさん
2009/10/06(火) 02:48:02ID:???0782nobodyさん
2009/10/06(火) 03:00:16ID:BEe+JBrPそれってmysql関数って言うんでしょうか? 全くそっち系はわからないので。。
なるほどー 確かにそれを使えば簡単ですね! ありがとうございました
0783nobodyさん
2009/10/06(火) 08:52:12ID:ldSI1eNeブラウザで解釈できるからgif,jpgはなくてもおk
ただ書いておいたほうがまし
0784nobodyさん
2009/10/06(火) 09:45:06ID:???PEAR::Pagerつかってるけど、全件取得しないよ。
全件数を取得するのにselect count(*)はするけど
個々のレコードはlimit使ってページ毎にそのページに表示する分しか取得しない
0785nobodyさん
2009/10/06(火) 10:25:01ID:kghRGofU使い方が分からずググったら、こういう感じで設定すれば良いとあり
$matrix = array(array(-1, -1, -1), array(-1, 16, -1), array(-1, -1, -1));
imageconvolution($img, $matrix, 8, 0);
実際シャープはかかったのですが、もう少し弱くかけたいのです
それで値を変更してみると真っ黒になってしまいます
どのように調整すればよいのでしょうか?
0787nobodyさん
2009/10/06(火) 12:12:24ID:BEe+JBrPあ、そうなんですか?
ありがとうございます、解決しましたw
0790nobodyさん
2009/10/06(火) 13:31:23ID:FPrhzfOJ<table>
<?php
foreach($_POST as $key=>$var) {
echo "<tr><td>".$key."</td><td>".$var."</td></tr>\n";
}
?>
</table>
のようにフォームから受け取ったnameとvalueの一覧を表示させるのはできるのですが、
それを下記のようにmysqlに挿入するのに良い方法はないでしょうか?
$sql="INSERT INTO `database`.`table` (`name1`, `name2`,…`, `namen`) VALUES ('value1', value2',…, 'valuen');";
$result = mysql_query($sql, $con) or die("クエリの送信に失敗しました。<br />SQL:".$sql);
いちいち$a=$_POST["name1"];$b=$_POST["name2"];って書いてVALUES ('$a', $b',…を手書き入力してましたが
もっとスマートな方法ないかな…と
0791nobodyさん
2009/10/06(火) 13:46:57ID:???0792786
2009/10/06(火) 13:57:30ID:???人にテストやらせんじゃねぇよ、死ね!
と思ったら俺の間違いじゃねぇか!
済みませんでした
省略したらapplication/octet-streamで扱うんじゃねぇの…
>>786訂正
header('Content-Type: ...') を指定しないと default_mimetype (デフォでtext/html) が
送信されるからContent-Typeを無視するIE以外で表示できません
0793nobodyさん
2009/10/06(火) 14:16:53ID:FPrhzfOJこんな便利なものが…
ありがとうございますorz
0794nobodyさん
2009/10/06(火) 17:33:25ID:BEe+JBrP$this->_db->fetchAll("
SELECT * FROM `hogeTBL`
WHERE
`hoge1`=?
AND
`hoge2` like %?%
AND
`hoge3`=?
",
array($hoge1,$hoge2,$hoge3)
);
hoge1,hoge2,hoge3の全てが「あってもなくても良い」条件の場合、どう書けば良いんでしょうか?
条件の変数があるかないかで全パターン書き分けしてたらかなり面倒で、上で動くと思ったんですが動かないし
どうして良いのかわからなくて質問しました。
よろしくお願いします
0795nobodyさん
2009/10/06(火) 17:41:15ID:???$sql = <<<EOS
select * from xxxx where 1
EOS;
if($name){
$sql .= "and name like '%%%s%%'";
sprintf($sql,mysql_real_escape_string($name));
}
if($age){
$sql .= "and age = %d ";
sprintf($sql,mysql_real_escape_string($age));
}
とか書くかも
0796nobodyさん
2009/10/06(火) 17:59:44ID:BEe+JBrPなるほど、ありがとうございます
「%%%s%%」と、%がたくさんあるのはなんなんでしょうか?
0797nobodyさん
2009/10/06(火) 18:34:38ID:???0798nobodyさん
2009/10/06(火) 18:36:11ID:BEe+JBrPどうもです、ありがとう
0799nobodyさん
2009/10/06(火) 18:40:11ID:y7QUP1JZajaxでは、
XMLHttpRequestを用いて「必要なデータをxml文書として返すphpプログラム」をコールしましが、
このphpプログラム内でauthによる認証を行う事は可能でしょうか。
以下のような動作にしたいと思っています。
1.特定の条件で(例えばボタンを押す等)javascriptプログラムが実行
XMLHttpRequestによる通信開始、指定のphpプログラムが実行。
↓
2.phpプログラム内でauth認証開始、
認証成功の場合⇒データベースに書き込み、
認証失敗の場合⇒書き込みは行わない。
3.phpプログラムは認証結果をxmlとして出力
ブラウザは認証結果に応じて動作を変える
こんな感じでふ。
これが可能なのか、可能でないのかわからずにいます。
苦労との皆様、宜しくお願いいたします。
0800nobodyさん
2009/10/06(火) 21:25:37ID:???は判断できるだろうしできないのはどうかと思う。
0801nobodyさん
2009/10/06(火) 21:39:17ID:???0802799
2009/10/06(火) 21:52:47ID:62gXteWjauthを利用できるかどうかという事は
XMLHttpRequestによって実行されたphpプログラムが
クライアントのクッキーを参照できるか??という事のような気はするのですが・・
(間違っていたらすみません)
これが実際どうなのか、何を調べたらよいのか、
できたとしても環境によって動作が大きく変わってしまうのか、
分からない状況になっています。
後学の為に詳しく教えていただけたらうれしいです。
とりあえずHTTPについて復習してキマシ(*`・ω・)ゞ
0803nobodyさん
2009/10/06(火) 22:07:14ID:???→結果をレスポンスとして返す、というだけの処理なら、普通に考えてできるんじゃないの?
もちろん、リクエストする時にCookieなりクエリなりPOSTなりで認証情報を渡す必要
はあるだろうけど。むしろ何故不可能だと思うんだろう
0804799
2009/10/06(火) 22:31:43ID:???ありがとうございます。
更にauthで既に認証済みのユーザがあえて、POST等でIDとパスを渡すことなくとも、
XMLHttpRequestによって実行されたphpプログラムでセッション情報を元に認証する事ができるか
というと、どうでしょうか。。
やはりphpプログラムがクライアントのクッキーを参照できるか??という事になると思うんですが、、、
0806799
2009/10/06(火) 22:37:04ID:???⇒phpプログラムはブラウザが保存していたクッキーを使用する事ができる。
という認識なんですが、
XMLHttpRequestによってphpプログラムを実行した場合、
⇒XMLHttpRequestを実行したブラウザのクッキーをphpプログラムは使用する事ができるのか??
これが分からないのが問題なのかもしれません。
ぐるぐるしてすみません。
0807nobodyさん
2009/10/06(火) 22:43:39ID:???まぁここはくだ質だから嫌味な奴は気にするな
BASIC認証は感じ
<?php
if (!isset($_SERVER['PHP_AUTH_USER'])
|| $_SERVER['PHP_AUTH_USER'] != 'namae'
|| $_SERVER['PHP_AUTH_USER'] != 'himitsu')
{
header('HTTP/1.0 401 Unauthorized');
header('WWW-Authenticate: Basic realm="sample"');
exit;
}
header('Content-Type: text/plain');
echo 'ok';
?>
これを
var request = new XMLHttpRequest();
request.open("GET", "a.php", false, 'HOGE', 'FUGA');
request.send(null);
alert(request.status);
で試してみるといい
あとはこっちを見る
http://jp.php.net/manual/ja/features.http-auth.php
0808nobodyさん
2009/10/06(火) 22:43:42ID:???ためしもせずガタガタ抜かすな。
LiveHTTPHeaderかFirebugでも入れて、Ajax通信の中身を実際に覗けや。
www.example.comへのリクエストであれば、ブラウザのアドレスバーからだろうがリンクからだろうが<img src=>だろうがAjaxだろうがクッキーは送信される。
0809nobodyさん
2009/10/06(火) 22:49:41ID:???何でも良いけど、実際にどんなHTTPリクエストが飛んでレスポンスが
返ってくるのか一度見てみた方が多分勉強になるし、HTTPの知識無しで
ajaxはちょっと心許ないと思う
0810799
2009/10/06(火) 23:08:09ID:???ありがとうございます。
なんだかふわふわして、自分が何でわかんないのかもわかんない違和感、
その原因がHTTPなんだと気づかせてもらいました。HTTPリクエスト、レスポンスを
目で見てみたいと思います。
>>807さん
ソースまで提供していただいて、もう涙出ます。
ためさせていただきます!勉強させていただきます!
ありがとうございます!
皆さんありがとうございました!
0811nobodyさん
2009/10/06(火) 23:18:46ID:RPLcbD5Pどうしたらよいでしょうか?イメージ的にはExecuteのような感じです。
0812nobodyさん
2009/10/06(火) 23:27:12ID:???ごめん嘘書いてた、ifの条件式を置き換えてくれ
|| $_SERVER['PHP_AUTH_USER'] != 'namae'
|| $_SERVER['PHP_AUTH_PW'] != 'himitsu')
0814nobodyさん
2009/10/06(火) 23:31:14ID:???system("/usr/bin/php xxx.php") とか、 file_get_contents("http://example.com/xxx.php")とか。
どういうことをやりたいの?
0815811
2009/10/06(火) 23:36:14ID:???inc.phpは他のファイルからも実行させたいのですが、呼び出し元の変数に
万が一影響しても困るので、includeやrequireは避けたかったのです。
>>814さんのsystem("")でできました。ありがとうございますー
0816nobodyさん
2009/10/07(水) 17:41:32ID:UWu9xUOcif(($_POST["mati"]==1))$count++;
else if(($_POST["mati"]==0))$count--;
if(($_POST["eiga"]==1))$count++;
else (($_POST["eiga"]==0))$count--;
if(($_POST["ame"]==1))$count++;
else if(($_POST["ame"]==0))$count--;
if (count==3) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=kikubari.html">;
else if (count==2) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=roman.html">;
else if (count==1) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=roman.html">;
else if (count==0) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=kensin.html">;
else if (count==-1) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=kensin.html">;
else if (count==-2) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=zibun.html">;
else if (count==-3) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=zibun.html">;
?>
これでリンク先を振り分けられないんだがどうしてか教えて欲しい
何回やっても一番したのリンクへしか飛ばないんだ・・・
0817nobodyさん
2009/10/07(水) 17:47:39ID:???0818nobodyさん
2009/10/07(水) 17:52:07ID:UWu9xUOc必死なんだ
0819nobodyさん
2009/10/07(水) 18:03:28ID:???ttp://works.xworks.org/script/01php/xfile-access-counter/
これの非公開バージョンb090909
http://kissho.xii.jp/1/src/1jyou93396.zip.html
・DBにSQLiteを用いているのが特徴。
・ベータ版のため、簡単に使える状態では無い。
誰か、使用方法、教えて下さい・・・。
0823nobodyさん
2009/10/07(水) 20:45:45ID:???0824nobodyさん
2009/10/07(水) 20:46:21ID:???0825nobodyさん
2009/10/07(水) 20:49:58ID:???0826nobodyさん
2009/10/07(水) 21:03:59ID:???それ、そもそもパースエラーが出る。
実際に動かしてるものをコピペしないと、
転載するときに間違ったのかソースが間違ってるのか分からないよー。
0827nobodyさん
2009/10/07(水) 21:06:33ID:???動くには動くんだがどんなふうにやっても必ず一番下のリンクへ飛ぶんだ
0828nobodyさん
2009/10/07(水) 21:07:00ID:???先頭で
var_dump( $_POST ) ;
0831nobodyさん
2009/10/07(水) 21:12:26ID:???いつから条件式中で略せるようになったの?
0832nobodyさん
2009/10/07(水) 21:12:33ID:???え?それで動く??
if (count==3) <META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=kikubari.html">;
count は$countだろうし
HTML部分は echoなり、php抜けるなりしないとダメだと思うんだけどなー。
ロジックがおかしくて動かないんじゃなくて
そもそも、まったく動いてないんじゃ?
0833nobodyさん
2009/10/07(水) 21:13:21ID:???、ネ、、、ヲス?ュケ?、゚、ャネッテシ、ネ、ハ、遙「ツ賈?ワカ盻?、ヒ、マ・ウ・�チテ・ア、ャ、ト、ュ、筅ホ、ネ
、ハ、テ、ソ。」2、チ、网?ヘ、・?ヒ。ヨ・ウ・�チア。ラ、ネ、篆?ォ、・・」
、ウ、ホネト、ネ、マ、「、゙、・リキク、ハ、ッ。「・ヒ・蝪シ・ケ
0834nobodyさん
2009/10/07(水) 21:14:34ID:???<?php
if(($_POST["mati"]==1))$count++;
else if(($_POST["mati"]==0))$count--;
if(($_POST["eiga"]==1))$count++;
else if(($_POST["eiga"]==0))$count--;
if(($_POST["ame"]==1))$count++;
else if(($_POST["ame"]==0))$count--;
if ($count==3) print'<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=kikubari.html">';
else if ($count==2) print'<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=roman.html">';
else if ($count==1) print'<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=roman.html">';
else if ($count==0) print'<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=kensin.html">';
else if ($count==-1) print'<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=kensin.html">';
else if ($count==-2) print'<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=zibun.html">';
else if ($count==-3) print'<META HTTP-EQUIV="REFRESH" CONTENT = "5; URL=zibun.html">';
?>
0835nobodyさん
2009/10/07(水) 21:16:54ID:???最初にそのページを読み込むときは、絶対一番下の処理になるけど。
0836nobodyさん
2009/10/07(水) 21:20:35ID:???これなんとかしてページを振り分ける方法ない?
0837nobodyさん
2009/10/07(水) 21:29:08ID:???0839nobodyさん
2009/10/07(水) 21:31:38ID:???if(isset($_POST["mati"],$_POST["eiga"],$_POST["ame"])){
$count = 0;
function count_post($str){
if($str == "1"){
return 1;
}else if($str == "0"){
return -1;
}else{
return 0;
}
}
$count = (count_post($_POST["mati"]) + count_post($_POST["eiga"]) + count_post($_POST["ame"]));
header('Status: 301 Moved Permanently');
switch($count){
case 3:
header('Location: kikubari.html');
break;
case 2: case 1:
header('Location: roman.html');
break;
case 0: case -1:
header('Location: kensin.html');
break;
case -2: case -3:
header('Location: zibun.html');
break;
}
}else{
echo "必要なパラメータがPOSTされてない";
}
0842nobodyさん
2009/10/07(水) 22:44:35ID:IEM8qI680843nobodyさん
2009/10/07(水) 22:53:13ID:???相対パスも可
headerがどうとかは関係ない
ttp://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
0844nobodyさん
2009/10/07(水) 23:02:39ID:???0845nobodyさん
2009/10/07(水) 23:09:40ID:???俺はしないけど。
0846nobodyさん
2009/10/07(水) 23:10:39ID:???The Location response-header field is used to redirect the recipient to a location other than the
Request-URI for completion of the request or identification of a new resource. For 201 (Created)
responses, the Location is that of the new resource which was created by the request. For 3xx
responses, the location SHOULD indicate the server's preferred URI for automatic redirection to
the resource. The field value consists of a single absolute URI.
Location = "Location" ":" absoluteURI
An example is:
Location: http://www.w3.org/pub/WWW/People.html
Note: The Content-Location header field (section 14.14) differs
from Location in that the Content-Location identifies the original
location of the entity enclosed in the request. It is therefore
possible for a response to contain header fields for both Location
and Content-Location. Also see section 13.10 for cache
requirements of some methods.
0848nobodyさん
2009/10/08(木) 00:39:37ID:???case -2: case -3:
header('Location: zibun.html');
break;
↓↓↓
case -2: case -3:
header('Location: zibun.html');
break;
default:
header('Location: countgaokashii.html?count='.$count);
break;
0849nobodyさん
2009/10/08(木) 09:11:12ID:???UPありがとう。
とりあえず、こんな流れで動きましたよ。
1行目が<?xmlで始まるPHP(複数個)
<?をPHPと認識して処理されてしまうのが問題なので、
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?> に書き換える。
PHP5環境の場合、ファイルの初回ダウンロード時に
db.inc.phpの「if($date != date('Ymd', $lastact))」部分でエラーが出るので、
前に、if($lastact == ""){$lastact = 0;}; を挿入。
ツールを使ってSQLiteのDBを作成し、db.inc.php内記載のSQL文3つ
「CREATE TABLE BASE、CREATE TABLE RECENT、CREATE TABLE NOTE」を使って、
テーブルを作成。
filesフォルダにダウンロードさせたいファイルを入れる。
あとはアップロードして、/xfm/ファイル名 にアクセスすれば、
ダウンロードページが表示されます。
軽く触ってみて思ったこと。
config.inc.phpで、「ログ管理モード」の記載があるが、
どうやって「ログ管理モード」に入るのか不明。
集計結果の表示にパスワード認証をかける設定にしても、
パスワードを聞いてこず、集計結果が表示される。
0850nobodyさん
2009/10/08(木) 09:17:54ID:???noticeじゃなくて?
0851nobodyさん
2009/10/08(木) 10:18:09ID:???ERRORでなく、NOTICEだったかもしれません。
その後。
自動的にダウンロードが始まります・・・・と出るが、自動で始まらない。
この点、修正が必要ですね。
0852nobodyさん
2009/10/08(木) 10:50:07ID:???まとめました。
インストール :
1行目が<?xmlで始まるPHP(複数個)
<?をPHPと認識して処理されてしまうのが問題なので、
<?php echo '<?xml version="1.0" encoding="utf-8"?>'; ?> に書き換える。
PHP5環境の場合、ファイルの初回ダウンロード時に
db.inc.phpの「if($date != date('Ymd', $lastact))」部分でNOTICEエラーが出るので、
前に、if($lastact == ""){$lastact = 0;}; を挿入。
dl_thanks.php のHEADセクション内に、
<meta http-equiv="Refresh" content="3;URL=<?php $this->put('dl_link'); ?>" />
を追加することで、3秒後に自動ダウンロード。
ツールを使ってSQLiteのDBを作成し、db.inc.php内記載のSQL文3つ
「CREATE TABLE BASE、CREATE TABLE RECENT、CREATE TABLE NOTE」を使って、
テーブルを作成。
filesフォルダに公開ファイルを入れる。
xfmフォルダ下全てをアップロード
使い方 :
・/xfm/ファイル名 で、ダウンロード画面が表示
・/xfm/stat で集計ページ表示
・ログ管理モードon/offは無効。(configには残っているがコードは無い)
・パスワード認証が通ると、ログの削除/編集が可能になるが、呼出方法不明。
0853nobodyさん
2009/10/08(木) 12:11:55ID:HKU7amRg↑のクエリを簡潔に書く方法教えてください
0856nobodyさん
2009/10/08(木) 12:49:11ID:HKU7amRg300-0000010〜300-0000100
300-0001200〜300-0001300
256-0000800〜256-0000900
みたいな口座の連番があって、
その中である条件にあてはまる口座だけ取りだしたい。
テーブルが持っているのは、口座の支店番号(上3桁)と
連番の開始、終了の下7桁だけ。
とりあえず有効範囲にある口座番号を持つ表を生成して、
そこからWHERE句とINNER JOINを使って条件にあてはまるのを出したい。
0857nobodyさん
2009/10/08(木) 14:49:29ID:???例えば300-0001234を抽出
SELECT * FROM table
WHERE 支店番号 = '300' AND '0001234' BETWEEN 連番の開始 AND 連番の終了
あとの条件をくっつけていく
PHP関係なくいけるんちゃう?
0858nobodyさん
2009/10/08(木) 18:16:45ID:MSKkwYbyreturn array("var regex=".$this->regex.";\n" ,
" { jsVar } != ' ' && ! regex.test( { jsVar } )" );
}
失礼ですが質問させて下さい
getValidationScriptというのを調べまくったのですが満足いく説明が得られず、英語サイトまで行ってなんとか少し分かりました
どうやら配列を返し、その配列の第2引数に検証の正否を判定するための条件式を含めるようです
で、上のコードなのですが、第2引数の意味が分かりません
PEARのQuickForm.php自体の中のgetValidationScript関数も確認したのですが、物凄く長く難しく、自分には理解が出来ませんでした
ただ、$testが使われているというのは分かりました
{ jsVar }というのは何なのでしょうか?
意味が分からないだけでなく、コレが何の形なのかも分かりません
JavaScriptならばオブジェクトリテラルだという事は分かるのですが、PHPでは分かりません
で、この第2引数ですが、{ jsVar }というものが空または正規表現.testが無ければ・・・何を返すのでしょうか?
検証の正否を判定するための条件式を含めるという事ですが、TRUE、FALSEとかでしょうか?
0859nobodyさん
2009/10/08(木) 18:21:10ID:???jsVarはあとで置換でもされるのかと
0860nobodyさん
2009/10/08(木) 21:20:11ID:MSKkwYbyQuickForm.phpのソースを見た感じでは分かりませんでしたが、何かそういうの作っているんでしょうかね・・・
0861nobodyさん
2009/10/08(木) 21:35:20ID:???0862nobodyさん
2009/10/08(木) 21:51:13ID:???紛らわしいが{jsVar}は置換用のプレースホルダ
フォーム要素のプロパティに置換される
RuleRegistry.php の HTML_QuickForm_RuleRegistry::getValidationScript() を読むといい
0863nobodyさん
2009/10/08(木) 22:22:56ID:MSKkwYbyわぉ、ほんとだ{jsVar}がありました
ありがとうございました
ではこのコードは、
Returns the javascript test (the test should return true if the value is INVALID)
Return : first element is code to setup validation, second is the check itself
という事のようなので、
" { jsVar } != ' ' && ! regex.test( { jsVar } )" の検証の正否を求めて、つまり空やNULLでなければTRUEを返すという事ですね?
あれ、INVALIDって事は逆ですかね?
空またはNULLであればTRUEを返すのかな?
ごめんなさい、分からなくなりました・・・
0864nobodyさん
2009/10/09(金) 00:46:53ID:prJCc7FF「組み合わせを生成した配列」を出力するをするという処理を実装したいと思っています。
例えば、
$data = array('1','2','3');
という配列から、変数$outputに2個取り出すとすれば、
$output[0][0] = '1';
$output[0][1] = '2';
$output[1][0] = '1';
$output[1][1] = '3';
$output[2][0] = '2';
$output[2][1] = '3';
という組み合わせが重複しない、全3パターンの出力が欲しいのです。
取り出す個数が固定なら、forループのネストで実現できそうなのですが、任意の個数が欲しいので、いい処理方法が浮かびません…
ぶしつけな質問で申し訳ないのですが、ご存知の方がおられましたら、ぜひともご教授いただけたらと思います。
よろしくお願いいたします。
0865nobodyさん
2009/10/09(金) 00:52:14ID:???http://www.google.com/search?hl=ja&q=combination+algorithm
0866nobodyさん
2009/10/09(金) 03:43:14ID:prJCc7FF無駄が多すぎる…
//http://www.php.net/manual/ja/ref.array.phpより拝借
function combinations2($elements,$anyvalue){
if(is_array($elements)){
$combinations=array(array());
foreach($elements as $element){
$new_combinations=array();
foreach($combinations as $combination){
$new_combination=array_merge($combination,(array)$element);
array_push($new_combinations,$new_combination);
}
$combinations=array_merge($combinations,$new_combinations);
}
$combinations_key = array_keys($combinations);
$combinations_size = count($combinations_key);
for($i=0;$i<$combinations_size;$i++){
$sn = $combinations_key[$i];
if($anyvalue != count($combinations[$sn])){
unset($combinations[$sn]);
}
}
return $combinations;
}else{
return false;
}
}
0868nobodyさん
2009/10/09(金) 08:19:27ID:SDpPJ8L7http://sourceforge.jp/magazine/09/10/07/1133258
0870nobodyさん
2009/10/09(金) 10:32:02ID:???$data = array('1','2','3','4','5');
print_r (combinations3( $data, 3));
function combinations3( $array , $num ) {
$n = count($array);
$x = (1 << $num ) -1;
$ret = array();
while ( ! ($x & ~( (1 << $n ) -1 ))){
$ret[] = arrayset($x,$array,$n);
$x =nextp($x);
}
return $ret;
}
function nextp($x) {
$s =$x & -$x;
$r = $x + $s;
$n = $r & -$r;
return ($r | ((floor($n/$s )>>1)-1));
}
function arrayset($x,$array,$n){
$r = array();
for( $i =1;$i<= $n;$i++){
if($x & 1) $r[] = $array[$i-1];
$x = $x >>1;
}
return $r;
}
0871nobodyさん
2009/10/09(金) 10:55:42ID:tvzB35Y7シェル関数を使い、PHPを実行させたいのです
$command = 'php /virtual/hoge/hoge/hoge.php';
$output = shell_exec("{$command} 2>&1");
print_r ($output);
これを実行すると
Warning: shell_exec() [function.shell-exec]: Unable to execute
このようなエラーになります
$command の中身をlsとかtopにしたらちゃんと実行されます
PHPからPHPをたたく?ということは置いておいて
$command の記述が間違えているのでしょうか?
0872nobodyさん
2009/10/09(金) 10:57:15ID:SDpPJ8L7abcd12345
0873nobodyさん
2009/10/09(金) 10:58:54ID:???0874nobodyさん
2009/10/09(金) 11:00:03ID:???0875nobodyさん
2009/10/09(金) 11:00:46ID:mskr8tQ20876nobodyさん
2009/10/09(金) 11:02:28ID:???0877nobodyさん
2009/10/09(金) 11:06:37ID:???こんなとこで質問するなんて釣りだろ
おまえら釣られんなよw
0878nobodyさん
2009/10/09(金) 11:11:56ID:???0880nobodyさん
2009/10/09(金) 11:37:26ID:???ttp://www.kiyori.co.jp/MD5Reverse/Default.aspx
0881nobodyさん
2009/10/09(金) 11:41:57ID:???復号できないものを暗号とはいいません
0882nobodyさん
2009/10/09(金) 11:46:10ID:???0883nobodyさん
2009/10/09(金) 11:51:56ID:tvzB35Y7ありがとうございます
さっそく実行しましたが同じエラーが出ました
0884nobodyさん
2009/10/09(金) 12:13:18ID:???やったことないけど
0885nobodyさん
2009/10/09(金) 13:20:47ID:tvzB35Y7ありがとうございます
同じエラーが出たので-fオプションで試したところ
sh: fork: Resource temporarily unavailable
このようなエラーに変わりました
これはどういうことでしょうか?
0886nobodyさん
2009/10/09(金) 13:24:19ID:???0887nobodyさん
2009/10/09(金) 13:39:16ID:???0888nobodyさん
2009/10/09(金) 13:49:33ID:???実行しているのは自分で管理しているサーバ?
レンタルサーバだとプロセス数で制限かかってたりするからforkできなかったりするよ
0889nobodyさん
2009/10/09(金) 13:57:42ID:???0890nobodyさん
2009/10/09(金) 14:32:05ID:???0891nobodyさん
2009/10/09(金) 14:32:38ID:???0892nobodyさん
2009/10/09(金) 14:36:12ID:l1yyeg000893nobodyさん
2009/10/09(金) 14:41:24ID:???0894nobodyさん
2009/10/09(金) 14:43:30ID:tvzB35Y7>>887
わからないならスレ汚しになるのでいちいちレスしなくていいですよ
>>888
的確なお答えありがとうございます
レン鯖なので制限かかってるみたいです
ありがとうございました
0895nobodyさん
2009/10/09(金) 14:50:13ID:???http://www.google.co.jp/search?hl=ja&rlz=1B3GGGL_ja___JP215&tbo=p&tbs=qdr%3Ay15&q=%28shell+OR+%E3%82%B7%E3%82%A7%E3%83%AB%29+fork+%E3%83%97%E3%83%AD%E3%82%BB%E3%82%B9&btnG=%E6%A4%9C%E7%B4%A2&lr=
0896nobodyさん
2009/10/09(金) 14:53:49ID:???0897nobodyさん
2009/10/09(金) 14:58:55ID:???【PHPのバージョン】php5.1.6
【連携ソフトウェア】特になし
【質問内容】
mb_convert_kana() の文字化けに困っています。
$ins_s = "?`?a?b?cアイウエオ";
var_dump($ins_s);
$out_s = mb_convert_kana($ins_s, "KSA", "SJIS");
var_dump($out_s);
スクリプトの文字コードはSJISです。
上記のソースで以下の様に $ins_s の4文字(fa60, fa61, fa62, fa63)が?(3f)に化けます。
string(13) "?`?a?b?cアイウエオ"
string(14) "????アイウエオ"
化ける文字は上記の文字に限らず、第3水準(FA40 - FC4Bに配置されている文字)
の文字だと概ね化けるようです。
php.ini の関連すると思われる設定は以下の様にしています。
解決方法があればお願いします。
mbstring.language = Japanese
mbstring.internal_encoding = SJIS
mbstring.http_input = pass
mbstring.http_output = pass
mbstring.encoding_translation = Off
0900nobodyさん
2009/10/09(金) 22:57:41ID:???0901nobodyさん
2009/10/09(金) 23:02:11ID:???0902nobodyさん
2009/10/09(金) 23:27:17ID:+N74k5r8登場人物
マニュアル君
正規表現クン
0903nobodyさん
2009/10/09(金) 23:28:44ID:???0904nobodyさん
2009/10/09(金) 23:34:06ID:+N74k5r8オメー自分のレスをよく読んでからからにしろ
テンプレに追加
揚げ足鳥クン
0905nobodyさん
2009/10/09(金) 23:35:31ID:???0906nobodyさん
2009/10/09(金) 23:35:45ID:???0907nobodyさん
2009/10/09(金) 23:38:50ID:+N74k5r80908897
2009/10/10(土) 00:29:37ID:???あ、投稿も化けてますね…。
> $out_s = mb_convert_kana($ins_s, "KSA", "sjis-win");
これで解決しました。�d。
0909nobodyさん
2009/10/10(土) 03:41:41ID:K/ciw02z【PHPのバージョン】xampp-win32-1.7.2に入っているバージョンで多分最新だと思います。
【連携ソフトウェア】なし。
【質問内容】
<?php
$str = 'プログラム1/PHP';
//カタカナ1文字以上+半角数字1文字+「/」+半角英大文字1文字以上にマッチ
if(mb_ereg("([ア-ン]{1,}[0-9])/([A-Z]{1,})", $str, $ARRAY)){
print $ARRAY[0];
echo "<pre>";
print $ARRAY[1];
echo "<pre>";
print $ARRAY[2];
}
↑を実行すると↓の表示になります。
[ア-ン]{1,}で、『プログラム』を全部拾えないのでしょうか?
ム1/PHP
ム1
PHP
0910nobodyさん
2009/10/10(土) 04:19:11ID:???0911nobodyさん
2009/10/10(土) 06:08:24ID:CsfH1goLトンチンカンな回答ばかりで、
解決ができなったので、
こちらでお伺います。
ユーザーIDに漢字を使いたいという客がいるのですが、
ユーザーIDに漢字を使うことの致命的なデメリットはなんでしょうか?
私もつかった事例がないので、分かりませんが、
文字コードの問題などは技術的に解決できると思うのですが。
宜しくお願いします。
0912nobodyさん
2009/10/10(土) 07:45:49ID:???0913nobodyさん
2009/10/10(土) 07:48:24ID:???実際、ゲームのサイトとかで漢字のユーザーIDが使えるところは結構あるだろ?
>>911の意図するユーザーIDとは違うのかもしれないが。
0914nobodyさん
2009/10/10(土) 07:49:55ID:???コンピューターはもともと欧米が先進となって
英数字などの1バイト文字を扱うことを前提に設計されてきたので
昨今の国際化によって徐々にマルチバイト文字でも問題ないようにはなってきてるが
やはりそれでもコンピューターにとって扱いやすいのは1バイト文字であるということ
そんな事情で通常コンピューターに処理させるような工程には1バイト文字を使うことが多い
マルチバイトにすることによって発生するデメリットといえば
処理速度が少し落ちるということぐらいではないかな
0916nobodyさん
2009/10/10(土) 09:02:39ID:???0917nobodyさん
2009/10/10(土) 09:10:11ID:???そもそもこれあかんでしょ。SJISはバグつきなんだから基本的にご法度だよな。
別にユーザ名漢字でもいいけど、エスケープするからそのまま読み取れないし、長くてデータの無駄遣いだろ。
個人的にはヤダ。
0918nobodyさん
2009/10/10(土) 09:21:56ID:???おいおいこの程度の知識で語って大丈夫か?
0919nobodyさん
2009/10/10(土) 09:32:36ID:???テンポラリフォルダなんかのユーザー毎に分けられるエントリに全角文字が含まれて、
それが原因で上手く動かないアプリケーションが出てきたりする。
そういう状況を嫌って全角文字を避けたりするような。
「上手く動かないアプリケーション」を修正するなり使わないなりする選択肢もあるけど、
それにかかるコストに比して、得られるものは結局のところ自己満足でしか無いというか。
>>913のいうようなゲームのサイトみたいに、
一定の閉鎖環境であれば検証・修正にかかるコストも限定化されるけど、
パソコンみたいに不特定のアプリケーションが入ってくる環境だと切りが無いよね。
0920nobodyさん
2009/10/10(土) 10:04:47ID:???0921nobodyさん
2009/10/10(土) 10:06:11ID:???0922nobodyさん
2009/10/10(土) 10:37:42ID:???SJISでdate("Y年m月d日")とかやると
年(0x944E)とdate関数のformat文字「N(0x4E)」がかぶってるために文字化けする。
こういうのを一つ一つ意識して作るのが面倒ならSJIS以外を使った方がいいよ。
0923nobodyさん
2009/10/10(土) 10:48:36ID:???その処理の前にmb_regex_encoding('SJIS');
UTF-8なら"UTF-8"。
php.iniのmbstring.internal_encodingを編集してもいい。
正規表現はそれで問題ないが、「1文字以上」は普通+を使うと思う。つまり"([ア-ン]+[0-9])/([A-Z]+)"。
0924nobodyさん
2009/10/10(土) 12:44:41ID:???デリミタが入ってない件
ereg系は推奨できない件
mb_ereg("![ア-ン]+[0-9]+?/[A-Z]+!", $str, $ARRAY)
0926909
2009/10/10(土) 12:50:11ID:K/ciw02zおお、ありがとうございます。
>mb_regex_encoding('SJIS');
で、解決しました。 感謝します。
しかし、この SJISとUTF-8の違いがなんだかさっぱりわかりませんw
0928909
2009/10/10(土) 13:20:07ID:K/ciw02z<?php
mb_regex_encoding('SJIS');
$str = 'プログラム1/PHP';
if(mb_ereg("([ア-ン]+[0-9])/([A-Z]+)", $str, $ARRAY)){
print $ARRAY[0];
echo "<pre>";
print $ARRAY[1];
echo "<pre>";
print $ARRAY[2];
}
↑だと意図した通りに表示されるのですが、↓だと何も表示されません。 これはどういうことでしょうか?
<?php
mb_regex_encoding('SJIS');
$str = 'プログラム1/PHP';
if(mb_ereg("!([ア-ン]+[0-9])/([A-Z]+)!", $str, $ARRAY)){
print $ARRAY[0];
echo "<pre>";
print $ARRAY[1];
echo "<pre>";
print $ARRAY[2];
}
0929nobodyさん
2009/10/10(土) 13:35:54ID:ogMq/uQO0930nobodyさん
2009/10/10(土) 13:44:39ID:???正規表現勉強しろ。
"([ア-ン]+[0-9]/[A-Z]+("
でもいけるんじゃない?
>>929
(a+b)/c は a+b/c とちがうからな。
0931nobodyさん
2009/10/10(土) 13:50:10ID:????
([ア-ン]+[0-9])/([A-Z]+)と書かないで[ア-ン]+[0-9]/[A-Z]+でいいだろって言ってんの
0932nobodyさん
2009/10/10(土) 14:58:00ID:???924の言う事は嘘
mb_ereg()にデリミタは存在しない
>>931
mb_ereg()の第三引数の意味調べな
0933nobodyさん
2009/10/10(土) 15:40:59ID:???「漢字を使う」て具体的にどういうことかなあ。
ユニークにならないとダメだから
一、二、三。。なら使えるけど例えば名前だとダメ。
というわけでシステム?が勝手に割り振るのならまだしも
「利用者が好きな文字を選ぶ」ってことなら
被ってないかの検証もいるねー。
0934nobodyさん
2009/10/10(土) 17:57:54ID:???坊っちゃん(1906年4月、春陽堂刊『鶉籠』収録)
草枕(1906年9月、『新小説』/『鶉籠』収録)
...
--------------------------------------------------
の様な文章から、
$author($date、$entry)
の様な指定で、文字列を取得するのに、良い関数はないでしょうか。
0936nobodyさん
2009/10/10(土) 18:31:07ID:???0937909
2009/10/10(土) 18:34:52ID:K/ciw02z> 924の言う事は嘘
> mb_ereg()にデリミタは存在しない
どうもです、了解しました。
0938nobodyさん
2009/10/10(土) 19:49:22ID:WBQCef66質問20問をラジオボタンで答えてもらい、結果を判定するサイトです。
ラジオボタンの値は、20問すべて(0,1,2)のどれか3つです。
これ以外の数値、又は、文字列がポストされた場合、
エラーメッセージを表示したいのですが、上手くいきません。
(0,1,2)のすべて正常な場合もエラーになってしまいます。
8月からPHPを始めたばかりなので、初歩的なミスかとも思いますが、
よろしくお願いします。
if ($data = $_POST){
foreach ($data as $value) {
if (($value != "0") || ($value != "1") || ($value != "2")){
$er_ms = '不正な値が入力されています';
$_SESSION['er_ms'] = $er_ms ;
header('Location: http://hoge.jp/hoge.html');
exit;}}
}
0939nobodyさん
2009/10/10(土) 19:54:47ID:???でしょ?
||じゃなくて&&
0941nobodyさん
2009/10/10(土) 20:26:45ID:WBQCef66ありがとうございます。
どうしてエラーにひっかかるのか理解できました。
なるほどです。これで一歩前進できました。
0942nobodyさん
2009/10/10(土) 20:27:14ID:???0943nobodyさん
2009/10/10(土) 21:17:44ID:WBQCef66レスありがとうございます。
不等式も考えたのですが、整数以外の桁数の多い小数など
を入れられた場合もエラーにした方が良いと思い、>>938 のように
してみました。
だけど、&&で大丈夫だと思ったら、どこか別のとこがおかしいみたい。。
再度、検討中です。
0944nobodyさん
2009/10/10(土) 21:54:43ID:???ありがとうございました。
なんとか && で出来たみたいです。
構文がおかしいのかと考えていたのですが、
if文の中に、if文を入れ子にしていて、どこかおかしくなってたみたい。
if文を独立させたら、やっと動きました。
ありがとう!
0945nobodyさん
2009/10/10(土) 22:04:23ID:Y6o2B77j画像アップロードについての質問です。
たとえばSNSみたいなサイトを作るとき、プロフィール写真とかを
アップロードすると思います。
アップロード(保存)の仕方について、二通りあるとおもいます。
・DBに保存する(mediumblobとかで)
・img/とかのファイルに保存する
後々のこと(ajax使うとか、サムネイルを作るとか)を考えたとき、
どっちがいいのでしょうか?
できたらその理由も教えてください。
0946nobodyさん
2009/10/10(土) 22:33:57ID:m/iUbtet現在pixivが落ちてますがphpの糞仕様が原因ですか?
それともphperのノースキルが原因ですか?
0948nobodyさん
2009/10/10(土) 22:50:05ID:???SNSの場合、一般的には全てデータベースで運用するので、
写真用にわざわざ管理領域を広げるよりもデータベースで一緒にやってしまったほうがいい。
0949nobodyさん
2009/10/10(土) 22:50:37ID:m/iUbtet0950nobodyさん
2009/10/10(土) 23:49:25ID:4SjhHbkn先輩方、ご回答よろしくお願いします。。。 Orz
0951nobodyさん
2009/10/10(土) 23:53:05ID:???0953nobodyさん
2009/10/11(日) 05:58:56ID:???0954nobodyさん
2009/10/11(日) 07:32:32ID:???有名どころのプログラムならコードもきれいだと重い、phpBB、XOOPS、WordPressなどを
ダウンロードしてみましたが、どれもdefineや関数で名前空間汚しまくりでした。
defineが必ずしも悪とも思いませんが、上記のような大規模なプログラムでは望ましくないと思ってます。
読んでて気が引き締まるような美しいPHPのプログラムを教えてください。
0959nobodyさん
2009/10/11(日) 11:32:46ID:???0960nobodyさん
2009/10/11(日) 11:33:14ID:???関数とdefineが気にくわないなら、
とりあえずZend FrameworkとZend Frameworkコーディング規約嫁。
>phpBB、XOOPS、WordPress
PHPでOOPをやろうって習慣が無い時代のコードなので仕方無い。
まぁ大規模コードを書く場合はコードの美しさより、設計の美しさの方が可読性に影響すると思うが。
0961nobodyさん
2009/10/11(日) 11:58:07ID:I91rw7dl俺様が勉強させてやるから感謝しろよks
smartyでテンプレートとデータを分けて出力結果みたいにするにはどうやればいいのか教えろ
HTMLのテンプレート
<html>
<head>
<title>{$title}</title>
</head>
<body>
<h1>{$h1}</h1>
</body>
</html>
データファイル
<?php
$title="ホームページ";
$h1="見出し1";
?>
出力結果
<html>
<head>
<title>ホームページ</title>
</head>
<body>
<h1>見出し1</h1>
</body>
</html>
0962nobodyさん
2009/10/11(日) 12:04:08ID:???0963nobodyさん
2009/10/11(日) 12:04:53ID:I91rw7dl0964nobodyさん
2009/10/11(日) 12:09:05ID:???0965nobodyさん
2009/10/11(日) 12:21:47ID:???そんなのチュートリアルレベルだろ。
その辺の入門解説読んでも分からんのなら、どこがどう分からないかを書くべし。
0966nobodyさん
2009/10/11(日) 12:55:25ID:???学校の宿題か何かだろう。
0967nobodyさん
2009/10/11(日) 13:04:53ID:???どこかでassignしなきゃ一生出力されない
あとはググれカス
0968nobodyさん
2009/10/11(日) 13:18:15ID:I91rw7dlそんな事貴様に言われなくてもわかってんだよks
smartyでのやり方を聞いてんだksg
0970nobodyさん
2009/10/11(日) 14:01:36ID:I91rw7dlてめえうぜええぞksg
0971nobodyさん
2009/10/11(日) 15:08:32ID:???0972nobodyさん
2009/10/11(日) 15:55:44ID:???・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0974nobodyさん
2009/10/11(日) 16:17:24ID:Brpi1lwUまずはデータベースを作りました:
mysql> CREATE DATABASE idemailpeopl
mysql> USE idemailpeople;
mysql> CREATE TABLE people (id INT NOT NULL PRIMARY KEY, email TEXT);
mysql> INSERT INTO people SET id = 42, email = "[email protected]";
…そして、下のようなクエリを書いてみました:
<?php
$link = mysql_connect('localhost', 'root', '');
mysql_select_db('idemailpeople');
$result = mysql_query("SELECT id, email FROM people WHERE id = '42'");
$result = mysql_query("INSERT INTO people SET id = 1, email = '[email protected]'");
echo mysql_info($link);
?>
…ちゃんとMySQLには反映されていて id = 1, email = '[email protected]' は新しく挿入されましたが、何も表示されません。
直近のクエリについての詳細な情報を得るにはどうしたら良いのか教えてください。
0976nobodyさん
2009/10/11(日) 18:20:07ID:???>INSERT ... VALUES 文で mysql_info() が非 FALSE 値を 返すのは、
>文中で複数の値のリストが指定された場合に限ります。
って書いてるじゃん
MySQL APIのページにも
http://dev.mysql.com/doc/refman/4.1/ja/mysql-info.html
>注意:
>mysql_info() は、INSERT ... VALUES ステートメントが複数レコードを挿入する形式の場合に限り
>(複数の値リストが指定された場合に限り)、NULL 以外の値を返します。
おそらくPHPのmysql_info()は同名のこのAPI使ってるんでしょ
そのSQLじゃNULLかFALSEが返ってきてるということなのでは?
ためしに複数のレコードを挿入して確認してみるといい
0977974
2009/10/11(日) 19:34:54ID:Brpi1lwU>>975
echo mysql_error();にしてもメッセージは出てきませんね。
>>976
$result = mysql_query("INSERT INTO people SET id = 11, email = '[email protected]'");
$result = mysql_query("INSERT INTO people SET id = 12, email = '[email protected]'");
…のように複数のレコードを同時に挿入してみましたが、やはり何も表示されません。
既に登録されているidを挿入しようとすれば、当然「重複している」とエラーが出ます。
実際にmysql_info()が値を返すような複数のクエリを教えてください。
0978nobodyさん
2009/10/11(日) 20:30:37ID:???var_dump(mysql_info($link));
にしたらどうなってる?
0979nobodyさん
2009/10/11(日) 20:34:50ID:???$result = mysql_query("INSERT INTO people select * from people "); で 確認できました。
で、複数レコードではないのですが、
$result = mysql_query("INSERT INTO people select 333, '777' "); でも
Records: 1 Duplicates: 0 Warnings: 0
と出ました。
0980nobodyさん
2009/10/11(日) 20:40:51ID:???>>976のリンクに書いてあるでしょ
> INSERT INTO ...SELECT ...
> 文字列の形式: Records: 100 Duplicates: 0 Warnings: 0
> INSERT INTO ...VALUES (...),(...),(...)...
> 文字列の形式: Records: 3 Duplicates: 0 Warnings: 0
> LOAD DATA INFILE ...
> 文字列の形式: Records: 1 Deleted: 0 Skipped: 0 Warnings: 0
> ALTER TABLE
> 文字列の形式: Records: 3 Duplicates: 0 Warnings: 0
> UPDATE
> 文字列の形式: Rows matched: 40 Changed: 40 Warnings: 0
0981980
2009/10/11(日) 20:45:10ID:???誰か頼む
0983nobodyさん
2009/10/11(日) 21:19:38ID:???http://pc11.2ch.net/test/read.cgi/php/1255263534/l50
0984974
2009/10/11(日) 21:21:11ID:Brpi1lwU>var_dump(mysql_info($link));
Bool(false)でした。
>>979
> result = mysql_query("INSERT INTO people select * from people ");
一回目から"Could not run query: Duplicate entry '1' for key 'PRIMARY'"と出ました。
>$result = mysql_query("INSERT INTO people select 333, '777' ");
これはちゃんと出ました!:
Records: 1 Duplicates: 0 Warnings: 0
>>980
よぉうやく意味が分かりました。
INSERT INTO ...SELECT ... を INSERT INTO ... SET ... と勘違いしていました。
でも、ここだけ実例が省略されてるのってズルいですよ。
初めての人には分かりませんって。
…以上、ありがとうございました!
0985nobodyさん
2009/10/12(月) 10:33:10ID:???今までのApacheよりも、処理速度で1.8倍向上している。
メジャーバージョンアップでもよかったんじゃないか?
0986nobodyさん
2009/10/12(月) 15:31:26ID:???そういうのは誤差の範囲内で流されるんだよ
0987nobodyさん
2009/10/12(月) 17:31:45ID:???@演算子使わないとか$_POST使う前にissetで調べるとか==を===に置き換えるとか
0988nobodyさん
2009/10/12(月) 17:35:42ID:???0989nobodyさん
2009/10/12(月) 17:43:32ID:???わからん
0990nobodyさん
2009/10/12(月) 18:11:11ID:???コメントなくして動かすのじゃどのくらい差が出るかやってみてくれ
0992nobodyさん
2009/10/12(月) 18:31:48ID:???やってみた。厳密等価の方が3割〜1割程度早くなった
結果
厳密等価演算子
0.0059380531311035s
0.0058860778808594s
0.0058920383453369s
0.0058870315551758s
0.0058879852294922s
0.0059118270874023s
0.0059001445770264s
0.0058870315551758s
0.0058960914611816s
0.0058901309967041s
等価演算子
0.0065038204193115s
0.0064949989318848s
0.0064928531646729s
0.006479024887085s
0.0064821243286133s
0.0064840316772461s
0.0064849853515625s
0.006479024887085s
0.0064759254455566s
0.0064809322357178s
0993nobodyさん
2009/10/12(月) 18:33:49ID:???単にランダムな数を生成して比較するだけ
function test_a(){
$time = microtime(true);
$tmp = array(0,0);
for($i = 0 ; $i < 10000 ; $i++){
$rand = rand(0,100);
if($rand === 0){$tmp[0]++;}
if($rand === 1){$tmp[1]++;}
}
return microtime(true) - $time;
}
function test_b(){
$time = microtime(true);
$tmp = array(0,0);
for($i = 0 ; $i < 10000 ; $i++){
$rand = rand(0,100);
if($rand == 0){$tmp[0]++;}
if($rand == 1){$tmp[1]++;}
}
return microtime(true) - $time;
}
/*ループ*/
echo "<strong>厳密等価演算子</strong><br />";
for($i=0;$i<10;$i++){
echo test_a()."s <br />";
}
echo "<strong>等価演算子</strong><br />";
for($i=0;$i<10;$i++){
echo test_b()."s <br />";
}
0996nobodyさん
2009/10/12(月) 18:48:54ID:???【PHP】下らねぇ質問はID出して書き込みやがれ 89
http://pc11.2ch.net/test/read.cgi/php/1255263534/l50
0997nobodyさん
2009/10/12(月) 18:50:24ID:???文字列1をintにキャストした後に厳密比較をしてみた結果もついでにたのむ
0998nobodyさん
2009/10/12(月) 19:05:07ID:???test_a 0.0088441371917725s 0.0088038444519043s 0.0087242126464844s 0.0087590217590332s
test_b 0.0095038414001465s 0.0094480514526367s 0.0093870162963867s 0.0095081329345703s
test_c 0.0095109939575195s 0.0094280242919922s 0.0094559192657471s 0.0094799995422363s
$array = array('0','1','2','3','4','5','6','7','8','9');
function test_a(){//キャストして厳密等価演算
global $array;$time = microtime(true);
$tmp = array(0,0);for($i = 0 ; $i < 10000 ; $i++){
$rand = (int)($array[rand(0,10)]);
if($rand === 0){$tmp[0]++;}
if($rand === 1){$tmp[1]++;}
}
return microtime(true) - $time;
}
function test_b(){//キャストして等価演算
global $array;$time = microtime(true);$tmp = array(0,0);
for($i = 0 ; $i < 10000 ; $i++){
$rand = (int)($array[rand(0,10)]);
if($rand == 0){$tmp[0]++;}
if($rand == 1){$tmp[1]++;}
}
return microtime(true) - $time;
}
function test_c(){//キャストせず等価演算
global $array;$time = microtime(true);
$tmp = array(0,0);for($i = 0 ; $i < 10000 ; $i++){
$rand = $array[rand(0,10)];
if($rand == 0){$tmp[0]++;}
if($rand == 1){$tmp[1]++;}
}
return microtime(true) - $time;
}
0999nobodyさん
2009/10/12(月) 19:41:08ID:???1000nobodyさん
2009/10/12(月) 19:41:51ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。