トップページ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
0281教えて君02/03/13 22:24ID:???
>>279
ほんとだ。

http://www.php.gr.jp/php/php4/new_features.php3

にも書いてアターヨ。スマソ。
028226602/03/13 23:53ID:???
>>280
めっちゃ混同してました(;´Д`)
他のやり方考えてみます。。
0283nobodyさん02/03/14 02:19ID:80hRLeB+
トランザクション中にコミットせずにプログラム終了させてんだけどこれってヤバイ?
0284nobodyさん02/03/14 02:21ID:80hRLeB+
あ、DBはPostgresで。
教えて君でスマソ
0285名無しさん02/03/14 02:27ID:???
データベースの勉強したら?
028628302/03/14 09:31ID:n8zcTGGh
コミットせずに終了させてるのはエラーが出たときだけでした。
通常はコミットしてます。スマソ。

ようするにエラーでたときにコミットせずに exit してるって事です。
0287 02/03/14 09:46ID:???
データベースの勉強したら?
0288nobodyさん02/03/14 14:37ID:7AlJ59cB
rollbackしたら?
028928302/03/14 16:53ID:n8zcTGGh
>>288
実際にはデータチェック → データ登録の
データチェックの部分でエラー出してるんで
ロールバック必要ないかな?と思ったりしてるんですが、やっぱり必要ですか?
0290nobodyさん02/03/14 16:55ID:5LxluOYT
http://www.2xes.com/
0291ななし02/03/14 18:15ID:???
http://www2q.biglobe.ne.jp/~terra/cgi/suntack.htm

3択クイズってやっぱりこれがいい?
0292nobodyさん02/03/14 18:32ID:???
>>289
やはり「データベースの勉強」は必要かも。
何のためにトランザクション使っているのか分かってないでしょ。

仮に今のそのシステムでトランザクションなしにして、不都合ある?

029328302/03/14 18:43ID:n8zcTGGh
例えばさ

トランザクション開始

フラグチェック

データ更新

トランザクションコミット

って、やる所を

トランザクション開始

フラグチェック

エラー

exit

って、なんだけどコミット(ロールバック)は要るか?って事で
insert 文や update 文は発行してないから無くてもイイかな?って思うんだけどやっぱダメ?
029428302/03/14 18:47ID:n8zcTGGh
>>292
データチェックって入力されたデータのチェックでなくて
DBに格納されてるデータのチェックね。フラグとか
0295教えて君02/03/14 21:48ID:???
そろそろみんなの言うこと聞きなよ。
みんな出直してこい、ってんじゃん。
0296 02/03/14 23:42ID:???
>>283
なんでそんなことで悩んでるんだ?
他にもっと重要なことがあるだろ。
不安ならrollbackすればいいだろ。

自分で考えられないなら、向いてないから辞めちまえ。
0297nobodyさん02/03/15 04:28ID:sSRdthig
phpファイル内でSSIを動かす方法ってありますか?
0298 02/03/15 04:52ID:???
>>297
echo 'ls';
とかじゃダメ?
0299nobodyさん02/03/15 10:17ID:???
php4.1.0使ってるんですが、
例えばクエリー文字列を取得する場合に
$QUERY_STRINGだけではダメなんですか?
$_SERVER["QUERY_STRING"]とすると大丈夫ですが。
マニュアルの注意書きにある、コマンドラインからでないと使えない変数ってやつ??
0300教えて君02/03/15 11:22ID:jXzuFDrg
PDF扱うことになったんですけど、
ClipPDF と libpdf ってどちらがオススメですか?
OS は FreeBSD4,5R、PHP は 4.1.2 です。
0301nobodyさん02/03/15 16:50ID:zj9b84BU
PHPに文字を何倍かにする演算子ってありますか?
Perlだったら
$stars = '☆' x 4;
ってやれば"☆☆☆☆"って出来たのですが
PHPだとうまくいきません。
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やったことないから / 演算子があるかどうかわからないケド
■ このスレッドは過去ログ倉庫に格納されています