【PHP】下らねぇ質問はここに書き込みやがれ 47
レス数が900を超えています。1000を超えると表示できなくなるよ。
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カテゴリ)の各スレで
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です
0872nobodyさん
2007/06/24(日) 00:03:34ID:???こちらで効かせてもらいます。
0873nobodyさん
2007/06/24(日) 02:44:08ID:???0874871
2007/06/24(日) 06:41:14ID:???文字コードEUC-JPでお願いします。
0875nobodyさん
2007/06/24(日) 07:28:41ID:???0876nobodyさん
2007/06/24(日) 11:51:09ID:???0877nobodyさん
2007/06/24(日) 11:57:42ID:???0878nobodyさん
2007/06/24(日) 11:59:37ID:???0879nobodyさん
2007/06/24(日) 12:58:34ID:???0880nobodyさん
2007/06/24(日) 13:13:55ID:???0881nobodyさん
2007/06/24(日) 13:19:36ID:???俺がそれできるようになるまで何日かかったと思ってるんだ!知らんと思うけど!!
0882nobodyさん
2007/06/24(日) 13:57:05ID:RCivN73v0883nobodyさん
2007/06/24(日) 14:00:43ID:???大変勉強になることばかりで、私の生活の糧になっています。
ところで、このスレはどうしてこんなにキモイ変態ばかりが群がっているのでしょうか?
0884nobodyさん
2007/06/24(日) 14:01:08ID:???0886nobodyさん
2007/06/24(日) 16:59:44ID:j/kNbMoHHTMLのTEXTAREA内にTEXTAREAのタグを読み込めないのですが、
どうすれば読み込めますかね?
0887nobodyさん
2007/06/24(日) 17:59:21ID:???0888先ほど質問した者ですが
2007/06/24(日) 18:08:38ID:j/kNbMoHheader省略
$body = file_get_contents("./index.html)
print <<<_EOT_
<form action="">
<textarea>
$body
</textarea>
</form>
_EOT_;
0889nobodyさん
2007/06/24(日) 18:10:43ID:???0893nobodyさん
2007/06/24(日) 18:34:49ID:RCivN73v0894先ほど質問した者ですが
2007/06/24(日) 18:48:36ID:j/kNbMoHなるほど、HTMLを実体参照にするのですね。
誠にありがとうございます。
では
0897先ほど質問した者ですが
2007/06/24(日) 19:25:21ID:j/kNbMoH具体的な解を下さったのは>>893様です。
死ねなどという幼稚な発言はやめたらどうですか?
PHPどうたらの前に人間性ですよ。
0898nobodyさん
2007/06/24(日) 19:29:19ID:???貴方が幼稚な質問をしたから罵られているのですよ・・・
考えて見ても下さい、理由無く叩かれる質問なんて極僅かですよ
0899nobodyさん
2007/06/24(日) 19:33:34ID:???0900nobodyさん
2007/06/24(日) 19:43:07ID:j/kNbMoH幼稚=下らない
ならば
スレタイ通りの質問をしたまでですが?
そんな事言われても困りますね。
>>899
あなたにとって丁寧な言葉遣い以外に何が必要か教えて下さい。
0901nobodyさん
2007/06/24(日) 19:45:43ID:???俺なら許す。
0902nobodyさん
2007/06/24(日) 19:53:20ID:???0903nobodyさん
2007/06/24(日) 19:58:06ID:???ヒント:ここはPHPの質問スレであって、HTMLの基礎について質問するスレではない
<textarea>の中にそのままページ丸ごと読み込みなんて、HTMLの基礎知識が有ればやらない
言葉使いが人格のメインだなんて思ってるのか?
君がやってるのは敬語を使いながら相手の靴に唾を吐きかけるような行為だよ
口先ばかりで行動が伴っていない
0904nobodyさん
2007/06/24(日) 20:28:45ID:RCivN73v0905nobodyさん
2007/06/24(日) 20:39:40ID:???PHP初心者のお前のために解決方法を考えて労力と時間を費やしてくれた人がいるというのに
それに対して一言も謝辞がなく、具体的な解でなかったから価値がないように言い放つ奴は
どう考えても人間性が最悪な奴だと思うがどうかね?
0907nobodyさん
2007/06/24(日) 20:51:14ID:???誰かが任意で答えればいいだけだし。
答えたい奴が勝手に答える ってスタンスに変えればいいのに。
0908nobodyさん
2007/06/24(日) 20:57:40ID:RborMjIR0911nobodyさん
2007/06/24(日) 21:07:54ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。