トップページ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等)・フレームワークは各該当スレへ
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.
0958nobodyさん2008/12/06(土) 21:40:57ID:MnyC9XAb
考えてみたら、ArrayObjectじゃなくて、ArrayIteratorを使った方が早いですね。
$a = array("apple", "grape", "orange", "pear");
$ai = new ArrayIterator($a);
$ai->seek(2);
echo $ai->current(); // orangeが出力される
0959nobodyさん2008/12/06(土) 21:56:52ID:???
>>958
おお、確かに948より1行も少なくなってるね、素晴らしい!
0960nobodyさん2008/12/06(土) 22:00:05ID:???
おまえらいいこと考えたぞ

http://www.1x1.jp/blog/2008/06/php_framework_function_count.html

ここのページに、「よく使われる関数」を、頻度順に、上から20個
リストしてあるので、よく使われる順に、初心者に教える
ページを作れば喜ばれるぞ

1. 16645 array
2. 1519 in_array
3. 1151 isset
4. 889 empty
5. 486 is_array
6. 454 str_replace
7. 378 unset
8. 314 strpos
9. 302 array_merge
10. 270 count
11. 241 sprintf
12. 235 preg_quote
13. 169 define
14. 165 date
15. 148 file_exists
16. 148 preg_match
17. 146 strtolower
18. 144 explode
19. 134 extract
20. 134 substr
0961nobodyさん2008/12/06(土) 22:04:24ID:???
arrayって関数っていうか言語構造だし
0962nobodyさん2008/12/07(日) 00:37:09ID:yd2i9hRL
プロキシ規制スクリプトを作りたいのですが
2chの公開プロキシリストってどこにあるかご存知の方いらっしゃいましたら教えてください
0963nobodyさん2008/12/07(日) 00:58:16ID:???
スレ違いもここまでくると気持ちがいい
0964nobodyさん2008/12/07(日) 02:28:04ID:???
【PHP】ID出さなくても質問OKなスレ【初心者歓迎】
ttp://pc11.2ch.net/test/read.cgi/php/1221471692/l50


>>316-342
意見頼む
0965nobodyさん2008/12/07(日) 02:34:11ID:???
>>961
array()は関数
0966nobodyさん2008/12/07(日) 02:40:15ID:???
かわいいは正義
0967nobodyさん2008/12/07(日) 05:41:46ID:???
>>965
関数じゃね?
http://php.net/manual/ja/function.array.php
function.arrayってファイル名だし
引数とって配列を返すんだから
0968nobodyさん2008/12/07(日) 05:46:38ID:???
注意: array()は、実際にはリテラル配列を表現するための 言語構成要素であり、通常の関数ではありません。
0969nobodyさん2008/12/07(日) 05:54:55ID:???
>>965涙目w
0970nobodyさん2008/12/07(日) 06:03:44ID:???
通常じゃない関数なんだろw
0971nobodyさん2008/12/07(日) 06:36:31ID:???
ソフトウェア板のfirefoxスレで聞いたほうがいいんじゃない?
ていうか、URL貼らないとわからないよ http://search.net-newbie.com/php/ か?
普通単語検索は ctrl+Fだと思うけどとにかく説明不足
09729712008/12/07(日) 06:37:59ID:???
クソ、リロードし忘れてスレ違いに亀レスしてた
バッキリ無視してくださいね
0973nobodyさん2008/12/07(日) 11:33:48ID:TyvySTN3
まったくの初心者です
1から始まって 1 2 3 4 ・・・ と

一つずつ数字を足していくIDをつくりたいのですが、

$id = "1";
$id = "$tb++";

ではできませんでした。どうしたら上手くいくのでしょうか?
0974nobodyさん2008/12/07(日) 11:47:26ID:???
$id = 1;
$id = $id+1;
0975nobodyさん2008/12/07(日) 11:48:18ID:???
>>968
言語構造はちゃんと言語構造と書いてあるよ

ちなみにechoの注意
    注意: これは、関数ではなく言語構造のため、可変関数 を用いてコールすることはできません。
0976nobodyさん2008/12/07(日) 12:07:11ID:???
>>963
ちょっと遊んでみるならこんなんもあり
function newID ()
{
static $lastid;
return ++$lastid;
}
$id1 = newID();
$id2 = newID();
0977nobodyさん2008/12/07(日) 12:23:37ID:???
スレ違いなレス

963 名前:nobodyさん[sage] 投稿日:2008/12/07(日) 00:58:16 ID:???
スレ違いもここまでくると気持ちがいい
0978nobodyさん2008/12/07(日) 13:22:19ID:???
>>975
結局arrayは関数なの?関数でないの?
レス数が950を超えています。1000を超えると書き込みができなくなります。