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

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

レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん04/05/17 17:14ID:AT+bUkag
・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


抜けているものがあったら補足願います
0825ロボコン04/06/09 21:25ID:???
呼んだ?
0826nobodyさん04/06/09 21:37ID:???
ディレクトリを作成して、そのディレクトリにファイルをアップロードする
PHPプログラムを作成しようとしているのですが、
下記のようなプログラムでは首尾よく動作しないようです。

$old_mask = umask(0);

if (!mkdir( $dir_path, 0777 )) ;//error
elseif (! chown( $dir_path, 'lysk' )) ;//error
elseif (! move_uploaded_file( $tmp_path , $dir_path.'/'.$file_name )) ;//error
else // success

umask($old_mask);

エラーではuidが異なる、との事なのですが、
何か解決策はないでしょうか?
082782604/06/09 21:37ID:+yhnwBMA
すみません、ageます。
0828nobodyさん04/06/09 22:49ID:???
きもオタとヒッキーの醜い争いには辟易しますね。
ここらでカコポンさんのウィットにとんだプログラム談義でも聞きたいなぁ。
0829nobodyさん04/06/09 22:55ID:???
>>483
ここに逝けば会えますよw
http://board.aaacafe.ne.jp/
0830nobodyさん04/06/09 22:56ID:???
>>483=X
>>828=O
0831nobodyさん04/06/09 23:06ID:???
カポコン氏がいなくなるととたんにスレのレベルが下がりますね。
2chだからしょうがないとは言え、あまりカポコン氏の足を引っ張るような
発言は控えるべきではないでしょうか?>皆さん
0832nobodyさん04/06/09 23:29ID:???
>>831
スレ違いな「雑談の」レベルの話しならそうなりますね。
0833カンポコ04/06/10 04:04ID:nLvlGUQO
お前ら全員学習ルーム行き。
0834オチンコ04/06/10 07:25ID:???
オマエモナー
0835nobodyさん04/06/10 08:31ID:???
>>822
はぁ?俺がずっとレスしてると思ってるのか?

っつーか>>822 = >>823丸分かりだし
0836nobodyさん04/06/10 09:19ID:24VeZA6J
>>835
もう終わった話題掘り起こすなハゲ
キモスギ( ´;゚;ё;゚;)
0837nobodyさん04/06/10 10:07ID:???
>>826
safe mode をoffにする。
0838nobodyさん04/06/10 11:07ID:???
>>836
顔真っ赤にしてまで上げるな馬鹿
0839nobodyさん04/06/10 13:09ID:???
>>835
アイタタタ・・・
粘着厨の上に認定厨か
0840nobodyさん04/06/10 14:15ID:???
>>839
オマエモナー
0841nobodyさん04/06/10 14:57ID:???
>>838
プッ
モニターに映ってる顔見てみろwwwwwwww
0842nobodyさん04/06/10 15:08ID:???
>>841
キムタクにそっくりの男が写ってる。
0843nobodyさん04/06/10 15:23ID:???
>>842
うp
0844nobodyさん04/06/10 15:38ID:???
キムタクが居るスレはここですか?
0845nobodyさん04/06/10 15:45ID:???
托タク
0846nobodyさん04/06/10 15:58ID:???
>>841
自分のこと言ってどうするw
0847nobodyさん04/06/10 15:58ID:???
オマエモナーって死語じゃなかったんだ
0848nobodyさん04/06/10 16:02ID:???
金托
0849nobodyさん04/06/10 16:12ID:???
>>842
やーいブサイク
0850nobodyさん04/06/10 16:40ID:???
>>849
キター
0851nobodyさん04/06/10 17:07ID:???
カスばっかになったなwwwwwwwww
0852nobodyさん04/06/10 18:01ID:???
漏れは今日からPHPはじめまつ
よろすく
0853nobodyさん04/06/10 19:01ID:???
ただいま在庫処分のため即レス大サービス中!
良質な質問には今回限りの特典が!

>>852
はじめる前にまず質問
0854nobodyさん04/06/10 19:04ID:???
即レス期待してます!
ZeevとAndiはそれぞれどこの国の人(生まれ)ですか?
0855nobodyさん04/06/10 19:25ID:???
イスラエル?だっけ?しらない
0856nobodyさん04/06/10 20:10ID:???
>>851
オマエモナー
0857nobodyさん04/06/10 20:41ID:???
>>855
イスラエルで合ってると思う
http://www.itmedia.co.jp/news/0101/24/e_zend.html
085885404/06/10 20:48ID:???
>>855,857
あんまり"即"じゃなかったけどありがとう
Zeevってかっこいい名前だと思ってたんだよ
085985304/06/10 21:12ID:???
飯食ってジョギングして風呂入っている間に解決しちまったか
0860nobodyさん04/06/10 21:16ID:O23c+QRz
質問でございます。
クラスの継承とコンストラクタに関してなんですが、
例:
class A {
function A(){
echo "A";
}

class B extends A {
function B(){
parent::A(); // 親コンストラクタ
echo "B";
}
}
で、
$b = new B();

としたときに、Aのコンストラクタも呼ばれるようにするには、
parent::親クラス名()

なんでせうか?
なんかせっかくparentってあるのに、親のクラス名の
メソッドを呼び出すのに違和感があるんですが。ほかに方法があったら教えてくだちゃい。

0861nobodyさん04/06/10 21:32ID:???
$this->A();
でもいい

というか
parent::A();
のAは親クラス名と考えるからしっくりこないんじゃない?
parent::親クラスのメソッド名
と考えればしっくりくるんでないかい
0862nobodyさん04/06/10 21:45ID:???
>860
意味が分からんが、parentで呼び出すのはコンストラクタだけじゃない以上どうしようもないんじゃないか。
サブクラスにコンストラクタがないと親クラスのコンストラクタが自動で呼ばれるから嫌なら書かなくてもいいけど。
0863nobodyさん04/06/10 21:50ID:???
>>862
>parent::親クラス名()
861が書いてるが、これはメソッド名であって「親クラス名」じゃない、というだけの話。
つーかそんな仕様あったのか。マニュアルに書いてあったっけ。
086486004/06/10 22:31ID:O23c+QRz
>>861-863
ありがとさんです。

PHPのマニュアルの「親クラス」ってとこには↓のように書いてあるんですね。
>コードの基底クラスのリテラル名を使用する代わりに、
>特別な名前 parentを使用する必要があります。
>この名前は、 クラスのextends宣言で指定された基底クラスの名前
>を指しています。これにより、基底クラスの名前を複数の場所で
>使用する ことを避けることが可能です。実装の際に継承ツリーを変更した場合でも、
>変更は簡単で、クラスのextends宣言を変更するだけ ですみます。

ついでに、「コンストラクタ」のとこには
>PHP 3 および PHP 4のどちらでも派生クラスのコンストラクタから基底
>クラスのコンストラクタを自動的にコールすることはできません。
>上流のコンストラクタを適切にコールするように伝播させることは
>あなたの責任でやるべきことです。

とあるんで、parent::親クラス名に行き着いたわけなんです。
別に継承ツリーを変更するのを簡単にしたいというわけではないんだけど、
(っていうかそんな状況は考えたくもないですが)
Javaの「super()」みたいに「parent()」とかできんもんかと思ったわけです。

と、いうわけで、納得しました。
ありがとうございました。
0865nobodyさん04/06/10 22:31ID:B73mvqde
コーディングの質問じゃないんですが、よいでしょうか?
データベースを活用したウェブプログラミングがしてみたくて、今度phpをはじめようと思います。
それまで、プログラムはほとんど書いた事がないんですが、最初の一歩としては、やはりマンモス本のようなものを買ってきて、
環境をそろえて、試しながら勉強するのがいいでしょうか。
自分の使ってるウェブホスティングサーバーには、PHP3/4が使用可能と書いてあるんですが、この場合、3を勉強してから4うを勉強したほうがいいのかな。
それとも、4の入門書とかも充実してますか?

もしよろしかったらアドバイスお願いします。
0866nobodyさん04/06/10 23:12ID:???
>864

parentが親クラス名を指してるんじゃないの?
parent = 親クラス
なんで、
prent::メソッドは
親クラス::メソッドと同意かと。
0867nobodyさん04/06/10 23:18ID:0Ch08L+0
phpのmail関数を使ってEZに送信して
ある端末では受信できるのに
ある端末では受信できません。

各地方毎のEZメールサーバで受信設定が違っていたりするのでしょうか?

0868nobodyさん04/06/10 23:31ID:0Ch08L+0
↑
すみません、有る端末とはEZ端末のことです。
086986304/06/10 23:40ID:???
そんな仕様ってのは親コンストラクタが自動で呼ばれるやつのことね。
0870nobodyさん04/06/10 23:54ID:???
>>867-868
EZ端末のことをここで聞いてどうする?
EZメールサーバのことをここで聞いてどうする?
0871nobodyさん04/06/10 23:56ID:???
>>865
5が出ようかって時に3の勉強しなくてもいいでしょ。
0872nobodyさん04/06/10 23:57ID:???
>>865
バージョンてそういうもんじゃないだろw
php4から始めればいいよ。
これからやろうというなら3を気にするよりは5のほうを横目で見ておいたほうが。
phpは仕様変更が激しい。参考資料が古くて「サンプルどおりやってるのに動きません」的な
ハマリがこのスレでも度々出るので、テキストは古いものより新しいものを。
いずれにしても互換性を失うような差異はマニュアルに注がある(はず)ので、
php3についてはそこでフォローする程度でいいと思う。
(phpの歴史について知りたいというなら勉強したほうがいい?)
0873nobodyさん04/06/11 00:01ID:???
>>870
答えられないなら書くな
0874nobodyさん04/06/11 00:06ID:???
>>873
いや、でも、その通りだろ。スレ違い。
0875nobodyさん04/06/11 00:11ID:knpGp2r3
ヘ ッ ダ 情 報 (WEBプログラミングなら当然?)

などについて答えられるかと思ったんですけど
答えられる方がいないので、違うスレで質問しようと思うんですけど
どのスレが良いでしょうか?

それとも、ちゃんとしたMLに聞いたほうがいいのでしょうか?
0876nobodyさん04/06/11 00:14ID:???
>>875
お前は誰?
>>867か?
0877nobodyさん04/06/11 00:18ID:???


むづかしい質問はMLであながいします。


0878nobodyさん04/06/11 00:20ID:???
>>875
まともに質問も出来ないくせに答えられる方がいないとか言ってる人はMLへどうぞ。
0879nobodyさん04/06/11 00:24ID:???
釣りと便乗騙りだろ。ほっとけよ
0880nobodyさん04/06/11 00:35ID:???
経験上

簡単な質問=>誰でも答えることが出来てレスが速いのでこのスレを利用しる
むづい質問=>答えられる人が限られてくるので時間がかかってもMLを(以下略

てかこのスレは質問に答えるというより雑談スレに近いけどな。
0881nobodyさん04/06/11 00:47ID:???
どうした。スレの流れから激しく外れてるが・・・。
つーか今はどこの技術系mlもホント大変なんだからホイホイ誘導かけるのはやめたれよ。
http://pc5.2ch.net/test/read.cgi/php/1085576406/
0882nobodyさん04/06/11 00:57ID:???
php.gifのロゴってダサいよな。
0883nobodyさん04/06/11 01:57ID:???
>>882
喪前が作って提供汁。
0884nobodyさん04/06/11 05:44ID:???
>>883
んじゃこんなのはDo?
ttp://matsuya.dyndns.tv/2ch/img-box/img20040611054229.gif
0885nobodyさん04/06/11 07:38ID:???
>>884
いまいち
0886nobodyさん04/06/11 09:05ID:???
俺は好きだけど。BBSのロゴとしてファンシーな
感じ好まれるが、言語ととしてのロゴには向かんと思う。
かといってデジタルっぽいのは駄目だしねぇ。


0887nobodyさん04/06/11 11:50ID:???
アナログでファンシーではないロゴ
0888nobodyさん04/06/11 11:55ID:???
同案多数だろうけど。
http://www.php.co.jp/images/logo.gif
0889nobodyさん04/06/11 13:32ID:???
>>864
遅レスですが、PHP5からは、コンストラクタ名に _construct が
使えるようになるので、parent::_construct のように使用することを
想定しているのだと思います。
0890nobodyさん04/06/11 14:43ID:K5FDKUKd
explode関数で半角スペースと改行で文字列を区切りたいんですが、どう指定すればよいでしょうか?
0891nobodyさん04/06/11 14:44ID:???
preg_split
0892nobodyさん04/06/11 15:13ID:nBugQ+Dj
>>890
print_r(split("\n| ", "a\nb c\nd\ne f g\nh"));
0893駆出しPHP04/06/11 17:11ID:???
$file = "./file.csv";

function Open_File(){
global $file;
$data = file($file);
略
}

と

Open_File($file);
function Open_File($file){
$data = file($file);
略
}

って、どっちがスマート?関数の中に持ち込みたい変数がいっぱいあるときとか、困っちゃうんだけど。
0894nobodyさん04/06/11 17:13ID:???
後者
0895nobodyさん04/06/11 18:05ID:???
phpとか言語に関係なく後者だろ。
たとえ引数が一杯あっても、必要なら渡せばいい。いや渡すべき。
089689304/06/11 18:34ID:???
なるほど、ありがとです。これからも精進していきます。
0897nobodyさん04/06/12 13:47ID:cU3nmCOb
ファイルの1行目だけを書き換えるとき
$fp = fopen("$filename","r+");
fseek($fp, 0);
fputs($fp, "hoge");
fclose($fp);
だと、1行目の文字数が増えたときに2行目が削られてしまいます。
どうすれば、そうならないようにできるでしょうか?
0898nobodyさん04/06/12 13:52ID:???
全部を書き出しなおす
0899nobodyさん04/06/12 13:57ID:???
PHP5インストールしてみたらDOMが使えなくなったんだが関数名変わった?
PHP5への移行手順見ても変更点に書いてないんだよね。
ビルトイン関数になったことはチェンジログに書いてあったんだけど。
SimpleXMLは既にマニュアルに載ってるのになぁ。
090089704/06/12 13:58ID:???
>>898
そうすることにします。
ありがとうございました。
0901nobodyさん04/06/12 14:50ID:???
ちなみに>>897のfseekまったく意味ないぞ
0902nobodyさん04/06/12 14:51ID:7kZvk3xj
質問させてください。
現在表示しているページ(PHPのページ)のソースコード(HTML)を、
ページのボタンを押したらクリップボードに貼り付けるにはどうしたらいいか教えてください。
0903nobodyさん04/06/12 14:57ID:???
Q.ページのボタンとは?
A. >>904
0904nobodyさん04/06/12 15:01ID:???
>>902
PHPじゃなくてJavaScriptです。web制作へ行ってらっしゃい
0905nobodyさん04/06/12 21:49ID:???
ついにJSの質問まで
0906nobodyさん04/06/12 22:28ID:rmxeznmT
ありがち。
0907nobodyさん04/06/13 01:21ID:aBgu1BW2
プログラム初心者(VBA程度)ですが
LAMPで簡単なシステムの鯖を立てたいと思います。
PHP学ぶのにお勧めの本がございましたらお教えください。
0908nobodyさん04/06/13 01:37ID:???
>>907
本屋に行って見て来い。
自分で理解できると思うのを買えばいいだろ。
0909nobodyさん04/06/13 02:14ID:+VXh+rkJ
phpで、テキストファイルに書き込みをしたいのですが、
その際にテキストファイル内で「改行」をさせるには何を書き込めばいいんでしょうか。
0910nobodyさん04/06/13 03:16ID:JLZr3UnG
\r とか \n とか
0911nobodyさん04/06/13 03:21ID:???
質問です。
このようにクエリーを拾うように設定して、
$PIX1 = aaa.jpg;  //画像1
$PIX2 = bbb.jpg;  //画像2

if( !empty($_REQUEST["pix"]) ) {
$PIX = $_REQUEST["pix"];
}
<body>
<a href="#top?pix=$PIX1">ここをクリックして画像1を表示</a>
<a href="#top?pix=$PIX2">ここをクリックして画像2を表示</a>
<img src="$PIX" >

</body>

同じHTML内でこのようにリンクさせて送られたクエリーを元に
変数を入れる事は出来ないでしょうか?
問題はスクリプトがおいてあるファイル自信が送信している事で、
やっぱりsubmitとformを使うしかないんでしょうか?
091290904/06/13 03:42ID:+VXh+rkJ
>>910
ありがとうございます。
最初\nを使っていたのですが、改行できませんでした。
おかしいなと思いいろいろやってみたら
fputsするときにダブルクオーテーションで囲んだらできました。
ありがとうございました。
0913nobodyさん04/06/13 03:50ID:+VXh+rkJ
もう一つ質問させてください。


phpで掲示板のようなものを作っているんですが、
掲示板の「投稿」ボタンを押すと別窓でphpの投稿フォームが開くようになっているんです。(javascriptで別窓開)

投稿フォームでは、フォームに入力されたものをテキストファイルに書き込むのですが、
投稿されたものをすぐ掲示板の表示に反映したいのです。

掲示板の表示もphpによるもので、
テキストファイルで用意されたlogを読み込んで表示しているのですが、
フォームにより投稿されたら、その窓を自動で更新するようにしたいのです。

何かいい方法はありますでしょうか。
0914nobodyさん04/06/13 06:42ID:Kyi4KU36
PHPの掲示板なんですが、クッキーをチェックするようになって
いるので、そのままでは携帯から書き込めないので、
if(!isset($_COOKIE[PON])&&($HOST!=="^proxy.+\.docomo\.ne\.jp$")){
DispError("■ 書き込み確認 ■");
}
のようにしたのですが、相変わらず書き込めません。
文法的に間違っているのでしょうか?教えてください。
0915nobodyさん04/06/13 11:00ID:???
>>914
if(!isset($_COOKIE[PON])&&(!ereg('^proxy.+\.docomo\.ne\.jp$',$HOST))
だろ。
0916nobodyさん04/06/13 11:07ID:wH9a3wAG
PHP初心者です。宜しくお願いします。
私は現在、HTMLでサイトを作っているのですが、
サイト運営の簡略化と、動的コンテンツを作りたい為にPHPで
作ろうかと考えています。

さて、現在、SEOが大流行で、私のページもSEOが
功を奏してか GOOGLEやYSTからのアクセスが多少あります。
しかし、現在のHTMLをPHPにした場合、インデックス(クロール)されにくいと
聞きました。その改善策として

通常、ファイル指定せずにディレクトリで終わるURLを指定すると

例: http://pc.2ch.net/php/ など

index.htmlを表示しますが、 http://../php/ を指定した時に
http://../php/sample.phpを表示し、phpファイルでありながら
URL は ../php/ なので検索エンジンにクロールされる方法が
あるらしいです。

そこで、質問です。ディレクトリで終わるURL http://www.2ch.net/php/など
を指定した時にindex.html以外のソースを返す方法を教えて下さい。

お忙しい中、恐縮ですが、宜しくお願いします。
0917nobodyさん04/06/13 11:13ID:???
それはPHPの質問ではありません
.htaccessやhttpd.conf で設定してください
0918nobodyさん04/06/13 11:29ID:???
>>916
最近のロボットは賢いから静/動的コンテンツで
どうこうは余り考えなくていいよ。ちゃんと取ってくれる。
そんな考えてることよりコンテンツ自体を充実させるのが本質。
0919nobodyさん04/06/13 11:36ID:???
>>916
君が思うような PHPじゃない♪ もはや PHPじゃない♪
単にindex.phpで吐け♪ それがPHPじゃない?
0920nobodyさん04/06/13 12:06ID:???
>>911
#topが邪魔してるだけでないのん?
確か#以降はREQUESTとしては無視されたような。

>>913
投稿フォームのsubmit後のページで
javascriptを使って掲示板をリロードすればよいのでは?
どんな方法を使ったとしてもPHPは関係ない部分だよ。
0921nobodyさん04/06/13 14:14ID:JLZr3UnG
どうでもいい質問が多いな。
PHPの敷居が低いせいか。
0922nobodyさん04/06/13 14:24ID:???
WinXP(pro) +PhpDev(php4.3.5)環境です。
SyntaxCheckなんぞやってみたくてDOS画面から
c:\phpdev\php\php.exe -l c:\phpdev\www\test.php
と、やっても何も表示されません。test.phpには、
<?php
   for($i=1; $i<=10; $i++){
      echo "test$i"

?>
という感じで間違えて書いてあるのを試しています。(;や}が抜けてる)
調べたら-fオプションもあったので-lを-fにしたら、Parse errorが出ました。

test.phpのような内容の場合、-lオプションでは何もチェックをされないのでしょうか?
もしチェックされるとしたら、どのような場合なのでしょうか。。
それとも、当方の環境がおかしくて-lが効いていなかったりするのでしょうか。。。
ちょっと気になったので、教えてください、エロイひと!
0923nobodyさん04/06/13 14:55ID:???
>>922
本家のバイナリで試してみたけど普通に出力されたけどな。
使ってるPHP-CLIのコンフィグにエラーの出力抑制(ログファイルオンリー)とか
「普通でない」設定をしてるんでは?
092491404/06/13 17:35ID:nrs902LB
>>915
有難うございました。
0925nobodyさん04/06/13 18:52ID:???
920さんありがとうございました。
sabumitであらかた組んでしまったのですが、
いずれクエリーに再挑戦しようかと思います。

また別の質問なのですが、
<td width="800" Height="700"><?php include("link.php") ?></td>
このようにテーブルのセル内に、
任意のhtmlファイルなどを表示させるのは無理でしょうか?

あるいはこの中にインナーフレームをつくって表示させる方法を取るべきでしょうか?
レス数が900を超えています。1000を超えると表示できなくなるよ。