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

【PHP】質問スレッドpart22【php】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん04/09/16 18:17:37ID:/HV017tY
・PHP全般の質問スレです。
・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。


■本家
 http://www.php.net/

■日本 PHP ユーザ会
 http://www.php.gr.jp/

■PHP マニュアル
 http://www.php.net/manual/ja/

■PEAR マニュアル
 http://pear.php.net/manual/ja/

過去スレ, 関連スレ等>>2-4
0652nobodyさん04/09/29 19:08:16ID:???
>>651
違うと決め付けずにmysql_fetch_arrayの結果をvar_dumpでもしてみれ
0653nobodyさん04/09/29 19:11:39ID:???
>>651
俺だったらPear::DB使って

$cnt = $db->getOne($query);

するな。
0654nobodyさん04/09/29 19:17:45ID:???
mysql関数なら、マニュアル。
ttp://php.s3.to/man/function.mysql-num-rows.html
0655nobodyさん04/09/29 19:21:36ID:???
>>651
mysql_queryの返り値から得るとか有り得ないだろ
別名を付けて値を得る
select count(*) as cnt ...... とか
065665104/09/29 19:24:28ID:???
>>652
なるほど。配列に格納される様になっていたのですねorz

>>653
PEARを使おうとも思いましたが、件数表示のためだけに使うのも…と思ってやめました。
今度機会があったら使ってやってみようと思います。

返答ありがとうございました。おかげさまで解決しました。
065765104/09/29 19:29:52ID:???
>>655
そういう方法もあるのですか…勉強してきます
0658nobodyさん04/09/29 20:00:19ID:???
>>651

$hdl = mysql_query('SELECT * FROM … WHERE …') or die('失敗');
$num = mysql_num_rows($hdl);
print $num;

ってんじゃ、いかんのか?
0659nobodyさん04/09/29 20:02:51ID:???
>658 資源の無駄
0660nobodyさん04/09/29 20:24:50ID:???
たった今バッチ1本と検索系1本書き終えましたー。
これが初めてPHPで書いたコード。
質問はしなかったけど、ログは参考になったので、ひとことお礼まで。
0661nobodyさん04/09/29 21:16:38ID:???
>>660
晒せ
0662nobodyさん04/09/29 23:17:00ID:pA14RzMO
たまたまこのスレ覗いてみただけなのですが、
>659 さんの仰っている資源ってどのことを指すのでしょうか?
0663nobodyさん04/09/29 23:18:21ID:???
ケナフとかだろ
0664nobodyさん04/09/29 23:22:15ID:???
>>653
$s = "select count(*) as total from ...";
$q = mysql_query($q);
list($total) = each(mysql_fetch_row($q));

将来的な互換性も考慮するとpearとかくだらんものは使わないほうが良いと思われ。
0665nobodyさん04/09/29 23:28:28ID:???
>>664
PEARよりあなたの方がくだらないですよ(^^)
0666nobodyさん04/09/29 23:29:54ID:???
そこでphplibですよ
0667nobodyさん04/09/29 23:29:57ID:???
666get, zuzaa
0668nobodyさん04/09/29 23:30:19ID:???
orz
0669nobodyさん04/09/30 00:05:29ID:???
>>662
SELECT COUNT(*) だとmysqlが返すのは数値ひとつ
SELECT * だとwhereに該当する行すべて
といいたいんだろうけど、実際問題としてどのくらい無駄になってるかは
mysqlがCOUNT(*)をどの程度最適化しているか、という実装次第
0670nobodyさん04/09/30 00:05:33ID:???
なんか最近sAGEが多いな〜、
このスレは。。。なんだけどなぁ・・・。
新入りが多いのかレベルも低そうだし。
0671nobodyさん04/09/30 00:08:26ID:???
>>669
そんな処理やってねーよ
0672nobodyさん04/09/30 00:26:22ID:???
>>670
Webプログラマー、とくにPHPともなると低レベルなのは仕方ないだろ。
初めてのプログラミングがPHPという奴も多いだろうし。
0673nobodyさん04/09/30 01:34:37ID:???
だよな
Cかアセンブラくらいできないとプログラマとは呼べない
PHPなんて小学生でもできる
0674nobodyさん04/09/30 01:38:25ID:???
「PHPができる」って意味はおかしいけどな。
0675nobodyさん04/09/30 01:42:59ID:???
その以前に、カポコン自体が低レベr(ry
0676nobodyさん04/09/30 01:44:33ID:???
じゃあなに?
PHPが 何?
0677nobodyさん04/09/30 01:50:22ID:???
>>673
いまどきアセンブラってw
あれを選択して得点できる基本情報技術者試験は時代錯誤もいいとこかと。
オブジェクト指向概念でも出題してくれるほうが現場としてはありがたいわけで。
0678nobodyさん04/09/30 01:50:37ID:???
>674
出来る 〜が生じる だからおかしくないだろ
0679nobodyさん04/09/30 02:12:05ID:???
俺はPHPが初めてのプログラミング。
1年やってる。
けど、やればやるほど知らないといけないことが増えまくりでエンドレス。
そして、その度に自分が無知であることに思い知らされる。
何かキリが無い様な気がして、どうしようかと。
趣味でやってる程度だけど、将来役に立つのかさえ分からない。
もの凄く無駄な時間を費やしてる様な気がしてならない。
けど、楽しい。
このスレは、質問したこと無いけど、ずっとROMってる。

言いたいことが上手く言えん。
質問でも何でもないのでスルーよろ。
0680nobodyさん04/09/30 02:21:29ID:???
宣言してない変数は使えないようにしたいんだけど
この機能いつ実装されるんだろうな
0681nobodyさん04/09/30 02:25:36ID:???
>>680
そういうオプションがあってもいいような気はするが、
それはPHPの精神には反するんじゃないだろうか。
別に明文化されてるわけじゃないけど。
0682nobodyさん04/09/30 02:26:06ID:???
>>680
設定でできたはず
0683nobodyさん04/09/30 02:32:33ID:???
え、個人的に必要ならやればいいじゃない。エラー周りのコードをわずかに書くだけだし。

>>679
無駄な時間と思えるようになったのなら上等上等。
Cやハードウェアやアルゴリズムに手を出していい時期になったんじゃないの。
Basicじゃものたりなくなって〜っみたいのが、今はスクリプト言語がそれに当たるのかも知れんね。
0684nobodyさん04/09/30 02:35:23ID:???
今はプログラミングも結構細分化されてる部分があるから、
進みたい分野をある程度絞ってるのも手だろう
もちろんどの分野のコードを読むにも必要になる知識があるが、
やりながら覚えないと楽しくない
必要だからやっとけと言われても実感伴わないとな
0685nobodyさん04/09/30 02:35:46ID:???
>>677
オブジェクト指向何ぞでプログラミングしてたらROMに収まり切りません。

基本情報処理技術者なんだから、アセンブラやCOBOLなんかの古典的言語も"基本"としてやっとけ。
あとは自分の分野じゃ基本では足りない部分をみっちりやれば良い。
0686nobodyさん04/09/30 02:45:06ID:???
今時、実社会にCOBOLなんてあるのかな
いくらやっても、無かったら意味ない

それより、プログラムの流れの理解のほうが重要度が高い
Cを極めて、プラスもう1つがいいと思うが。
0687nobodyさん04/09/30 02:49:20ID:???
> オブジェクト指向概念
> 基本情報処理技術者

基本情報処理もオブ指向もコーディングだけじゃないのよね
0688nobodyさん04/09/30 02:51:16ID:???
PHP は何時までたっても Perl の分家。お遊び言語にすぎない。
PHP で飯が食える時期はあと数年だよ。本気なら C/C++ だね。
0689nobodyさん04/09/30 03:11:33ID:???
PHPもPerlと同じで一時だけ
また都合の良いものが出てきたら、そっちへ一斉に乗り換えるから。

C/C++がキッチリしていれば、どんな言語が出ようとも
理解が早い

とはいえ、実際にPHPで動かしてる訳で、
趣味でCを勉強すればいいだけとも言える。
0690カポコン04/09/30 03:19:35ID:???
C/C++でWEBプログラミングって本気ですか?
.粘着厨まで現れたか・・・w。
0691nobodyさん04/09/30 03:28:02ID:???
ごめんなさい。冗談ですた
0692nobodyさん04/09/30 03:29:37ID:???
オレの口から言えることはただ一つ。本気かどうかを決めるのは
本人次第ということだ
0693nobodyさん04/09/30 06:58:10ID:???
今ならC覚えるよかJavaの方が応用範囲広いんじゃね?
0694nobodyさん04/09/30 09:18:21ID:GWvHODZq
PEAR等に出てくる"::"ってどういう意味?
0695nobodyさん04/09/30 09:19:39ID:???
>>682
設定できないから困ってるんだが
PHP5だと出来るのかい?
0696軟式PHP04/09/30 09:47:04ID:???
>>695
使えないようにというか、エラー設定でE_NOTICEを追加すれば
注意文が出るようになるよ。
0697nobodyさん04/09/30 10:30:56ID:???
>>693
応用範囲を言い出したら、
アセンブラ≧C>Java
なんじゃないか? Cやアセンブラなら手間さえかければJavaのできることはできるよ
0698軟式PHP04/09/30 10:41:17ID:???
応用範囲っていうかケースバイケースでしょうに。
アセンブラはぶっちゃげ覚えなくてもいいと思う。
変数に0入れるより、自分自身でxorしたほうが早いとかそんな時代じゃないしさ。
ゲーム業界でガリガリやるつもりじゃないかぎりはイラヌ。
やるとしてもかじる程度、他の勉強の時間に割り当てたほうが良い。
0699nobodyさん04/09/30 10:41:54ID:???
>>696
参照時はNoticeが出るけど、代入時には出ない。
0700軟式PHP04/09/30 10:48:19ID:???
>>699
ああ、全部「var 変数;」とちゃんと宣言したかったというわけか。。
文盲勘違いでスマソ。あったっけかなぁ。調べてみるか。
0701nobodyさん04/09/30 10:51:39ID:???
fgetcsvとwhileでCSVファイルをテーブル一覧表示にしています。
CSVは20040930.csvのようにyyyymmddで名前を付けています。
これを新しい日付順にソートする方法は無いでしょうか?
070269904/09/30 10:58:14ID:???
>>700
うん。別に俺が元質問者じゃないのだけどね。

俺も最初のころは変数宣言が欲しいなと思ったことはあるが、
慣れてきたのか、もうさほど思わなくなった。

参照の方は、E_NOTICEで回避できるし、代入時のtypoも
うまく言えないけど、簡単に見つけれるような書き方に
なったような気がする。
0703nobodyさん04/09/30 12:08:14ID:???
>>701
配列化済みのファイル名なら、配列関数。
http://php.s3.to/man/ref.array.html

sort()とかrsort()とかその他色々。
0704nobodyさん04/09/30 14:08:03ID:???
>>694
君はOOPで実装したことないの?
0705nobodyさん04/09/30 14:12:51ID:???
別にOOPやってなくてもclass使ってコーディングしたことがあれば…
static method
0706nobodyさん04/09/30 14:17:10ID:???
>>705
分からない人はだまっておいたほうが質問者のためです
0707nobodyさん04/09/30 14:27:01ID:???
分からない奴はどう分からないかが
分からないのだから、何か反応いるって
分かる香具師は、何が分からないか
分かるから、自分で行動する
0708nobodyさん04/09/30 14:31:51ID:???
どちらにせよ704で情報十分だろ
0709nobodyさん04/09/30 14:37:13ID:???
>>694
それならC言語登場前にユニクスもマルティクスも出来上がってる
応用不可能な分野が増えたために言語&開発手法戦争時代に突入したと思われ
0710nobodyさん04/09/30 14:39:50ID:???
>>706
どういう意味?
0711nobodyさん04/09/30 14:43:48ID:???
>>704
汎用性があがると生産性が落ちるのかもな
OSI参照モデルの問題設定と同じだ
071270504/09/30 14:43:51ID:???
>>704
んじゃ、これでどうだ。
ttp://php.s3.to/man/keyword.paamayim-nekudotayim.html

class使うからOOPってわけでもないし。
071370104/09/30 15:12:12ID:???
CSVの中身の表示は置いといて、ファイル名を配列に格納
ソートして表示を試そうとしたのですが、上手くいきません

<?php
$fArr = array();
$df = opendir ("./csvdata/");
while ($tmp = readdir($df)){
if ($tmp !="." && $tmp !=".."){
$fName = basename($tmp);
$fArr[$fName] = $tmp;
echo "$fArr[$fName]<br>";
}
}
closedir ($df);
?>

ここからどのようにしたら良いでしょう?
echoの上にソート関数を置いたら激しくエラーが出ました
0714nobodyさん04/09/30 15:18:40ID:???
>>713 おらおらっ!

<?php
$fArr = array();
$df = opendir ("./csvdata/");
while ($tmp = readdir($df)){
if ($tmp !="." && $tmp !=".."){
$fName = basename($tmp);
$fArr[$fName] = $tmp;
}
}
closedir ($df);

// ↓ ここで ソート

// ↑ ここで ソート

print_r($fArr);
?>
0715nobodyさん04/09/30 15:52:23ID:GWvHODZq
>>712
ようやく分かりました。thx!

OOPしたことはありますが、
「必ず」インスタンスを
作るものだと思っていました。
0716nobodyさん04/09/30 15:57:43ID:???
俺はclassも作るし、-> も :: も使うけど…

OOPじゃなくて、構造化プログラミング。
0717nobodyさん04/09/30 16:56:43ID:h+OAAFCj
PHPで携帯の戻るを制御か禁止する方法知りませんか?
ドコモとauだけでも…
0718nobodyさん04/09/30 16:59:18ID:???
またお前か
0719nobodyさん04/09/30 17:40:26ID:???
放置しとけばいいさ
0720704,71204/09/30 18:22:02ID:GWvHODZq
>712のページのサンプルを引用して・・・

class Aのインスタンスをnewしてから
$a->example()とした方が良いのか?
A::example()とした方が良いのか?

(もちろん、両方の書き方が可能、という前提で)
それぞれの利点/欠点を教えて下さい。
(特に、どっちが早いとか、効率が良いとか)
0721694,71204/09/30 18:22:35ID:GWvHODZq
あ。704間違い。694でした。
0722694,71504/09/30 18:23:37ID:GWvHODZq
712も間違ってるし・・・orz
0723nobodyさん04/09/30 18:26:40ID:gIFHZKNr
GDってなんでBMPファイル作れないんだろ??
0724nobodyさん04/09/30 18:34:15ID:???
>>720
ここは初心者に手取り足取りOOを教えるスレじゃないんですけど。
0725nobodyさん04/09/30 18:36:55ID:???
PHPでサーバーに保存してあるzipファイルとかを読み込んでブラウザに出力してダウンロードしたいんですが
どうしたらいいでしょうか?
0726nobodyさん04/09/30 18:39:18ID:???
>>723
WWWで使われないから。
0727nobodyさん04/09/30 18:43:04ID:???
>>723
できるじゃん
0728nobodyさん04/09/30 18:43:39ID:???
>>725
適当なヘッダつけて標準出力に吐けばダウンロードされるよ。
readfileんとこにサンプルが投稿されてるから、それみて後はググって何とか。
0729nobodyさん04/09/30 18:45:50ID:???
>>727
バージョン古いんでしょ。
0730nobodyさん04/09/30 19:49:20ID:???
725はzipを展開したいんじゃないの?
073172504/09/30 19:53:06ID:???
>>728
やりたいことができました。ありがとうございました。
073272304/09/30 19:59:22ID:gIFHZKNr
BMPをサムネイルにしたり他のフォーマットに
変換したりしたいのだけど
imagecreatefrombmpやimagebmpな関数が
見つからないわけですが…
0733nobodyさん04/09/30 20:02:29ID:???
imagecreatefromwbmp()
imagewbmp()
073472304/09/30 20:13:19ID:gIFHZKNr
WBMP images are Wireless Bitmaps, not Windows Bitmaps.
WBMP is used for bandwidth constrained, black and white,
limited devices such as PDAs and Cell Phones.

って書いてありますが。
実際試してもできぬ。
0735nobodyさん04/09/30 20:29:36ID:???
ややワラタ
0736nobodyさん04/09/30 20:48:58ID:???
>>734
PHPとリンクしてるGDのバージョンと、
試して駄目だったソースから身だけ(数行で済むでしょ)晒してみ。
ただ出来ないバージョンは無かったと思うがな…
0737nobodyさん04/09/30 20:55:55ID:???
せっかくだからPECL新顔のFreeImageβ使ってみてよ。
画質レポートきぼんぬ。
0738nobodyさん04/09/30 20:56:41ID:???
いやほんとアホのレスはサクっと無視でいいからさ。
073972304/09/30 21:09:36ID:???
Apache/1.3.27 (Win32) PHP/4.3.9
["GD Version"]=> "bundled (2.0.28 compatible)
---code---
$file = 'test.bmp';
$size = getimagesize($file);
$dst_im = imagecreatetruecolor(120, 160);
$src_im = imagecreatefromwbmp($file);
imagecopyresampled($dst_im, $src_im, 0, 0, 0, 0, 120, 160, $size[0], $size[1]);
imagewbmp($dst_im, 'thumb.bmp');
imagedestroy($dst_im);
---code---

Warning: imagecreatefromwbmp(): 'test.bmp' is not a valid WBMP file in
c:\root\local\test\bmp.php on line 66
Warning: imagecopyresampled(): supplied argument is not a valid Image resource in
c:\root\local\test\bmp.php on line 67
0740nobodyさん04/09/30 21:38:17ID:???
>>739
単純に対応してないBMPフォーマットを食わせてるだけの気がするが。
GDで適当なの画像をBMPで書き出して、それをもういっぺん食わせてみ。
074174004/09/30 21:42:01ID:???
あと確認しときたいが、自分で書いてる>>734の意味は
理解してるという前提で話をしてるのだが、大丈夫だよな。
074272304/09/30 21:51:32ID:???
えーっとその対応してないBMPをなんとか扱えないかと
思ってたわけなんですが。
ローカルでimagemagickを試したらいけたのだけども
借りてるサーバに入ってない…
素直に諦めます 涙
0743nobodyさん04/09/30 22:01:16ID:WCeDx1bJ
会話中突然失礼します。初心者です。
PHPで画面サイズ取得する方法、誰か知りませんか?
どなたかアドバイスをください。
-----------------
わかんなかったのでjavascriptと組み合わせて
下のような趣旨のソースにしたけどエラーになってしまいました。
画面サイズによってインクルードするファイルを
変えたかったんです。
-----------------------
<SCRIPT language="JavaScript">
<!--
w = window.screen.width;
function jump()
{
if (w < 1024) jumpURL = "<?php include("top1.htm");?>";
if (w > 1024) jumpURL = "<?php include("top2.htm");?>";
location.href = jumpURL;
}
//-->
</SCRIPT>
0744nobodyさん04/09/30 22:05:52ID:???
またお前か
0745nobodyさん04/09/30 22:08:20ID:???
'〜("〜")〜'に汁。てかスレ違い
0746nobodyさん04/09/30 22:09:19ID:???
>>724
パックで頑張る手も。
http://www.dcs.ed.ac.uk/home/mxr/gfx/2d/BMP.txt

どうでもいいが740はえらい天然だな。
0747nobodyさん04/09/30 22:10:03ID:???
>>745
アンタバカデスカ
0748nobodyさん04/09/30 22:13:53ID:???
>>743
javascriptで取得してPHPに教えてあげる考えであってる。
あとはクライアントサイドスクリプトとサーバサイドスクリプトの仕組みと挙動を理解して来い。
0749nobodyさん04/09/30 22:20:12ID:???
パラメータで処理分岐させるんじゃないみたいだから、
PHPにwidth, heightを伝える必要はない。
ロケーションでそのまま飛ばしてるんだからクライアント側の
Getリクエストだけの問題。
jsのlocationで飛ばないケースを対策するのを忘れずに。
0750nobodyさん04/09/30 22:51:22ID:???
アホが釣れたなw
0751nobodyさん04/09/30 23:49:52ID:qd4TgOT3
test.php?var1=aa&var2=bbb
のように呼び出したときに
var1の中にaa&var2=bbbという文字列を入れるにはどうしたらいいのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています