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

【PHP】質問スレッドPart3

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。02/02/17 13:23ID:N+9Uw5dE
レスは気長に待つのが良い感じかも。
答えられる方、返答よろしくお願いします。

<<参考リンク>>
■本家
http://www.php.net/
■PHP日本語マニュアル
http://www.php.net/manual/ja/
■JapanPHPUsersGroup
http://www.php.gr.jp/
■PHP日本語ページ
http://www.cityfujisawa.ne.jp/~louis/apps/phpfi/index.html
■Pearのドキュメント
http://phpdocu.sourceforge.net/peardocs/

<<過去スレ>>
■【PHP】質問スレッドPart1
http://ebi.2ch.net/test/read.cgi/php/982687820/
■【PHP】質問スレッドPart2
http://pc.2ch.net/test/read.cgi/php/1003283567/

<<教えて君>>
■ここ見習って書き込んじゃ、駄目よ
http://pc.2ch.net/test/read.cgi/unix/1011345180/242-245
0302 02/03/15 18:39ID:???
>>301
4回足せば?
0303nobodyさん02/03/15 18:42ID:???
PHPで無限ループを走らせてしまった場合の回避法ってありますか?
0304nobodyさん02/03/15 18:59ID:???
>>303
shutdown -h now
0305ほげ02/03/15 19:01ID:mEJywi54
>>303
コンピュータ

を窓から投げ捨てろ
0306nobodyさん02/03/15 19:02ID:???
>>303
print "<!-- 誰か止めて -->";
0307 02/03/15 19:10ID:???
>>303
制限時間を10秒にしろ。 ターイム・ショック!
0308nobodyさん02/03/15 19:20ID:???
>>307
いつもより多めに回っています>いす
0309nobodyさん02/03/15 19:53ID:???
>>303
30秒待つ。
031023902/03/15 20:31ID:???
>>301
for ($i = 1; $i < 4; $i++) {
$starts .= $start;
}
0311nobodyさん02/03/15 21:10ID:???
>>306
ワラタ
0312nobodyさん02/03/15 21:29ID:???
>>301
$stars = str_repeat("☆", 4);
0313nobodyさん02/03/16 00:38ID:bJHnWes8
>>299
php.iniで、register_globals=Onにすれば従来どおり。
0314nobodyさん02/03/16 01:51ID:d8wgePDM
GD使えない環境で、画像の生成をしたいのですが
無理でしょうか?

C-BOARD
http://skully.lib.net/atman/c-board3/c-board.cgi?cmd=qvh;hue=0;saturation=
ここまで凄いものではなく、簡単なものでいいんですが
いろいろ探しても、GDが必要なものばかりなので。
0315nobodyさん02/03/16 01:59ID:???
XBM
ひみこーどがそうだっけ?
0316nobodyさん02/03/16 03:35ID:rfiYtYN+
質問です。

以下のファイルがあったとします。

<!-- test.php -->
<img src="./log.cgi?ref=<?php echo getenv("HTTP_REFERER"); ?>">

これの実行結果を変数に入れようと
$bar = include("test.inc");
echo $bar;
とやってもうまくいきませんでした。
fread 関数では処理されずにソースコードがそのまま入れられてしまいました。

方法があれば教えてください。
0317へなちょこ02/03/16 06:14ID:ZL3U7hey
サーバにPHPファイルをアップして(IE以外のブラウザで)表示すると、
ソースが丸見えになってしまいました。
他のサイトのPHPファイルは正常に表示されるのですけど、
自分のサイトのPHPファイルを見るとソース丸見えという状態です。
ちなみにローカルだとどのブラウザでも表示されるんです。
これはどういったことが原因なのでしょうか?
031831702/03/16 06:44ID:???
すんません、サーバでPHPが動いてないだけですね。
0319 ◆AngelBlk 02/03/16 10:03ID:QdJopNnK
register_globals、どうしてる?
offがいいのはわかってるし、利用者が自分だけならいいんだけど
サーバ利用者にその辺のサイトで配ってるスクリプトを
使いたいっていう人がいるとちょっと問題。

まあ、簡単な書き換え方法もあるけど・・・うーん。
0320nobodyさん02/03/16 10:24ID:???
当然Off
0321nobodyさん02/03/16 10:25ID:???
そのスクリプトがどれくらい信用できるものなのかにも
よると思うけど、offってた方が絶対いいよ
0322 ◆AngelBlk 02/03/16 10:54ID:???
>320-321
回答ども〜。
safe_modeも当然offですよね。
0323nobodyさん02/03/16 11:09ID:???
>>322
どういう事してるのか知らないけど、
共有レンタル鯖とか運営してるならonにすれ
0324nobodyさん02/03/16 11:14ID:???
>>322
safe_modeはonに決まってるだろ
0325nobodyさん02/03/16 23:56ID:w4jnixRu
すみません、
mbereg_replace の e オプションはどういう風に使うのでしょうか?

実は、ある文字に囲まれた文字列がデータベース上に
存在しているかをチェックしてから、その文字列を置換
したいのですが、mbereg_replace の説明を見ると、
「eを指定した場合、置換文字列をPHPの式として評価します」と
記載されているので、これが使えないか、と考えてるのですが
このオプションを使ったサンプルが見つからなくて・・・
どなたかお願いします。
0326nobodyさん02/03/17 02:26ID:QsNQTCic
$hoge = 'ほげほげ';
$string = 'あいうえおかきくけこさしすせとたちつてと';
$replaced = mbereg_replace('おかき', '$hoge', $string, 'e');

こんなんでどう?
0327nobodyさん02/03/17 02:45ID:???
>>324
なぜですか?
0328nobodyさん02/03/17 03:46ID:???
>>327
他の人に貸してるから。
032932502/03/17 04:00ID:???
>>326
ありがとうございます。なるほど・・・。
$hogeの代わりに\1を引数に関数を呼んで、置換文字を
返すようにしたら、望み通りの動きをしてくれました。
さんくすです。
0330nobodyさん02/03/17 21:17ID:cMXiknvM
timeoutについて教えてください。
スクリプト中でタイムアウト設定を
set_time_limit(0);
ignore_user_abort(1);
とやってますが、長い処理をやらせると300秒で中断してしまいます。
apacheの httpd.conf 内で Timeout を増やせばその分長くなることがわかりました。
しかし .htaccess にTimeoutディレクティブは書けず(エラーになりました)、
「ここだけtimeout増やしたい(or timeoutさせたくない)」というのをどうやって
実現するのかがわかりません。

使用しているのはPHP4.1.2+apache1.3.22です。
どなたか助言を・・・
0331nobodyさん02/03/17 23:23ID:RVb4+mVn
いきなり漠然とした質問なのですが、
あらかじめ用意したpdfファイルを二つ以上結合し、
ひとつのpdfファイルとして出力することは可能ですか?
可能であれば是非教えてください。
0332 02/03/17 23:29ID:???
>>331
可能だけど、A+B=A になっちゃうな。それでもいい?
0333nobodyさん02/03/17 23:35ID:RVb4+mVn
>>332
A+B=A
っということは、結合後のPDFファイルを表示したときの内容は変化しないということですか?
表示時にAもBも両方表示させたい場合はダメでしょうか?
0334nobodyさん02/03/18 01:28ID:eemTiEMO
ユーザー数の多い(目標値ですが)コンテンツを作成しています。
そのため軽いCGIを作らなければいけないのですが、
PHPはかなり軽いと聞きました。
たとえばCで書いたCGIと比べてどうなのでしょう?
現在は、CGIはPerlで書いたことがあるくらいです。
0335nobodyさん02/03/18 01:53ID:FbIeGRWP
PHPといえども、スクリプト言語である以上Cで書かれた
CGIに勝つのはなかなか難しいでしょう。
CGIのプロセスforkのオーバーヘッドはFastCGIなどで
改善できますので、ぎりぎりまでチューンしなければ
ならないのならば、Cで書いたほうが無難です。

本当にそこまでのチューンが必要なのかどうかが実は
大事なところですが、書き易さやデバッグ・テスト・
メンテナンスのし易さなどに重きを置くなら、PHPは
良い選択肢の一つになるでしょう。
0336nobodyさん02/03/18 10:34ID:???
>>335
良いこと言った。俺もそう思う。
CでCGI書いた事ないけど(=゚ω゚)ノ
0337nobodyさん02/03/18 12:35ID:???
>>335
FastCGIなどが使えない環境では、
CでCGIよりPHPのほうが軽いということですか?
0338nobodyさん02/03/18 13:21ID:???
軽いCGIを書きたいのなら、機械語でWWWサーバのモジュールを作った
ほうがよいのでは?
0339nobodyさん02/03/18 13:44ID:???
>>337
人の話聞いてた?
0340 02/03/18 14:11ID:???
>>338
機械語っていう表現がネタっぽいけど、真実はそのとおり。
だけどメンテするのはだれだ?
俺はいやだ。 保守性と速度のトレードオフじゃん?
0341nobodyさん02/03/18 14:20ID:9HrxD1ng
mod_perlとPHPのそれぞれの短所と長所は何?
CPANの膨大なライブラリを利用できる分
mod_perlの方が良さげに思える。
0342nobodyさん02/03/18 14:54ID:???
>341
わたしの知るかぎり、
mod_perl の長所は、8バイト
PHP の短所は、3バイト
0343nobodyさん02/03/18 15:00ID:???
http://www.kent-web.com/count/daycount.html

これのphp版を探してるんだけど、知らない?
cgiから呼び出ししたいんで、imgタグでないとダメなのよ。
おまけに、php鯖とcgi鯖は別の所にあるから。
日に3万ぐらい呼び出されるんで、cgiだと鯖が圧迫されちまうんで、軽いphpに乗り換えたいのよ。
0344nobodyさん02/03/18 15:06ID:???
>>343
どーでもいいことだが
そのphp鯖ではGDがインストールされてるかね?
使えなかったらIMG呼び出しのカウンタは使えんぞい。
034533702/03/18 15:37ID:???
>>339
結局どうなんですか?
共用サーバーでできる方法限定で教えてください。
CGI起動にかかる負荷はどれくらいなんですか?
PHPとCのCGIで比較した場合。
0346nobodyさん02/03/18 15:59ID:Q2ChloQC
現在webメールシステムを作成しているのですが、国際化されていない
phpで添付ファイルをMINEエンコードするにはどのようにしたらいいのでしょうか?
検索をかけてみたところ、国際化されているphpが前提、のような
サイトばかりでてきてしまいました。
また、添付ファイルを扱うようなクラスや関数などありましたら
紹介していただけないでしょうか。
よろしくお願いいたします。
0347nobodyさん02/03/18 17:11ID:???
>344
管理者に聞いてみたけど、使えるって。

>343に書いたcgiカウンタのphp版、知ってませんか?
034833402/03/18 17:26ID:eemTiEMO
>>335

ありがとうございました。
決して開発時間に余裕があるわけではないので、
PHPで行こうと思います。
それで問題が出たら、負荷の軽い方法で順次リプレースしていけば
いいわけですしね。
0349名無しさん02/03/18 17:56ID:???
あ〜、PEARが気持ちいい。
0350nobodyさん02/03/18 19:17ID:9HrxD1ng
>>342
名前以外には違いがないんですか(w
0351 ◆AngelBlk 02/03/18 22:55ID:???
うーん。実行速度はAPC使って
中間コードをメモリに置けばかなりいけるような・・・。
うちだとcore吐いてapacheおちちゃうけど(苦笑

現在、PEARを色々使ってみよう週間中。
PEAR-Authうまくいかない・・・。
サンプルが少ないのはきついよ。
0352nobodyさん02/03/19 05:14ID:???
$hoge = $obj->method();
$result = $hoge->var;

$hogeにはオブジェクトが返されるんですが、これを一行で
$result = $obj->method()->var
みたいな感じには書けないですか?
0353名無しさん02/03/19 06:55ID:???
>>351 Auth
マニュアルのサンプルでちゃんと動いたよ?
Authちゃんと入ってる?
0354nobodyさん02/03/19 06:55ID:???
>>352
$result = ($obj->method())->var
だめかな?
だめっぽいな、妄想でかいてみた。
0355 ◆AngelBlk 02/03/19 08:31ID:???
>353
じゃあ自分何か決定的な勘違いしてるのかな・・・。

PHP4.1.2/register_globals=offの状態、
/usr/local/lib/php/Auth/Auth.phpに入れていて
DB「hoge」に「master_auth」テーブルを作り
そこに「id」と「pass」という項目に
アカウントとcryptでMD5かけたパスいれて

require_once ('Auth/Auth.php');
function loginFunction($username, $status){
(サンプル通り。省略)
}
$dsn = "mysql://mysqlのid:mysqlのpass@localhost/hoge";

$auth_params = array(
"dsn" => "$dsn",
"table" => "master_auth",
"usernamecol" => "id",
"passwordcol" => "pass"
);
$a = new Auth("DB",$auth_params, "loginFunction");
$a->start();
if ($a->getAuth()){
echo "認証に成功したよー";
}else{
echo "失敗してるよ〜";
}

こんな感じ。
mysqlの接続はうまくいって、フォームは出るんだけど
認証に成功しない。
間違いあったら指摘よろしくっす。
0356nobodyさん02/03/19 09:17ID:???
>>355
ここでデバッグさせたいつもりか?
0357名無しさん02/03/19 09:34ID:???
フォームのnameはあってる?
0358名無しさん02/03/19 09:36ID:???
フォームに入力されたパスワードって自分でmd5しなきゃいけないとか。
0359 ◆AngelBlk 02/03/19 09:45ID:???
>356
自分で色々やっても出来ないから質問してるだけですよ。

>357
echo "<input type=\"text\" name=\"username\">";
echo "<input type=\"password\" name=\"password\">"
って感じにサンプルそのまま。
(というか、username/passwordしか駄目なんですよね?)

>358
一応、生のパスワードをDBに入れて試してみたんだけど
うまくいかず・・・。
とりあえず、時間ある時にやってみます>自分でmd5

//って、MD5で入れて自分でMD5にするのが正解なのかな・・・。
//ソースのコメントみたら
// 'passwordcol' => $column_with_md5_pw
//って書いてあったし。
//というか、これ認証自体はどこでしてるものなんだろう・・・。
0360nobodyさん02/03/19 15:20ID:???
条件にマッチするデータのみ'表示させない'スクリプトはどう書けばいいのですか?
0361nobodyさん02/03/19 15:25ID:???
>>360
ごめんなさい、わかりました。
<>の演算子を使えばいいのですね。目から鱗です。
0362nobodyさん02/03/19 15:53ID:???
>>360
条件にマッチしたもののリストをまず配列に作り、次に全件に対してwhileかforeachでループを行い、
その条件に当てはまったらnext;、当てはまらなかったらprint
0363 ◆AngelBlk 02/03/19 17:50ID:???
>357-358
Auth.phpのソースコードみてようやく解決。
パスワードの生成方法間違えてました。
返答、どもでした〜。
0364nobodyさん02/03/20 02:17ID:0gbAx4e0
PEARのソースはきれいだよなー、ものによるけど。
読むだけで勉強になるぜー。
0365nobodyさん02/03/20 02:27ID:???
>>346
PEARにMail_mimeちゅ−クラスがあるけど、これでいけるんじゃん?
0366nobodyさん02/03/20 02:37ID:???
PEARって何回聞いても違和感がある。
0367nobodyさん02/03/20 03:21ID:WjKXVqhv
($userip, $user, $accessdate, $request, $answer, $sendbyte, $referer, $browser) = /(.*?)\s-(.*?)-\s\[(.*?)\]\s\"(.*?)\"\s(\d+?)\s(.*?)\s\"(.*?)\"\s\"(.*?)\"/;

perlで書くと上のようになるスクリプトをPHPで書きたいのですがどのように書けばよいのでしょうか?
0368nobodyさん02/03/20 03:37ID:???
誰か「Perlで書くと〜〜」スレ立てて
0369nobodyさん02/03/20 03:54ID:vOH6bAl6
>>368
反対も欲しいよ。
Perlで書いて「PHPで書くと・・・」
うまい感じのスレにして下さい
0370nobodyさん02/03/20 04:10ID:???
Subject:【PHP2Perl/Perl2PHP】スクリプト移植スレッド
------------------------------------------------------
「Perlではこう書くんだけど、PHPではどう書くの?」
とか、逆に
「PHPではこう書くんだけど、Perlではどう書くの?」
ってな質問用スレッドです。
質問はスクリプトの丸投げをせずに、必要最小限のみでしてください。
------------------------------------------------------
ってな感じ?
0371nobodyさん02/03/20 04:11ID:vOH6bAl6
うん。
スクリプトの丸投げかぁ。それされると萎えるよね、確かに。
0372nobodyさん02/03/20 08:44ID:???
PHPでdbm使ってる人います?
0373nobodyさん02/03/20 17:59ID:hVtSV1Su
最近PHPを勉強し始めた者なんですが
ここで聞くほどでもないような初歩的な質問はどこにすればいいのでしょうか?
0374 02/03/20 18:16ID:???
>>373
本やWebで調べればいいと思うよ。 何事も勉強。

それで判らなかったら、ここで聞けばいいし。
0375nobodyさん02/03/20 18:54ID:GUsWp33X
PHP+MySQLで掲示板を作りたいのですが、
レスがついたら上がるようにするにはどんな動作をさせればよいでしょう?
0376nobodyさん02/03/20 19:57ID:???
>>375
order by lastwrite

とかじゃ駄目なん?
0377die02/03/21 00:39ID:LqA6LiGp
PHP使い始めて2年位経つけど、どうもPHPプログラマーって
馬鹿にされる傾向にあるね。
「PHPなんてむっちゃ簡単じゃん!」とか言うけれど
どんな言語もそれなりの事をしようとすれば、
それなりに大変なんだと感じてるんだけど。。

みんなもこんな風にムカツイタ経験ない?
0378nobodyさん02/03/21 01:59ID:ZJLyYdJY
>>367
preg_match()とlist()のマニュアル見れ。
http://www.php.net/manual/ja/function.preg-match.php
http://www.php.net/manual/ja/function.list.php
それで分かんないなら、PHPで書くのやめてPerlにしれ。
0379nobodyさん02/03/21 04:08ID:IEuenbIb
11183317819 % 1024 = -197 とでます。。
どのようにすればきちんと計算できますか?
任意精度数学関数は使えないようです。
0380nobodyおっさん02/03/21 05:19ID:???
>379
1024 + 11183317819 / 1024
これでどうでしょう? PHPやったことないから / 演算子があるかどうかわからないケド
0381nobodyおっさん02/03/21 05:21ID:???
>379
1024 + 11183317819 / 1024
これでどうでしょう? PHPやったことないから / 演算子があるかどうかわからないケド
0382nobodyおっさん02/03/21 05:22ID:???
>379
1024 + 11183317819 / 1024
これでどうでしょう? PHPやったことないから / 演算子があるかどうかわからないケド
0383nobodyおっさん02/03/21 05:37ID:???
まちがった、
1024 + 11183317819 % 1024
038402/03/21 14:03ID:???
FDF ToolKit 使おうと思ったら FreeBSD に対応してなかった。。。
SoftwareDesign 読んで発注元に「あぁ、できますよー」って言ってしまったのに。。。
鬱だ。。。
0385nobodyさん02/03/21 16:46ID:Mn+jRr98
elseifってないの?
0386名無しさん02/03/21 17:01ID:???
>>385
そのくらい試せよ・・
0387親切な人02/03/21 17:11ID:???

ヤフーオークションで、凄い人気商品、発見!!!

「高性能ビデオスタビライザー」↓
http://user.auctions.yahoo.co.jp/jp/user/NEO_UURONNTYA

ヤフーオークション内では、現在、このオークション
の話題で、持ちきりです。
0388nobodyさん02/03/21 17:45ID:???
PHPをインストールするとき、余計なモジュールは除いとかないと
パフォーマンスに影響しますか?
0389親切な人02/03/21 19:16ID:???
>>388
試してレポート書いて。
0390nobodyさん02/03/21 20:07ID:???
>>388
インストールの速度が違います
0391nobodyさん02/03/21 20:10ID:Oz/GEgky
elseifで50くらい分岐させたらやっぱ処理重くなるのかな。。
うちのボロマシンで試すのは怖いんで、どなたか分かる方いらっしゃいますか?
0392nobodyさん02/03/21 20:28ID:???
どの程度低スペックなのかは知らんが、
大丈夫だと思われ、、、
0393nobodyさん02/03/21 22:12ID:???
>>391
たいていの場合、そこまでelseifの分岐が深くならずに書き直せる。
試すよりもロジックを再考せよ。
0394nobodyさん02/03/22 08:01ID:???
というか普通はswitch〜caseでやらないか?
039539102/03/22 13:20ID:???
>>392-394
うへー、仰有るとおり見直してみます。

それにしてもPHPってのは私のような初心者でもなんとなく動きが理解できるのでよいですね。
0396nobodyさん02/03/22 19:40ID:b0vQIUuf
配列変数は一つの変数に何個も代入する事、と覚えて間違いないでしょうか?
そして代入した順に[1]、[2]とキーが割り当てられる、と。

間違いがあったら教えて下さい。
どうもいまいちつかめないんです。
0397 02/03/22 19:51ID:???
>>396
a[0] a[1] a[2] ・・・

っていう変数だと思いねぇ
0398nobodyさん02/03/22 20:05ID:94AXX7Nm
>>397
うーむ、わかったようなわからないような・・・です。
でも、ありがとうございます。
0399nobodyさん02/03/23 00:01ID:???
>>398
a[0] という風に添え字はゼロからはじまるからね。

--
それにしても
a[] = 'foo';
a[] = 'bar';
a[] = 'hoge';
で a[0] = 'foo'; a[1] = 'bar'; a[2] = 'hoge'; という動作になってしまうから>>398のような人には紛らわしいもんだ。
0400nobodyさん02/03/23 02:01ID:z8vjGGtG
PHPの場合は、配列は連想配列と統合されちゃってるので、

a[] = 'foo';
a[] = 'bar';
a['hoge'] = 'fuga';

なんてことができちゃうのも、他のプログラム言語を知ってる人には紛らわしいかも。
0401顔も名前も出さずに毎月100万円02/03/23 06:38ID:IeLGNiOW
    
Future-Web(フューチャーウェブ)登場
なんと10,000円単位の収入    

●10,000円単位の高収入
 1件につき最大10、000円の高額収入。月収100万円以上も可能。
●画期的なビジネス!
 インターネットを利用したこれまでにない斬新で画期的なビジネスです。
●誰でも出来ます!
 インターネットが出来る環境の方なら誰でも参加可能です。
●専門的な知識は一切不要!
 ビジネスに必要なツールはすべて当社で用意いたします。また、サポ
 ートも万全です。
●詳細は今すぐHPをご覧ください。
  http://www.future-web.tv/7823/
0402nobodyさん02/03/23 13:52ID:7h32oUgT
これからWebプログラミングを勉強しようと思っているリアル厨房です。
この前加入したレンタル鯖屋さんがPHPというものが使えるとのことで
さっそくつかってみようとindex.html内に

<HTML>
<BODY>
test<BR>
<?php
echo "Hi, I'm a PHP script!";
?>
</BODY>
</HTML>
と組み込んだのですが動きません。
<?php〜?>の部分をindex.phpとすると表示されるのですが・・・

どなたか教えて下さい。Webを調べただけでは理解できなかったので
本屋にPHP関係の本を買いに行ったのですが高くて小遣いでは買えま
せんでした(>_<)
■ このスレッドは過去ログ倉庫に格納されています