【PHP】下らねぇ質問はここに書き込みやがれ 69
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2008/05/27(火) 18:04:33ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 68
http://pc11.2ch.net/test/read.cgi/php/1209822736/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0702nobodyさん
2008/06/18(水) 19:44:19ID:KjbYRyD74で割って余りが無い時とかは?
0703nobodyさん
2008/06/18(水) 19:45:07ID:KjbYRyD7$iを4で割って余りを見れば
0704nobodyさん
2008/06/18(水) 19:47:39ID:NgS9+r3y以下コード
<?php
$to = $_POST[to];
$from = $_POST[from];
$body = $_POST[body];
$sub = $_POST[sub];
$frname = $from;
$fradrs = $from;
$toname = $to;
$toadrs = $to;
$subject =$sub;
$comment = $body;
mb_language("ja");
mb_internal_encoding("sjis");
$frname0 = mb_encode_mimeheader($frname);
$toname0 = mb_encode_mimeheader($toname);
$sdmail0 = "$toname0 <$toadrs>";
$mlhed = "From:\"$frname0\" <$fradrs>";
$rslt = mb_send_mail($sdmail0,$subject,$comment,$mlhed);
print "送信完了";
?>
実行すると、以下の文章が出力されます
"; $mlhed = "From:\"$frname0\" <$fradrs>"; $rslt = mb_send_mail($sdmail0,$subject,$comment,$mlhed); print "送信完了"; ?>
どなたかわかる人いましたらレスおねがいします。
0706nobodyさん
2008/06/18(水) 19:48:18ID:???これか?
http://www.tagindex.com/html_tag/page/meta_05.html
0708nobodyさん
2008/06/18(水) 19:52:19ID:???助かりました。まさにそれです。
正常に処理できました。
このソースeclipseに張ると赤い印でソースコードのエラーが出るんですよね。
たぶん、eclipseの解析が悪いだけだと思うのですが、少し気持ち悪いです。
でも、正常に動いているので、問題はないです。
0709nobodyさん
2008/06/18(水) 20:49:34ID:???0710704
2008/06/18(水) 20:58:22ID:NgS9+r3yレスありがとうございます。再度動作できる環境を整えてやりましたところ、
エラーが出てしまいました。
Parse error: syntax error, unexpected $end in /home/www/free/XXX/XXXXX/mail.php on line 42
XXXXXはサーバーのURLです。
そしてコードの42行目は、
?>
です・・・。これは鯖が悪いのでしょうか?
0711nobodyさん
2008/06/18(水) 21:04:45ID:???syntax errorって書いてあるんだから、関数が走る走らないの前に、文法エラーなんでしょうよ。
ソース確認してみたら?
0713nobodyさん
2008/06/18(水) 21:19:21ID:NgS9+r3yhttp://www2.uploda.org/uporg1488564.txt
これが全ソースなんですが、確認しても間違いはないようなんです・・・。
0715nobodyさん
2008/06/18(水) 21:27:25ID:???0716nobodyさん
2008/06/18(水) 21:27:50ID:???0717nobodyさん
2008/06/18(水) 21:34:34ID:NgS9+r3ythx!
すべてのスペース削除して実行したらうまくいった。
昨日はじめたばっかりでよくわからないけど動くと感動するね。
0718nobodyさん
2008/06/18(水) 21:59:51ID:???0719nobodyさん
2008/06/19(木) 01:37:42ID:ThD97MPb例…4つの数字『1』、『2』、『3』、『4』、『5』から
3つ選んたときの組み合わせを行います。
数字を入れ替えると、同じ組み合わせになるものは、数に含まれません。
質問1…組み合わせの数を求めたい。
質問2…組み合わせの内容を知りたい。
答え1→10通り
答え2→『1.2.3』
『1.2.4』
『1.2.5』
『1.3.4』
『1.3.5』
『1.4.5』
『2.3.4』
『2.3.5』
『2.4.5』
『3.4.5』
エクセル関数(combin)を使って、
質問1の答えを知ることができましたが、
質問2については、気合と根性で手作業で答えを導きましたが、
PHPで簡単に出来ないかと思い、書き込みしました。
よろしくお願い致します。
0720nobodyさん
2008/06/19(木) 01:41:48ID:ThD97MPb間違いがございましたので訂正致します。
訂正箇所…2行目
訂正前…4つの数字
訂正後…5つの数字
ご迷惑をお掛け致しますがよろしくお願い致します。
0721nobodyさん
2008/06/19(木) 02:09:06ID:???高校数学より中学レベル。
数字をアルファベット5個に置き換えたら分かりやすいかもね。
0723nobodyさん
2008/06/19(木) 02:19:17ID:???どっちでもいいけど。
0724nobodyさん
2008/06/19(木) 02:33:47ID:???0725nobodyさん
2008/06/19(木) 02:40:05ID:js0BBwoJ0726nobodyさん
2008/06/19(木) 02:55:41ID:???0729721
2008/06/19(木) 06:20:06ID:???最初に5*4*3の60パターン出して、
重複した数字がある要素を削除すれば、
一瞬で答えは出せるんだけど、
ここまできたら、実際の動作と同じロジックで答えを出したい。
0730nobodyさん
2008/06/19(木) 06:24:59ID:???writeCombPats(array(), 0);
function writeCombPats($vals, $level) {
if ($level == 3) {
echo implode(',', $vals)."\n";
return;
}
for($i=($vals != null? max($vals)+1: 1); $i<=5; ++$i) {
if (in_array($i, $vals)) {
continue;
}
array_push($vals, $i);
writeCombPats($vals, $level+1);
array_pop($vals);
}
}
0731nobodyさん
2008/06/19(木) 06:26:53ID:???0732721
2008/06/19(木) 06:51:26ID:???結局、全パターン試すのと変わらんロジックになった。
無駄な時間だった……。
0733721
2008/06/19(木) 06:57:06ID:???こういうのって、どこで勉強するの?
コンピュータサイエンスな教科書に載ってたりする?
それともアルゴリズム系の本に載ってるの?
ちょっと、この辺の基礎知識をたたき直したいんだけど、
お薦め本か何かあったら教えて。
0735nobodyさん
2008/06/19(木) 14:19:08ID:r2xEipfy現状は
$test["$array[0][0]"] = "value"
としても上手く代入できないので
$key = $array[0][0]
$test["$key"] = "value"
とやっています。
0736nobodyさん
2008/06/19(木) 14:21:11ID:???0737nobodyさん
2008/06/19(木) 14:41:44ID:???つまり下記のようにすればいい
$test["${array[0][0]}"] = "value"
0738nobodyさん
2008/06/19(木) 14:50:30ID:r2xEipfy変数を使い場合とはまたちょっと扱い方が違うんですね
ありがとうございました
0739nobodyさん
2008/06/19(木) 17:41:16ID:???0740nobodyさん
2008/06/19(木) 17:45:00ID:???結局、これ以外選択肢がない。
0741顔文字マニア
2008/06/19(木) 19:27:59ID:???どこいけばありますか?
0742nobodyさん
2008/06/19(木) 19:29:05ID:???0743ぬるぽん
2008/06/19(木) 19:31:12ID:887sfRZc『この鯖だけは絶対借りないほうがいい…』
という鯖があれば教えてください。
僕が今知っているのは
ABCOROTIという鯖です。
0745nobodyさん
2008/06/19(木) 19:33:59ID:AA/L6lsn/をSplitするんでは不十分なんでしょうか?
0746nobodyさん
2008/06/19(木) 19:37:03ID:???やっぱ正規表現の方が融通きくし
0748nobodyさん
2008/06/19(木) 23:27:40ID:ZPdLjFPPそんな便利なことができるなら教えてくだせえ
0749nobodyさん
2008/06/19(木) 23:28:43ID:???0750nobodyさん
2008/06/19(木) 23:39:01ID:???,r'";;;;:::::;彡-=―-=:、;;;;;;ヽ、
/;;ィ''"´ _,,,,....ニ、 ,.,_ `ヾ;;;;〉
`i!:: ,rニ彡三=、' ゙''ニ≧=、!´ 屋上へ行こうぜ・・・・・・
r'ニヽ, ( ・ソ,; (、・') i'
ll' '゙ ,;:'''"´~~,f_,,j ヾ~`''ヾ. 久しぶりに・・・・・・
ヽ) , : ''" `ー''^ヘ i!
ll`7´ _,r''二ニヽ. l キレちまったよ・・・・・・
!::: ^''"''ー-=゙ゝ リ
l;::: ヾ゙゙`^''フ /
人、 `゙’゙::. イ
0751nobodyさん
2008/06/19(木) 23:43:33ID:???0752nobodyさん
2008/06/19(木) 23:46:53ID:ThD97MPbエクセルのcombin関数と同様のがなく、ユーザー関数でできることがわかりました。
そこで、下記スクリプトを作成し、実行してみましたが、上手いこと生きませんでした。
----------
<?PHP
$a = 5 ; //総数
$b = 3 ; //抜き取り数
$c = gmp_fact($a)/(gmp_fact($b) * gmp_fact($a -$b)) //組み合わせ数
print "$c" ;
?>
---------
gmp_fact()を利用するには、
Http://www.swox.com/gmp/からGMPライブラリをダウンロードしなければならないのですが接続できません。
どうしたら良いかわからず手詰まっておりますのでご教授いただきたくお願い申し上げます。
また、上記スクリプトであっているのか、
そして、ほかに良い方法があればお教えいただきたく重ねてお願い申し上げます。
0753nobodyさん
2008/06/19(木) 23:57:47ID:???Fatal error: Exception thrown without a stack frame in Unknown on line 0
という謎のエラーが出ました
セッションハンドラの中で例外を投げてはいけないのでしょうか?
0754nobodyさん
2008/06/20(金) 00:03:01ID:???(5*4*3) / (3*2*1) って、公式で出せるし、
質問2なんて、三本木法の関数さえ、そのまま書いてくれてんじゃん。
しかし、こういう基本知識のアルゴリズム仕入れる本、どこに売ってるんだよ。
『プログラマの数学』にスクリプト言語での説明はなかったぞ。
PHPじゃなくていいから、誰か基本アルゴリズム書の良書教えてくれ。
0758687
2008/06/20(金) 00:33:44ID:???0759nobodyさん
2008/06/20(金) 00:34:52ID:TZ4JDjmYpreg_match('/[ぁ-ん]+/', $value);
としたところ、どうやら
”ー”や”・”等の記号にもマッチしてしまうようです。
(本当はひらがなだけにマッチして欲しい、、、これはこれで便利ですが。)
'/[ぁ-ん]+/'とした場合に混ざってしまう記号は他に何がありますか?
また、正確にひらがなだけマッチさせたい場合はどうすればよいのでしょうか?
0760nobodyさん
2008/06/20(金) 00:34:58ID:USTunk61検索自体の処理はできて10件ずつ表示することまではできたのですが、Googleの
ようにページ数を 1 2 3 … と並べて表示するのに全体で何ページあるのかが検索
結果とは別に必要になりました。
通常の検索はSQLでlimitを使って10件だけ取得しているのですが、件数を取得するのに
もう一度同じようなSQLを書いてcount()でレコード数を計算するのはなんだか無駄なような
気がしています。一般的にはどのようにしているのでしょうか。結果取得と総件数を取得するのに
2回SQLを発行するよりも良い方法はありますか。
PHPとMySQLを使っています。宜しくお願いします。
0761nobodyさん
2008/06/20(金) 00:47:22ID:???0762760
2008/06/20(金) 00:56:17ID:???ありがとうございます。
さっそく調べてみましたが、使用する際に全体の件数と表示データがそれぞれ
必要になるので、やはりデータベースからの取得は2回行う必要があるようでした。
名簿テーブルは10万件以上あって、あまり何度も検索したくないです。。
世間には検索エンジンのようなものがいろいろあるのですが、全体の件数を取得しながら
表示するデータだけ抽出するようなことはどのようにやっているのかと疑問に思っています。
0764nobodyさん
2008/06/20(金) 01:06:02ID:tcY9xQFv教科書を読むよりも、実践の中で自分の足らざる部分を見つけて、
それを補うためには何をしていいのか、その都度考える方が大事だよ。
かくいう私も、そのように実践してきた。
いつも、新しいことを要求されて、その度にそれに応えようと、
勉強してきました。
その甲斐もあって私は28ですが、一部上場のSIerを経て、
横浜の一角に事務所を構えるまでのIT企業の社長になりました。
ここまで書くと私のことを何がすごい超人的な人のように勘違いして
しまう方も多いと思いますが、私としてはただ自然に当たり前のことをやってきただけです。
毎日の積み重ねを大事にしていけば、きっと自分の描く未来像が現実のものとなって、
目の前に現れるでしょう。それまで、辛抱です。辛抱こそ肝要ですよ。
0765nobodyさん
2008/06/20(金) 01:08:32ID:???0766nobodyさん
2008/06/20(金) 01:28:39ID:???だから、俺は質問者じゃないんで
順列の処理や三本木法の概念は分かるんだ。
高校数学までだけどね。
ただ、そういうのを実際プログラムで書くには、
どうやって書けばいいのか、出てこない。
だから、実例が載っているようなそういう本が欲しいんだよね。
0767nobodyさん
2008/06/20(金) 01:31:48ID:tcY9xQFvそれは血の滲むような努力です。
といっても、それでは答えになっていないので、掻い摘んでいうと、
勉強とは、教科書や参考書を解くことではないということです。
もちろん、何もわからない状態では何を始めたらいいのかわからないでしょうから、
そのときに、自分のレベル・ニーズに合う専門書を購入して、基礎的な学問体系を
頭の中に叩き込むというのは初期の学習では一応有用です。
しかし、専門書は言うなれば昔の業績の集約です。
一昔二昔前に出された学術研究の成果が本という形に集約して出版されているに過ぎません。
となれば、次は最新の技術動向やいかに実務につなげていくか応用学習をして
始めて社会に通用する力となっていくのです。
雑誌、セミナー、その専門分野の人に直接会っての問答、研究会の参加、勉強する方法はいくらでもあります。
0769nobodyさん
2008/06/20(金) 01:48:22ID:pWiBbCze十分一意性のあるIDを生成するにはどうしたらいいでしょうか?
サーバのIPアドレスとマイクロ時間をmd5するだけでも十分でしょうか?
0770nobodyさん
2008/06/20(金) 02:01:42ID:tcY9xQFv人を批判するだけでは、何も進歩はありませんよ。
それがあなたの趣向だというなら、これ以上申し上げませんが。
0771nobodyさん
2008/06/20(金) 02:03:48ID:???ネタですか?
0772nobodyさん
2008/06/20(金) 02:04:15ID:???0775nobodyさん
2008/06/20(金) 02:29:59ID:???0776769
2008/06/20(金) 02:30:06ID:???これが使えそうです
ethnaでは、通信統計情報とプロセスidとマイクロ秒を使ってましたが
なぜ、uniqidを使ってないのでしょう?
>>773
なんでwindows用ですか?
0777nobodyさん
2008/06/20(金) 08:26:59ID:???0778nobodyさん
2008/06/20(金) 10:18:18ID:???ソースを丸写しにしないとなにもできないゆとりはプログラムに向いてない。
0780nobodyさん
2008/06/20(金) 10:35:42ID:AZS/SHCF文字列をスペースまでで判断し、文字数を調べるプログラムを作りたいです。いい方法があればヒントだけでも教えていただけたいです。
0781nobodyさん
2008/06/20(金) 10:37:45ID:???0782nobodyさん
2008/06/20(金) 12:09:28ID:???可読性が一気に落ちるんですが、
何とか対処する方法ありませんか?
0784nobodyさん
2008/06/20(金) 15:23:14ID:ONqtinSE結果: ABCD
print preg_replace( '|[^X](/)/+|', '$1', 'ABCDDDD' );
結果: ABD
ええええええええええ?!
普通最初と同じようにABCDになると思うんだけど。
[^X] のせいなのは分かってるけど、
なんでC(マッチ文字列の直前の一文字)まで消えるの?
※ X は何でもいい。除外キーワードを使うと発生する。
バグ? 書き方おかしい?
0785784
2008/06/20(金) 15:24:15ID:ONqtinSEprint preg_replace( '|(D)D+|', '$1', 'ABCDDDD' );
結果: ABCD
print preg_replace( '|[^X](D)D+|', '$1', 'ABCDDDD' );
結果: ABD
0786nobodyさん
2008/06/20(金) 15:31:35ID:j50/p+uL〜hoge.php?key=NOMIKONDEBOKUNOEKUSUKARIBA-
のように大文字を使っても良いのでしょうか?
0787nobodyさん
2008/06/20(金) 15:33:55ID:???1つめ、DDDDにマッチ→それをDに置き換え→ABCD
2つめ、CDDDDにマッチ→それをDに置き換え→ABD
だろ。
2つ目はX以外の1文字、D1文字、D1文字以上の連続の組み合わせだからCDDDDにマッチ
0790nobodyさん
2008/06/20(金) 15:43:40ID:???そっか。そうだよね。
冷静に考えてみたら、俺が間違ってた。
元はURLを対象にしてたんだけど、
print preg_replace( '|[^https?://](/)/+|', '$1', 'http://example.com//foo///bar.html' );
結果:http://example.co/fo/bar.html
これをhttp://example.com/foo/bar.htmlにしたいんだ。
って、スレ違いかな……?
0791nobodyさん
2008/06/20(金) 16:03:01ID:???echo preg_replace("|([^:/]{1})/+|", '$1/', 'http://example.com//foo///bar.html');
0792nobodyさん
2008/06/20(金) 16:15:48ID:???完璧です! ありがとう!
/をパターンに含む必要なんてなかったんだ。頭いい。つか、俺頭悪いorz
オライリーのやつ買うかなぁ……。
0794792
2008/06/20(金) 16:24:22ID:ONqtinSE結果: :////
う〜ん……?
http:// になると思うんだけどなぁ?
さすがに、スレ違いですので、ちょっと自分で考えてみます。
>>791さん、本当ありがとう。
0797nobodyさん
2008/06/20(金) 19:36:21ID:???正規表現道場
http://pc11.2ch.net/test/read.cgi/php/1168450843/
が詳しいと思われる。
0798759
2008/06/20(金) 20:15:44ID:TZ4JDjmY0801nobodyさん
2008/06/20(金) 20:57:41ID:???ttp://code.nanigac.com/source/wiki/view/498
全て全角ひらがなか?(UTF-8)のとこ
ちなみにそれは長音とかも除外になってるけどいいのかな?
■ このスレッドは過去ログ倉庫に格納されています