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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/05/23(火) 22:05:17ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

過去スレは>>2
0792nobodyさん2006/06/04(日) 20:56:07ID:???
>>780
そうですか^^
0793nobodyさん2006/06/04(日) 22:37:11ID:???
mysqlにバイナリで保存した画像をphpから出力するhtml上でファイルではなくそのまま表示することはできませんか?
httpの原理的に普通のhtmlだけだと無理な気がしますが。

DB+phpで画像を扱う場合一般的にはファイルパスだけをDBに入れてファイルは普通の方法で保存するのでしょうか?
0794nobodyさん2006/06/04(日) 22:55:01ID:???
<img src="〜.php">
0795nobodyさん2006/06/04(日) 22:57:34ID:???
あ、
img src="./image.php?img_id=100"という方法はわかります。
でも、これだとリクエストでphpが毎回動くので表示数が多いとキツイかと思いまして。
0796nobodyさん2006/06/04(日) 23:00:41ID:???
mysqlに格納したバイナリをphpを介さずに取り出したいってか
0797nobodyさん2006/06/04(日) 23:09:41ID:???
>>796
そんなことができるのでしょうか?
できるならそれが一番いいんですが。
0798nobodyさん2006/06/04(日) 23:20:59ID:???
逆立ちしながら匍匐前進
0799nobodyさん2006/06/04(日) 23:49:15ID:???
>>797
cronjobで一定時間ごとか、DBへの書き込みをトリガーにして更新された画像を
ファイルシステムに書き出すとかすればいいけど、だったらなんでDBに画像を入れるのって
話になるわなぁ。
0800nobodyさん2006/06/05(月) 00:04:48ID:???
>>799
やはり色々回りくどい処理になってしまいますか・・。
DBには画像の情報を保存しておいて画像自体は普通に置いておくのが一番効率が良さそうですね。
それでやってみます。
ありがとうございました。
0801nobodyさん2006/06/05(月) 00:06:27ID:gDfHus2z
Windows XP SP2、Apache/1.3.34、PHP/4.4.2なのですが、fopenでURLが開けません。
以下のスクリプトだけでも、何の応答もありませし、@をとっても、何のエラーも表示されません。
allow_url_fopenはOnになっていますし、アクセス先(例ならwww.example.com)のアクセスログには記録されています。
Firewallは切ってあります。
どのような理由が考えられるか、教えていただけませんか?

<?php
$fp = @fopen('http://www.example.com/', 'r');//URLは変更してあります。
echo 'a';
0802nobodyさん2006/06/05(月) 00:19:15ID:???
>>801
俺はXPでコマンドプロンプト上で動かしたんだけど上手く言ったぞ
何をもってURLがオープンできてないと思ったんだ?
そもそもそのecho ('a')はなんだ?
0803nobodyさん2006/06/05(月) 00:20:20ID:9HSZ1/yM
ここだから書き込める。

一行掲示板を自作したいんだけど、
テキストBOXに書き込ませる。
↓
ボタンを押す
↓(ここがわからん)
変数としてテキストを取り込む
↓
それをデータベースなりテキストなりにインサート

ここまでを取り合えず理解したい。

一行掲示板に限らずこの辺の事詳しく書いてるサイトねーかな?
(一行掲示板 PHP mySQL)でぐぐってみたけどいいとこないんだわ。
08048012006/06/05(月) 00:26:58ID:???
>>802
ありがとうございます。
echo 'a'は、とりあえず何か表示させるためです。
でも何も表示されず、503とかのエラーすら返ってきません。
Apacheのエラーログにも残ってません。

以前はfopen出来たのですが、OS再インストールして環境作り直したら駄目になりました(T-T)
0805nobodyさん2006/06/05(月) 00:39:36ID:???
>>803
まずはあれか?HTMLのフォームが分からないってことか?
とりあえず公式
ttp://php.s3.to/man/language.variables.external.html
で、分かりにくかったら
ttp://oss.kk-ntc.co.jp/jpug/pukiwiki/pukiwiki.php?PHP%2F%A5%D5%A5%A9%A1%BC%A5%E0%C6%FE%CE%CF(%B1%FE%CD%D1%CA%D4)

>>804
とりあえず、fopenを書いてる行をコメントアウトしたらもちろんaが表示されると思うけどそれは大丈夫?
0806nobodyさん2006/06/05(月) 00:45:12ID:???
>>805
さっそくありまとう。

なんかおいらの疑問が解消されそう。

でも最後の1行の意味がよくわかんないんだけど。
08078012006/06/05(月) 00:47:51ID:???
>>805
はい、表示されます。

echo 'a';flush();
$fp = fopen('http://www.example.com/', 'r');
echo 'b';

のようにすると、

HTTP/1.1 200 OK
Date: Sun, 04 Jun 2006 15:46:41 GMT
Server: Apache/1.3.34 (Win32) PHP/4.4.2
X-Powered-By: PHP/4.4.2
Connection: close
Transfer-Encoding: chunked
Content-Type: text/html

1
a

となり、最後の0が来ないまま終了します。
0808nobodyさん2006/06/05(月) 00:52:10ID:???
基本的には、フォームのタイプで使うphpを指定して、そのフォームからアクションが実行されれば、
指定したphpが実行されると。そういう事でぃすか?

最初に見た掲示板のソースでinput使ってて、よくわかんなかったけど、こっちならわかりそう。
0809nobodyさん2006/06/05(月) 00:52:57ID:???
すんごいごめん。

>>804へのレスを俺のだと勘違いしてたYO!
0810nobodyさん2006/06/05(月) 00:53:38ID:???
>>806
最後の一行って?

>>807
おかしいなぁ〜。俺も今ちゃんとローカル上(Apache)で試したんだけど
ちゃんと取れたぞ?
ちょっと取得先のURL変えてみたら?
08118012006/06/05(月) 01:03:43ID:???
>>810
別のURLでも駄目です。
fsockopen使う方法ではうまくいきました。

しかしXOOPSのテスト環境なので、スクリプトを修正するのは骨が折れるので
PHPのバージョンを変えて試してみます。
08128012006/06/05(月) 01:14:40ID:???
PHP Bugsで報告されていました。
ttp://bugs.php.net/bug.php?id=36054
ttp://bugs.php.net/bug.php?id=36102

どうもご迷惑をおかけしましたm(_ _)m
0813nobodyさん2006/06/05(月) 01:22:35ID:???
まさにくだ質なんですが、iTunesなどで
音楽情報をデータベースから読み込んで表示しますよね?

あれと同じようにPHPでもデータベースにアクセスして
検索キーか何かから音楽情報を出力する事って出来るのでしょうか?
PHPでamazonの商品を検索して表示出来るので、その仕組みと同じではないか
と思っているのですが、いかがでしょうか?
0814nobodyさん2006/06/05(月) 01:30:26ID:???
>>813
できる。
そういった情報を提供するサービスも存在する。
0815nobodyさん2006/06/05(月) 01:31:34ID:???
>>813
ttp://pear.php.net/package/Net_CDDB/
08168132006/06/05(月) 01:54:18ID:???
>>814-815
おお!なんか凄いですよ。しかもpearにあるとは。。

どこか日本語で説明しているサイトってないですかね?
0817nobodyさん2006/06/05(月) 02:51:30ID:???
PHPで16進法数字を10進法に変える関数もしくはテクってありますでしょうか??
0818nobodyさん2006/06/05(月) 03:10:46ID:???
http://sakipapa.sakura.ne.jp/blog/2006/03/002534.php
のキャッシュ
http://cc.msnscache.com/cache.aspx?q=3259325326139&lang=ja-JP&mkt=ja-JP&FORM=CVRE
0819nobodyさん2006/06/05(月) 03:12:23ID:???
追記 その4 (3月9日).
「別ドメインのファイルを読めない」をなんとか解決することが、今回の課題ク
リアの最大のポイントかもしれない。

JavaScriptでは到底ムリのようで、もしかしたらPHPなら可能かもとPHPの本を見
てみると……。HTTPで読み込み可能らしい。簡単なサンプルを作ってみたら、あ
っさり読み込んでくれた。それじゃこれを組み込めばと考えてみるが、Ajaxを使
う必要がなくなってしまうことに気がつく。

いやいや、ここはどうしてもAjaxでなんとかしたい。
PHPなら他のサーバのファイルが読めるでしょ……………
あっ、なーんだそういうことか。
ということで作ったのがこれです。
http://sakipapa.sakura.ne.jp/rss-sample0p.html
0820nobodyさん2006/06/05(月) 03:13:12ID:???
動かなかった「rss-sample0.html」との違いはここです。
<button onclick="rssReader('./rss-sample0.php?u=http://rss.rssad.jp/rss/
nifty/manabe')">眞鍋かをりのココだけの話</button>

「rss-sample0.php」と「rss-sample0p.html」は同一のサーバにあるので「rss-
sample0p.html」から「rss-sample0.php」をファイルとして読み込むことは可能。
「rss-sample0.php」はスクリプトだからその実行結果が「rss -sample0p.html」
へ受け渡されることになる。

このような“力技”は「別のサーバのファイルの中身を表示したい!」と同じです
ね。もう少し早く気がつけば良かった。
0821nobodyさん2006/06/05(月) 04:41:27ID:b18GC8fy
最先端の技術を使っているエンジニアは、その技術をドコから習得するんでしょうか?
まさか書店の解説本なんて訳ないですよね?
08228032006/06/05(月) 05:06:03ID:???
>>805
フォームから、データベースに残すのはできた。

サンクス

次は、これをそのままのページに表示させたいんだけど、どういう構造にしていいかがいまいちわからん。

一番新しいのを上にどんどん乗せてくにはどうしたらいいか教えてくり。
0823nobodyさん2006/06/05(月) 05:07:41ID:???
>>821
産地直入。

作ってる所(組織)、作ってる人、作ってる人が屯ってる所、
むしろ自分も生産者のひとりになるとか。
# 自分の見込んだ生産物を消費者に供給する人も重要
08248032006/06/05(月) 05:09:01ID:???
今んとこ、フォームページからサブミット押すと、phpファイルに飛んじゃうから、こっからまたフォームページをリロードさせて、
そのフォームページの下に表示させるようphpを組めばおk?
0825nobodyさん2006/06/05(月) 05:14:51ID:???
>>821
Web及び書店
仕事で使ってんならPHPならPHPでカンファレンスがある(米国だったりするけど)
Googleのカンファレンスにも行ったしMicrosoftのカンファレンスにも行ったことがあるよ
ただ、カンファレンスと銘打った単なる商品の宣伝もあるので注意だな
0826nobodyさん2006/06/05(月) 05:30:57ID:???
「rss-sample0.php」は次のようになります。(たったこれだけです)

<?php
$filename = $_GET['u'];
$array = file($filename);
$filenaiyou = join("",$array);
echo $filenaiyou;
?>

「Ajax + PHP」でRSSリーダーを作る はこれにて完了
0827nobodyさん2006/06/05(月) 05:59:26ID:???
>>817
マニュアルに載っていたような・・・
0828nobodyさん2006/06/05(月) 07:51:20ID:???
ファイルの中から、特定の文字列を含む最初の行を調べる高速な方法を教えてください
0829nobodyさん2006/06/05(月) 08:02:52ID:???
>>828
strpos(), mb_strpos()
0830nobodyさん2006/06/05(月) 08:05:41ID:???
マニュアル
 ttp://www.php.net/manual/ja/
いかにもそういう関数が書かれていそうな「Strings(文字列関数)」ってのがある。
実際に中を見てみるとファイルから直接探すのは無さそう。
ってことは、ファイルの中身(全部あるいは一部分ずつ)を一度読み出してから検索すればよさそうだ。
あらためて見てみると「ファイルシステム関数」ってのがある
0831nobodyさん2006/06/05(月) 10:15:46ID:???
>>674
thanx! できますた。
0832nobodyさん2006/06/05(月) 11:02:44ID:???
fgetsで読み込む際に、改行を読み込まないようにするにはどうしたらよいのでしょうか?
0833nobodyさん2006/06/05(月) 11:15:17ID:???
>>832
無理
普通は読み込んでからrtrimかchopする
0834nobodyさん2006/06/05(月) 15:09:00ID:ovUjrMmN
is_callable() の syntax_only はどういう意味ですか?
trueの時とfalseの時の動作の違いがよくわかりません。
0835nobodyさん2006/06/05(月) 15:19:47ID:???
syntax_only が TRUE の場合、この関数は 単に var が関数またはメソッドであるかどうか だけを調べます。
0836nobodyさん2006/06/05(月) 15:20:17ID:???
>>834
ttp://php.benscom.com/manual/ja/function.is-callable.php
0837nobodyさん2006/06/05(月) 16:02:12ID:ovUjrMmN
>>835, 836
どもども、いやその意味と違いがよくわからず・・・
あ、呼び出し可能かどうかは調べないということですかね。
0838nobodyさん2006/06/05(月) 16:52:30ID:???
primary key でインデックスつけたのを大きい順にデータを取得するにはどうやればいいですか?
0839nobodyさん2006/06/05(月) 16:55:19ID:???
>>838
PHPで?
全件取得後、ソート
0840nobodyさん2006/06/05(月) 17:02:08ID:???
>>839
すみません。
mySQLでインデックスつけたデータです。

全権取得後ソートするしかないですか?
0841nobodyさん2006/06/05(月) 17:05:34ID:???
>>840
スレ違い、板違い
0842nobodyさん2006/06/05(月) 17:10:58ID:???
web用途なんですけど。

ダメですか。
0843nobodyさん2006/06/05(月) 17:26:25ID:???
>>842
オレは構わないけど、適切な回答が得られるかどうかしらない。

MySQLは知らないけど、DESCじゃダメなの?
0844nobodyさん2006/06/05(月) 17:36:29ID:???
>>842
mySQLがPHPなら教える
0845nobodyさん2006/06/05(月) 17:52:24ID:???
ファイルのx行目から読み込みってできますか?
0846nobodyさん2006/06/05(月) 17:57:00ID:???
>>845
改行の位置がわからんからいきなり行の指定はできない
fileとかで読み込んでするしかないね
DBがいいと思う
0847nobodyさん2006/06/05(月) 18:33:11ID:???
>>845
固定長レコードのファイルなら出来る
0848nobodyさん2006/06/05(月) 18:40:11ID:???
>>846
なるほど。分かりやすかったです。
ありがと
>847
バラバラっす

SQL挑戦してみよっかな
0849nobodyさん2006/06/05(月) 20:07:37ID:qfd9QG5u
質問させてください。

認証というか、いわゆるログイン/ログアウトの仕組みをつくりたいのですが、
1.ID/PASS2項目のログインフォームを作る
2.submitしたら、ユーザーテーブルにつないで、POSTされたID/PASSが存在するかチェックする
3.合致するレコードがあったら、ようこそhogehogeさん!とかやる
4.その後はsession_start()をやる
5.セッションクローズしたらログアウト

こんな流れでいいんでしょうか?
ユーザーテーブルの管理は管理者が手動で行うものとします。
とりあえずセキュリティ的なものは最低限にとどめるものとします。
なにか足りないものとかありますか?
0850nobodyさん2006/06/05(月) 20:12:53ID:???
とりあえづ作ってみたらいいじゃん
注意することは↓くらい?
・session_startは始めにやっとけ
・POSTされたデータをそのままDBに渡すな
0851nobodyさん2006/06/05(月) 20:16:58ID:???
なんで人に聞く前に自分で試さないかな?
そっちの方が早くね?
08528492006/06/05(月) 20:22:29ID:qfd9QG5u
>850
れすありがとうございます。
POSTされたデータをそのままDBに渡さないというのはどういうことを指すのでしょうか?

いまとりあえず考えたのは
usernameとpasswordをPOSTして、
その値でwhere username = $_POST['username'] and password = $=POST['password']
みたいなクエリをつくってごにょごにょしようと思ったのですが、
これはまずいですかね?
08538492006/06/05(月) 20:26:11ID:qfd9QG5u
>851
そうですよね。
認証の仕組みについて、なにも資料を持っていないので、
想像でこんな感じなのかなと思ったのですが、
そもそもそんなプロセスじゃダメだ!と言われるかなと思い、
聞いてみました。
とりあえず書き始めます。
ありがとうございます。
0854nobodyさん2006/06/05(月) 20:38:28ID:ycACK6dg
初心者です、すみません。
MySQLにnam、age、hed、bst、wst、hip、fotというレコードがあります。
これをfputs()でnam[0],age[0],bst[0],wst[0],hip[0]\n
nam[1],age[1],bst[1],wst[1],〜[EOF]
というcsvファイルに落としたいです。
hedとfotはいりません。
よろしくお願いします。
0855nobodyさん2006/06/05(月) 20:47:56ID:???
>>854
丸投げは専用のスレにて承ります。
宜しくお願い致します。
0856nobodyさん2006/06/05(月) 20:49:48ID:???
ここはクダ質
0857nobodyさん2006/06/05(月) 20:54:31ID:???
>>854
うわ、ひでぇ文章だな。何となく理解できるが、それ読んでも意味わからない奴たくさんいると思うぞ。
国語勉強しないと駄目だな。
0858nobodyさん2006/06/05(月) 21:03:24ID:???
>>852

XSS
0859nobodyさん2006/06/05(月) 21:17:14ID:???
>>849
PEAR::Auth使えば?
0860nobodyさん2006/06/05(月) 21:20:32ID:/Q4wZYeJ
trim()について、PHPマニュアルを読んだのですが…

> charlistパラメータにより、削除する 文字を指定することも可能です。
> 削除したい全ての文字をリストに してください。
> ..を文字の範囲を指定する際に 使用可能です。

"\n" と "\r" を削除したいのですが、具体的にはどうリストにすればよいのでしょうか?
区切り文字は必要なく、普通に:

trim ($var, "\n\r")

と書いてしまえばよいのでしょうか?
08618492006/06/05(月) 21:36:40ID:qfd9QG5u
>858,859
レスどうもです。いまスクリプト書いています。

XSS脆弱性については勉強が追いついてないです。POSTのデータは
サニタイズ(でいいのかな?)して、タグの除去等は行うつもりです。
passwordの値もmd5()の文字列にしようと思っています。
他になにかありますか?

実はPEARのAuthはカンタンでイイ!みたいな話を小耳に挟み、
サンプルコードなど書いてみたのですが、
なんとなく時期尚早というか、オーソドックスなやり方を知っといたほうが
いいと思ってやめときました。
やはりPEAR::Authはオススメなのでしょうか?
0862nobodyさん2006/06/05(月) 21:55:55ID:???
>>860
それでやってみたところ、何か問題が起こったのか?
0863nobodyさん2006/06/05(月) 22:05:33ID:???
>>861
XSSよりSQLインジェクション
08648492006/06/05(月) 22:51:24ID:qfd9QG5u
>863
どうもです。SQLインジェクションですか。対応しないとまずいですね。
以下のスクリプトはセキュリティ的なものは無視するとして、基本はコレでいいですかね?

//dbに接続したとして
$name = $_POST['username'];
$pass = md5($_POST['password']);

$sql = "select * from usertbl where username = '$name' and password = '$pass'";

$rst = mysql_query($sql, $con);
$col = mysql_fetch_array($rst);
$name = $col['username'];

if (strlen($name)) {
echo "ようこそ".$name."さん";
}
else {
echo "そんな人いません";
}

添削お願いいたします。

0865nobodyさん2006/06/05(月) 22:54:44ID:???
>>864
動かして見ればいいだろ。


セキュリティ的には確かに0点どころかマイナスだな。
08668492006/06/05(月) 23:00:27ID:qfd9QG5u
>865
早速レスありがとうございます。
一応意図した通りに、登録されてる場合は名前が出るし、登録されてない人は、
いないといわれます。

セキュリティ的なものはあとでhtmlspecialcharとかしようと思ったのですが、それでもマイナスでしょうか....。
どのへんが致命的にイクナイ!ですかね?
0867nobodyさん2006/06/05(月) 23:12:36ID:???
>>886
アドスラに気を配るのと、
シングルクォートもどうにかする。

username = '' or username is not null and password = '$pass';
みたいになる。
0868nobodyさん2006/06/05(月) 23:13:59ID:???
is not null じゃあれなので、
username = '' or username != ''

$nameに、
' or username != '
みたいな感じで入れられるのを想定する
0869nobodyさん2006/06/05(月) 23:36:10ID:???
pear.php.net -- 落ちてないか?
つながんねーYo!
0870nobodyさん2006/06/05(月) 23:36:30ID:???
MySQLに入っているデーターを配列に入れる関数ってありますか?
小5なんで分かりやすく教えてくれると嬉しいデス
0871nobodyさん2006/06/05(月) 23:46:46ID:???
mysql_fetch_arrayとかで1行ずつ取り出し、配列に入れてくしかない。
ttp://kids.goo.ne.jp/cgi-bin/kgbody.php?BL=0&SY=0&TP=http://php.s3.to/man/function.mysql-fetch-array.html

なお、PostgreSQLなら、pg_fetch_allでいっぺんに取得できる。
0872nobodyさん2006/06/06(火) 00:01:24ID:???
>>870
悟リ?
0873nobodyさん2006/06/06(火) 00:13:32ID:???
うまく検索出来なかったので、質問します。
正規表現をしたい箇所で[0-9A-Za-z]に記載して半角英数字は表示されるのですが、
- を表示させたい場合、どのように書けばいいのでしょうか?
0874nobodyさん2006/06/06(火) 00:28:43ID:???
>>873
\-
0875nobodyさん2006/06/06(火) 00:29:38ID:???
>>873
エスケープ
0876nobodyさん2006/06/06(火) 00:29:40ID:???
\
0877nobodyさん2006/06/06(火) 00:30:35ID:???
©
0878nobodyさん2006/06/06(火) 00:31:57ID:???
>>873
ブランケット内の最後に書けばよろし。
[0-9A-Za-z-]
08798492006/06/06(火) 00:32:55ID:KDLdvTgn
>867,868
ありがとうございます。
確かに危険ですね。
セキュリティ対策も同時進行で勉強するようにします。
phpセキュリティのオライリー本なども出てたので。
08808732006/06/06(火) 00:37:28ID:???
>>874-878
ありがとうございます。勉強になりました
0881nobodyさん2006/06/06(火) 01:25:50ID:P9qxVQD6
ある掲示板スクリプトを使用中で、そのスクリプトは投稿者のIPを記録しない。
記事とその記事の投稿者IPが対で分かるには、どう書けばいいですか。
下のものでは不可能でした。
<?php
$logfile = "./.abc";
$u1 = date("Y/n/j D H:i:s",time()) . "," .
$HTTP_SERVER_VARS["HTTP_USER_AGENT"] . "," .
$HTTP_SERVER_VARS["SERVER_NAME"] . "," .
$HTTP_SERVER_VARS["GATEWAY_INTERFACE"] . "," .
$HTTP_SERVER_VARS["QUERY_STRING"] . "," .
$HTTP_SERVER_VARS["REMOTE_ADDR"] . "," .
$HTTP_SERVER_VARS["REMOTE_HOST"] . "," .
$HTTP_SERVER_VARS["CONTENT_LENGTH"] . "," .
$times = time();
$postip = $_SERVER['REMOTE_ADDR'];
$new_msg = "$name\t$wburl\t$com\t$times\t\t\t$postip\n";
$HTTP_SERVER_VARS["HTTP_REFERER"] . "\n";
$fp = fopen($logfile, "a");
flock($fp,2);
fwrite($fp,$u1);
flock($fp,3);
fclose($fp);
?>
をrequire。
0882nobodyさん2006/06/06(火) 01:32:43ID:???
getenv("REMOTE_ADDR");
0883nobodyさん2006/06/06(火) 01:34:30ID:???
require
0884nobodyさん2006/06/06(火) 01:35:10ID:???
.abcのパーミッション
0885nobodyさん2006/06/06(火) 04:15:03ID:???
(´-`).。oO($new_msgとかその直下の行って何のためにあるんだろう・・・)
0886nobodyさん2006/06/06(火) 04:56:22ID:???
本と他所のPHPプログラムを見ながらオリジナルの物を組んでいるのですが

if(!$name||ereg("^( | )*$",$name)) error("名前が書き込まれていません");

これの意味が分かりません
$nameが記入されているかどうかを調べる処理というのは分かるんですが
それぞれの文字列にどういう意味があるのか分かりません
検索しようにも記号ばかりなのでぜんぜん引っかかりません・・・
どうかご教授お願いします
0887nobodyさん2006/06/06(火) 06:33:03ID:???
>>881,886
そんな腐ったプログラムは窓から投げ捨てろ
0888nobodyさん2006/06/06(火) 06:47:22ID:???
>>886
オマエはifも分からないと言うのか
マニュアル嫁
0889nobodyさん2006/06/06(火) 07:22:28ID:???
ご教授ではなく「ご教示」
見よう見まね?
0890nobodyさん2006/06/06(火) 07:35:32ID:???
PHP5では例外がサポートされてるけどfinallyがサポートされてません。
例えば次のようなtry-catchがあったとして
try {
 ...throwする可能性のある処理...
} catch (MyException $ex) {
 ...catch処理...
}

finallyと同じことをしようとすると、今は次のようにしています。

try {
 ...throwする可能性のある処理...
 ...後始末...
} catch (Exception $ex) {
 ...後始末...
 if ($ex instanceof MyException) {
  ...catch処理...
 } else {
  throw $ex;
 }
}

いくらなんでもこれはださいので、もっとスマートに書けないかと考えているのですがいい考えがありません。
みなさん、finally処理はどうやってますか?
 
 
0891nobodyさん2006/06/06(火) 08:25:28ID:???
>>886
eregは調べたのかい?
0892nobodyさん2006/06/06(火) 14:55:13ID:19d/3eWN
PHPというか数学的な質問なんですが、
変数$aの数値が2の何乗かどうか調べたいのですが、そのような関数も見つからなかったので、自作しようかと思うんですが、どうすればスマートですかね?

例えば
$a=2の時は1
$a=8の時は3
$a=5の時は2余り1
としたいです。

考えたのは2*$iを繰り返しながら比較していくものですが、他に手はありませんかね?
■ このスレッドは過去ログ倉庫に格納されています