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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2011/02/14(月) 16:45:59ID:???
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 103
http://hibari.2ch.net/test/read.cgi/php/1295956018/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】

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

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0185nobodyさん2011/02/18(金) 23:20:30ID:???
メディーーック
0186nobodyさん2011/02/19(土) 09:10:39ID:Gww6mUql
$hoge = 'hoge';
$fuga = 'fuga';
みたいなのがあって何度も「$hoge . $fuga」を使いたいときは
$piyo = $hoge . $fuga;
としてから「$piyo」を使うほうがいいんですよね?

スーパーグローバル変数はこんなふうに別の変数に入れなおさなくてもいいんですか?

本当にくだらないかもしれませんがよろしくおねがいします
0187nobodyさん2011/02/19(土) 09:13:06ID:???
>>186
良いの基準は?
0188nobodyさん2011/02/19(土) 09:35:43ID:Gww6mUql
>>187
186の例だと短い文字列の連結だけなのでたいした違いはないと思いますが
「$hoge . $fuga」じゃなくもっと複雑な処理をしたあとの結果を何度も使う場合は
その結果を変数に入れておけば毎回複雑な処理をしなくて済むんですよね?
無駄な処理をしなくて済んで効率的だという意味の「よい」です

スーパーグローバル変数は、処理がされた結果が入っているのか、
たとえば$_SERVER['REMOTE_ADDR']と書くたびにREMOTE_ADDRを取得しに行くのか、
後者なら変数に入れなおす必要があるのかな、と思いました
関数じゃなくて変数だから結果が入っているのかな・・・?
0189nobodyさん2011/02/19(土) 09:50:02ID:???
変数に入れることによるメモリ消費量の増加と
処理をすることによるCPU負荷を天秤にかければいいさ
0190nobodyさん2011/02/19(土) 09:58:14ID:???
>>189
知りたいのは、スーパーグローバル変数はすでに結果が入っているのかどうかということです
188の最後の行で正解ですか?
0191nobodyさん2011/02/19(土) 09:58:28ID:???
>>188
スーパーグローバル変数は、変数であるのであなたの杞憂するような
余計な処理というのは入っていない。単純に配列から取り出しているだけ。

見かけ上配列と同じArrayAccessインターフェイスのがあるが、こちらは
配列的アクセスしたとしても関数を呼び出すので、多少なりとも配列から
呼び出すのより遅くはなる。

それとグローバルの$hogeは$GLOBALS['hoge']と同じことなのだから、
たぶんほとんど差がない。
0192nobodyさん2011/02/19(土) 10:05:38ID:???
ぴゅっ
0193nobodyさん2011/02/19(土) 10:06:09ID:???
>>191
どうもありがとうございます
0194nobodyさん2011/02/19(土) 10:08:35ID:???
グローバル変数使ってるうちは素人だってじっちゃが言ってた
0195nobodyさん2011/02/19(土) 12:40:59ID:???
PHPファイルのインデントは
タブと半角スペースどっちが推奨ですか?
0196nobodyさん2011/02/19(土) 12:46:43ID:???
>>195 >>1
エディターにお任せが良い。
0197nobodyさん2011/02/19(土) 13:06:27ID:???
エディターは何使ってる?
0198nobodyさん2011/02/19(土) 13:33:20ID:???
ノートパッド
0199nobodyさん2011/02/19(土) 13:36:56ID:???
peggy
0200nobodyさん2011/02/19(土) 14:02:24ID:???
ノートパッド
0201nobodyさん2011/02/19(土) 14:15:37ID:???
peggy
0202nobodyさん2011/02/19(土) 14:27:22ID:???
ここまでPHP Editorなし、と
0203nobodyさん2011/02/19(土) 16:04:54ID:???
>>195
そういう質問をするとこういうのを見ろとか言う奴が出てくると思うが
http://framework.zend.com/manual/ja/coding-standard.php-file-formatting.html
↑ここではタブを使わずスペース4文字とか書いてある

個人的にはスペース2文字が好み
ネストが深くなってインデントが多くなっても右に寄り過ぎないのがいい
タブ使うと環境によって見え方が変わるから嫌い
0204nobodyさん2011/02/19(土) 16:08:34ID:???
俺は秀丸(フリー版)つこうてる
0205nobodyさん2011/02/19(土) 16:24:22ID:???
えくりすぷ
0206nobodyさん2011/02/19(土) 16:34:15ID:???
エディタスレ池
0207nobodyさん2011/02/19(土) 16:47:43ID:???
>>203
ネストが深くなるなら関数化しようぜ
0208nobodyさん2011/02/19(土) 16:53:27ID:???
>>207
まぁなーでも同じ処理を何度も行うわけではないのに関数化する意味はないよな
ネストが深いといってもこの程度の話だから

for(){
 ;
 if(){
  ;
  for(){
   ;
   if(){
    ;
   }
  }
 }
}
0209nobodyさん2011/02/19(土) 18:38:26ID:???
くだらん。お前の話はくだらん
0210nobodyさん2011/02/19(土) 19:11:51ID:???
一つ減った(`・ω・´)
for(){
 ;
 if(){
  ;
  continue;
 }
 for(){
  ;
  if(){
   ;
  }
 }
}
0211nobodyさん2011/02/19(土) 19:13:53ID:???
せめて 
0212nobodyさん2011/02/19(土) 19:14:51ID:???
タブにして表示をスペース2つ分にすればいいじゃん
0213nobodyさん2011/02/19(土) 19:29:50ID:???
>>212
> タブ使うと環境によって見え方が変わるから嫌い
0214nobodyさん2011/02/19(土) 19:36:13ID:???
 
0215nobodyさん2011/02/19(土) 19:37:16ID:???
forのネストはたいてい解消できるんだけどな
for ($i=0, $j=1, $k=0, $fib=0; $i<50; $i++, $fib=$j+$k, $j=$k, $k=$fib) {
echo $fib."<br>\n";
}
0216nobodyさん2011/02/19(土) 19:37:42ID:???
&nbsp;
0217nobodyさん2011/02/19(土) 19:38:57ID:???
>>215
そのfor文、1行に収まってるからいいけど、
50行くらいなったらどうすんの?
0218nobodyさん2011/02/19(土) 19:39:26ID:???
&nbsp;はコピペするとそれも含まれるのが不便だな
0219nobodyさん2011/02/19(土) 19:55:29.65ID:???
>>213
おまえさん、HTML書くときもwidth=800とかで固定するタイプだろ
width=100%で相手の環境に合わせようとは考えないタイプだ





俺もだよ
0220nobodyさん2011/02/19(土) 22:47:51.40ID:???
>>219
HTMLは書いたこと無いですよ。
というより、いまどきHTMLを書く必要ってあります?
0221nobodyさん2011/02/20(日) 00:27:40.54ID:???
>>220
PHPから何を書き出してるの?
漢はtext一択?
0222nobodyさん2011/02/20(日) 00:30:48.59ID:???
>>221
何を書き出してる?
質問の意図がよくわかりませんが、標準出力のことでしょうか。
ファイルやデータベース出力も利用しますが、画面表示なら標準出力を使っています。
0223nobodyさん2011/02/20(日) 00:39:04.16ID:???
>>222
ああ、ほんとにHTML使わないんだ。
HTML書き出さないなら、pythonとかの方が便利じゃね?
0224nobodyさん2011/02/20(日) 01:14:48.73ID:s/fCDBml
Mixi等のログインしないと中身が見れないサイトに関してですが
ああいうサイトはどこにアクセスしてもCookieにログイン情報がない場合はログイン画面にリダイレクトされると思います。
あれは、各ページ全ての先頭でログインチェックをやっているということですか?
それとも、.htaccessかなんかで一括で前処理が出来るのでしょうか?
0225nobodyさん2011/02/20(日) 01:43:38.10ID:???
普通はセッションチェックする処理をインクルードファイルにして全ページに組み込むと思う
0226 冒険の書【Lv=1,xxxP】 (´・ω・)ス2011/02/20(日) 02:18:18.39ID:???
>>224

質問の意図が見えない。

何かをしたいから mixi だうんぬんを質問しているんだろ?

背景…自分が何をしたいかを正直に書いてはどうだろうか?

何らかの答えを求めるならば質問する理由を明確にしないと自分が欲しい回答が得られないのは当たり前のことです。

0227nobodyさん2011/02/20(日) 02:44:28.37ID:???
新参な俺に教えてください
>>226はおバカさんなのかしら?
0228nobodyさん2011/02/20(日) 02:45:28.82ID:s/fCDBml
>>225
ありがとうございます
それでやってみます

>>227
ちょっとなに生きてるのかよくわからないです
0229nobodyさん2011/02/20(日) 02:59:20.89ID:???
>>227
だから>>226のコテハン野郎は馬鹿だと前スレから言ってるじゃないか。
0230nobodyさん2011/02/20(日) 03:07:14.16ID:???
回答者にID出せ厨かつAjax厨だからな
自作自演でしか盛り上げられないかわいそうなやつなんだよ
残念な脳の持ち主であることは前々から言動を見ればわかっていたことなんだから
今更小突き回しても面白くないし華麗にスルーするのがよい
俺も含めてかまったら負け
0231nobodyさん2011/02/20(日) 08:38:16.10ID:gro3cDqj
引き続き、土は生ぶ 明あき弘ひろをさがしています。
三十歳 programmer 日藝出身 最寄り駅はさぎのみや駅もしくは阿佐ヶ谷駅
福岡県出身との情報があります。
連絡先・[email protected]
0232 冒険の書【Lv=1,xxxP】 (´・ω・)ス2011/02/20(日) 09:46:39.54ID:???
>>230
困った奴ですね。
0233nobodyさん2011/02/20(日) 11:22:18.24ID:6qTRErru
設定ファイルconfig.phpの中に書かれた変数をfunction内で呼び出すのにいい方法ありますか?
functionは10個ほどあり、function外にincludeを置くと変数を読み込んでくれないので、function内で同じincludeを計10個書いています。
global 変数 とすれば読み込んでくれますが、設定項目が増えるとglobalも増やさなくてはいけないので面倒で。。
0234nobodyさん2011/02/20(日) 13:24:40.04ID:???
Configクラスを用意する。
staticでアクセスする
0235nobodyさん2011/02/20(日) 14:14:04.00ID:TBXYZPd+
MySQL関連の質問で恐縮なんですが、

一般的に処理が重くなるのは、 saveなどの書き込み系で、
findなどはそこまで気にしなくて良いと考えていいでしょうか?

最近、ループの中でsave を何回も繰り返していたので、
一気にまとめて save Allとするようにしました。
0236nobodyさん2011/02/20(日) 14:15:16.02ID:???
標準関数でsaveなんてあったっけ?
0237nobodyさん2011/02/20(日) 14:23:53.47ID:???
>>234
classをfunction内で読み込むのにstaticというのを使うのですか?
0238nobodyさん2011/02/20(日) 14:25:08.80ID:TBXYZPd+
>>236

すいません。 cakePHPを使っているので、データベース関連の関数はsave とかで覚えてしまっていて。
0239nobodyさん2011/02/20(日) 14:43:56.82ID:???
更新系が重くなるのは勿論だけど参照系だって多少は重いよ
0240nobodyさん2011/02/20(日) 15:36:51.57ID:TBXYZPd+
>>239

レスありがとうございます。

やはり、80000ぐらいのデータから findとかを繰り返すと重くなりますよね。
saveは重いだろうけど、 findは軽いだろうから大丈夫だと勘違いしてた気がします。
0241nobodyさん2011/02/20(日) 21:34:15.34ID:xXHeI12p
「a()[0]」という感じにa()の結果のarrayを変数に入れずにすぐに使いたいのですが
どう書けばいいですか?
<?php
echo a()[0]; //エラーが出ます
function a()
{
return array('b', 'c');
}
?>
0242nobodyさん2011/02/20(日) 21:54:32.14ID:???
無理です
0243nobodyさん2011/02/20(日) 22:02:15.46ID:???
>>241
基本的にには無理だし、a()[0]、a()[1] と別々に呼び出すと
a()関数を2回コールすることになるので無駄
どうしても1行で収めたいのなら別の関数を作ってそこからa()を呼び出すとか
function b($func, $var){$ret = $func(); return $ret[$var];}
echo b("a", 0);
0244nobodyさん2011/02/20(日) 22:05:03.39ID:???
>>242-243
どうもありがとうございます
0245nobodyさん2011/02/20(日) 22:30:27.58ID:???
それも2回コールするけどな
0246nobodyさん2011/02/21(月) 00:16:45.14ID:???
Nowdoc って何て読むんだろ。ナウドック?
0247nobodyさん2011/02/21(月) 00:30:18.28ID:???
>>241
こんなんでどうでしょうか

class hoge {
public $result;

public function foo() {
$this->result = array('aaa', 'bbb');
return $this;
}
}
$obj = new hoge();
echo $obj->foo()->result[0];
0248nobodyさん2011/02/21(月) 00:36:24.71ID:???
newの分多いじゃんw
0249nobodyさん2011/02/21(月) 00:57:18.94ID:???
247じゃないけど、本質はそこじゃないだろ>>248
0250nobodyさん2011/02/21(月) 01:03:08.65ID:???
どこなの?
0251nobodyさん2011/02/21(月) 01:36:46.56ID:???
>>250
249じゃないけど本質はナウドック
0252nobodyさん2011/02/21(月) 01:39:13.82ID:???
>>251
250じゃないけど、お前みたいなヤツ、嫌いじゃないぜ///
0253nobodyさん2011/02/21(月) 01:40:18.09ID:???
>>247
それするなら

class hoge {
public $result;
function __construct(){
$this->result = array('aaa', 'bbb');
}
}
$obj = new hoge();
echo $obj->result[0];
0254nobodyさん2011/02/21(月) 01:46:22.22ID:???
1行で済ませたいんだろ
0255nobodyさん2011/02/21(月) 01:55:13.43ID:???
1行
class hoge{public $result;function __construct(){$this->result = array('aaa', 'bbb');}}$obj = new hoge();echo $obj->result[0];
0256nobodyさん2011/02/21(月) 02:01:00.32ID:???
関数名受け取って実行のほうがいいじゃん
0257nobodyさん2011/02/21(月) 02:02:57.42ID:???
>>255の言うとおり、1行で済ます方法なんていくらでもあるんだから、きっと深い理由があるんだよ
他社の巨大なWebシステムをカスタマイズしなきゃいけなくて、触れるコードがそこだけだとか、
なにか社内規約等の特別な理由で一時変数を用意できないだとか、


さあ、>>241さん、はりきって質問の趣旨をどうぞ!
0258nobodyさん2011/02/21(月) 02:13:13.95ID:???
なんでもかんでもクラスにいれればいいってもんじゃねえだろ
オブジェクト脳が見たらどうみても不思議なコードだ
0259nobodyさん2011/02/21(月) 02:14:45.10ID:???
>>241じゃないけど、
$ret=a();
func($ret[0], ...);
みたいに2行になるのが嫌なんだろ。a()[0]という書き方が許容されるなら
func(a()[0], ...);
だけで済むってことだと思うけど
0260nobodyさん2011/02/21(月) 02:16:18.64ID:???
単純に、正規の方法はない、やるとしても>>247のような形になるよってことでおわりのような。
0261nobodyさん2011/02/21(月) 02:18:01.79ID:???
>>258
オブジェクト脳からみて、func()[0]というコード片自体には違和感ないでしょ。それをどう実装するかって話で。
0262nobodyさん2011/02/21(月) 02:26:07.93ID:???
function g(&$a, $n) {
return $a[$n];
}

func(g(a(), 0));

0263nobodyさん2011/02/21(月) 02:37:33.89ID:ryPTOETx
$strgin = "<p>
 </p>
<p>
東京メトロ各線 「赤坂見附駅」ベルビー赤坂口より徒歩約2分<br />
東京メトロ千代田線 「赤坂駅」1番出口より徒歩約3分</p>";

上記のような文字列の改行をのぞいて、すべて横一行にしたいです。

(こんな感じに)
東京メトロ各線 「赤坂見附駅」ベルビー赤坂口より徒歩約2分 東京メトロ千代田線 「赤坂駅」1番出口より徒歩約3分


$string = strip_tags($string);
$string = preg_replace('/ /', '', $string);

こんな感じでいろいろ試したのですが、2行目が上手くいかず。。
やり方をどなたか教えてもらえないでしょうか?
0264nobodyさん2011/02/21(月) 02:40:19.46ID:???
phpもperlみたいに正規表現を関数無しで使えるようにすべき
5.4ではなってるだろうな
0265nobodyさん2011/02/21(月) 02:52:00.47ID:ryPTOETx
>>263では & n b s p ; が消えてました。

実際には上記の記号が空白の / / の間に入っております。
0266nobodyさん2011/02/21(月) 02:59:41.56ID:???
>>263
改行コードを取ろうとする気配が見えないんだけど、改行コードを空文字列に置換すればいいんでないの
0267nobodyさん2011/02/21(月) 03:03:58.80ID:???
[\r\n]
0268nobodyさん2011/02/21(月) 03:29:30.53ID:ryPTOETx
>>266-267

ありがとうございます!

$shopNearStation = strip_tags($item['shop_near_station']);
$shopNearStation = preg_replace('/[\r\n]/', '', $shopNearStation);
$shopNearStation = trim($shopNearStation);

結局こんな感じで上手くいきました!
本当は一発で出来るのかもしれませんが、正規表現がよくわからず三行に。
0269nobodyさん2011/02/21(月) 07:27:06.39ID:???
>>268

行数は気にしない

よくできました
0270nobodyさん2011/02/21(月) 07:42:03.69ID:???
改行コードを置換するために正規表現使う必要なくないか?str_replaceでおk
0271nobodyさん2011/02/21(月) 13:12:30.66ID:???
スパムや詐欺、犯罪などのサイトに使われることが最も多い言語で、書き手の質も他の言語に比べて総じて低い
0272nobodyさん2011/02/21(月) 13:13:42.40ID:???
いろいろな実装を手軽に行えることができ、それゆえ間口も広く、ユーザが多い
0273nobodyさん2011/02/21(月) 15:30:35.85ID:OHQAldZA
変な事聞きますけど、mb_send_mailとかmail関数でメールを送信する時、
サーバにpostfixやらqmailなどのソフトがインストールされていないと
メールが送られないのでしょうか?
0274nobodyさん2011/02/21(月) 15:48:40.07ID:???
>>273
基本的にはそうだね。他のSMTPサーバーに接続して送信したいなら、fsockかPEARのMail使えばいいと思うよ。
0275nobodyさん2011/02/21(月) 16:20:49.39ID:OHQAldZA
>>274
ありがとうございます。そう理解します
0276nobodyさん2011/02/21(月) 16:57:15.86ID:???
理解しようとするな。感じるんだ。
0277nobodyさん2011/02/21(月) 17:15:18.29ID:???
>>271-272
そのためにAjaxが存在する
0278nobodyさん2011/02/21(月) 19:18:00.69ID:???
で?結局nowdocの読み方はナウドックでいいのかよ
0279nobodyさん2011/02/21(月) 19:38:51.31ID:???
脳毒
0280nobodyさん2011/02/22(火) 01:21:40.06ID:???
>>271
犯罪者の9割はパンを食べている
0281nobodyさん2011/02/22(火) 01:49:10.22ID:6ISDoM5D
携帯からメール送信して貰った画像でFLASH時計を作成するサービスってどう作りますか?
ActionscriptでFLASH時計は作れますが、サーバーサイドでのやり方がわかりません。
0282nobodyさん2011/02/22(火) 01:56:57.91ID:???
画像とXMLをちょっと編集するだけで使いまわせるように拡張すればいいだけでは?
0283nobodyさん2011/02/22(火) 02:40:14.82ID:6ISDoM5D
すみません。
それはコンパイラをサーバーにあげてPHPから使えるようにすると
いう事でいいのでしょうか?
0284nobodyさん2011/02/22(火) 02:40:40.63ID:???
PHP関係あるの?
0285nobodyさん2011/02/22(火) 02:46:31.47ID:6ISDoM5D
PHPと連携させたいと考えていまして。
■ このスレッドは過去ログ倉庫に格納されています