【PHP】下らねぇ質問はここに書き込みやがれ 47
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/05/26(土) 21:03:53ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 45
http://pc11.2ch.net/test/read.cgi/php/1177635762/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0771nobodyさん
2007/06/22(金) 12:00:53ID:???0772nobodyさん
2007/06/22(金) 12:01:57ID:J7y8syt9にはどうしたらいいのでしょうか?
0773nobodyさん
2007/06/22(金) 12:06:01ID:???if($_POST) echo "POST";
0774nobodyさん
2007/06/22(金) 12:10:31ID:???thisって自分自身、クラス云々考えずにjavascriptの this.valueと同じだぐらいに軽く考えれば?
0775nobodyさん
2007/06/22(金) 12:10:51ID:???0779nobodyさん
2007/06/22(金) 12:23:32ID:J7y8syt9ありがとうございます
>>773さんのもいいのですが
今回は>>775さんと>>778さんの方がシステム条件に合うので
そちらを採用させてもらいます
0780nobodyさん
2007/06/22(金) 12:23:33ID:???> あんまセクハラ的な発言をくりかえしてんじゃねえよジジイ。
セクハラ「的」じゃないでしょ!!立派なセクハラでしょ。
的って何?バカじゃないの?
0781nobodyさん
2007/06/22(金) 12:29:52ID:???0782nobodyさん
2007/06/22(金) 12:34:58ID:54Cz/LMH0784虚弱PHP
2007/06/22(金) 13:11:29ID:???>>783は、
○2番目の要件の意味がよくわからない。
○なんでそんな(ふたつの)制限があるの?
のふたつの意味で書きました。
0785nobodyさん
2007/06/22(金) 13:19:50ID:54Cz/LMHお遊びだから。
0786nobodyさん
2007/06/22(金) 13:41:38ID:???どうぞお引取り下さい。
0787nobodyさん
2007/06/22(金) 13:41:55ID:???0788nobodyさん
2007/06/22(金) 13:49:08ID:54Cz/LMH実装しようと思ったから、データベースは使わないという要件が発生しました。
0789nobodyさん
2007/06/22(金) 13:53:10ID:wwxPOIopメール受信と同時にphpに処理させようと思うのですが
うまくいきません。
とりあえずテスト用のPHP(write.php)は
コマンドラインからの引数をserializeしてfwriteでファイルに保存する単純なものです。
で、dot-qmailに
|php /var/qmail/write.php
と書いたのですが、保存されるファイルは
a:1:{i:0;s:20:"/var/qmail/write.php";}
となります。
例えば
|php /var/qmail/write.php test
とか引数を与えると、それもちゃんと保存されます。
問題はメールの本文をPHP取得できないのです。
dot-qmailのマニュアルを見ると
「本文はコマンドの標準入力に渡す」と書いてあって多分これが問題なのだと思いますが
標準入力をPHPで取得することはできないのでしょうか?
やり方わかりましたらお願いいたします
0790nobodyさん
2007/06/22(金) 13:56:44ID:???100円払って3時間半の間にプログラム1本仕上げませんか?
http://www.nouhibus.co.jp/hidasi/
0791nobodyさん
2007/06/22(金) 14:05:05ID:???0792nobodyさん
2007/06/22(金) 14:05:26ID:D+3gHmlv雑音ばかり入ってしまいます。どうしたらうまく録音できるか教えてください
0793nobodyさん
2007/06/22(金) 14:09:26ID:???0795nobodyさん
2007/06/22(金) 14:28:31ID:???postfix+バーチャルメールボックス→途中にスパムフィルタ→シェル→php起動の例だと
こんな感じでとりあえず動いてる。qmailも同様に出来んか?
#!/bin/sh
INSPECT_DIR=/var/spool/filter
SENDMAIL="/usr/sbin/sendmail -i"
REGMAIL="/usr/local/bin/hoge.php "
SPAMASSASSIN=/usr/bin/spamc
# Exit codes from <sysexits.h>
EX_TEMPFAIL=75
EX_UNAVAILABLE=69
# Clean up when done or when aborting.
trap "rm -f in.$$" 0 1 2 3 15
# Start processing.
cd $INSPECT_DIR || {
echo $INSPECT_DIR does not exist; exit $EX_TEMPFAIL; }
cat | $SPAMASSASSIN -x > in.$$
#cat > in.$$
grep -e "^To: uketuke@example.com" in.$$ \
&& $REGMAIL < in.$$
$SENDMAIL "$@" < in.$$
exit $?
0802nobodyさん
2007/06/22(金) 15:37:03ID:54Cz/LMH/ \ /\ キリッ
. / (ー) (ー)\
/ ⌒(__人__)⌒ \ <○ ○、
| |r┬-| |
\ `ー'´ /
ノ \
/´ ヽ
| l \
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、.
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
____
/_ノ ヽ、_\
ミ ミ ミ o゚((●)) ((●))゚o ミ ミ ミ
/⌒)⌒)⌒. ::::::⌒(__人__)⌒:::\ /⌒)⌒)⌒)
| / / / |r┬-| | (⌒)/ / / // < ○ ○ だっておwwwwwwwwwwwwwwwwwww
| :::::::::::(⌒) | | | / ゝ :::::::::::/
| ノ | | | \ / ) /
ヽ / `ー'´ ヽ / / バ
| | l||l 从人 l||l l||l 从人 l||l バ ン
ヽ -一''''''"~~``'ー--、 -一'''''''ー-、 ン
ヽ ____(⌒)(⌒)⌒) ) (⌒_(⌒)⌒)⌒))
0803nobodyさん
2007/06/22(金) 15:40:16ID:???AAを貼る前にAAにしゃべらせるセリフを考えるんだ。
ていうか、ここで遊ぶより、お遊びオートログインの実装考えるほうがきっと楽しいよ。
0805nobodyさん
2007/06/22(金) 15:44:15ID:???0806nobodyさん
2007/06/22(金) 15:44:25ID:54Cz/LMHデータベース使わないなら教えてねぇ的な雰囲気なんだもん
0807nobodyさん
2007/06/22(金) 15:57:50ID:???そうじゃないとしても、別にアカウントに依存した文字列を生成する必要はないだろ。
0808nobodyさん
2007/06/22(金) 16:12:20ID:???perlの 2**32 ってどういう意味でしょうか?
2の32乗?
0809nobodyさん
2007/06/22(金) 16:19:00ID:???0810nobodyさん
2007/06/22(金) 16:23:26ID:???不適切な記事や行為があったなら、事前に警告し、こちらが、バックアップを取れる猶予を与えるのが筋ではないでしょうか?
ライブドアの不当な削除については、元お笑い芸人大田さんの無料レポートが有名ですが、まさか地味にアフィリエイトブログをやっている自分がそんな目にあうとは思ってもいませんでした。
リスク管理の甘さ、何らかの行き過ぎた行為があったのかも知れませんが、血と汗で書き溜めた180記事という人の財産をこうも簡単に奪ってよいものでしょうか?
これは明らかに違法行為ではないでしょうか。しかも、私は有料サービスを利用していましたので、問答無用の削除はひどすぎると思いませんか?
0811nobodyさん
2007/06/22(金) 16:26:28ID:???http://jp.php.net/manual/ja/wrappers.php.php
0812nobodyさん
2007/06/22(金) 17:26:26ID:???利用規約を読め。有料だろうが無料だろうが関係ない。
バックアップをとらなかったのは自分の責任。「自己の責任において維持管理」ってあるだろ。
それに免責事項もある。
0814nobodyさん
2007/06/22(金) 17:52:23ID:???利用規約に人情はないけど削除担当者に人情はあるだろう。
RAIDが全部同時に飛んだとかなら自己責任だけど
人の意志によって警告もなしに削除はひどいだろ。
0815nobodyさん
2007/06/22(金) 18:06:28ID:BcpgaIwJそのクラスを継承したクラスBに、上記と同名のメソッドMを再定義します。
クラスBの別メソッドM2には、クラスAのメソッドMのロジックを使いたいです。
このときもちろん$this->M()としてしまってはクラスBのメソッドMを
意味してしまうので使えません。
parent::Mも、Mは動的メソッドなので使えません。
クラスBのメソッドMの中にクラスAのインスタンスを入れ込んで
$A=new A;$A->M();
としても、Mはメンバ変数にアクセスするような関数なので、
$Aのメンバ変数がいじられてしまい、目的は果たせません。
どのようにして、クラスBからクラスAの動的メソッドMにアクセスすべきでしょうか。
0816nobodyさん
2007/06/22(金) 18:08:39ID:BcpgaIwJ誤:「クラスBのメソッドMの中に」
正:「クラスBのメソッドM2の中に」ですすみません。
0817nobodyさん
2007/06/22(金) 18:14:02ID:???動的メソッドってどういう意味合いで言ってるのか意味不明
わかりにくいから具体的にコード張って
ここが動かないってのを示せ
0818815
2007/06/22(金) 18:25:08ID:BcpgaIwJprivate $contents=array();//上でいう「メンバ変数」のこと
public function addcontent($content,$strictly=false){//上でいうメソッドMのこと
$result=$this->checkcontent($content,$strictly);
if($result){$this->contents[]=$result;}
}
}
class htmlpage extends tag{//上でいうクラスBのこと
private $body;//bodyはtagクラスのインスタンス。
public function addcontent($content,$strictly=false){//上でいうメソッドM
$this->body->addcontent($content,$strictly);}
}
private function preRenderProcess(){
★$this->addcontent($body);//ここ。本当は親クラスのaddcontentを使いたい。
}
タグを入れ子にできるクラス群。HTMLページクラスにaddcontentすると、
HTML内ではなくその中のBODYタグ内にcontentが記述されるようにこのような
構造にした。だがHTMLタグ内にBODYタグを入れたい。
0819818
2007/06/22(金) 18:28:18ID:BcpgaIwJ誤:★$this->addcontent($body);
正:★$this->addcontent($this->body);
0820nobodyさん
2007/06/22(金) 18:37:59ID:???0821nobodyさん
2007/06/22(金) 18:40:04ID:???人情を持ち出したところで、消されるようなことをしてるやつは
運営側からするとむかつく奴だろうから、なおのこと警告なんてしないだろ。
0822818
2007/06/22(金) 18:47:42ID:BcpgaIwJvar_dump($this->getcontents());でやるとarray()になる。
vaar_dump($this->body->getcontents());をすると
たくさんコンテンツが入っているのだが…。
0823nobodyさん
2007/06/22(金) 18:57:48ID:???$gov = get_object_vars($this->body);
$this->addcontent($gov);
0824818
2007/06/22(金) 19:05:55ID:BcpgaIwJ$govは再び$this->bodyの中に入っていくのでは??
0825nobodyさん
2007/06/22(金) 19:16:39ID:???上層の呼び出し側でどういう風にやってるのかわからないし
parentで呼び出した時にcheckcontentはちゃんと
result返してるのかわからないし
さすがの俺もおまえが書いてるソースを
透視する能力はないんでここでデバッグされても困る
0826nobodyさん
2007/06/22(金) 19:24:07ID:???preg_replace("/([^\r]\n|\r[^\n])/", "\r\n", $str);
正しく変換するためにはどうしたらいいでしょうか?
0827nobodyさん
2007/06/22(金) 20:30:44ID:???0828nobodyさん
2007/06/22(金) 20:34:42ID:???0829827
2007/06/22(金) 20:44:01ID:???$str = preg_replace("/\r\n|\r|\n/", "\r\n", $str);
こっちなら大丈夫だった。
0830nobodyさん
2007/06/22(金) 21:03:48ID:???0831nobodyさん
2007/06/22(金) 21:11:23ID:???$str = str_replace("\n","\r",$str):
$str = str_replace("\r","\r\n",$str):
記述がスマートじゃないけど、遅くはならないと思う。
0832nobodyさん
2007/06/22(金) 22:03:20ID:???どのような方法がスマートでしょうか?
0834nobodyさん
2007/06/22(金) 22:50:34ID:???pg_ prepareのプレスフォルダにnullを入れたい場合はどうすれば良いでしょうかか。。
0835nobodyさん
2007/06/22(金) 23:16:34ID:???0836nobodyさん
2007/06/22(金) 23:38:57ID:???func html_include($file) {
echo " ";
include($file);
}
0838nobodyさん
2007/06/23(土) 00:56:03ID:???0839789
2007/06/23(土) 02:11:32ID:2hjTlCBK遅くなりましたけどレスありがとうございます。
シェルスクリプトのがイマイチ良くわかってないので
もっと、いや、せめてもうちょっと^^;
勉強します。
ざっと見た感じ 受信したメールをテキストに保存してるみたいですね。(違ったらすいません)
dot-qmail(特定のメールを受信したときにスクリプトを起動したり、転送したりできる機能)
で、メールをユーザーdirに保存後、phpを起動してそのファイルを読みに行くって言うのも考えたのですが
タイムラグで、メールをPHPが読めないなんてコトがあるのかどうか心配です。
それがあり得ないのであれば、この方法が一番良いかな、と思ってます。
もしその方法が信頼性が低いならphpに一行ずつメールを渡して、それをテキストに保存(又はシェルスクリプトで保存)。
>phpで解析が良いのかな。
標準入力を改行も含めて一気に渡すコトってできませんよね?
まあ、とにかくシェルスクリプトの問題っぽいですね。
しかし、WEBでもちょっとしたシステムを作るって言うのは、本当に多岐にわたった知識が必要ですよね。
大きくて技術力のある人が多い会社は、無用な労力なんだろうか?
うちでは質問できるのは、君たちだけだよ・・・いつもすんませんね。
0843nobodyさん
2007/06/23(土) 04:15:12ID:???0844nobodyさん
2007/06/23(土) 06:20:47ID:M3Ri6nNm$dcsv[] = $arry;
のとき$dcsvの配列はどうやって参照すればいいですか?
0845nobodyさん
2007/06/23(土) 07:18:45ID:???エスパー的な回答
while(!feof($file)){
$arry=fgetcsv($file,1000,",");
$dcsv[]=$arry;
}
とすればきっとあなたの思い通りになるのではないでしょうか。
ただし$fileはファイルポインタですよ。
0846nobodyさん
2007/06/23(土) 08:07:44ID:???上記の場合は、
マルチドメイン(virtualメールアドレス)でどうしても運用したかったため、postfixの絡みもあってあんな風になってます。
んで、マルチドメインが必要ないならば素直な方法(先にこっち書けよ・・すまん)として以下のような
オーソドックスなやり方があります。 (受付専用ユーザhogeを作る必要有り)
1) /etc/alias 内に hoge: "|/usr/local/bin/fuga.php を書く
2) newaliases を実行して1)を有効に んで、hogeユーザへのメールは、fuga.phpに渡る。
fuga.php内で、
$fp = fopen("php://stdin", "r");
while (!feof($fp)) {
$buf = fgets($fp,256);
$all .= $buf;
}
fclose($fp); で、ストリームを読み込む んで、あとはパースする
$arr = explode("\n", $all);
$boundary = "";
$msg_id = "";
foreach ($arr as $line) {
$line = trim($line);// boundary 取得
if(!$boundary){
if (preg_match('/boundary="(.*?)"/i', $line, $match)) { $boundary = $match[1]; }
}
if (!$msg_id){// message-id 取得
if (preg_match('/Message-Id: <(.*?)>/i', $line, $match)) { $msg_id = $match[1]; }
}
if ($boundary && $msg_id) break;
}
みたいな感じ、$arrをグルグルやって読み込む。 同じ要領で、いけるんじゃないか?
0847nobodyさん
2007/06/23(土) 08:22:31ID:???/etc/alias は
hoge: "|/usr/local/bin/fuga.php" だクォート抜けてた
0848nobodyさん
2007/06/23(土) 12:08:34ID:cbRsCM6uaaa.phpファイルをbbb.phpファイルで呼び出す方法
どう違うんですか?
0849nobodyさん
2007/06/23(土) 12:15:06ID:M3Ri6nNm//ソート関数の定義
function cmp($a, $b){
return strcmp($a[7], $b[7]);//バイナリでも使える文字列比較
}
usort($dcsv, "cmp");
usortで上の関数を呼び出すと文字列比較になってしまうのですが数字比較を
するには何の関数を使えば良いでしょうか?
たびたびくだらない質問をして申し訳ございませんがよろしくお願いします。
0851nobodyさん
2007/06/23(土) 12:25:25ID:C481f9GD$url = 'http://www.example.com';
print_r(get_headers($url));
?>
にタイムアウトを設定したいのですが
具体的にどこに何を書けばいいのかわかりません
くだらない質問をして申し訳ないですがご教授お願いいたします
0852nobodyさん
2007/06/23(土) 12:37:46ID:???ソースの上の方に↓の一行を追加すればOK
ini_set('default_socket_timeout', 10);
0854849
2007/06/23(土) 12:56:38ID:M3Ri6nNmfunction cmp($a, $b){
if ($a == $b) return 0;
return ($a[7] > $b[7]) ? -1 : 1;
}
頑張ってソートの中身を変えて見ましたが出力結果は
497
391
10711
となってしまいます orz
0855nobodyさん
2007/06/23(土) 14:46:10ID:C481f9GD<?php
ini_set('default_socket_timeout', 10);
$url = 'http://www.example.com';
print_r(get_headers($url));
?>
に関してなのですが、ユーザーエージェントを特定のものにして
情報を受け取る方法を探していたのですが見つかりません
ユーザーエージェントを指定するにはこの場合
具体的にどこに何を書けばいいのかわかりません
度々質問をしてすみません、ご教授お願いいたします
0858839
2007/06/23(土) 16:52:33ID:2hjTlCBKいや、まじ助かります。ありがとう〜
キモはphp://stdinでした。
知りませんでした。
0860nobodyさん
2007/06/23(土) 18:47:34ID:???気になってしまた
0861834
2007/06/23(土) 19:24:15ID:???>>838
レス遅くなってすみません。
プレスフォルダに入れる値の配列を配列ごと何の考えも無しに文字コード変換してんですが、どうもその際にnullが空文字に変換されてinteger型のカラム等で弾かれてた見たいです。
お手数おかけしました。。
0862nobodyさん
2007/06/23(土) 20:23:13ID:???0864nobodyさん
2007/06/23(土) 20:46:15ID:???$fp=fopen($filename,"a");
でファイルポインタはファイルの終端に来るので、
そっからfwrite($fp,$str);
0865nobodyさん
2007/06/23(土) 20:54:39ID:???0866nobodyさん
2007/06/23(土) 21:05:55ID:???中身
aaa
↓
bbb
aaa
↓
ccc
bbb
aaa
こういうふうににしたいんだけど・・・わかりにくくてすいません
0868nobodyさん
2007/06/23(土) 21:10:18ID:???$buf = "bbb\n";
$buf .= $str;
$fp = fopen("hoge.txt", "w");
fwrite($fp, "buf\n");
fclose($fp);
行数が決まってるならfileとかで読み込んでループでいいんじゃないかな
0869868
2007/06/23(土) 21:11:38ID:???$str = file_get_contents("hoge.txt");
$buf = "bbb\n";
$buf .= $str;
$fp = fopen("hoge.txt", "w");
fwrite($fp, $buf);
fclose($fp);
0871nobodyさん
2007/06/23(土) 23:08:52ID:???これの入力値がフリガナだけか調べるうまい方法おしえて
文字オードはUTF-8です
■ このスレッドは過去ログ倉庫に格納されています