【PHP】下らねぇ質問はID出して書き込みやがれ 82
レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん
2009/03/09(月) 02:14:28ID:HyrthkeE過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 81
http://pc11.2ch.net/test/read.cgi/php/1234958956/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0878nobodyさん
2009/04/04(土) 02:09:00ID:???てかA括弧閉じてないけど、スペースのことを言ってるのか・・・?
0879874
2009/04/04(土) 02:11:43ID:???>>874がどちらのこと言ってるのか良く分からないけど
俺は@はメソッドの時に使う。
一応Zendのコーディング規約に則ってやってるけど
個人の作業なら別にそんなの君の価値観でやればいいだろ
0880878
2009/04/04(土) 02:13:15ID:???0881nobodyさん
2009/04/04(土) 02:14:37ID:???PHPの「標準」なコーディング規約には2つの流儀がある。ひとつはZend、ひとつはPEAR。
で、どっちも1番の括弧スタイルを採用してるんだ。
C++で言えば、MSDNの規約とGNUの標準スタイルが一致しているような状況をイメージすればいいかな。そりゃ合わせるだろ?
PHPが初めての言語です、って奴が多いのも影響していると思う。
勿論、PHP以前に他の言語を学んでいた奴の中には別のスタイルで書く奴もいる。
俺も2番のK&Rスタイルで書くしな。
0882nobodyさん
2009/04/04(土) 02:16:56ID:???http://framework.zend.com/manual/ja/coding-standard.coding-style.html#coding-standard.coding-style.control-statements.if-else-elseif
if ($a != 2) {
$a = 2;
}
知ったか乙
0883nobodyさん
2009/04/04(土) 02:18:31ID:???悪い、寝ぼけてた。
関数定義とクラス定義の箇所を読んでたわ。
PEARもifはそのスタイルだな。
if ((condition1) || (condition2)) {
action1;
} elseif ((condition3) && (condition4)) {
action2;
} else {
defaultaction;
}
0884nobodyさん
2009/04/04(土) 02:21:18ID:???0885nobodyさん
2009/04/04(土) 02:25:13ID:???0886870
2009/04/04(土) 02:37:49ID:???【パターン@】
if( 1 == 1)
{
}
【パターンA】
if(1 == 1){
0}
の間違いです。括弧が抜けてましたね。
>>877
そう言われれば確かに勝手に整形されちゃいますね。
>>881
なる程2通りの書き方があったんですね。
いずれにせよ@番で統一されているみたいなのでちょっと安心しました。
今後も@で書いて行こうと思います。
(C#)と同じなのでこちらの方が気分的に見やすいです。
PHPでの実務経験が無いので実際の開発現場ではどちらが主に使われているのでしょうか?
0887870
2009/04/04(土) 02:39:20ID:???皆さんも↓の方が見やすくないですか?
>>883
if ((condition1) || (condition2))
{
action1;
}
elseif
((condition3) && (condition4))
{
action2;
}
else
{
defaultaction;
}
0888nobodyさん
2009/04/04(土) 02:39:35ID:???0889nobodyさん
2009/04/04(土) 02:41:13ID:???if ( (condition1) || (condition2) ) { action1; }
elseif ( (condition3) && (condition4) ) { action2; }
else { defaultaction; }
0892nobodyさん
2009/04/04(土) 02:53:10ID:???そのスタイルはないな。見づらい。
インデントスタイルでガタガタ抜かすお前にはPythonが合っていると思う。
Pythonにはどのインデントスタイルが見やすいとかいう議論が一切存在しないぞ。
0894nobodyさん
2009/04/04(土) 03:25:39ID:???本気で言ってますか?
コードを詰めまくって書くよりゆとりを持たせたコードの方が見易いし、
メンテナンス性もあがる気がするのですが。
0895nobodyさん
2009/04/04(土) 03:30:54ID:???まぁコーディングスタイルは宗教論争なんで、不毛なダケなんだけどさ。
0896nobodyさん
2009/04/04(土) 03:31:20ID:???統一させた方が見やすい
0897nobodyさん
2009/04/04(土) 04:00:44ID:???0899nobodyさん
2009/04/04(土) 05:30:26ID:???0900nobodyさん
2009/04/04(土) 05:58:30ID:???EclipseでJavaとPHPをやってる俺からいうと
if (condition) {
}
のほうが見やすい
他の人も同じようなこといってるが
最初に使い慣れたIDEの標準の補完機能によって
どちらが使いやすいか分かれるんだろう
あとはコーディング規約の問題
0901nobodyさん
2009/04/04(土) 07:35:04ID:+rg3YxkWちゃんとロックされるんですか?
同時書き込みでファイル壊れたりしませんか?
0902nobodyさん
2009/04/04(土) 07:37:06ID:???書き込みを行う関数はfwrite
0903nobodyさん
2009/04/04(土) 07:39:05ID:???0904nobodyさん
2009/04/04(土) 07:43:24ID:???ありがとうございました。
0905nobodyさん
2009/04/04(土) 11:05:08ID:UT159Z4LノートPCなので容量を抑えたいのですが、linuxしてる方でおすすめのものがございましたら教えて下さい
0907nobodyさん
2009/04/04(土) 11:42:14ID:???0908nobodyさん
2009/04/04(土) 12:46:42ID:???C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\
hogehoge.html
tomato.php
に各WEBページ(phpファイル)を置いて
http://localhost/
でアクセスしているのですが、これを
C:\Work
hogehoge.html
tomato.php
でアクセス出来る様にするにはどうすれば良いでしょうか・
※デフォルトのパスをC:\Workにしたいと思っています。
0910908
2009/04/04(土) 13:04:00ID:???ありがとうございます。
document root を
【httpd.conf】
DocumentRoot "C:/htdocs"
に変更しApacheを再起動したのですが
Web サイトによってこのページの表示を拒否されました
というエラーが出て一向にページを見る事が出来ません。
なぜでしょうか?
0911nobodyさん
2009/04/04(土) 13:13:06ID:???0913nobodyさん
2009/04/04(土) 13:43:54ID:???0914nobodyさん
2009/04/04(土) 13:58:00ID:???あとID出せよ
0915nobodyさん
2009/04/04(土) 15:00:42ID:???documentrootのディレクトリ設定のパスも書き変えないと意味ないよ
0916908
2009/04/04(土) 15:19:05ID:???>>914
IDを出す、 というのは所謂 fusianasan ですか?
>>915
ありがとうございました。
設定ファイル系を色々といじってみたところ無事動作する様になりました。
ありがとうございました。
0917nobodyさん
2009/04/04(土) 15:27:18ID:???0919nobodyさん
2009/04/04(土) 20:31:48ID:???【OS名】WindowsXP
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql5
【質問内容】
セッションが破棄されるタイミングがいまいち分かりません。
セッションファイルの数を数える事により、現在サイトにアクセスしている人の
大まかな数を数えているのですが、ブラウザを終了してもセッションファイルは残ったままです。
理想を言えば、ユーザにログインボタンを押してもらい session_destroy を呼ぶ
事によりセッションファイルを削除するのが良いとは思いますが、
如何せんブラウザなのでログアウトボタンが必ず押される保障はありません。
ブラウザが閉じられてから5分したらセッションファイルを削除する、といった事は可能なのでしょうか?
通常セッションは一定時間経てば破棄されるらしいのですが、phpの場合はどこで設定すれば良いのでしょうか?
0923nobodyさん
2009/04/04(土) 21:12:45ID:???0924nobodyさん
2009/04/04(土) 21:39:31ID:???いつ消えるかはsession.gc_maxlifetimeで決まる。
集計は、閉じられた情報は取得できないので、セッション変数に「最終利用日時」を記録しておく。
画面を表示するたびにこれを更新して、集計時はその数字を見て判別する、という手がある。
例えば、5分以内にサイトにアクセスした人の人数を「現在サイトにいる人数」と見なすとかな。
ファイルだと大変なので、DBなどの集計しやすい場所にセッション情報を格納するとやりやすい。
0926nobodyさん
2009/04/04(土) 22:18:43ID:???0927920 ◆gRDEQwu9i2
2009/04/04(土) 22:21:55ID:???これの事だったんですねw
勘違いしてました。
>>923
そうですよね。
>>924
ちょっと色々といじってみます。
>>925
別に荒らしてはいない気がしますが・・・
>>926
DBにアクセス情報を記録させてそこで判定した方が確実で簡単かもしれませんね。
0928nobodyさん
2009/04/04(土) 22:25:35ID:???0929nobodyさん
2009/04/04(土) 22:34:25ID:???0931nobodyさん
2009/04/04(土) 23:03:22ID:???0932nobodyさん
2009/04/04(土) 23:06:05ID:???function ExecuteSanitizing(&$strSanitizing)
{
$strSanitizing = htmlentities($strSanitizing, ENT_QUOTES, mb_internal_encoding());
}
$str = "<b>あいうえお</b>";
$str = instance->ExecuteSanitizing($str);
echo $str;
として出力するとローカルでは文字化けしないのにさくらインターネットだと文字化けしちゃいます。
なぜでしょうか?
0933nobodyさん
2009/04/04(土) 23:26:21ID:???0934p7033-ipbfp405osakakita.osaka.ocn.ne.jp
2009/04/04(土) 23:30:26ID:UHDnoHcu0936fusianasan
2009/04/04(土) 23:40:52ID:???0938fusianasan
2009/04/04(土) 23:46:28ID:???いや、おれ2ちゃんのボランティアやってるからこのぐらいの特権は持ってるよ
0939nobodyさん
2009/04/04(土) 23:48:52ID:???なにがボランティアだつまらん
0940nobodyさん
2009/04/04(土) 23:52:00ID:???0941f&lrm;usianasan
2009/04/04(土) 23:57:19ID:???0942fusianasan
2009/04/04(土) 23:58:04ID:???どうすれば出来るですか?
あいうえお
0943fusianasan
2009/04/05(日) 00:00:02ID:???0946nobodyさん
2009/04/05(日) 00:31:03ID:???クラスメソッドをabstractにしようと思いまして、abstractをつけて関数定義したところ、以下のようなエラー。
Class SampleClass contains 1 abstract method and must therefore be declared abstract or implement the remaining methods
エラーの原因がわからず、30分も調べてしまいました。
原因はclassの定義で本来なら「abstract class SampleClass」 としなくてはいけないところを
「class SampleClass」と定義していたことでした。
エラーメッセージからでは気づきにくいことでした・・・
だとさ
0947nobodyさん
2009/04/05(日) 00:42:58ID:???0948nobodyさん
2009/04/05(日) 00:45:11ID:???だからこのクラスはabstractとして宣言されるか、残りのメソッドを実装しなければいけません。
このメッセージで分かりづらいってなら、どう出せばいいんだろう。
0949nobodyさん
2009/04/05(日) 00:48:33ID:???ZendJapanもエラーメッセージを日本語化すべきだな
0950nobodyさん
2009/04/05(日) 01:35:51ID:???0951nobodyさん
2009/04/05(日) 02:02:56ID:???ありがとうございます。ローカルのphp.iniと設定をあわせたところ
正常に表示される様になりました。
ちょっとphp.iniについて質問があるのですが
ローカルだと
C:\WINDOWS\php.ini
という具合にphp.iniファイルを配置しているのですが
レンタルサーバ(さくらインターネット)の場合には
/home/street-fighter/www/php.ini
という具合にphp.iniを自前で用意するのが普通なのでしょうか?
※今後、さくらインターネット以外のサーバを借りるかもしれないのですが、
さくらインターネット以外の場合にも、*/www/直下にphp.iniファイルは保存
するのでしょうか?
/home/street-fighter/www/php.ini
0952nobodyさん
2009/04/05(日) 02:07:24ID:???自分が借りているレンタルサーバーの場合、
(1)そもそもユーザーがphp.iniを編集できない
(2)php.iniがpublic_htmlの外に置いてあった
この2パターンがありました。
0954nobodyさん
2009/04/05(日) 02:39:34ID:???質問用テンプレ作りました。
どうぞテストもかねて使ってみてください。
0955nobodyさん
2009/04/05(日) 03:48:15ID:???0957nobodyさん
2009/04/05(日) 11:30:01ID:rlL9K/DC//$text
-----
あいうえお
-----
//取得する為の正規表現
preg_match_all("/-----¥n(.*)¥n-----¥n/is",$text,$array)
しかし、「-----」の間を上手く取得できません。
どういった正規表現のコードを書けば良いか教えて下さい。
0958nobodyさん
2009/04/05(日) 12:04:57ID:???0959nobodyさん
2009/04/05(日) 12:10:08ID:???-----
↓
-{5}
0960nobodyさん
2009/04/05(日) 12:10:54ID:???0961nobodyさん
2009/04/05(日) 12:20:05ID:???\rとか\r\nは含まないんだな?
0962nobodyさん
2009/04/05(日) 12:43:45ID:???環境によって必要ならそういう対応すればいいだけ
0963nobodyさん
2009/04/05(日) 12:52:14ID:???ウニックス系で\nと書くとLF(0x0a)を表し、
ウィンドズ系で\nと書くとCR+LF(0x0d 0x0a)を表すのが基本でしょ
0964957
2009/04/05(日) 13:26:52ID:???ただ、以下のようにしましたが、やっぱり取得できません。
$text = trim("
-----
あいうえお
-----
");
preg_match_all("/-{5}\n(.*)-{5}\n/",$text,$array);
0965nobodyさん
2009/04/05(日) 13:52:29ID:???trim
trim
trim
trim
trim
trim
trim
trim
trim
trim
0967nobodyさん
2009/04/05(日) 13:55:58ID:???-----
あいうえお
-----
";
preg_match_all("/-{5}\n(.*)-{5}\n/s",$str,$m);
0968957
2009/04/05(日) 14:00:27ID:rlL9K/DCそれで、>>967のコードをそのままコピーして
print_rで出力してみたのですが、やはり文字の「あいうえお」が取得できません。
テスト環境がWindowsXPのファイルがUTF-8ですが、それが関係するのでしょうか?
ただ、他の文字コードにしてもやっぱり取得できません。。
0969nobodyさん
2009/04/05(日) 14:03:21ID:???0970nobodyさん
2009/04/05(日) 14:06:09ID:???0971nobodyさん
2009/04/05(日) 14:08:54ID:???<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>無題ドキュメント</title>
</head>
<body>
<?php
$str = "
-----
あいうえお
-----
";
preg_match_all("/-{5}\n(.*)-{5}\n/s",$str,$m);
print_r($m);
?>
</body>
</html>
結果
Array ( [0] => Array ( [0] => ----- あいうえお ----- ) [1] => Array ( [0] => あいうえお ) )
0972957
2009/04/05(日) 14:11:33ID:rlL9K/DCそうですか・・。
テストしているローカル環境のPHPが5.2.5で
試しにさくらのレンタルサーバ(5.2.8)にもアップして試してみたのですが、
971さんのような結果になりません・・。
0973nobodyさん
2009/04/05(日) 14:11:50ID:???<?php
$text = trim("
-----
あいうえお
-----");
preg_match_all("/-{5}\n(.*)\n-{5}/",$text,$array);
var_dump($array);
?>
0975nobodyさん
2009/04/05(日) 14:18:21ID:???改行コードがCR+LFだからとかいうオチじゃないよね?
もしこれで通ったらぶっ飛ばすぜ
<?php
$text = trim("
-----
あいうえお
-----");
preg_match_all("/-{5}[\n|\r]+(.*)[\n|\r]+-{5}/",$text,$array);
var_dump($array);
?>
0976nobodyさん
2009/04/05(日) 14:23:01ID:???お尻の改行だけを取るならrtrim("\n",変数)の方が誰が見ても分かりやすくていいと思うんだ
0977nobodyさん
2009/04/05(日) 14:24:31ID:???こういう書き方するなら正規表現もっと勉強したほうがいい
レス数が950を超えています。1000を超えると書き込みができなくなります。