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

【PHP】下らねぇ質問はID出して書き込みやがれ 76

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2008/11/13(木) 04:15:32ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 75
http://pc11.2ch.net/test/read.cgi/php/1224168721/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0858nobodyさん2008/12/03(水) 19:30:36ID:???
>>857
IE Tab等のプラグインを入れて
php.netをIEエンジンで開くようにする

というか完全にスレ違いだ
0859nobodyさん2008/12/03(水) 19:54:30ID:sIznGeZK
>>856
サンプルコードありがとうございます。
勉強する取っ掛かりになりました。
0860nobodyさん2008/12/03(水) 21:29:34ID:???
ctrl+Fは?
0861nobodyさん2008/12/04(木) 10:26:46ID:???
インスタンス自身をそっくり入れ替えるメソッドを実装することは可能でしょうか?
メソッド中で$this = new hoge();とかで・・・
0862nobodyさん2008/12/04(木) 10:28:26ID:uRUEQ8oc
861です
ID忘れ
0863nobodyさん2008/12/04(木) 11:20:50ID:???
>>861
PHP4は出来たと思う
でも明らかにおかしな動作だからPHP5では修正されているはず
オブジェクト自身が再アサインとかアフォかと
0864nobodyさん2008/12/04(木) 12:42:52ID:???
おまえらてさ童貞の臭いがプンプンするんだよね(苦笑
0865nobodyさん2008/12/04(木) 12:46:18ID:???
下手すぎるからもっと煽りの修行してから来いよ
0866nobodyさん2008/12/04(木) 12:46:26ID:???
童貞の臭いをプンプンさせながらPHPの勉強をする毎日です

よろしくです
0867nobodyさん2008/12/04(木) 14:17:49ID:???
print_rの()を省略して出力する方法ない?
var_dumpでもいいけど
デバッグのためにデバッグ出力関数の後に()つけるのだるい

print_r $debug

みたいな感じで出力できれば、()でくくる時間が短縮できる
0868nobodyさん2008/12/04(木) 14:20:33ID:???
>>1
0869nobodyさん2008/12/04(木) 14:21:31ID:???
>>867
つスレタイ
0870nobodyさん2008/12/04(木) 14:22:38ID:???
>>867
関数は括弧で引数取る、これ基本
と言うわけでムリ
0871nobodyさん2008/12/04(木) 15:33:31ID:Yfb/CJck
秀丸マクロ作った。

setcompatiblemode 0x0F;
selectline
replaceall "^([\t ]*)(.*)$" , "\\1print_r($\\2);" , regular, nocasesense, inselect;
0872nobodyさん2008/12/04(木) 16:06:10ID:???
【OS名】Debian etch
【PHPのバージョン】php4.06
【連携ソフトウェア】XML-RPC
【質問内容】
掲示板の更新があったときにホームサーバーにpingを飛ばして更新をチェックしています。
しかし、このpingを飛ばす処理に時間がかかり、掲示板の書き込み完了となるまで遅いです。

そこで、pingを飛ばす関数の処理を待たずに次の処理を開始することは可能でしょうか?
(別プロセスにするのでしょうか??)
<?php
send_ping(); ←この処理が完了する前にnext_processに移りたい
next_process();
?>
function send_ping(){
}
宜しくお願いします
0873nobodyさん2008/12/04(木) 16:09:01ID:???
>>1
08748722008/12/04(木) 16:17:52ID:4vOGiir2
すみません、ID晒し忘れていました。
0875nobodyさん2008/12/04(木) 16:26:06ID:???
>>874
別プロセスにして、切り離す方法もありだろうね。
execとかでスクリプトファイルを使う手がありそう。

あとは、先に出力をフラッシュしちゃってignore_user_abortで処理を続行する方法

負荷が高いなら、キューに保存しといて、cronで定期的にping飛ばすとか。
0876nobodyさん2008/12/04(木) 16:27:30ID:???
>>872
pingの処理を別プロセスでするしかないな

投稿と同時にping送る必要がないなら、
ファイルなりDBなりにフラグ立てて、バックグラウンド(cronとか)で定期的にフラグを確認してping送信
短い期間で複数の投稿があった場合、それらをまとめて1回のpingで済ませられる
08778742008/12/04(木) 16:35:22ID:4vOGiir2
>>875
とてもていねいなレスありがとうございます。
せっかくphpで書いたのですが、cronの方が良さそうですね。
cronでシェルスクリプト回すことにします。
ありがとうございます。
0878nobodyさん2008/12/04(木) 17:29:45ID:???
蛇足だけど、cronでphp廻してもいい
0879nobodyさん2008/12/04(木) 17:40:42ID:???
>>878
cronでPHP動かすことってできるの?
PHPって確か実行するユーザーがいなくなると自動的に停止してクリアしてしまうはずだが
もし時間がかかるPHPプログラムをcronで回した場合、cronはそのプログラムが終了する
まで付き合ってくれるんだろうか?
0880nobodyさん2008/12/04(木) 17:54:13ID:3hZlaj6e
数十〜数百人程度にメール送るphpをcronでまわしているけど問題ないよ
0881nobodyさん2008/12/04(木) 17:54:53ID:???
おまえは何を言ってるんだ
0882nobodyさん2008/12/04(木) 17:56:39ID:???
ユーザーがいなくなるとっていうのは、cgiインターフェースのときに
ユーザーの接続断で停止って話のことだろうけど、
cronで起動するのはcliインターフェースだから、cronをセットした実行ユーザーで
制限時間まで実行できる。ちなみにWeb用の制限時間とは別だから普通は問題ない。
0883nobodyさん2008/12/04(木) 17:58:34ID:???
コマンドラインで動けばそのまま載せられるでしょう。
jspをcronでwgetで実行とかもやってるけど。
0884nobodyさん2008/12/04(木) 18:29:16ID:???
>>882
webサーバーがPHPをサポートしてると明言しているときは
CLIもCGIもどちらもサポートしていると思ってok?
0885nobodyさん2008/12/04(木) 18:33:22ID:???
html の中に php のブロックをいれるとき、

<?php
// ここのインデントどうしてます?
?>

<?php
echo 'hoge';
?>

か、

<?php
____echo 'hoge';
?>

か。

php の class の場合は

<?php
class hoge
?>

ってインデントとらないほうをよくみるんですが、<?php の次のインデントは
どうあるのが美しいのかな、と。
0886nobodyさん2008/12/04(木) 18:38:57ID:???
スレタイ読まない人ばっかで悲しいですね
0887nobodyさん2008/12/04(木) 18:42:15ID:???
>>884
cronいじれる環境ならcliサポートしてるのが普通だと思うが、
レンサバだとサーバー会社によるだろうね。
シェルスクリプトを許可しているところもあれば、そうじゃないところもある。
そりゃ、サーバー会社の運用にそんな細かいガイドラインがあるわけないから・・・
0888nobodyさん2008/12/04(木) 21:27:00ID:LmXIHk8w
同じページにCSVを2枚読み込みたいんですが、可能でしょうか?
0889nobodyさん2008/12/04(木) 21:41:05ID:0wd2VBCD
可能だよ。
読み込んでどうするの?
0890nobodyさん2008/12/04(木) 22:46:15ID:???
コピペでやって上書きされてるに3echo
0891nobodyさん2008/12/04(木) 23:31:54ID:???
>>889
CD.csv と book.csvに別けてるんですけど
このデータを全部表示させたいんですよね
どうやるか教えてくれません?
0892nobodyさん2008/12/04(木) 23:32:43ID:LmXIHk8w
ID表示忘れました OTZ
0893nobodyさん2008/12/05(金) 00:11:00ID:???
>>891

1.CD.csvを読み込む
2.book.csvを読み込む
3.出力
0894nobodyさん2008/12/05(金) 00:15:34ID:???
どういう風に表示したいわけ?
ファイルそのままを出力したいの?
0895nobodyさん2008/12/05(金) 09:04:09ID:???
>>891
内容をすべて一番手っ取り早く表示するならこんな感じ
echo nl2br(file_get_contents("CD.csv"));
echo nl2br(file_get_contents("book.csv"));

カラム単位でも分けたいならfgetcsvを使えばいい
ただしfgetcsvはロケールに注意すること
0896nobodyさん2008/12/05(金) 09:07:35ID:???
>>891
echo file_get_contents("CD.csv");
echo file_get_contents("book.csv");
0897nobodyさん2008/12/05(金) 09:19:32ID:???
>>896
m9(^Д^)プギャー
0898nobodyさん2008/12/05(金) 10:11:08ID:bKPFEWzI
$part1から$part30まである変数にそれぞれ$_POST['OOO']をセットして
if(!empty($partO))でechoする場合$part1から$part30までの式をいちいち
書く意外に方法ありますか?
0899nobodyさん2008/12/05(金) 10:17:41ID:???
${'part'. $i}
0900nobodyさん2008/12/05(金) 11:20:49ID:???
>>898
可変変数
for($i=1;$i<31;$i++){
$name = "part".$i;
echo $$name;
}
0901nobodyさん2008/12/05(金) 12:25:28ID:bKPFEWzI
>>899>>900

ありがとう!これでいけた!

<?php
for($i=1;$i<31;$i++){
$name = "part".$i;
$part=$$name;
if(!empty($part)){
echo "$name <a target=\"_blank\" href=\"$part\">$part</a><br />";
}
}
?>
0902nobodyさん2008/12/05(金) 12:50:04ID:AszAo48q
連想配列の要素に式で値を入れるにはどうしたらいいでしょうか?

define ('ABC', 'abc');

とあって、

$aaa = array ( 1 => ABC . 'aiueo');

のような事を実現する方法はありますか?
0903nobodyさん2008/12/05(金) 12:57:48ID:???
>>902
言ってることがわからないのだが
>$aaa = array ( 1 => ABC . 'aiueo');
これは普通にできるでしょ?
09049022008/12/05(金) 13:19:06ID:AszAo48q
>>903
すいません、普通にはできたんですが、やりたかったのは、
下記のような事です。

<?php

define ('ABC', 'abc');

class TestClass
{
var $a1 = array ( 1 => ABC . 'aiueo');
var $a2 = "あいうえお";

function debug()
{
print_r ($this->a1);
print_r ($this->a2);
print_r (ABC);
}
}

$_test = new TestClass();
$_test->debug();

?>
09059022008/12/05(金) 13:20:15ID:AszAo48q
途中で送信してしまいました。
>>904 のようにやりたいのですが、何か方法はありますか?

よろしくお願いします。
0906nobodyさん2008/12/05(金) 13:28:46ID:???
>>905
>>1にもあると思うが、何がどうできないかを説明しないと。
0907nobodyさん2008/12/05(金) 13:29:12ID:???
php5.26で開発してます
blogのトラックバック機能を作りたいのですが車輪の再開発になるので
ライブラリなどありましたら教えてください
pearは知ってるので除きます
0908nobodyさん2008/12/05(金) 13:30:11ID:???
>>905
もしかして、ちがうとこでエラーが出てるとか?
var $a1 = array ( 1 => ABC . 'aiueo');
演算を含むならコンストラクタで代入した方がよさげ
09099072008/12/05(金) 13:32:05ID:LaqO+lJQ
id出し忘れました
0910nobodyさん2008/12/05(金) 13:44:11ID:lJXzjhqe
サイトのトップページに
[1] <img src="access.php?ac=1" width="1" height="1">
[2] <img src="access.cgi?ac" width="1" height="1">

を両方埋め込んでアクセス件数をカウントしてるんだけど、
一日の合計で見ると、[1]の方が必ずカウント数が少なくなる。。
何故でしょう?
0911nobodyさん2008/12/05(金) 13:49:10ID:???
>>906
よーしエスパーしちゃうぞ〜

アレの中の値に定数で定義した値を埋め込みたいということだろうっと思う
やり方は知らんがね
最悪置換えとか?
09129022008/12/05(金) 14:04:17ID:AszAo48q
>>906

すみません、

Parse error: syntax error, unexpected '.', expecting ')' in \hoge\aaaaa.php on line 7

で、7行目というのが、

var $a1 = array ( 1 => ABC . 'aiueo');

ここです。

メンバ変数を定義する時点では、定数しか定義できないのでしょうか?
0913nobodyさん2008/12/05(金) 14:18:43ID:???
>>912
出来ない
そもそも演算子が使えなかったはず
(定義方法にはよるがスコープ演算子は除く)
0914nobodyさん2008/12/05(金) 14:20:36ID:???
ややこしい例出さないで
class Test {
var $a = "hoge" . "hoge";
}
ができないって言えばよかったのに
0915nobodyさん2008/12/05(金) 14:22:10ID:???
>>912
やってみたがJavaでは可能だがPHPじゃ無理なようだ
>>908の言うとおりコンストラクタでやるのがよさそう
09169022008/12/05(金) 14:27:18ID:AszAo48q
できないんですね…。
ありがとうございました。
0917nobodyさん2008/12/05(金) 18:44:56ID:kogFg3iz
mail関数の第5引数のadditional_parametersって
-fスイッチのとき(Envelope Fromの設定)ぐらいしか使わないような気がするんですが、
経験上他に使ったことありますか?

何が良いたいかというと、mailのラップ関数を作っているんですが、
additional_parametersをenvelope_fromという引数にして、
その引数はメールアドレスだけ受け取るというようにしようかなと悩んでいるのです。
つまり、"-faaa@example.com"と受け取らないで、
"aaa@example.com"と簡潔にメールアドレスだけ受け取るようにしようかと迷っています。
0918nobodyさん2008/12/05(金) 19:11:41ID:nX6TiXRu
おい人力検索ボランティアども俺様の質問に答えろやクソがっ!
0919nobodyさん2008/12/05(金) 19:29:03ID:???
>>918
答えてほしかったら質問してみろやw。
0920nobodyさん2008/12/05(金) 22:42:21ID:Ovdffo4F
magpieでrssを取得したいのですが、実行してみたところ何にも出力されません。
http://boon.s355.xrea.com/magpierss/nullx.php

コードは
http://boon.s355.xrea.com/magpierss/test.txt
ですが、何が原因でしょうか?
0921nobodyさん2008/12/05(金) 23:02:57ID:???
どこで止まってるかくらい切り分けてから質問しろ
0922nobodyさん2008/12/05(金) 23:27:21ID:???
全自動デバッガか何かと勘違いされてるな
0923nobodyさん2008/12/05(金) 23:43:05ID:???
何かを表示するプログラムには見えなかったけど、気のせい?
配列のキーって0から始まるのがデフォルトだよね。
表示するところ、forをやめてforeachで作り直したらどうかね。
0924nobodyさん2008/12/05(金) 23:44:17ID:???
mktime(date(G), date(i), date(s), date("m"), date("d")-7, date("Y"));
なんじゃこりゃ
0925nobodyさん2008/12/05(金) 23:45:24ID:???
↑あぁ、うそ。気にしないでww
0926nobodyさん2008/12/05(金) 23:46:18ID:???
あぁ、ごめ、誤爆。923のことね
0927nobodyさん2008/12/05(金) 23:46:42ID:???
誤爆・・・?
0928nobodyさん2008/12/05(金) 23:49:13ID:Ovdffo4F
ttp://ameblo.jp/yamasita-94nsr/entry-10018566158.html
これから、コピペしたんですが・・
0929nobodyさん2008/12/05(金) 23:50:07ID:???
だから?
0930nobodyさん2008/12/05(金) 23:52:19ID:???
これ、セットしてあるRSS用URLがRSS返してないだけじゃないの?
0931nobodyさん2008/12/06(土) 00:07:55ID:???
つうか丸投げすんなよ
他人が作ったスクリプトが使えませんって製作者に聞け
自分で作ろうとする意思がないならそもそもスレ違いだろ
0932nobodyさん2008/12/06(土) 00:13:01ID:8p/zyVJf
>>930
http://dailynews.yahoo.co.jp/fc/rss.xml
にしてみたんですが、やっぱりダメです。。
0933nobodyさん2008/12/06(土) 00:16:52ID:???
だから切り分け位しろと。
どんだけ初心者なんだよ

適当にdie('OK');を入れてどこまで実行出来てるかくらい確認しろ。
0934nobodyさん2008/12/06(土) 00:18:01ID:???
>>932
なんで921はシカトなの?
0935nobodyさん2008/12/06(土) 03:49:04ID:???
これが本当のコピペにマジレスだなw
0936nobodyさん2008/12/06(土) 07:21:02ID:???
恐ろしいことに気付いてしまった

htdocs以下のディレクトリにあるファイルしか
表示できない、とマニュアルに書いてあるが、

<?php
$fh=fopen("C:/CONFIG.SYS","r");
$a=fgets($fh);
print $a;
?>

とかってやれば、ファイルのフルパスさえわかっていれば、
ハードディスクの中の、すべてのファイルに
アクセスできるではないか。
0937nobodyさん2008/12/06(土) 08:06:24ID:???
※下らねぇ質問をID出さないで書き込むスレではありません。
0938nobodyさん2008/12/06(土) 08:08:21ID:???
>>936
それは、質問ですらない
0939nobodyさん2008/12/06(土) 13:13:44ID:???
おいはやく質問しろよザコども
0940nobodyさん2008/12/06(土) 13:14:41ID:???
>>939
>>1
0941nobodyさん2008/12/06(土) 13:20:21ID:MnyC9XAb
配列のcurrent()ですが、ループ処理をする時によく使いますけど、
指定したキーまたは検索した値を元に、currentの位置を移動・指定することはできますか?
0942nobodyさん2008/12/06(土) 13:32:56ID:???
ここみればできるかできないか判断できますね
ttp://www.phppro.jp/phpmanual/php/function.current.html
0943nobodyさん2008/12/06(土) 13:58:39ID:MnyC9XAb
ありがとうございます。
そこを見る限り、できるようには書いていないですよね。
ただ、他にポインタを移動する方法がないとまでは
書いてないように思ったんですが?
0944nobodyさん2008/12/06(土) 13:59:33ID:???
currentの位置を移動・指定って何だよ
0945nobodyさん2008/12/06(土) 14:04:17ID:MnyC9XAb
たとえば、
$a = array("apple", "grape", "orange", "pear");
ってあったときに、
next($a);ってすれば、
$a->current();で"grape"を取得できますが、
いきなり、orangeや$a[3]に移動したい。
で、3やorangeに移動したことを知らない他のメソッドから$a->current()で
$a[3]と同じ値を取得したいのです。
0946nobodyさん2008/12/06(土) 14:06:16ID:???
>>945
$a = array("apple", "grape", "orange", "pear");
$a->current();
Fatal error: Call to a member function current() on a non-object
と出ます
0947nobodyさん2008/12/06(土) 14:06:46ID:MnyC9XAb
おっと、すんまそ、ArrayObjectでやってたから、
current($a)ですね。ありがとう。
0948nobodyさん2008/12/06(土) 14:26:03ID:MnyC9XAb
質問をちょっともう少しわかりやすくしますと、ArrayObjectだと、

$a = array("apple", "grape", "orange", "pear");
$ao = new ArrayObject($a);
$ite = $ao->getIterator();
$ite->seek(3);
echo $ite->current(); // pearが出力される

同じことが配列でできますでしょうか?
あと、できれば、array_searchなどの値検索でポインタを移動したいんです。
0949nobodyさん2008/12/06(土) 15:03:26ID:h6rmosdR
糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ
糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ糞ジジ
死死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね死ね
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
その老いたすがた気持ち悪すぎ白髪しわ気持ち悪すぎ
そのみにくい姿で世の中に出てくんなよ
死ぬとき このレスの事思い出してくれよ
しわしわしわしわしわしわしわしわしわしわしわしわ
ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・) ニヤニヤ(・∀・)
ちょっとは落ち込めよ そのみにくい姿で世の中に出てくんなよ
何回も言わすな死ねよ ボケ
0950nobodyさん2008/12/06(土) 15:08:20ID:F3HkPIHB
PHPの勉強として作ってたDBへの登録と検索を行うアプリを
ttp://d.hatena.ne.jp/toku-hiro/20061129
の記事を参考に、オブジェクト指向でMVCっぽく書き直してみたんですけども
記事のように

Controllerでユーザからのアクションを判定

各処理用のクラスが定義されたphpファイルを読み込む

インスタンスを生成し、クラス内のコンストラクタで処理を行う
(Controllerからメソッドは呼び出さない。
コンストラクタは$this->関数 でメソッドを呼び出し、実際の処理は行わない)

処理した結果をpublicのプロパティに保存

Controllerがそのプロパティをテンプレートエンジンに投げる

テンプレートエンジンが整形を行って画面表示を行う

っていう方法は、正しいOOP+MVCのやり方なのでしょうか?
サンプルソースがあまり見つけられなくて上の記事が正攻法なのか判断できないもので。
0951nobodyさん2008/12/06(土) 15:30:23ID:???
>>948
できる
0952nobodyさん2008/12/06(土) 15:44:18ID:MnyC9XAb
>>951
ありがとう
やり方をおしえてください!
0953nobodyさん2008/12/06(土) 15:58:54ID:???
>>950
「正しい」やり方なんてないので自分のやりたいことに適したやり方でやるべし
0954nobodyさん2008/12/06(土) 19:46:53ID:yGRUMO6W
>>948
できる
0955nobodyさん2008/12/06(土) 21:12:24ID:MnyC9XAb
>>954
ありがとう
やり方をおしえてください!
0956nobodyさん2008/12/06(土) 21:12:56ID:???
少しは自分の頭使って考えろ乞食
0957nobodyさん2008/12/06(土) 21:38:56ID:MnyC9XAb
>>956
考えます orz.
レス数が950を超えています。1000を超えると書き込みができなくなります。