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

【PHP】質問スレッド Part7

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん03/02/06 05:56ID:???
■ 本家
 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-10あたりに
0587nobodyさん03/03/17 16:10ID:???
>586
自分自身にpostメソッドを撃てばいいじゃん
<form action="<?php print($_SERVER["PHP_SELF"])?>" method="POST">

ボタンを押した時に起動させたかったら
if (isset($_POST["sbmt"])) {
なんて感じで加えていけばいいし。
0588nobodyさん03/03/17 16:10ID:???
>>586
セキュリティについて勉強する。
0589スレ違い03/03/17 16:57ID:???
558の解析結果。

回答者を怒らせていいことは絶対にない、ということが理解できていない点から、
1. いつも、周りのやつにほいほいと何でも聞いて、幸せに暮らしていた。

口調が、〜わよ。という点から、
2. 年齢は23〜29歳、性格は荒い。

こんな改造が必要になる物として考えられるのは、
3. 掲示板、チャットなど、デザインが命の物。

以上、1.2.3から、偉そうな女で、自己中サイトの管理人であるということがわかる。
0590nobodyさん03/03/17 17:40ID:???
変数に使える文字を把握しておくのはスクリプトの基本でしょう。
マニュアル見れば>>578が書いてあるのに
0591nobodyさん03/03/17 18:03ID:???
まぁ558についてはもういいじゃないですか。逆切れされても何だし。
それより藻前ら、クラスメソッドを動的に定義する方法知りませんか?
クラス変数が動的に追加できるならメソッドだって動的に追加できるはず!
0592nobodyさん03/03/17 18:22ID:???
>>591
>動的に追加できるはず!

100歩譲って関数ポインタってとこだろうか?
0593 ◆Kiss.FX29M 03/03/17 20:03ID:???
>>584
mail()とかmb_send_mail()で、って話じゃないのか?

>>586
cURL関数でいける。
059459103/03/17 20:57ID:???
>>592
あ、なるへそ。いいヒントいただきました。ありがとう。
0595nobodyさん03/03/17 22:13ID:???
>>576
>Perlではこのやり方でちゃんと$aだけを代入してくれたんですが
"ちゃんと"と書いてるけど、それPerlでもパースが上手くいかないことないか。
最近のUnicodeに対応したperlでは、仕様上もOKになったの?
0596nobodyさん03/03/17 22:16ID:???
>>558
printf ('変数aの値は'.%d.'です',$a);
普通はこうじゃないか・・・?
0597nobodyさん03/03/17 22:56ID:???
>593
584ですやっぱPHPでメール関係のコマンドもあったんですね
今PHPマニュアルで確認しやしたわりと簡単につかえそうだね
サンクス使い方は自分でしらべまふ。
059855803/03/18 08:19ID:???
>>595

ごくまれにあったかもしんないけどPerlでは{}でくくらなくても出来ましたよ。
059959103/03/18 10:13ID:???
>>596
少なくともそれは普通じゃないと思う
0600nobodyさん03/03/18 10:15ID:???
>>599
じゃあ俺は普通に一票。

文字列の中の変数名が評価される言語なんてな・・・。
0601 ◆Kiss.FX29M 03/03/18 10:30ID:???
>>600
printf文でわざわざ変換指定子を追い出してたら、意味ないやん。
それなら echo '変数aの値は'.$a.'です'; でええやろ。
0602nobodyさん03/03/18 11:06ID:???
>>601
ああ、printfか、そりゃすまんかった。

"'変数aの値は$aです"

だと思ってたYO!

確かに変すぎだ。
0603nobodyさん03/03/18 11:07ID:s+XgHl7g
perlのインターネットゲームはいっぱいあるのに、なんでphpのインターネットゲームってないの?
こっちのほうが低負荷なら絶対こっちのほうが無料鯖の負担とかも少ないし良いとおもうんだけど。
0604nobodyさん03/03/18 11:17ID:???
>>603
厨房率が低いんですよ。
0605nobodyさん03/03/18 11:40ID:keYRNXEB
少しずつPHP版のWebゲームもできてはいるね。

>無料鯖の負担とかも少ないし良いとおもうんだけど。
そもそもiswebやtripodなどPHPに対応していない無料鯖が
まだまだ多いのが現状。
0606nobodyさん03/03/18 13:10ID:???
と、言うか劇的に負荷が軽減されるわけで無し。
0607nobodyさん03/03/18 13:16ID:???
>>606
CGIであるかないかの差は劇的だと思うぞ。
0608nobodyさん03/03/18 14:17ID:???
>>607
「ならばmod_perlを。」
とかいわれるオチ。

まぁPHPのがPerlに比べて使われてきた期間がみじかいからねぇ。
0609nobodyさん03/03/18 14:40ID:???
>>607
Apache のメモリの喰い方すごいよね。
CGI版萌え〜 モジュール版萎え〜
0610nobodyさん03/03/18 15:49ID:???
perlはいろいろ使い道がある
phpはWebプログラムにしかつかえん・・・
この差はでかい。

perlで遅い遅いっていう香具師は
mod_perl使えないへぼプログラマ
まぁレンタルサーバもmod_perl入ってないところが多いのがちと名残惜しいが
自鯖もてるのならんなの関係ない
0611nobodyさん03/03/18 15:52ID:???
>>610
>perlはいろいろ使い道がある
>phpはWebプログラムにしかつかえん・・・


そしてここはWebProg板。

いろいろって言ってもちょっと高機能なシェルスクリプト位だからなぁ・・・。
別にルビーでもパイソンでも良いわけで。
0612nobodyさん03/03/18 15:54ID:???
>>611
まぁね
最近PHP厨がうざいからちょっと言って見たまでさ
PHPをCGIとして使ってる香具師っているか?
0613nobodyさん03/03/18 15:56ID:???
友達がPerlは時代遅れ
今やるのならPHPって言ってたんですけど
どっちがいいんでしょうか?
0614nobodyさん03/03/18 15:58ID:???
Perl厨とPHP厨のケンカはこっちでやってくれい。

これからはPHPの時代Perlはもう終わりバイバイ2
http://pc2.2ch.net/test/read.cgi/php/1046194468/l50

最近マジでPerlに魅力を感じなくなってきたよ
http://pc2.2ch.net/test/read.cgi/php/1041489691/l50
0615nobodyさん03/03/18 18:36ID:???
>>613
Perlに比べてPHPのが書きやすいからお勧めっていったらお勧め。
時代は関係ない。

そういやCGI版としてPHPを入れたらコンソールでも扱えるんだっけか。
0616ページの有効期限切れ03/03/18 18:47ID:frl1VUIP
Apahe1.3.27とPHP4.3.1で作ったアプリなんだけど
FORMでブラウザの『戻る』するとFORMの内容が消えち
ゃいます。
んで、『進む』すると「警告 : ページの有効期限切れ」
が表示されてしまう。
同じスクリプトでPHPの4.2.1だとそんな問題は起こらないので
PHPの設定でこうなっていると思うんだけど?
わかる方いますか?
0617nobodyさん03/03/18 18:58ID:???
>>615
stdoutはともかくとしてstdinはどうするの?

RAWPOSTDATAとかが書き換わるのかしらん?
0618nobodyさん03/03/18 19:02ID:???
PHPをCGIとして扱うってなに?PHPって掲示板とか作るためにあるんじゃないの?
0619nobodyさん03/03/18 19:06ID:???
>>618
アホというか意味不明な奴がいます。
062061603/03/18 19:07ID:???
自己れすです。php.iniの
session.cache_limiterをprivateにすれば直るんですね。
お騒がせすますた。
0621nobodyさん03/03/18 19:09ID:???
Ruby! Ruby!! Ruby!!!
0622nobodyさん03/03/18 20:23ID:???
>>619

>>612でPHPをCGIとして使ってる香具師いるかって言ってるんだけどどういう意味?
0623nobodyさん03/03/18 20:33ID:???
>>622
そのままの意味だと思うけど。
PHPの場合、Apacheにモジュールとして組み込んで使っている人が多いでしょ。
0624nobodyさん03/03/18 20:40ID:Jzir57v5
http://kotubunet.hp.infoseek.co.jp/king.htm
0625nobodyさん03/03/18 20:59ID:???
>>622は、掲示板は全てCGIと思ってるんですか?
PHPの通常使用はapacheのモジュールとして動作するから
通常使用がCGI経由で動作するPerlより、PHPは高速なんだって。
0626nobodyさん03/03/18 21:36ID:???
>>625
そういうことじゃないだろ。
0627nobodyさん03/03/18 21:50ID:???
>>625
>CGI経由で
これも不思議な言い回しだけどな。
0628nobodyさん03/03/18 22:05ID:???
CGIとPHPはどう違う?

PHPは通常のCGIとしても使用できますが、PHPモジュールをApache
サーバに組み込むことにより、Perl/CGIと比較して処理速度の高速化、
サーバ負荷の低減を実現することができます
0629nobodyさん03/03/18 22:12ID:???
>CGIとPHPはどう違う?

プログラムと各種情報をやりとりするためのインターフェース規約とスクリプト言語
0630nobodyさん03/03/19 00:26ID:???

     │モジュール. │   CGI   │
 ──┼─────┼─────┤
 Perl │ mod_perl │ Perl/CGI .|
 ──┼─────┼─────┤
 PHP. |  mod_php  .| PHP/CGI │
 ──┴─────┴─────┘
0631nobodyさん03/03/19 00:50ID:???
WEBサーバープログラム書いてるんだけど
会員登録のときに、いたずらを避けるために
仮登録(メアド、名前くらい)して、そのメアドに本登録するときに必要なパスワードをメッセージに書いて送りたいんだけど、もし無効なアドレスであれば
マニュアル読んだらmail()関数の5番目のパラメータで
additional_parameter は、MTA のコマンドラ インパラメータです。sendmailを使用する場合に正しいReturn-Pathを設 定する場合に便利です。
成功時にTRUE、その他の場合 FALSEを返します。
っていうのがあるんだけど、これってReturn-Pathに設定したアドレスに
TRUEとかFALSEって書いたメールが届くってことなのか?
なんか違うきがするんだけど、知ってたらおせーて。
0632nobodyさん03/03/19 00:53ID:???
mod_php
まさに今最も注目されいるのがこれ。

mod_perl
実はmod_phpよりも速いのだが、セーフモードみたいのがないから
実用的じゃないらしい。

Perl/CGI
かつての王者。数年後には死んでいるのが見えます。

PHP/CGI
使うアフォはいないだろう。
0633nobodyさん03/03/19 01:11ID:???
>>632
PHPの言語仕様がPerlより好きなので使ってますが。CGI
0634nobodyさん03/03/19 01:16ID:???
>>633
どうしてmod_phpにしないの?
0635 ◆Kiss.FX29M 03/03/19 02:00ID:???
>>631
試せばわかると思うが、
普通にリレー先からエラーメッセージが帰ってくる。
0636nobodyさん03/03/19 02:11ID:???
>635
サンクス
ためしてみぃよーっと^^
0637nobodyさん03/03/19 02:24ID:???
>>634
CGI版だとコンソールから使えたりまさしくスクリプトとしても使えるのですよ。
0638nobodyさん03/03/19 03:32ID:???
またPerl叩きか。
PHPユーザーは他の言語叩くのがお得意ですね。
0639nobodyさん03/03/19 06:27ID:???
PHPをApacheのモジュールとして使うには自鯖にするかそういうのを許可してる
有料サーバじゃないと無理だよね?
0640nobodyさん03/03/19 06:28ID:???
PHP/CGIとPerl/CGIではどっちが速いの?同じくらい?
0641nobodyさん03/03/19 09:10ID:???
>>640
同等の動作環境ならperlの方が一般に早い。
PHPのメリットは、デザイナにぶつを投げられる点だと思う。
perlだとどうしてもデザイナとこちとらでファイルがぐるぐる回りになる。
(IISだと何かあるらしいが、使ったことがない)
0642gn355my003/03/19 09:25ID:???
>>641
だうと。それ相応のライブラリを使えば充分可能。
素人がいい加減なこと言うものじゃないよ。
要は適材適所&顧客の都合(w
0643nobodyさん03/03/19 09:42ID:???
掲示板とかを作って配布してるんですがこの程度だったら
PHPでもPerlでもどっちで作っても同じようなもんですよね?
PHPはHTMLの中にちょこっと記述することが出来て結構気に入ってるんですが
0644nobodyさん03/03/19 09:59ID:???
>>642
そういうならPHPと同等以上に分離可能なperlのmodule名を挙げてみろよ。
おれはもともとperlのほうがありがたい。
0645gn355my003/03/19 10:32ID:???
>>644
お客さんにもよるけど HTML::Template とかはいかがでつか。
逆にPHPで HTML::Template 並に分離可能で軽いライブラリを教えて欲すぃ。
Smarty はちょっと重いと思う。
0646nobodyさん03/03/19 10:40ID:???
重い重いっていったい何kgなんだよ!!
0647nobodyさん03/03/19 11:06ID:???
>>645
HTML::Templateを使ったことあるなら、あれをGoliveやDreamweaverで
デザイナにいじらせるのは無理だということはわかってるはず。
あんたのレスはただのまぜっかえしにしかみえない。
0648nobodyさん03/03/19 11:09ID:CrnUAM4A
>>645
HTML::Template も Smarty も使ってるけど、Smarty が重いとは思えないけどな。
0649nobodyさん03/03/19 11:16ID:???
>>588
今更ですが別の解決策。
print "変数aの値は$a です。";
変数名の後に半角スペースを付けると解決できる罠。
但し表示にもスペースが反映されるのが問題だが。

考えたの俺じゃないけどね。
0650nobodyさん03/03/19 12:22ID:???
>>649
PHPって${a}
こういう書き方出来ないの?
0651nobodyさん03/03/19 12:26ID:???
perlで動くMVCなフレームワーク「sledge」
ttp://sl.edge.jp/authors.html
065265103/03/19 12:28ID:???
間違えた、トップページはこちら。
ttp://sl.edge.jp/

スレ違いでスマソ
0653nobodyさん03/03/19 12:51ID:8OO+f4X+
>>650
いや、普通にできるよ。${a}

>>645
簡単なテンプレを自作しる。
これで十分なんじゃないか?
$templateファイルに記述されている%_変数名_%がその変数名の値に
置き換わってグログロと出力メモリも苦ワン。

$TPL = fopen($template,'r');

while(!feof($TPL)){
$line = fgets($TPL);
$line = preg_replace("/%_(\w+)_%/e","$$1",$line);
print $line;
}

fclose($TPL);
0654nobodyさん03/03/19 13:41ID:???
>>653
そうだよなぁ 何で半角スペース入れたり .で連結したりとか
言ってるのもいるしよくわからんな・・

$a = 10;
echo "変数aの値は${a}です。";
printf ("変数のaの値は%dです",$a);

特に問題ないのだが PHPのバージョンによって
動作が違うのか?
0655nobodyさん03/03/19 13:47ID:???
>>654
{}の使い方知らなかったPHP厨ばかりだったんじゃないの?sage
0656nobodyさん03/03/19 16:55ID:D5YXXQfR
PHPでPerlでいうところのグローバルマッチをしたいのですが、可能でしょうか?
Perlでは
while($text =~ /($mail_regex)/go){
push(@data,$1);
}
とすると@dataに$mail_regexにマッチするデーターが一括して入りますがこれと同じことをPHPでしたいのです。
0657nobodyさん03/03/19 17:23ID:???
PHPをはじめようと思うのですが大丈夫でしょうか?
パソコンの知識はギリギリ2ちゃんねるに来れたぐらいです。
0658nobodyさん03/03/19 17:29ID:D5YXXQfR
preg_match_all
0659nobodyさん03/03/19 17:29ID:D5YXXQfR
ですね
0660nobodyさん03/03/19 20:00ID:???
>>657
むりぽっ。やる気があるならできる。
0661nobodyさん03/03/19 20:04ID:???
>ギリギリ2ちゃんねるに来れたぐらいです。
ギリギリってどんな状態だ(w
0662gn355my003/03/19 20:10ID:???
>>647
ちょっと脊髄反射気味だった。ごめん。
0663nobodyさん03/03/19 22:40ID:???
ギリギリ
0664nobodyさん03/03/20 02:51ID:???
>>643
データベースと連携して使えばPHPが楽。
0665nobodyさん03/03/20 20:26ID:4HfAvm7S
cURLに関して質問です。

例えば、www.hoge.com/curl.php にアクセスして以下のスクリプトを実行させると

<?php
$ch = curl_init();

curl_setopt ($ch, CURLOPT_URL, "http://www.google.co.jp/");
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_exec ($ch);

curl_close ($ch);
?>

画像が相対指定の場合表示されなくなるんだけど
相対指定の場合でも、うまく表示させる方法ってありますか?
0666nobodyさん03/03/20 22:29ID:I/iiqEJg
PHP覚えたいんだけど、どれくらい期間かかるでしょうか?
もちろん人によると思うけど、平均的に。
0667nobodyさん03/03/20 22:31ID:???
10日で
0668nobodyさん03/03/20 22:56ID:???
>>667
10日でできるシリーズかよ。ワロタ。
0669nobodyさん03/03/20 23:29ID:???
>>666
マジレス
他の言語をどれくらい知っているかによるんじゃない?
Perlとか知っていると早い。似てるから。
0670nobodyさん03/03/20 23:53ID:???
>666
私は元々Perlが出来たので、
1日程度で掲示板ぐらいは作れるようになりました。
DBはまだ勉強中だけど。
0671 ◆AngelH/kMI 03/03/21 00:12ID:???
>665
www.hoge.com/curl.php?url=http://www.example.jp
みたいにアクセスすると想定して言うけど。

読み込んだHTMLを解析してimgとかで貼られてる画像を
<img src="./ayaya.png">
   ↓
<img src="http://www.example.jp/curl.php?url=http://www.example.jp/ayaya.jpg">
みたいに置き換える仕組みを作るしか無いかと。

でないと、絶対パス(じゃないか。http://から始まってるフルパス)で
書かれている時は見えていても直接アクセスしてしまっている罠。
(それでいいならいいんですが)

ところで、curlが必要な理由ってなんでしょう?

>666
どの程度のスキルを「覚えた」と言うかによる。
あと、他の言語(C言語とか)を少しでもさわってるなら
それこそ一週間くらいで結構使えるようになると思われ。
0672nobodyさん03/03/21 01:27ID:WHiz79q/
file_get_contents('hogehoge.txt');
でファイルの読み込みをしているのですが、ファイル名をブラウザから任意に
選択可能にしたいと考えています。

ブラウザからパスをポストして、$hogehogeに格納して、
file_get_contents($hogehoge);
としてもうまくいきません。

file_get_contentsの使い方を調べてみたのですが、
file_get_contents(string filename [, int use_include_path])の
int以下の記述の仕方がよくわかりません。

素人な質問で恐縮ですが、アドバイスなどいただけますと幸いです。

0673nobodyさん03/03/21 02:00ID:???
taint!
0674 ◆Kiss.FX29M 03/03/21 08:03ID:???
>>672
何が「どうもうまく」いかないのか書けよ。
ちなみにこの関数はPHP4.3.0以降でないと使えんよ。

use_include_path は 1にすると、include pathも検索するようになる。

0675nobodyさん03/03/21 13:31ID:sQQisTRy
以下のようにして、条件にあったデータの検索をしたいのですが、
---
$query = "select * from tb_bibliography where \'$search_c\' like \'$search_t\'";
$result = mysql_query($query);
$num = mysql_num_rows($result);
----
次のような、エラーが出てしまいます。
Warning: mysql_num_rows(): supplied argument is not a valid MySQL

おそらく、$queryの書き方がまずいと思うのですが、どのように
修正すればいいのでしょうか?また、「%」をつかった場合は
どのように記述すればいいのでしょうか?

質問ばかりで恐縮ですが、よろしくお願いいたします。
0676 ◆AngelH/kMI 03/03/21 13:40ID:???
>675
なんか微妙に勘違いしてるっぽい…。

$query = "select * from tablename where fieldname like '%search%'";

こんな感じかと。
テーブルやフィールドの名前がmysqlの予約語に含まれてるなら
`tablename`
みたいにする。
0677nobodyさん03/03/21 13:59ID:???
     ∧_∧∩ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ( ´∀`)/<先生!こんなのがありました!
 _ / /   /   \___________
\⊂ノ ̄ ̄ ̄ ̄\
 ||\        \
 ||\|| ̄ ̄ ̄ ̄ ̄||
 ||  || ̄ ̄ ̄ ̄ ̄||
http://saitama.gasuki.com/hiroyuki/
0678nobodyさん03/03/21 14:04ID:???
半角スペースを↓
$str = str_replace(" ", " ",$str);
に変換すると同じように
ダブルクォーテーションを文字コードに変換したいのですが、
$str = str_replace(""", "?",$str);
だとエラーが出ます。どう記述したらいいのでしょうか?
0679nobodyさん03/03/21 14:11ID:sQQisTRy
ありがとうございます。
$query = "select * from tablename where $fieldname like '%$search%'";
fieldnameとsearchを変数にして試せあせていただいたのですが、やはりエラーがでます。

まだ、どこか間違っているのでしょうか?
0680 ◆Kiss.FX29M 03/03/21 14:16ID:???
>>679
>>675のmysql_query()文の第2引数が無いのだが?

>>678
とりあえず、マニュアル嫁
0681 ◆Kiss.FX29M 03/03/21 14:20ID:???
しかし、なんだな。
>>675のエスケープさせる必要のない""内の'をエスケープさせているヤシが居ると思えば、
>>678の"""と3つ並べて平気なヤシもいる。
0682nobodyさん03/03/21 15:00ID:sQQisTRy
勉強不足ですみません。
$query = "select * from tablename where $fieldname like '%$search%'";
やはり、これでもだめなんでしょうか。。
0683nobodyさん03/03/21 15:17ID:???
>>652
ぱっと見期待できそうだ。でも次の仕事にゃ間に合わないなあ。
匿名で情報の交換ができるという意味では
ここはなかなかいい場所だと思うんだが、
いかんせんおれにはノイズがきつすぎる。
撤退することにするよ。
0684nobodyさん03/03/21 15:19ID:???
>>683
まぁ、懲りずにまたおいで。なんか最近高校や中学校が休みに入ったみたいでさ。また4月以降きてくれよ。
0685nobodyさん03/03/21 15:48ID:???
どうして単発スレッドを立てたんですか?その理由を教えてください。

返答次第では私が開発した全30種類の「ポニーちゃんの大冒険ライブラリ」すべてのスレッドを立てる所存です。
0686 ◆AngelH/kMI 03/03/21 15:48ID:???
>680
あー、フォローサンクス。
実行部分気にしてなかった(苦笑

あらかじめmysql_select_dbしていれば指定いらないんだっけ?


最近の小発見。
PHP4.3.0で
var_dump(parse_url("http://example.jp?hoge=ayaya"));
としたら
["host"] => "example.jp?hoge=ayaya"
だったのがcvs版だとちゃんと
["host"] => "example.jp"
["query"] => "hoge=ayaya"
になってた。
この違い(バグ?)に気がつかず、かなり長時間はまっちゃったよ…。
■ このスレッドは過去ログ倉庫に格納されています