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

【PHP】下らねぇ質問はここに書き込みやがれ 69

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2008/05/27(火) 18:04:33ID:???
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
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カテゴリ)の各スレで
0662nobodyさん2008/06/18(水) 00:45:48ID:???
http://localhost/hoge/hoge.php?action=entry
みたいなアドレスでPHP_SELFでやりましたら、
/hoge/hoge.php
のような感じで出てきたのですが、
http://localhost/hoge/hoge.php
という感じに出せないのでしょうか?
0663nobodyさん2008/06/18(水) 00:47:15ID:???
>>662
>>661
0664nobodyさん2008/06/18(水) 01:27:41ID:???
おまえら本当にマニュアル読もうとすらしないのな?
検索やキーワードで簡単に調べられるのに、それすらしないのな?
PHPのマニュアルは、スクリプト言語史上、最も親切な部類に属するのに。

だから、いつまで経ってもバカなんだよ。
まともな知識のある奴とバカの温度差が激しすぎる。
0665PHP℃素人2008/06/18(水) 01:32:36ID:FEsYSSp5
>>642 中間報告です
はじめにsudo設定でユーザhogeにノーパスワードおよびシステム終了権限を与える。

<?php echo shell_exec('sudo shutdown -t 5'); ?>
は白ページが出てなにも実行されない

そこでwhoコマンドであなたは?とたずねる
<?php echo shell_exec('who'); ?>
hogeですよと表示される hoge pts/0 Jun 17 20:22 (192.168.1.10)

でもsudoの実行ログを確認すると
Jun 17 22:01:45 linux sudo: (pam_unix) authentication failure; logname= uid=0 euid=0 tty= ruser= rhost= user=www-dataとなっていた
Apacheはwww-dataユーザの権限で動作しているのが原因か?
0666nobodyさん2008/06/18(水) 01:44:19ID:???
$ php hoge.php
$ php -f hoge.php

こいつらってなんか違うの?
0667nobodyさん2008/06/18(水) 01:50:39ID:???
ajaxについて教えてください。

以下のサイトにあるサンプルをサーバにあげて実行したのですが、
エラーになって正常に動きません。
エラーメッセージは xmlDoc has no properties です。
ttp://www.geekpage.jp/web/google-maps-api/gxmlhttp-3.php

このサンプルでは、phpからXML出力したものを読み込んでいますが、
ためしに、読み込み先をxmlファイルにして、サーバにxmlファイルを置くと
問題なく処理されます。

他のサイトで見つけたものを試しても、PHPからのXMLではうまくいかず、
読み込み先をxmlにした場合にうまくいきます。

関係あるかわかりませんが、サーバはXREAを使っています。

よろしくお願いします。
0668nobodyさん2008/06/18(水) 01:53:31ID:???
>>687
よくわかりませんがajaxはJavaScriptですよね
よくわかりませんがheaderでこのファイルはxmlですよって教えてあげてください
よくわかりませんがxrea無料なら自動広告が原因の可能性もなきにしもあらず
よくらからないのはめんどうなので適当にレスしたからです
0669nobodyさん2008/06/18(水) 04:43:20ID:zzNhp0Rl
ネットカフェからの接続を一部制限したいんですが、
何かよい方法ないでしょうか?
ネカフェ専用のブラウザがあったりして特別なUA持たせてるとか、
届け出るときにIP帯も届け出て公開しなければならなくてどこかに一覧があるとか、
ネカフェは絶対特定のProxy経由で接続しないといけないとかとか・・・
犯罪予告の防止にも国として何か対策を講じてくれるのが一番なのですが、
現状ないので何かネカフェからの接続がわかるような方法がありませんか?
0670nobodyさん2008/06/18(水) 05:06:32ID:z89NqzwY
区切り文字ごとにハッシュ配列に分解してくれる関数ってないですか?
$text = "a=1@b=2@c=3@=@@";
$hash = parseText($text,"@","=");
echo $hash["a"] // 1
echo $hash["b"] // 2
echo $hash["c"] // 3
こんな感じにしたいのですが。
0671nobodyさん2008/06/18(水) 05:12:48ID:???
explode
0672nobodyさん2008/06/18(水) 05:27:50ID:z89NqzwY
explode組み合わせて作りってことですか?
0673nobodyさん2008/06/18(水) 06:20:16ID:z89NqzwY
なんかぐぐってもそれらしいのは出てくるんだけど、汎用的なのがない;;
0674nobodyさん2008/06/18(水) 07:11:58ID:???
>>673

おいおい。答え書いてくれてるじゃん・・・。
別に正規表現でもいいけど。
マニュアル読め。
0675nobodyさん2008/06/18(水) 07:26:09ID:???
要するにレディメイドな関数が欲しいんだろ。
ここ数スレ回答し続けてるけど、怠け者の次元が桁外れ過ぎる。
はっきり言って、無能だらけ。
0676nobodyさん2008/06/18(水) 07:43:37ID:???
function str2hash( $input, $delimiter1, $delimiter2 = '=' ) {
 $temp = explode( $delimiter1, $input );
 for( $i = 0; $i < count( $temp ); $i++ ) {
  if( preg_match( "/^(.+?){$delimiter2}(.+?)$/", $temp[$i], $matches ) ) {
   $hash[$matches[1]] = $matches[2];
  } 
 }
 return $hash;
}

ほれ、レディメイドな関数だよ。
parseTextなんて名前じゃ意味分からんから変えたよ。

俺は、PHPはじめてまだ1週間くらいなので、
言語への慣れを身につけたいから、
クソみたいな質問にも極力まじめに回答し続けてるんだけど、
質問者はこの先、未来ないぜ?
ちょっとはマジメに覚える気になれよ。
0677nobodyさん2008/06/18(水) 07:47:45ID:???
ちなみに、foreachじゃなく、forを使ったのは、
array_spliceで配列中のゴミを削除しようと思ったからだけど、
途中方向転換したから。
適当にforeachで書き換えた方が可読性は高まる。
0678nobodyさん2008/06/18(水) 08:07:58ID:???
function str2hash($str, $sep1, $sep2) {
    $data = explode($sep1, $str);
    foreach($data as $tmp) {
        if (trim($tmp) == "") {
            next($data);
        } else if (preg_match("/^(.+?){$sep2}(.+?)$/", trim($tmp), $matches)) {
         $hash[$matches[1]] = $matches[2];
      }
    }
    return $hash;
}
06796672008/06/18(水) 08:45:28ID:???
>>668
PHPからの出力に問題があるのかと思って、こちらに書かせてもらいました。
それで、ためしに広告が出ないサーバ(お金払ったところ)で試したら、
うまくいきました!!
ありがとうございました。
0680nobodyさん2008/06/18(水) 10:31:02ID:???
ホスト名を逆引き検索する以下の関数があると思うのですが、
逆引き検索に時間が掛かると処理がここで長い時には30秒も止ることがあります。
gethostbyaddr($ip)
マニュアルを見ましたが、タイムアウトを設定できるようなことが書いていなかったのですが、
時間が掛かる場合には強制的にタイムアウトさせる方法などありますか?
逆引きできれば別の方法でもいいのですが。
0681nobodyさん2008/06/18(水) 10:54:43ID:???
無理矢理バージョンだと、
set_time_limitをgethostbyaddrの前後に追加する。
前のset_time_limitは指定タイムアウト時間。
後のset_time_limitは元に戻す。

ソケット使って自作した方がいいと思うよ。
あんまり安定した関数じゃない。
0682nobodyさん2008/06/18(水) 11:02:55ID:???
class SubClassA {
...
public function method( SubClassB ) {}
}

サブクラスのメソッドの引数にクラス名を入れているサンプルをよく見るんだが、
これはどういう処理をしているの?

マニュアルのどこに載ってるかだけでもいいから教えて欲しい。
さんざん探したけど、分からなかった。
06836822008/06/18(水) 11:14:25ID:???
追記です。

class SubClassA {
...
public function method( SubClassB $hoge ) {}
}

と、引数部分にクラス名 変数となっている場合がほとんどです。
この二者の関係性がどうしても調べられずに困っています。
0684nobodyさん2008/06/18(水) 11:28:30ID:???
http://jp.php.net/manual/ja/language.oop5.typehinting.php
0685nobodyさん2008/06/18(水) 11:31:43ID:???
>>684
ありがとうございます!
クラス(オブジェクト)における型指定をしているだけなんですね。
もっと複雑な処理をしているものと思って、理解できるのか戦々恐々としてました。
勉強になりました。
0686nobodyさん2008/06/18(水) 12:39:32ID:???
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/
くだすれPHP(超初心者用)4
http://pc11.2ch.net/test/read.cgi/php/1213356756/

とりあえず張っとく
0687nobodyさん2008/06/18(水) 14:24:51ID:AqO1gOD5
YYYYMMDDhhmmの形で十分刻みで値を変えてたいです。

ex)
2008年06月18日14時18分だったら
200806181400

2008年6月18日14時25分だったら
200806181410
といった感じです。

そこで簡単に組んだのですが最初は毎時0分から20分ぐらいまでは使えませんでした。
(原因は分を10で割って丸めた値から単純に-1して10倍したため-10という値を吐いた)
この点を修正した後にどんどん問題はスケールが大きくなって行くことに気づきました。
結局日にちをまたぐとき(毎日0時0分から20分まで)も同様の問題が起こることになり、
月替わりのときですと、さらに面倒なことになると思うのですが、単純に解決することは出来ないでしょうか。


宜しくお願いします。
0688nobodyさん2008/06/18(水) 14:34:01ID:???
>>687
お前が「簡単に組んだ」内容を示してみろ。

あと、例示の内容だが、
ってなんか不思議なんだが。
俺なら
18→10
25→20
ってする。
0689nobodyさん2008/06/18(水) 14:39:44ID:???
その手の処理をするときは、一度UNIXタイムタンプ(time_t)に変換してから処理して終ったら戻せ
0690nobodyさん2008/06/18(水) 14:49:02ID:???
>>687
688に賛成だけど

$y 年,$m 月,$d 日,$h 時, $i 分
date("YmdHi", mktime($h, (intval($i / 10) - 1) * 10, 0, $m, $d, $y))
0691nobodyさん2008/06/18(水) 14:59:20ID:???
date('YmdHi',floor(time() / 600) * 600)
こんなんとか?
0692nobodyさん2008/06/18(水) 15:09:13ID:???
じゃあ俺ならこうしてみようかな
preg_replace('/^(\d{11})./', '${1}0' ,date('YmdHi'));
0693nobodyさん2008/06/18(水) 15:11:44ID:AqO1gOD5
>688
http://firestorage.jp/download/4aa4312921c6d26b8669b1a7ede8229b677cc851

こんな感じです。
例示についてはどうしてもそこの数字の一つ減らしたかったためです。
分かりづらかったらすみません。

>689,690
いまmktimeについて読んでいます。

ちなみに鯖はxreaです。
0694nobodyさん2008/06/18(水) 16:25:20ID:???
>>680
http://jp2.php.net/gethostbyaddr
タイムアウト付きのコードがある
0695nobodyさん2008/06/18(水) 18:35:37ID:mVAzEHez
よくPHPで
『この画面で30秒以上経過したためタイムアウトしました。』
というのを見つけるのですが、
セッションを使ったやり方と使わないやり方が知りたいのですが実際に可能でしょうか?
教えてください
0696nobodyさん2008/06/18(水) 18:39:15ID:???
>>695
例えばどのページ?
0697nobodyさん2008/06/18(水) 18:42:25ID:mVAzEHez
>>696
ヤフー知恵袋です。
携帯(モバイル)でアクセスするさいの質問時によくタイムアウトしてしまいます。
0698nobodyさん2008/06/18(水) 18:53:35ID:EJ2w77Il
$num=10;
for($i=0;$i<$num;$i++){
$hoge.="<tr><td>$i</td></tr>";
}

上記に4行毎

<tr><th>No</th></tr>

を入れたいのですが
どこをどう繰り返せばいいのか教えてください。
お願いします。
0699nobodyさん2008/06/18(水) 19:32:07ID:???
>>698
if文
0700nobodyさん2008/06/18(水) 19:38:51ID:mVAzEHez
誰か教えてください(◎-◎;)
0701nobodyさん2008/06/18(水) 19:43:56ID:???
>>698
思ったとおりの動作になるかはわからんが

$num = 10;
for ($i = 0; $i < $num; $i++) {
$hoge .= "<tr><td>{$i}</td></tr>\n";
if ($i % 3 == 0 && $i != 0) {
$hoge .= "<tr><th>No</th></tr>\n";
}
}
0702nobodyさん2008/06/18(水) 19:44:19ID:KjbYRyD7
>>700
4で割って余りが無い時とかは?
0703nobodyさん2008/06/18(水) 19:45:07ID:KjbYRyD7
>>700
$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 "送信完了"; ?>
どなたかわかる人いましたらレスおねがいします。
0705nobodyさん2008/06/18(水) 19:47:53ID:???
>>700
どこでつまずいてるのさ?
それとも1から書いてくれって丸投げ?
0706nobodyさん2008/06/18(水) 19:48:18ID:???
>>700
これか?
http://www.tagindex.com/html_tag/page/meta_05.html
0707nobodyさん2008/06/18(水) 19:49:38ID:???
>>704
PHPが動作していない
0708nobodyさん2008/06/18(水) 19:52:19ID:???
>>694
助かりました。まさにそれです。
正常に処理できました。

このソースeclipseに張ると赤い印でソースコードのエラーが出るんですよね。
たぶん、eclipseの解析が悪いだけだと思うのですが、少し気持ち悪いです。
でも、正常に動いているので、問題はないです。
0709nobodyさん2008/06/18(水) 20:49:34ID:???
eclipseなんて使うな
07107042008/06/18(水) 20:58:22ID:NgS9+r3y
>>707

レスありがとうございます。再度動作できる環境を整えてやりましたところ、
エラーが出てしまいました。
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:???
>>710
syntax errorって書いてあるんだから、関数が走る走らないの前に、文法エラーなんでしょうよ。

ソース確認してみたら?
0712nobodyさん2008/06/18(水) 21:05:28ID:???
>>710
自分が悪いくせにサーバのせいにするなw
0713nobodyさん2008/06/18(水) 21:19:21ID:NgS9+r3y
>>711
http://www2.uploda.org/uporg1488564.txt
これが全ソースなんですが、確認しても間違いはないようなんです・・・。
0714nobodyさん2008/06/18(水) 21:26:30ID:???
>>713
10行目のEND_DOCの頭についてるスペースかな
0715nobodyさん2008/06/18(水) 21:27:25ID:???
なんかはじめたころの俺の書き方ソックリだwww
0716nobodyさん2008/06/18(水) 21:27:50ID:???
・・・ですぅ
0717nobodyさん2008/06/18(水) 21:34:34ID:NgS9+r3y
>>714
thx!
すべてのスペース削除して実行したらうまくいった。
昨日はじめたばっかりでよくわからないけど動くと感動するね。
0718nobodyさん2008/06/18(水) 21:59:51ID:???
態度豹変してワロタ
0719nobodyさん2008/06/19(木) 01:37:42ID:ThD97MPb
下記例につき、質問2点についてお教え願います。
例…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
>>719です。

間違いがございましたので訂正致します。
訂正箇所…2行目
訂正前…4つの数字
訂正後…5つの数字
ご迷惑をお掛け致しますがよろしくお願い致します。
0721nobodyさん2008/06/19(木) 02:09:06ID:???
数学の基礎だぞ。
高校数学より中学レベル。
数字をアルファベット5個に置き換えたら分かりやすいかもね。
0722nobodyさん2008/06/19(木) 02:12:04ID:???
>>719
いい課題だから自分で可能なところまで考えてみ
0723nobodyさん2008/06/19(木) 02:19:17ID:???
ヒント:簡単なのは、randを使うかshuffleを使うかだな。
どっちでもいいけど。
0724nobodyさん2008/06/19(木) 02:33:47ID:???
だから宿題は自分でやれってw
0725nobodyさん2008/06/19(木) 02:40:05ID:js0BBwoJ
header関数で出力した内容を、後から削除する方法があれば教えてください
0726nobodyさん2008/06/19(木) 02:55:41ID:???
無理です
0727nobodyさん2008/06/19(木) 03:35:32ID:???
>>725
条件によって出力しなければいいだけじゃなくて・・・?
07287212008/06/19(木) 04:28:03ID:???
試しにやってみたら、
>>719が意外と難しい件w

重複数字の処理をどうすっかなー?
07297212008/06/19(木) 06:20:06ID:???
未だにできない……orz

最初に5*4*3の60パターン出して、
重複した数字がある要素を削除すれば、
一瞬で答えは出せるんだけど、
ここまできたら、実際の動作と同じロジックで答えを出したい。
0730nobodyさん2008/06/19(木) 06:24:59ID:???
お手軽3分プログラミング

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:???
ヒント:combinationは有名すぎる問題
07327212008/06/19(木) 06:51:26ID:???
実際の動作と同じロジックで実現させたら、
結局、全パターン試すのと変わらんロジックになった。
無駄な時間だった……。
07337212008/06/19(木) 06:57:06ID:???
>>730-731
こういうのって、どこで勉強するの?
コンピュータサイエンスな教科書に載ってたりする?
それともアルゴリズム系の本に載ってるの?

ちょっと、この辺の基礎知識をたたき直したいんだけど、
お薦め本か何かあったら教えて。
07346982008/06/19(木) 11:57:19ID:???
>>699さん>>701さん>>702-703さん
期待通りに動かすことができました。
ありがとうございました。
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:???
$test[$array[0][0]] = "value";
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:???
chmのマニュアル。
結局、これ以外選択肢がない。
0741顔文字マニア2008/06/19(木) 19:27:59ID:???
2chの顔文字を探しているのですが
どこいけばありますか?
0742nobodyさん2008/06/19(木) 19:29:05ID:???
google
0743ぬるぽん2008/06/19(木) 19:31:12ID:887sfRZc
無料でレンタルサーバでセキュリティー上
『この鯖だけは絶対借りないほうがいい…』
という鯖があれば教えてください。
僕が今知っているのは
ABCOROTIという鯖です。
0744nobodyさん2008/06/19(木) 19:34:00ID:???
>>741,743 板違いだよ
0745nobodyさん2008/06/19(木) 19:33:59ID:AA/L6lsn
FWでよくルーティングに正規表現みるんですが、
/をSplitするんでは不十分なんでしょうか?
0746nobodyさん2008/06/19(木) 19:37:03ID:???
.htaccessとかでは正規表現だし
やっぱ正規表現の方が融通きくし
0747nobodyさん2008/06/19(木) 20:09:16ID:???
>>743
板違いな上に営業妨害なので氏んだほうがいいよ
0748nobodyさん2008/06/19(木) 23:27:40ID:ZPdLjFPP
linuxで、インストールされてるperlモジュール一覧をバージョンも一緒に知りたいんですが
そんな便利なことができるなら教えてくだせえ
0749nobodyさん2008/06/19(木) 23:28:43ID:???
ゴクリ・・
0750nobodyさん2008/06/19(木) 23:39:01ID:???
          ,;r'"´;;;;;;;;;;;;;;;;;;;;;;;;;;`ヽ、
         ,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
質問1について、いろいろと調べましたが、
エクセルの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:???
質問1は、単純に順列だから、5枚中3枚だったら、
(5*4*3) / (3*2*1) って、公式で出せるし、
質問2なんて、三本木法の関数さえ、そのまま書いてくれてんじゃん。


しかし、こういう基本知識のアルゴリズム仕入れる本、どこに売ってるんだよ。
『プログラマの数学』にスクリプト言語での説明はなかったぞ。
PHPじゃなくていいから、誰か基本アルゴリズム書の良書教えてくれ。
0755nobodyさん2008/06/20(金) 00:04:58ID:???
>>753
セッション保存先のアクセス権がないんじゃね?
0756nobodyさん2008/06/20(金) 00:22:52ID:???
>>754
教科書
0757nobodyさん2008/06/20(金) 00:25:50ID:???
>>756
だから何の教科書よ?w
基礎情報処理の教科書でいいの?
07586872008/06/20(金) 00:33:44ID:???
遅レスですが皆さんありがとうございました。
0759nobodyさん2008/06/20(金) 00:34:52ID:TZ4JDjmY
Windows XP, Apache2, PHP5.2.3 (xampp1.6.3a)でUTF-8環境下なのですが
preg_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:???
PEAR::Pager
■ このスレッドは過去ログ倉庫に格納されています