トップページ⇒php
585コメント154KB

PHP上級者が集まるスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/01/14(日) 16:53:46ID:???
ここでは他のPHPスレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。 
我こそはPHPプロフェッショナルだという方の書き込みをお待ちしております。 
0153nobodyさん2010/07/09(金) 06:56:15ID:???
継承先で使いたいメソッドはどうすんの
0154nobodyさん2010/07/09(金) 07:28:38ID:???
>>153
うちの職場 public wwwwwwww
0155nobodyさん2010/07/09(金) 07:32:34ID:???
>>152
ソースがムダに長くなるからやめれ
0156nobodyさん2010/07/10(土) 02:37:53ID:???
protectedなんて、
TemplateMethodを適用する時か、
Decoratorを適用した基底クラスを作る際の移譲先を保持する時ぐらいだな。

>>155
ライブラリの外に公開するValue Objectの場合、getter/setter型にしておいた方が仕様変更に追随しやすくできるよ。
0157名無しさん@そうだ選挙に行こう2010/07/10(土) 10:15:04ID:???
全部publicでいいよもう
ってBASICerが言ってました
0158名無しさん@そうだ選挙に行こう2010/07/10(土) 11:40:57ID:???
phpのglobal変数について質問があります。
global変数はクラス内に定義する事は出来ないのがphpの仕様なのでしょうか?

//文法エラーが発生
class TestClass
{
  global $test1;
  static public function TestFunction( )
  {
    echo "test";
  }

}

//OK
class TestClass
{
  static public function TestFunction( )
  {
    global $test1;
    echo "test";
  }
}
0159名無しさん@そうだ選挙に行こう2010/07/10(土) 11:59:11ID:???
>>158
クラスの定義にglobalを記述したい理由が分からん。
staticじゃだめなの?
0160名無しさん@そうだ選挙に行こう2010/07/10(土) 12:03:10ID:???
>>159
<?php
<html>
<head></head>
<body>
<!-- -->

</body>
</html>
0161名無しさん@そうだ選挙に行こう2010/07/10(土) 12:10:34ID:???
>>159
途中で誤爆してしまいました。すみません。
用は以下の用な事をしたいのです。

<< やりたいコード �@ >>

<?php
  //POSTデータを取得しグローバル変数へ格納
  $test1 = $_POST["name_mei"];
?>
<html><head></head><body>
  <?php
       TestClass::TestFunctionA();
       TestClass::TestFunctionB();
  ?>
</body></html>
<!--
    以下にPHPのコードが続きます。
    ※改行が多過ぎますエラー回避の為
-->
0162名無しさん@そうだ選挙に行こう2010/07/10(土) 12:27:26ID:???
<< やりたいコード �A >>
※>>161の続きです。

<?php
class TestClass
{
  global $test1;
  static public function TestFunctionA( )
  {
     $w = $test1;
     $w .= "さん";
     echo $w;
  }
  static public function TestFunctionB( )
  {
     $w = $test1;
     $w .= "ちゃん";
     echo $w;
  }
}
?>
0163名無しさん@そうだ選挙に行こう2010/07/10(土) 13:45:50ID:???
上級者・・・が集まるスレ・・・だと?
0164名無しさん@そうだ選挙に行こう2010/07/10(土) 21:45:48ID:???
上級釣り師
0165nobodyさん2010/07/12(月) 04:23:32ID:???
>>162
TestClass::$test1 = $_POST["name_mei"];
staticでなく、globalを使う理由は?

どちらにせよ上級者はやらん設計だと思うがw
0166nobodyさん2010/07/13(火) 21:18:11ID:gdo55WeB
htmlspecialchars関数についてお尋ねします。
この関数に文字列を2回通した場合、アンパサンドが二重に変換されてしまいます。
<→&lt;→&amp;lt; のようにです。

Ver5.2.3からは、第四引数「double_encode」が追加されたので、
これを防止する事ができると思いますが、
それ以前のバージョンの場合に回避方法はありませんでしょうか?
0167nobodyさん2010/07/13(火) 22:10:27ID:???
Ver5.2.3のソースコードを移植する
0168nobodyさん2010/07/14(水) 00:13:58ID:???
>>166
一度デコードするか、自作関数作ればいいんじゃない?

上級者を自負するなら、そもそも2回通すロジックを見直すべきだとは思うが・・・・・・
0169nobodyさん2010/07/14(水) 05:54:21ID:???
> 2回通すロジックを見直すべき

はげどう
01701662010/07/14(水) 07:24:12ID:???
>>168-169
レスありがとうございます。
上級の方がいそうなスレなのでお尋ねしました。

仰るとおり、2回通すロジックが問題ですが、
誤って2回通してしまうような場合も想定して、他にも方法がないか模索していました。
また、WAFのようなものでサニタイズされた場合、
ソースを修正しなければ、やはり二重に処理されてしまいますので、やはり何か手が打ちたかったのです。

ちなみに、1度デコード(あるいは&だけデコード)する方法も考えましたが、
ttp://www.asp-edita.jp/doda/one/doda5728_17.html
辺りや、リンクされている記事を読んで結局はコチラで質問した次第です。
0171nobodyさん2010/07/14(水) 13:23:56ID:???
htmlspecialcharsはあくまで
「HTML内に出力するときはエスケープしなきゃダメでしょ><!」
って関数なので、htmlとして出力する時にしか使わない。
てことはまったく使わないか、使うとしても1回。

(他作WAFだろうが自作PHPだろうが)「誤って」2回通すとすれば、
それは局所的なバグとかじゃなくて、思想・理解的な間違いだと思われる。
今後の似たようなバグの根絶のためにも、思想の見直しを。

そうは言っても…って話も、まあ、あるんだろうけど(笑)
0172nobodyさん2010/07/14(水) 15:34:35ID:uN19CneF
http://pc11.2ch.net/test/read.cgi/prog/1195719971/
01731662010/07/14(水) 20:41:25ID:???
>>171
皆さん、レスありがとうございました。
自動的にhtmlspecialcharsと同様にサニタイズするWAFが有る・無しにかかわらず、
同じソースコードを使いたかったのです(--;

「関数を2回通す」というのは悪い例えでした、すみません。
0174nobodyさん2010/07/15(木) 00:12:50ID:???
docomo携帯から閲覧した時に文字に下線が引かれる様にするには
どうすれば良いですか?

<U>文字の下線</U>

こんな感じのタグをhtmlに入れても
docomoからは下線が表示されません。
0175nobodyさん2010/07/15(木) 00:31:12ID:???
>>174
<hr>しか無理じゃね?
wordpressとかなら消えるんじゃね?
0176nobodyさん2010/07/15(木) 00:54:39ID:???
>>175
<U>タグが使え無いのは、docomo仕様なのでしょうか?
0177nobodyさん2010/07/15(木) 01:14:17ID:???
>>174
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1213056147
ちったー調べたら?

<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8">
</head>
<body>
<u>アンダーライン引かれる?</u>
hrは?<br />
<hr />
</body>
</html>

ちなみに i モードHTMLシミュレータII で見た引かれてたよ
ktaystyleとか使ってるなら出力みよーよ
0178nobodyさん2010/07/15(木) 05:22:22ID:???
もはやPHPかすりもしない質問kt
0179nobodyさん2010/07/20(火) 18:13:27ID:???
http://test/test1.php

として通常は動作させるのを

http://test/test1/

として同じ挙動をさせるにはどうすれば良いでしょうか?
0180nobodyさん2010/07/20(火) 21:09:14ID:???
mod_rewrite
0181nobodyさん2010/07/20(火) 23:16:15ID:???
>>180
お勧めの解説サイトプリーズ
0182nobodyさん2010/07/21(水) 00:58:01ID:???
>>181
「mod_rewrite」でググってこい
0183nobodyさん2010/07/23(金) 11:36:54ID:AgQn7g4l
PHPで車は動かせますか?

上級者なら出来るって聞いたものでここで質問させていただいてます。
0184nobodyさん2010/07/23(金) 15:31:24ID:???
できます。次
0185nobodyさん2010/07/24(土) 13:56:23ID:C0x7DFuy
このスレのレスはPHPで自動化されているって本当ですか?
0186nobodyさん2010/07/24(土) 19:46:46ID:???
本当です。次
0187nobodyさん2010/07/24(土) 20:14:35ID:???
なんでpdoモジュールを書いてる奴らはソースをどっちかに纏めないんだ?
0188nobodyさん2010/07/26(月) 07:56:54ID:???
>>187
どういういみでござるか?
0189PHP@最強戦士2010/07/26(月) 16:55:45ID:x+pw7Ejc
PHPいいですよね〜クソさ加減が

PHPつかっててきずいたんですが PHPのコミュって
珍言ばっかりほざいてる人たちがいてとても素晴らしいと思いますよ
年齢層が低くて 頭の低レベルな人たちと交流できるので素晴らしいです
ustreamでPHPユーザのクソ発言をみると喜んじゃいます!!おお

それとPHPが無いと死にそうです PHPはド素人でもできるので
html=PHPですよね

PHPの良さはPHPがわかればhtmlとCSSがわかるってところですよね
脆弱性が多いところもいいんですよ
ワタシはPHP 20年つかってるんですが 最高なのでやめれませーーーーーーーーーーーん!!!!!!!!!!

趣味はPHPユーザーの珍言、クソブログを見る事です^^

Perlやってる人ってバカですよね
この前Perlやってる人に話かけられました

Perlユーザー「君、Unixとかしってるかい?PHPみたいなくそ言語やってておもしろい?」
ワタシ「unixとか時代遅れですね そんなの知りません! いまどきPHPですよ! perlとか本当時代遅れですね!! 何年前の人ですか?」
Perlユーザー「あんたなめてんの?」
ワタシ「キャーこわい! PHPをばかにしないでください! PHPがあればwebアプリつくれるんですよ?」
Perlユーザー「ねえ ターミナルひらいて sudo rm -rf / ってうって」
ワタシ「怖いわ!ははい! やめてください 開きました うちました」
Perlユーザー「そのまま放置しといて」
ワタシ「なんかパソコン起動しなくなっちゃいました〜泣」
0190nobodyさん2010/07/26(月) 17:11:53ID:???
PHPはいいですね

まで読んだ。
0191nobodyさん2010/07/26(月) 17:22:08ID:x+pw7Ejc
>>190
てめえはPHPユーザーだろ?
はやく氏ねよwwwwwwてめえみたいなPHPユーザーが消えれば平和になる
0192nobodyさん2010/07/26(月) 17:25:32ID:???
てめえはP

まで読んだ。
0193nobodyさん2010/07/26(月) 17:45:49ID:???
八百忠が消えれば平和になる

まで読んだ
0194PHP=クソ(笑)2010/07/26(月) 23:34:55ID:z/NbSmjH
名前の通りです(笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑笑)
0195nobodyさん2010/07/27(火) 00:42:12ID:???
道ばたに落っこちているウンコに対して、
「ウンコ!このウンコ!・・・おまえはウンコ(笑)・・・ウンコ(笑笑笑)」
と一人叫んでいる >>194 さんを想像したら心がほっこりした

その余裕が顔に出たのか、モテキ到来で彼女が出来ました。
本当にありがとうございました。
0196名無しさん@お腹いっぱい。2010/07/27(火) 07:38:03ID:Q+p+NFYS
だからなに?てめえは彼女が出来てなんなの?
バカじゃん?それがどうかしたの?いちいち報告しなくていいよなあ?
御前等みたいなゴミは仲良しグループで仕事してんだろこら?
なあ?てめえみたいなゴミは死ねよ今すぐ死ねよ
まじしねよ!!!!!!コネコネしてんじゃねえよ死んでほしい

てめえブログとかに沢山言語自慢してそうなやつだな かっこつけてhaskellとか
沢山言語やってそうな御前は八方美人なんだろうな うぜえんだごみ まじきえろ
0197nobodyさん2010/07/27(火) 09:46:44ID:???
まじきえろ まで読んだ
0198nobodyさん2010/07/27(火) 11:11:26ID:???
PHP技術者認定もってるひといまsか?
0199nobodyさん2010/07/27(火) 14:28:08ID:???
クソクソ言ってる方がキレがあったな。

>>198
Zendのやつ?あれってまだあるの?
0200nobodyさん2010/07/29(木) 10:30:15ID:???
上級者って下品
0201nobodyさん2010/07/29(木) 22:02:33ID:???
A.htmlに名前(文字列)を入力し、
A.html内の実行ボタンがクリックされたら、

GETパラメータに入力値(文字列)をエンコーディングした上で
連結しA.html内に定義した<iframe>のsrcにurlを
JavaScriptで動的に作成(指定)する事により、
B.php画面の処理結果をA.html内に定義した<iframe>内に描画
したいと思っています。

しかし、srcにはURLエンコードを正常に行い指定しているにも関わらず、
入力値に「#」が入っていると「#」以降の文字列が失われてしまいます。
一体なぜでしょうか?

■A.html
  [名前] あいうえお#かきくけこ
  [実行(ボタン)]

  ※JavaScriptにより内部的に生成されるURL
  http://test_site/B.php&name=あいうお#かきくけこ

■B.php
  //名前
  $name = $_GET["name"];
  →ここで $name には、 あいうえお しか入らないです。
  本当は、 あいうえお#かきくけこ まで取得したいのですが。

宜しくお願い致します。
0202nobodyさん2010/07/29(木) 22:33:33ID:???
>>201
#はページ内リンクだからかね。
0203nobodyさん2010/07/29(木) 22:52:57ID:???
>>202
どうやったら「#」という文字列を渡す事が出来ますか?
0204nobodyさん2010/07/30(金) 01:56:11ID:???
エンコード
0205nobodyさん2010/08/01(日) 14:33:20ID:???
>>204
エンコードはしてるらしいが
0206nobodyさん2010/08/01(日) 14:40:29ID:???
>>204 >>205
両方アホ
0207nobodyさん2010/08/31(火) 00:19:19ID:???
フォームからファイルアップロードするときに、
大きいサイズだとけっこう時間がかかります。
アップロード状況をプログレスバー等でリアルタイムに視覚化するには
どのような処理をすればよいのでしょうか?
0208nobodyさん2010/08/31(火) 01:55:16ID:???
apcでできなかったっけ
0209nobodyさん2010/08/31(火) 15:41:41ID:???
PHP_APCってレンタルサーバでもインストールできます??
0210nobodyさん2010/08/31(火) 15:45:18ID:???
php.ini弄らないといけないみたいなので、ムリっぽいですね><
0211nobodyさん2010/09/09(木) 19:31:47ID:???
掲示板のようなシステムで、投稿内容に
JavaScriptやIframeなどのタグがあったらNGにするには
どのように処理されてますか?
単純な文字列検索だけだと、逃げ道がいろいろありますよね。。。
0212nobodyさん2010/09/09(木) 22:07:14ID:???
適当でいーんじゃね?
抜けられて困る事もあまり無いし
スパムだったら都度フィルタ調整するしか無いだろうし
許可タグはホワイトリストだべ。
0213nobodyさん2010/09/10(金) 20:05:06ID:???
適当ってどれくらい??
こんなんでいいの?

if (preg_match("/<script/i", $body)) {
return false;
}
0214nobodyさん2010/09/13(月) 01:34:52ID:???
たとえば掲示板プログラムで、
投稿本文にタグの閉じ忘れがあったらレイアウト崩れますよね。
プロのみなさんは、どうやって対応されていますか?
0215nobodyさん2010/09/13(月) 01:47:00ID:???
1. そもそもタグを許可するような仕様を提案することはない。
2. やむなく作るなら、閉じ忘れを警告し、閉じないと投稿できないようにする。
0216nobodyさん2010/09/13(月) 20:08:57ID:???
タグありにしたいんです><
閉じ忘れの検出はどのように実装しますか?
0217nobodyさん2010/09/13(月) 21:01:05ID:???
>>216
tidyで修正出来なかったっけ?
0218nobodyさん2010/09/14(火) 02:39:32ID:???
JavaScriptで実装する。
送信ボタンを押したときか、テキストエリアからフォーカスが外れるタイミングで。

正規表現で<tagと</tagをペアで数えていけばいいんじゃね?
自分なら厳密にやるよりはソースがシンプルなほうを選んで実装するな。
「親切で指摘してあげるんですよ^^^」的な上から目線を根拠に。
0219nobodyさん2010/09/14(火) 13:43:42ID:LyPWJsrC
<br>なんかはどうする?
0220nobodyさん2010/09/14(火) 14:00:50ID:???
ん?チェックする対象にしなけりゃいいんじゃない?
それとも<br>が100個書かれたときのレイアウト崩れまで考慮すんの?
それやるとキリがないからやりたくないな…。
0221nobodyさん2010/09/15(水) 04:01:29ID:???
>>211
strip_tags() で不満なら HTML Purifier
0222nobodyさん2010/09/15(水) 12:55:31ID:???
strip_tagじゃjavascriptのコードは消せませんよ
0223nobodyさん2010/09/16(木) 02:50:48ID:???
>>222
だからその後まで書いてるんじゃん。バカ?
0224nobodyさん2010/09/16(木) 10:29:22ID:???
認識するタグは変更出来なかったっけ
0225nobodyさん2010/09/17(金) 13:09:32ID:???
正規表現で消せばいいだろ
0226nobodyさん2010/09/17(金) 13:41:52ID:???
似非上級者の集うスレはここですか?
0227nobodyさん2010/09/17(金) 13:45:23ID:???
>>226は下のスレに誘導
http://hibari.2ch.net/test/read.cgi/php/1279833891/
0228nobodyさん2010/09/22(水) 17:57:31ID:???
PHP上級者(笑)
0229nobodyさん2010/09/22(水) 19:00:53ID:???
PC iPhone 携帯 いずれからアクセスされたも指定したURLへ飛ばすにはどうすれば良いでしょうか?
当然携帯電話の場合には、JavaScriptが使えないので Location等を使う事になると思うのですが、
携帯キャリアを問わず正常にページ遷移させる事が出切るのか不安です。
0230nobodyさん2010/09/22(水) 19:07:17ID:???
ゆーざーえーじぇんとー^^
0231nobodyさん2010/09/22(水) 19:08:05ID:???
http://php.net/manual/ja/function.header.php
header("Location: うんたら")
0232nobodyさん2010/09/22(水) 21:00:14ID:???
ドコモの古いので無ければ、まあ
0233nobodyさん2010/09/27(月) 00:08:18ID:???
PHP5のオブジェクト指向開発で
protectedを一切使わない奴はすべからく雑魚PGである。
0234nobodyさん2010/09/27(月) 00:52:33ID:???
雑魚PGの俺に、protetedとprivateの使う場面の違いを教えてくれ
0235nobodyさん2010/09/27(月) 17:58:35ID:???
protectedは欠陥商品
使うヤツが雑魚
0236nobodyさん2010/09/30(木) 19:41:34ID:???
do-while と Exception を使わない奴は間違い無く雑魚PG
0237nobodyさん2010/09/30(木) 20:34:11ID:???
最近覚えた単語を使いたいのか
組み込み系では使うがPHPで使う機会ってほとんどないけどな
0238nobodyさん2010/10/01(金) 00:14:13ID:???
使わなくても書けるけど、使えばコードがスマートになる場面は多々ある。
>>237が雑魚PGという事は良くわかった。
0239nobodyさん2010/10/01(金) 01:02:57ID:???
●初心者の考える関数/メソッド
・成功した場合は配列を返す
・エラーの場合は1〜nのエラーコード返す
・第1引数&$errを渡した場合はエラーが代入される。
・第2引数&$msgを渡した場合はメッセージが代入される。

●まともな関数/メソッド
・戻り値は配列
・エラー時は XxxException が throw される
0240nobodyさん2010/10/02(土) 19:57:41ID:???
致命的じゃないものはfalseを返すとかはよくやる
try(func())catch(XxxException $e){die();}より
if(func()===false){die();}のがてっとりばやいし
特に複数種類Exception出すと面倒だし

参照渡しは絶対に使わないけどな
0241nobodyさん2010/10/02(土) 20:45:24ID:???
このスレで上級者は1割に満たないだろ。

9割はカッスカス
0242nobodyさん2010/10/02(土) 23:39:41ID:???
1人もいないよ
0243nobodyさん2010/10/02(土) 23:53:20ID:???
241だが

俺は少なくとも上級者に入ってるので一人は先ずありえない。
0244nobodyさん2010/10/03(日) 00:06:59ID:???
オレも同じようなこと書こうとしたけど恥ずかしくてやめました
0245nobodyさん2010/10/06(水) 07:23:47ID:???
Facebookに勤めてるPHPハッカーとか憧れるわ
どんなコード書いてるんだろ
0246nobodyさん2010/10/09(土) 04:01:25ID:???
作りたいものがない!
0247nobodyさん2010/10/09(土) 18:35:21ID:???
上級者ってどこからなの?
という疑問。
0248nobodyさん2010/10/10(日) 00:59:01ID:???
別スレで分る人がいなかったのでこちらにて質問させて下さい。

Googleで特定サイトの(画面上から入力されたURL)ページランクを

調べるにはどうすれば良いでしょうか?

GoogleのAPIをコールするのかな?
0249nobodyさん2010/10/10(日) 01:25:50ID:???
>>248
ttp://hm2k.googlecode.com/svn/trunk/code/php/scripts/pagerank.php

ttp://www.hm2k.com/projects/pagerank

GoogleにGETでアクセスしてるっぽい。
ソース直張。
0250nobodyさん2010/10/10(日) 01:44:06ID:???
>>249
サンクス

流石上級者が集まるスレだけあるわw
0251nobodyさん2010/10/10(日) 02:53:51ID:???
>>250
いや、普通にググっただけだよ。
実はGoogleAPIでもいけるんじゃないか。。。とかはわからん。
0252nobodyさん2010/10/11(月) 15:44:05ID:???
ちょっと質問なんですが
Googleで特定のキーワードが何回検索されたかを調べる方法ってありますか?
出来れば、特定の日に何回検索されたかです。

例) 赤い一輪車 というキーワードが 10月10日(日) に15回 といった具合です。
■ このスレッドは過去ログ倉庫に格納されています