【PHP】質問スレッドpart17【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
04/05/17 17:14ID:AT+bUkag・新規質問の方は上げてください。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
抜けているものがあったら補足願います
0514512
04/06/01 16:32ID:g7ULO3n5さっそくレスありがとうございます。
↓こんな感じです。
$from = "Bcc:[email protected]\n";
$from.= "From: XXXXXX <[email protected]>\n";
$from.= "Reply-To: [email protected]\n";
$from.= "X-Mailer: PHP/" . phpversion();
0516nobodyさん
04/06/02 09:07ID:???こ こ は 誰 も 質 問 に 答 え な い 質 問 ス レ ッ ド で す ね
0518515
04/06/02 10:09ID:???すんげぇ勘違いしてますた。
0519515
04/06/02 10:11ID:???0520nobodyさん
04/06/02 11:49ID:???0521nobodyさん
04/06/02 12:43ID:???0525nobodyさん
04/06/02 16:50ID:???0532nobodyさん
04/06/02 17:40ID:???今まで誤った情報を提供する先生に出会ったことないのか?
幸せだな。
俺は育ちが悪いのか、小学校で既に先生も時には間違ってると悟っていた。
0533nobodyさん
04/06/02 17:56ID:???いわゆる反抗期みたいな感じなんだろ、そっとしておいてやれよ。
精々盗んだバイクで走り出してくれw
0534nobodyさん
04/06/02 18:12ID:???教科書が間違っているからいいのか。
0535nobodyさん
04/06/02 18:20ID:???0537nobodyさん
04/06/02 18:39ID:zu8X23qu私は Emacs でコーディングしているので必然的に
print_r などで出力して確認するような古典的な方法しか
使っていないのですが,もっと効率よく開発できないか
といろいろ調べてみたら Eclipse + TruStudio や
Magma Studio など Windows で開発すればそれなりに
効率よくできそうなツールを見つけました.
みなさんはどうされているか,いろいろ意見を聞きたいです.
よろしくお願いします.
0538nobodyさん
04/06/02 18:41ID:5rKkpSCd質問します。
PHPで掲示板をつくりたいのですが、
どこのディレクトリにアップロードすればいいのでしょうか?
0540538
04/06/02 18:45ID:5rKkpSCdpublic_htmlの方におけばいいということですか?
すみません。
0541nobodyさん
04/06/02 18:49ID:???0542nobodyさん
04/06/02 18:49ID:???そこらで拾ってきたスクリプトの設置がわからないとかだったらブッ頃すぞ!
0545538
04/06/02 18:58ID:???自分で作るとはかいてませんが?
がんばってみます。
すみませんでした。
0547nobodyさん
04/06/02 19:05ID:???Magma じゃなくて Maguma な。
PHP-users 検索したら腐るほど出てくる。
俺は Eclipse だが使い込んだら Emacs 最強なんじゃないの。
0548nobodyさん
04/06/02 19:06ID:???0549nobodyさん
04/06/02 19:06ID:???俺は秀丸で十分
0550nobodyさん
04/06/02 19:08ID:???自前のデバッグ用フレームワーク作ってやってる
結局最終的にやってることはvar_dumpだけどね
0551nobodyさん
04/06/02 21:35ID:???↓
♪■◎■■
教えろ
0553nobodyさん
04/06/02 21:40ID:???例えば
■■◎■■
という変数の、「■」を一つだけ置き換えて「♪」にしたいのですが、
どういう風に書けばいいのでしょうか?
for文の中に入れて、
■■◎■■
↓
♪■◎■■
↓
♪♪◎■■
:
:
とういう感じになるといいのですが…(´・ω・`)
0554nobodyさん
04/06/02 22:10ID:???こういうこと?
$str = $prevstr = '■■◎■■';
while (($str = preg_replace('/■/', '♪', $str, 1)) != $prevstr) {
echo $str, "<br />";
$prevstr = $str;
}
0556nobodyさん
04/06/02 23:11ID:???0557556
04/06/02 23:19ID:???配列がこんなかんじだった場合
apple=3
orange=4
としたいです、お願いします。
0560nobodyさん
04/06/03 02:11ID:???今なら無料でダウンロードできて、
PHP5とかへの対応ができているらしぃのだが
人柱募集
http://www.zend.com/store/beta.php
0561nobodyさん
04/06/03 03:27ID:???$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');
$ar2 = array();
whle (list($key, $value) = each($ar1)){
$ar1[$key] += $ar2;
}
0562nobodyさん
04/06/03 03:28ID:???あ、適当に書いてたわ、スマン
× $ar1[$key] += $ar2;
○ $ar2[$key] += $value;
0564nobodyさん
04/06/03 11:44ID:???辛い中、PHPでカプエスクイズを作りました。
これなら大丈夫でしょう(ただクイズにゲーム画面を使えないのが
少々ネックですが)、取り合えず、テスター募集中です。
ttp://cgi.f13.aaacafe.ne.jp/~mugen/cvs_quiz/
問題数が多くなればランキング形式を採用しようと思います。
0565nobodyさん
04/06/03 12:06ID:???はじめて知った!!
てっきりRasmusやAndi&Zeevだと思ってたんだけど。
これからはKaPoKoN様に感謝して使用するよ!!
0567nobodyさん
04/06/03 13:18ID:???0568556
04/06/03 14:12ID:???返答ありがとうございます。
でもFatal error: Unsupported operand typesというのが
>$ar2[$key] += $value;
ここの部分で出てしまいます。何度も確認したのでタイプミスなどは無いと思うのですが。。
0569nobodyさん
04/06/03 14:26ID:???562じゃないが562のスクリプト通り(厳密に言えばwhileに修正w)で動いたが。
ってかさ、
$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');
これ、アリなんか?
うちじゃprint_rしたらappleは後ろのしか入ってないぞ。
バージョンによっては通るのかも知れないが、こういう構造自体問題あるだろ?
0570569
04/06/03 14:32ID:???Unsupported operand typesなのは文字列になってるからかもしれない。
$ar1 = array('apple' =>2, 'orange'=>4, 'apple'=>1); //値の''を取った
にしてみそ
0571nobodyさん
04/06/03 16:02ID:???$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');
$ar1_mod = array(
array('apple'=>'2'),
array('orange'=>'4'),
array('apple'=>'1')
);
while (list($key, $value) = each($ar1_mod)){
while(list($key2,$value2) = each($value)){
$ar2[$key2] += $value2;
}
}
print_r($ar1);
print_r($ar1_mod);
print_r($ar2);
0572556
04/06/03 16:42ID:???$ar1こう書きましたが
>$ar1 = array('apple' =>'2', 'orange'=>'4', 'apple'=>'1');
実際はテキストファイルから読み込んで配列にしているので、値の部分が文字列に
なってしまったんですね。
分り易いようにと修正して書いてしまいましたけど、分らないうちはありのままを
伝えるべきですたね。
お答えくださった皆さんありがとうございました。
0575vv
04/06/03 19:19ID:???どうしたらよいのでしょうか??
$multiline;
eregi("[^\r]*\r\n",$multiline,$regs);
ってやると1行目しか抜けないんですけど、原因がわからん
おしえてちょ
0577nobodyさん
04/06/03 19:25ID:???0579nobodyさん
04/06/03 22:26ID:???<?php
//動作確認用でメールを送る関数
?>
とした所、ブラウザーからアクセスした場合には正常に動きますが、
crontabで指定した場合には動作しません。
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: =: command not found
/ファイルパス/crontab.php: line 8: syntax error near unexpected token `mb_send_mail($'
/ファイルパス/crontab.php: line 8: `$rcd = mb_send_mail($mlto, $mlsb, $mlms, $mlfr);'
CGIモードではどうかと思い、
#/usr/local/bin/php
を先頭の行に入れて、<?phpと?>を削除しましたが、それでもなお、上記と同様のエラーが返ってくるばかりです。
どなたか、ヒントを頂けませんでしょうか?
0580nobodyさん
04/06/03 22:46ID:???本位買って、暇な時に斜め読みにして頭に入るようにしとけよ...
あ、こんな関数知りませんですた
ばっか。
0581579
04/06/03 22:47ID:???cronというとshell scriptがメインらしいですが、phpも実行出来る。としか書いて無くて
検索しても妥当なのが見つからないのでお伺いしました。教えて頂けませんでしょうか?
0582nobodyさん
04/06/03 22:49ID:???cronで動かす場合、
まず、ファイルへのPATHはフルパスで書かなきゃならない。
そして、実行権限を与えずにcli版で動かす場合は
/usr/local/bin/php /full/path/to/script.php
のように指定する。
実行権限を与えた場合は
/full/path/to/script.php
だけでいいが、script.phpの先頭行に
#!/usr/local/bin/php
が必要。>>579には ! が抜けている。
2行目以下には<?php ?>で必要部分囲う。
0583nobodyさん
04/06/03 23:11ID:???>CGIモードではどうかと思い、
>#/usr/local/bin/php
>を先頭の行に入れて、<?phpと?>を削除しましたが、
>それでもなお、上記と同様のエラーが返ってくるばかりです。
辺りから、CLI及びCGIのPHPと、その他(ApahceSAPIなど)のPHPとで
mbsrtringモジュールの使用可能の可否が違うと思われ。
設定で変えるか、CLI及びCGIのPHPをリビルド&インストール。
0584583
04/06/03 23:15ID:???PHP以前に、582氏の指摘が妥当だな。
0585nobodyさん
04/06/03 23:18ID:???同じ鯖にはいて欲しくない。
0586nobodyさん
04/06/03 23:29ID:???それも考えもんだね。ちょっと怖くなったよ。くわばらくわばら
0587nobodyさん
04/06/03 23:55ID:???Fedora Core1 をインストールしたままで使っています
php -v は
PHP 4.3.6 (cgi) (built: May 13 2004 05:56:26)
Copyright (c) 1997-2004 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2004 Zend Technologies
です
0588nobodyさん
04/06/04 00:03ID:???0590nobodyさん
04/06/04 07:54ID:???0591nobodyさん
04/06/04 09:19ID:???だから皆さんに訊いてるんじゃないですか
0592nobodyさん
04/06/04 09:22ID:???0596nobodyさん
04/06/04 09:36ID:???0597nobodyさん
04/06/04 09:53ID:???判らない -> 上司先輩に聞く -> 少しは調べろと言われる -> MLや2chで聞く -> 叩かれる
0598nobodyさん
04/06/04 11:01ID:???マニュアルにそのまま・・・(´・ω・)
http://jp2.php.net/manual/ja/features.commandline.php
0599nobodyさん
04/06/04 13:29ID:wZX1pkeCPHPとPSQLを使ってWEBサイトを構築しているのですが、
こちらで決めておいたメールアドレス宛にメールが送られた場合
そのメールのsubject、内容、添付ファイル等をDBに入れたいのですが
イマイチどうすればよいかよくわかりません
マニュアルを探したのですがimap関数を使えばよいのでしょうか?
サンプルプログラム等ございましたらご教授願えないでしょうか?
0600nobodyさん
04/06/04 13:47ID:???プログラムって試行錯誤して成功するのが楽しいんだろ
いきなり投げやりな質問して何がいいんだ?
自分にとって利点あるのか?
0601nobodyさん
04/06/04 14:06ID:JHbJHjmL教えてください。
PHPからDB(例えばPostgreSQLなど)を利用する場合、
コネクションプーリングの機能とか使えたりするんでしょうか?
もしかして、DB板に行くべきですか?
0602nobodyさん
04/06/04 14:37ID:???いや、来るな。
PHPそのものにプーリング機能は無い。
パーシスタント接続はあるけどな。
PostgreSQLならpgpoolがあるからググれ。
0603nobodyさん
04/06/04 14:42ID:???俺は経験無いんだけどね。
http://www.google.co.jp/search?q=PHP+%E3%82%B3%E3%83%8D%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E3%83%97%E3%83%BC%E3%83%AA%E3%83%B3%E3%82%B0&ie=UTF-8&hl=ja&lr=
0604nobodyさん
04/06/04 14:53ID:???PHPにはJavaが持っているような
DBのコネクションプーリング機能はない。
ずっと立ち上がってるAP鯖がないからね。
別個にコネクションプーリング鯖を間に
噛ませて運用する形になる。
#ってことを前スレ辺りにも書いたぞ
"別個のコネクションプーリング鯖"の話題は
DB板の汎用的な質問スレ辺りかな。
0605nobodyさん
04/06/04 16:48ID:0a7YDspA返信のメールを飛ばす仕組みがよくわからないんですが、どうやってるんでしょうか?
更に返信されるメール本文にURL+ユーザ固有のユニークキーを乗せたいんですが。
0606nobodyさん
04/06/04 17:31ID:???0608nobodyさん
04/06/04 18:15ID:0a7YDspApostfixです。
0610nobodyさん
04/06/04 21:32ID:???>>605
PHPに全く関係ないからな。
メールの受信をトリガーにするならprocmailを使え。続けるなら各OS板のMTAスレにいけ。
PHPでポーリングするならimap関数辺りを使え。
0611579
04/06/04 23:51ID:???<>>585さん、すみません・・・でも、もうこれからは大丈夫です>
<>>586さん、phpを実行する時の方法についての解説サイトが見つからなかったので分からずじまいでした>
cronの設定で直接、/usr/local/bin/php /full/path/to/script.phpは書けない形式だったので、
直接指定でよいと誤解したまま、/full/path/to/script.phpしか書いていなかったのが原因でした。
.sh(shell script)を指定して、間接的に>>582さんに教えて頂いたように
#!/bin/sh
MAILTO="確認メール送信先"
/usr/local/bin/php /filepath/public_html/crontab/test3.php
exit
とし、
先頭に#!/usr/local/bin/phpを書き、その次の行から普段通りの<?php 〜〜 ?>とし、
EUC-JPで改行コードはLF、パーミッションは705で00分に実行するよう指定しました。
すると、何の問題もなく動作しました。
完璧です!!
UNIXのterminalを想像すると、/usr/local/bin/php /filepath/public_html/crontab/test3.php
と来る訳も納得出来ました。普段、ファイルパスだけの指定に慣れていた為ですね。
レポートメールが届かなくなるようにする為には(>>587さんの回答にもなりますが)
コマンドラインでPHPを使う:http://www.spencernetwork.org/memo/tips-6.php
にあるように、/usr/local/bin/php -q /filepath/public_html/crontab/test3.php
とすればよさそうです。
0612257
04/06/05 00:38ID:wzRU3gnq質問
$arr["hoge"][0] = "a";
$arr["hoge"][1] = "b";
$arr["fuga"][0] = "1";
$arr["fuga"][1] = "2";
$arr["fuga"][2] = "3";
という2次配列があった場合、
$arr2[0] = "a1";
$arr2[1] = "a2";
$arr2[2] = "a3";
$arr2[3] = "b1";
$arr2[4] = "b2";
$arr2[5] = "b3";
という1次配列を生成したい。2次配列の全ての要素を組み合わせた
1次配列を生成したいんです。
0613257
04/06/05 00:39ID:wzRU3gnq続き。。
下記関数で$arrの要素が固定の場合はできますが、しょっぱいですよね。
動的に$arr["guha-"][n]とかが増えた場合にも適切に処理したいんです。
--
function foo($arr)
{
$k=0;
for ($i = 0; $i < count($arr["hoge"]; $i++)
for ($j = 0; $j < count($arr["fuga"]; $j++ )
$arr2[$k++] = $arr["hoge"][$i] . $arr["fuga"][$j];
return $arr2;
}
再起を使ってやってみたんですが、うまくいきませんでした。
教えて、モロイ人!
■ このスレッドは過去ログ倉庫に格納されています