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

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

レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん04/08/27 18:00ID:???
・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
091090704/09/15 09:08:50ID:???
すみません。書き忘れてました
mkdirで新規ディレクトリを作り、そこに新しいファイルを生成したいのですが
できないのです
よろしくお願いします。
091190704/09/15 09:27:42ID:???
ついでに、
新規ディレクトリを作ってパーミッション777に設定しても
ディレクトリを開く事すらできません^^;
0912nobodyさん04/09/15 09:35:22ID:???
>>908
PHPの中の人も大変だな。
091390704/09/15 09:49:50ID:???
根本から間違っていました
mkdirしてパーミッションを707にしたいのですけど
どうしたらいいのでしょうか?
よろしくお願いします
091490704/09/15 11:41:10ID:???
事故解決しました。
0915軟式PHP04/09/15 11:44:30ID:???
事故ガクガク(((( ;゚Д゚))))ブルブル
0916nobodyさん04/09/15 12:11:20ID:dKmLYC94
質問の意味が全く違うかもしれませんが

誰か「絞込み検索」のフリースクリプトが
置いてあるサイト知らない?
0917nobodyさん04/09/15 12:31:44ID:UvnPqyoT
変数が、配列変数か、そうでないかを調べるにはどうすれば良いでしょうか?
0918nobodyさん04/09/15 12:42:56ID:???
is_array()
0919nobodyさん04/09/15 12:57:04ID:MDFIDuDl
調べるということがおまい等は出来ないのかと。。
0920nobodyさん04/09/15 14:02:35ID:???
>>919
【PHP】質問スレッドpart21【php】
0921nobodyさん04/09/15 14:30:23ID:???
初心者ですが質問させてください。
php.iniってどこに置いたらいいんですか?
0922nobodyさん04/09/15 14:41:06ID:???
>921
適切なとこ。マニュアル嫁
0923nobodyさん04/09/15 15:35:11ID:???
>>921
読めと言われても困るだろうからね。
ttp://php.s3.to/man/faq.installation.html#faq.installation.phpini
0924nobodyさん04/09/15 15:48:32ID:???
意外と文盲だったりして・・・・
0925nobodyさん04/09/15 15:52:44ID:???
>>916
検索用のSQLを生成するってことか?
サニタイズ後に普通に文字列結合でやってるけどな。
0926nobodyさん04/09/15 16:41:09ID:???
>>924
きわい
0927nobodyさん04/09/15 17:12:03ID:???
このスレの最初の方に「PHP4 でオブジェクト指向のプログラムを書くと、PHP5に移行したとき
書き直しが必至」というレスがありましたが、俺がハマってるところはバージョンの違いに関係ありますか。
==========
【 状況 】 PHP5 で、以下のようなものを作った。
[class file]
class A {
 var $hoge;
 var $fuga = array();
//  以下、メンバ変数とか配列の初期化のみ。子クラスで使われる変数と配列はすべてここで宣言されている。
}
class B extends A {
 function B {
  あんなこととかこんなこととか;
 }
}
class C extends A {
 function C {
  そんなこととか;
 }
}

[another file]
//  クエリによって、B か C のいずれかのクラスからオブジェクト $obj を生成。
function channel2($obj) {
  $obj->$hoge = "ひろゆき";
  $obj->$fuga = "2ちゃんねる";
}
【 問題点 】 PHP4.1.2 の環境では想定していた動作が得られない。
ユーザ定義関数の外からメソッドを呼び出すことはできるが、ユーザ定義関数内でメンバ変数への値の代入が行われていないようだ。
以上、よろしくお願いしましま。
0928nobodyさん04/09/15 17:28:01ID:???
object型がデフォルトで参照渡しになったのは5からじゃなかったっけ。
4だと function channel2($obj){} とやると、ローカル変数 $obj は参照ではなく、
複製される。ので、関数内で $obj を弄っても、呼び出し側の object は変更されない。
function channel2(&$obj){} と書いて参照渡しにする必要がある。
092992704/09/15 17:39:49ID:???
>>928
ををっ。わかった&できた。
完璧です。ありがたう。
0930nobodyさん04/09/15 17:46:16ID:???
> 俺がハマってるところはバージョンの違いに関係ありますか

そりゃPHP5準拠で書かれたスクリプトがPHP4で動かない可能性は高いでしょ。
なんの問題もなく動いたらむしろ何じゃそらって思うよ。
しかし、上の例だと & で参照を明示する4向けのスクリプトは変更なしで5でも動く。

そういうわけで、バージョンによる互換性のなさに嵌ったというよりは、
単に、PHP4じゃ動かないスクリプトを書いちゃいましたってことじゃないかな。
少なくとも、

> PHP4 でオブジェクト指向のプログラムを書くと、PHP5に移行したとき書き直しが必至

PHP4で書いたからPHP5じゃ動きませんでしたっていう事例ではないと思う。
0931nobodyさん04/09/15 17:53:14ID:???
>>930
アクセス関係の修飾子つずに、予約語にも気を使ったつもりが、
$hoge->foo()->bar(); みたいのでこけたことはある。
けどphp4から5へは思ったよりきっちり下位互換されてて変更なしで動くな。
# pearなんかもそうだけど、php4でOOPの限界に挑戦してるとエラー出る印象。
0932nobodyさん04/09/15 18:00:56ID:???
>>929
4だと、関数の戻り値がObject型のとき、

&function ret_foo() {
  $foo = new Class;
  return $foo;
}
$bar =& ret_foo();

とやらないと、最終行でObjectがドカーンとコピーされちゃって処理負荷になるので
これにも気をつけてね。
0933nobodyさん04/09/15 18:02:15ID:???
&の場所違うし、、。
function &ret_foo() {} ね。
0934nobodyさん04/09/15 18:08:38ID:???
>>932
関係ない話ですまないが でインデントしたコードは
IEなんかでコピペした場合はそのまま動いて便利なんだが
うちのJaneでは、「 」としてコピーされてしまうので
全角空白でインデントされているのと利便性は変わらないな
ということに気づいた今日だった
0935nobodyさん04/09/15 18:12:18ID:???
Janeは糞だったんか。。。
0936nobodyさん04/09/15 18:14:43ID:???
なんか珍しく普通のレスが返ってる気がしまつ。
まともな質問者にはこのスレでもちゃんと回答が出るということか。
0937nobodyさん04/09/15 18:16:42ID:???
それはどうか知らんが、たしかに面白質問者は面白回答を引き寄せる何かがあるなw
093892704/09/15 18:36:04ID:???
>>932
ポインタがわからなくて C で 3回挫折した俺だが、その説明はうまくイメージできた気がする。
OOP は初めてだけど、これからちょこちょこ組んで自分のものにしますわ。

>>930
勢いでローカル環境をバージョンアップしてしまったのです。
借りてる鯖はバージョンが古くて PEAR もなければたいしたモジュールも入ってないので、
せめて自宅の環境だけは最新にしてみたくなったのさ。

友人のサイトのスクリプト改造とか手伝ってる中で OOP をちゃんと理解せんといかんなあと
思い立ったのが PHP5 を入れた理由の一つだけど、今回つまずいたのも一つ勉強になったから
まあこれでいいやと思ってる。

>>936-937
次回がんばります。
0939nobodyさん04/09/15 19:00:09ID:???
正直、ポインタで挫折する人が多いとか言うが、意味がわからん
ただの間接アドレッシングだろ

何が難しいことがあるんだろうか
0940nobodyさん04/09/15 19:20:37ID:???
>>939
お前はhttp://pc5.2ch.net/tech/kako/1040/10408/1040820373.htmlの54だな!
まあポインタはCの入門書で文法覚えた段階では「どうやって何に使うのか」ってのは
そのときは分からないままだからな。初心者がポインタが理解できないというのは正しいんだ。
そこで止まるかほっといて進むかだと俺は思う。
まあPHPのリファレンスはポインタではないのでスレ違いはこのへんで止めるが。
0941nobodyさん04/09/15 19:28:04ID:???
オイラは>>939じゃないが、ポインタの方が直感的に分かり易い。
つーかオイラは、CのポインタよりPHPのリファレンスの方が分かり辛い。
今やってるのはディープコピーなのかシャローコピーなのか
いつも不安になりながら書いてる。
PHPはCとは違うんだし慣れるしかないやね。
で、何事も無かったかのように次の質問どうぞ。
0942nobodyさん04/09/15 19:48:04ID:???
こんばんわ。
MYSQLに直接つっこんでる画像データを出力する際に
縦横サイズの変更を行いたいんですけど、どうすればよいでしょうか?

getimageで縦横取得してからと思ったのですが
Warning: failed to open stream: No such file or directory
みたいな感じで怒られました。
DBに突っ込む際に縦横サイズも格納しておかなければならないのでしょうか?
0943nobodyさん04/09/15 19:51:19ID:dKmLYC94
>>925
よく分かってないけど多分そんな感じです。
出会い系とかで例えてみると、
年齢と性別を同時検索してやるやり方が分かりません。

あと年齢だと
「○歳〜○歳までで検索」
とかいう方法もどうやったらいいものか。

かなり初歩的な質問で申し訳ない。
なんで、いいソース場所知りませんか?
0944nobodyさん04/09/15 19:56:22ID:???
>>940
違うよ、そんな昔から2chには居ないよ。

#つかそのスレ読んで思ったんだが
#「アセンブラと言っている時点で(ry」と言うような頑固な人っていつの時にも居るんだなぁって思ったよ
#そんな細かなこといちいちつっこまれてもねぇ。。「アセンブリ」じゃないと納得しないのかね


以後何も無かったように質問どうぞ
↓
0945nobodyさん04/09/15 20:03:40ID:???
>>943
DB使用ですか?
DB使用ならソースも糞もないんだが
SQL文たった一行で済むぞ
0946nobodyさん04/09/15 20:05:34ID:???
DBなのかファイルなのか・・・
0947nobodyさん04/09/15 20:06:40ID:???
・ユ・。・、・�ヒ3000ナタ
0948nobodyさん04/09/15 20:09:50ID:???
ソース見てもわかるのか・・・
0949nobodyさん04/09/15 20:11:03ID:???
>>947
ファイルに3000点?
EUCかな?
0950nobodyさん04/09/15 20:23:02ID:???
>>942
画像サイズ云々の以前に、ファイルが開けないという警告みたいだけど、
それすらメッセージから読めませんか?
0951nobodyさん04/09/15 20:57:07ID:???
>>943
データの作りや格納方法でやり方は全然違う。
まずそれをきちんと把握すること。

DBMSの場合なら、データの絞込み抽出はそのものが持っている機能。
多くのDBMSはSQLをサポートしており、それにより該当する機能を使うことができる。
なので標準的なSQLを勉強してください。
0952nobodyさん04/09/16 07:19:05ID:???
PHPをCGIとして動かすにはどうすればいいのですか?
そういうことが出来ると聞いたのですが。。
0953nobodyさん04/09/16 07:19:54ID:???
PHPからheader出力してWMVファイルを表示させたいのですが
どうも上手くいきません。

header("Content-type: video/x-ms-wmv");
readfile($hoge);

のようにしています。
調べてみると、ファイルサイズが小さいものは
ちゃんと表示されるのですが、ファイルサイズが大きいものは
「ページが表示されません」と表示されてしまうようなんです。
freadでちょっとずつ読み込んで出力してもだめみたいです。。。
どなたか、解決策をお願い致します。
095495304/09/16 07:21:51ID:???
↑
すいません。ちょっと修正です。
「ぺージが表示されません」ではなく、
「ページを表示できません」でした。
0955nobodyさん04/09/16 08:07:14ID:???
>>952
適切にコンパイルし、適切に設定する。
http://www.php.net/manual/ja/installation.php
0956nobodyさん04/09/16 08:32:58ID:wopdBrj5
http://www.jra.go.jp/joho/index.html の
「競走成績」→「2004年4回阪神2日(9月12日)」→「11R」
と押して表示されるページの内容を取得して
変数に格納したいのですがどうすれば?
0957nobodyさん04/09/16 08:44:51ID:???
>>956
すぐ出かけるので詳しく書けないが、
POST /JADB/accessS
CNAME=〜
xW01=〜
てのを送信すれば良い。

要するに実際のブラウザが送っている情報と同じ物を送れば当然同じ物が返ってくる。
ieHTTPHeaders
ttp://www.blunck.info/iehttpheaders.html や
proxomitron
ttp://www.proxomitron.org/
のようなリクエストヘッダや応答ヘッダを表示できる物を使うと楽。
095894204/09/16 09:25:45ID:???
>>950

画像表示ソースを
<img src="gazou.php">
みたいに呼び出して

gazou.phpの中身は

$sql="画像取得クエリ";
$res = mysql_query($sql,$conn);
header("Content-Type: image/jpeg");
$image = mysql_result($res, 0, "格納カラム");
$image_size = getimagesize($image);
$img_old = imagecreatefromjpeg($image);
$img_new = imagecreate($image_size[0] * 2,$image_size[1] * 2);
//拡大
imagecopyresampled($img_new,$img_old,0,0,0,0,$image_size[0] * 2,$image_size[1] * 2,$image_size[0],$image_size[1]);
print $img_new

こんな感じで書いてみたんですけど、
ソース自体がおかしいですか?
095995604/09/16 10:27:58ID:wopdBrj5
表示されるページをfile_get_contentsで取得したいのですが
string file_get_contents ( string filename [, int use_include_path [, resource context]])
引数をどのように指定すればよいのでしょうか?
0960nobodyさん04/09/16 11:10:46ID:ysqshSNV
携帯サイトで
header("Location : input.php");は使えないの?
飛ばないんだけど、なぜ?
0961nobodyさん04/09/16 11:39:08ID:RlFTlQn8
>>945
データベースから抽出です。
そのSQL文教えてください。
「a条件のみ」「b条件のみ」「a+b条件」みたいに
どうやって条件代えて出力させるんですか?
0962nobodyさん04/09/16 12:08:26ID:???
釣り針だらけだなw
0963nobodyさん04/09/16 12:18:16ID:PHMt0rSl
質問スレだからしかたがないんだと。
0964nobodyさん04/09/16 12:19:25ID:???
>>960
あーたしか、携帯の場合、機種(キャリア?)によって、
フルパスじゃないと飛ばないやつがあったぞ。
まったく携帯サイトは面倒でやってられんよなぁ。
0965nobodyさん04/09/16 12:31:02ID:9nyxCloV
apacheモジュール版のPHPが入ったレン鯖で、
例えばPHPで作られた掲示板なんかで、ログファイルの所有者がapacheだったら、
その鯖の他のユーザーからPHPで改変されちゃう恐れがあるの?

096696604/09/16 12:40:18ID:RlFTlQn8
携帯&PC両用サイトで
書き込まれた絵文字の相互変換ってできますか?
3キャリアはキャリア毎の文字列、PCは画像みたいな出力方法で。

デフォルトだと、ドコモとauならある程度互換性あったと思うけど
ボーダフォンが見当違いな絵文字が出力される。
実際に試した人ご教授よろしく。
0967nobodyさん04/09/16 13:20:22ID:epbnr+EL
$fd=open("hoge") or die();
FALSE条件でなくTRUE条件で実行したいものとか書きたいんだけど
どうしたらいいですか?

これの or の文法はPHPマニュアルのどこあたりに書いてありますか?
0968nobodyさん04/09/16 13:41:13ID:GBVH7aBq
PHPでカナの小文字を大文字に変換してくれるような関数ありませんでしょうか?
0969nobodyさん04/09/16 14:03:40ID:???
わんさわんさーわんさかわんさーいえーぃえーぃえいえー
0970nobodyさん04/09/16 14:03:58ID:???
>>968
http://jp2.php.net/manual/ja/function.mb-convert-kana.php
0971970 04/09/16 14:04:48ID:???
直った、すまねえ_| ̄|○
0972nobodyさん04/09/16 14:10:29ID:???
>>970
それは全角半角だろ?
968が聞いてるのは大文字小文字

カナの大文字小文字変換なんて関数見た事無いけどな
0973nobodyさん04/09/16 14:12:56ID:???
行こう、じきにここも腐海に沈む
0974970 04/09/16 14:21:18ID:???
>>972
いや、全角半角の誤爆かと思ったんだが…。
もしカナの大文字小文字ならわからじ。
0975nobodyさん04/09/16 15:06:10ID:???
やっぱり以前みたく初心者用作るべきかと。。
0976nobodyさん04/09/16 15:07:18ID:???
>975
作れば?
0977nobodyさん04/09/16 15:09:59ID:???
w
0978nobodyさん04/09/16 15:12:02ID:???
>>958
printで出力するんでなくimagegifとかimagejpeg関数使わないと駄目だったような・・・
出力した後はimagedestroyでメモリ解放もしといた方がいいかも。
097995804/09/16 16:15:09ID:???
>>978
お返事ありがとうございます。

出力に関してですが、

$sql="画像取得クエリ";
$res = mysql_query($sql,$conn);
header("Content-Type: image/jpeg");
$image = mysql_result($res, 0, "格納カラム");
print $image

だと問題なく出力されるんです。

$image_size = getimagesize($image);
ここで先に記述しましたワーニングがでてしまって。。。
クエリで取得した際になんならかの処理が必要なのでしょうか。
Warning: failed to open stream: No such file or directory
↑ワーニング
0980nobodyさん04/09/16 16:15:23ID:???
新しくディレクトリを生成して同時にそのディレクトリに新しくファイルを生成することってできますか?
0981nobodyさん04/09/16 16:32:02ID:???
>980
コードは上から順番に実行される。
0982nobodyさん04/09/16 16:37:38ID:5ifGdNVO
配布されているアクセス解析スクリプトの
いわゆる解析対象時間をちょっと改造したいんだけど、
これって難しいでしょうか?
たとえば、普通は1時間おきにアクセスを表すのが多いですが、
夜の10時〜12時に関しては30分おきのアクセス数を表示する、
といった改造をしようと考えてます。
PHPは本見ながら、超簡単なスクリプトを作れる程度の知識です。
0983nobodyさん04/09/16 16:45:38ID:???
そんな質問してくるあんたにゃ難しいんじゃないかい
0984nobodyさん04/09/16 16:46:53ID:???
>>982
俺を含めてここにいる奴の殆どにとっては簡単だと思うが
多分、キミには難しい

っか、難しいと思う根拠を述べてくれ。素でわからん
0985nobodyさん04/09/16 17:16:29ID:???
>>984
おそらくプログラムの変更は簡単だと思われるが、
1部分だけ30分間としてしまうと集計の意味があるかどうかが
難しいところなのだろう。
0986nobodyさん04/09/16 17:21:08ID:???
そのスクリプトの内容にもよるよね。
0987nobodyさん04/09/16 17:34:59ID:???
>>964
HTTP/1.1では絶対アドレスで書くべきところなので
相対アドレスで可なのは融通を利かせすぎなU/Aな訳であって。

規格外の相対アドレスじゃないと駄目(受け付けない)な設定にしてある
レンタルサーバが存在するのが困りモン。
0988nobodyさん04/09/16 17:48:30ID:???
どこだか忘れたけど
ほんの一連の動作でもクラスとしてまとめておいた方が良い
って説明あったけど、これだと逆に大変じゃないですか?
0989nobodyさん04/09/16 17:53:54ID:???
>988
場合によりけりだろ。
0990nobodyさん04/09/16 18:05:43ID:???
最近PHPを他人のプログラム見ながら勉強してます。
非常に初歩的な質問スマソ
$test->d->abc
この->ってよく見かけるんですけど何ですかこれは?
上記一文は何を表しているんでしょう?
検索エンジンでは調べにくいし・・・
0991nobodyさん04/09/16 18:11:18ID:???
http://www.php.net/manual/ja/language.oop.php
ここらでも熟読してくるよろし
0992nobodyさん04/09/16 18:16:56ID:???
次スレまだみたいだから立ててくる
30分までに立たなかったら誰か代わりにお願い
0993nobodyさん04/09/16 18:17:42ID:???
パス名のセパレータってなんすか?
読みましたが、俺頭悪いからよくわかんね
誰かあほの俺でもわかる様に教えてください。
おながい(はぁと
099499204/09/16 18:19:52ID:???
Ok、いけたわ。なんか不備あったらフォローよろしく

【PHP】質問スレッドpart22【php】
http://pc5.2ch.net/test/read.cgi/php/1095326257/
0995nobodyさん04/09/16 18:22:32ID:???
-> が矢印に見えてしかたがない
0996nobodyさん04/09/16 18:27:43ID:???
語源(?)は矢印だろ
0997nobodyさん04/09/16 18:42:52ID:???
クラスとオブジェクトのマニュアル見ていたら
「(PHP 5はオブジェクト指向言語ではありません)」
http://www.php.net/manual/ja/language.oop.object-comparison-php5.php
あらー。マニュアルでそんなこと言い切ってたのね。
0998nobodyさん04/09/16 18:55:43ID:???
言いがかりつける人がいるからね

>>995
=>も矢印に見える
0999nobodyさん04/09/16 19:08:02ID:???
sage
1000nobodyさん04/09/16 19:08:32ID:???
1000ゲットー!!!!!!!!!!!!!!!!
10011001Over 1000Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。