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

PHP上級者が集まるスレ

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/01/14(日) 16:53:46ID:???
ここでは他のPHPスレよりもより一層と高いレベルでの情報交換・体験談などを行うスレです。 
我こそはPHPプロフェッショナルだという方の書き込みをお待ちしております。 
0321nobodyさん2011/01/08(土) 01:22:31ID:???
>>320
だいたいそんな感じになると思うけど
>trim
入力値の評価と修正が一緒にあるのは気持ち悪いかも
>unique
それはどっかDBとか見に行かなきゃいけないわけで汎用的にならないんじゃ?
>date
年月日が別のフィールドに分かれてたら3つフィールド名指定できる?
>blank
別のフィールドの値がXの時だけ必須入力とかはblankかmethodで対応できる?
0322nobodyさん2011/01/08(土) 01:33:45ID:???
>>trim
>入力値の評価と修正が一緒にあるのは気持ち悪いかも
なるほど。ちょっと考えてみる。ちなみに「ascii」も全角→半角変換のつもりw

>>unique
>それはどっかDBとか見に行かなきゃいけないわけで汎用的にならないんじゃ?
まーねー。確かに規約で縛りすぎるのも気持ち悪い。しかし、どう代替しようか。

>>date
>年月日が別のフィールドに分かれてたら3つフィールド名指定できる?
柔軟な日時クラスがあるので、$varnameはymdのarrayでもsqlでもatomでもなんでもおk

>>blank
>別のフィールドの値がXの時だけ必須入力とかはblankかmethodで対応できる?
methodはなんでも屋のつもりだけど、確かに連動必須項目はテンプレ化してもいいかもね。
ただ、シンプルなテンプレ化の方法は少し考えねば…
0323nobodyさん2011/01/08(土) 02:54:32ID:???
なんで既存の使わんの?
0324nobodyさん2011/01/08(土) 02:56:33ID:???
CakePHP式のバリデーションは便利だよ。
配列&正規表現を工夫すればフレームワークじゃなくて
単なるクラス(か関数)でも用意できる。
0325nobodyさん2011/01/09(日) 18:56:19ID:???
>>322
>unique
わざわざ用意するまでもなく単にmethodでやればいいんじゃないかな?
削除フラグが立ってない中でユニーク…とかを考えると大掛かりになるし

>$varnameはymdのarrayでもsqlでもatomでもなんでもおk
$_POSTを丸ごと渡すんじゃなくて、
前処理として $ymd = array($_POST['hoge_y'], $_POST['hoge_m'], $_POST['hoge_d']); 的なコードが別途必要ということかな

>ただ、シンプルなテンプレ化の方法は少し考えねば…
必須(blank)に関するチェックに条件が付く場合が殆どで、
他フィールドの値に対して定数との==、!=比較ができれば当分困らないと思う。
'blank' => array(... /*必須にする条件→*/array('eq', 'OtherField', '1')) みたいな

>>323
このあたり既製品じゃ対応しづらい要望が顧客から入りやすい
0326nobodyさん2011/01/09(日) 19:03:41ID:???
どういうバリデート?
0327nobodyさん2011/01/09(日) 20:09:18ID:???
> >unique
> わざわざ用意するまでもなく単にmethodでやればいいんじゃないかな?
そんな気がしてきた。すげーしてきた(笑)。

> $ymd = array($_POST['hoge_y'], $_POST['hoge_m'], $_POST['hoge_d']); 的なコードが別途必要ということかな
いや、フォームの段階で <input name="hoge[year]"... な感じ。

uniqueとかblankとか、少し条件が複雑なものは汎用的な中間methodでも作って…とかやりだすと地獄を見るかな(笑)
0328nobodyさん2011/01/10(月) 01:29:42ID:???
バリデート自体は大して実装コストかからないけど、
汎用的かつ、書きやすい構文を考えるのは結構面倒だよね。
汎用性を追求し過ぎると、大抵は既存FWのバリデーターに近い形に落ち着いてしまう。
0329nobodyさん2011/01/10(月) 17:22:39ID:???
ECCUBEのコード読んでたときに見つけたんですけど、

// {{{ requires

の {{{ って何ですか?
0330nobodyさん2011/01/10(月) 17:42:06ID:???
コメントなら単なる記号じゃねーの?
0331nobodyさん2011/01/10(月) 17:47:29ID:???
>330
なにか、ドキュメント生成系で使われてるのかな?と思ったんですけど、そんなことはないみたいですね。
ありがとうございます。
0332nobodyさん2011/01/10(月) 20:32:02ID:???
>>329
http://www.emacswiki.org/cgi-bin/wiki/FoldingMode
0333nobodyさん2011/01/12(水) 01:46:33ID:???
>>332
なるほど、Emacsで使うんですね。
ありがとうございます。
0334nobodyさん2011/01/12(水) 16:58:41ID:KnVXPSXC
Twitter Streaming API を使用して
指定したユーザ(例えば  testman )が呟いた内容を
テキストファイルに出力したいのですが
どの様に書けば良いでしょうか?
0335nobodyさん2011/01/12(水) 19:48:32ID:???
file_put_contents('text.txt', $tweet);
0336nobodyさん2011/01/13(木) 17:17:41ID:???
>>335 
Twitter Stremaing API を使用して
指定ユーザの呟きを取得する部分が
分からないです。
※テキストファイルへの出力コードはわかります。
0337nobodyさん2011/01/13(木) 18:23:45ID:???
それって初心者の質問じゃないのかな。
お前はとても上級者に見えないが。
0338nobodyさん2011/01/13(木) 18:43:54ID:???
>37

初心者の私上級者の方教えて下さい。
0339nobodyさん2011/01/13(木) 19:42:36ID:???
>>336
ドキュメントに載ってないの?
0340nobodyさん2011/01/13(木) 21:14:10ID:???
>>339
PerlやPythonといった言語での解説サイトはありますが
PHPでの実装方法を解説したサイトが見つかりません。
0341nobodyさん2011/01/13(木) 21:23:18ID:???
ドキュメント読んでないのね・・・
0342nobodyさん2011/01/14(金) 01:13:37ID:???
>>319
俺もオレオレバリデータ作ったことがある。
ワンタイムトークン的なものつくるとかとか、確認画面用に、値をセッションに格納して読みだして〜とかの機能とか
設定したバリデートルールを使って、Javascriptのコードも生成させて、クライアントサイドでも
バリデート出来るようにしたりね。

最近は、jQuery使って、CakePHPのヘルパとかでバリデーションルールをJSONにした物から
クライアントサイドでのバリデーションも連動するようなものを、作りかけた。

まぁ、書き慣れない言語はソースが迷子になって困る。
0343nobodyさん2011/01/14(金) 03:57:17ID:???
>>336

を解決することの出来る勇者はいないでOK?
0344nobodyさん2011/01/14(金) 07:04:47ID:???
>>342
ZFのバリデータ使えばいいと思う
0345nobodyさん2011/01/14(金) 09:25:41ID:???
>>343
勇者じゃなくて奴隷だろ?
無報酬で作業して欲しいんだから。
0346nobodyさん2011/01/14(金) 12:33:04ID:???
>>345
お前みたいな低レベルに聞いてない。
0347nobodyさん2011/01/14(金) 12:34:31ID:???
>>343
OK
0348nobodyさん2011/01/14(金) 13:11:26ID:???
>>346
なら、自分で解決しろよwwww
0349nobodyさん2011/01/14(金) 13:30:20ID:???
ここには上級者はいないでOK?
0350nobodyさん2011/01/14(金) 13:32:44ID:???
OK
0351nobodyさん2011/01/14(金) 19:36:01ID:???
しつこい奴だなw
0352nobodyさん2011/01/15(土) 03:30:50ID:???
上級者は下手な煽り程度では動じないのであった。
0353nobodyさん2011/01/15(土) 04:22:53ID:???
どうしても特定のユーザの発言をタイムリーに受信したいんだよね。
なんとかStreamingAPIを使用して

特定ユーザの発言を常にフックする方法を教えて下さい。

※上級者の方、宜しくお願いします。
0354nobodyさん2011/01/15(土) 04:42:55ID:???
Socketは扱えるかい?
HTTPプロトコル及びTCP/IPの基礎知識はあるかい?
PHPはCLI環境等で常駐させる事が可能かい?

>特定ユーザの発言を常にフックする方法を教えて下さい。
Twitter Streaming APIへ接続して、受信メッセージを順次ストリーミング処理するだけだが、
何が解らないのか解らない。

上記の基礎知識が無いなら説明しても理解出来ないだろうし、
基礎知識があるならAPIの仕様を読めば実装出来ると思うけど。
0355nobodyさん2011/01/15(土) 10:29:40ID:???
>>353
上級者はいないでOKになったんだから頼むから消えてくれよ
あれだけ失礼なこと言ってよく居座れるな
0356nobodyさん2011/01/15(土) 16:38:23ID:???
>>354
こういう奴に教えてやる必要ないって。
初級・上級の前に人間が腐ってる。
0357nobodyさん2011/01/15(土) 16:44:03ID:???
おまえら>>349-350のクオリティを大切にしろよなwww
0358nobodyさん2011/01/15(土) 18:10:38ID:???
>>354
基本的なツイッターAPIの呼出方については分かるのですが
どうしても Streaming API を使用して特定ユーザのついーとを
取得する方法が分かりません。

もし宜しければPHPで実装した人のHPや、
コードを載せて頂けないでしょうか?

>>355 >>356
お前らみたいなクズには聞いていない。
0359nobodyさん2011/01/15(土) 18:35:33ID:???
コード載せろとかww
0360nobodyさん2011/01/15(土) 18:37:38ID:???
>>358
OK
0361nobodyさん2011/01/15(土) 18:39:01ID:???
>>358
Streaming APIはREST APIのように単純には処理出来ない。
OAuthとかの実装は済んでるかい?
0362nobodyさん2011/01/15(土) 19:38:05ID:???
358=361
0363nobodyさん2011/01/17(月) 16:06:13ID:???
>>361
>OAuthとかの実装は済んでるかい?
こちらについてはアカウントも取得し
OAuthについては大丈夫です。

0364nobodyさん2011/01/17(月) 23:34:45ID:???
かい?かい?厨uzeeeeew
0365nobodyさん2011/01/17(月) 23:43:41ID:???
>>364
かい?かい?ほざいてないでサンプルコードのひとつでものせればいいのになw
ここでザコに訊くよりggrよks
0366nobodyさん2011/01/18(火) 11:30:17ID:???
>>363
アクセストークン利用して、取得したいストリームのURLをソケットなりで開いて、
その出力を延々と監視すればいいだけじゃねーの。
こんな所で数日待ちぼうけくらうより自分で試そうって気は無いのかねw


fopenとcontextの組み合わせで取得出来ると思うよ。

$fp = fopen($apiUrl);
while($xx = fgets($fp)){
// $xx に戻り値が入るので、時前でパースする。
sleep(1);
}

終わり。
0367nobodyさん2011/01/22(土) 17:34:48ID:???
PHPでLDAPS接続したのですが、TLS_REQUEST hardかdemandでも出来るんでしょうか?
0368nobodyさん2011/01/25(火) 05:30:20ID:???
{$tmp = $value . $num}
みたいな代入短縮系も超便利。
0369nobodyさん2011/01/31(月) 03:28:36ID:???
正規表現を使用してSQL内の特定の文字を取得したいと思っています。

具体的には、「TEST.sql」の中に以下の形式のクエリが多量に記述されているのですが
このファイルを読込み、 NUM_1 , NUM_2(のみ)の値を正規表現を使用して
高速に抽出したいのですが、どういう正規表現を適用すれば良いでしょうか?

1行ずつ読込み、正規表現を使用してそれらの値を取得したいと思っています。

INSERT INTO TEST ( NUM_1 , NUM 2 , NAME ) VALUES( 1 , 1 , 'TAROU1');
INSERT INTO TEST ( NUM_1 , NUM 2 , NAME ) VALUES( 1 , 2 , 'TAROU2');
INSERT INTO TEST ( NUM_1 , NUM 2 , NAME ) VALUES( 1 , 3 , 'TAROU3');
・
・
・
INSERT INTO TEST ( NUM_1 , NUM_2 , NAME ) VALUES( 1 , 1000 , 'TAROU3');


<取得イメージ>
1,1
1,2
1,3
・
・
・
1,1000


以上 ご教示願います。
0370nobodyさん2011/01/31(月) 03:38:06ID:???
正規表現の基本中の基本ちゃうん?
具体的にどこで詰まってんの?
0371nobodyさん2011/01/31(月) 10:56:07ID:???
「/.../.でうまく行くと思ったんですがぜんぜんだめなようです\(^o^)/」
みたいなのを書いて、間違いを正してあげる流れにすればわかりやすいかと。
0372nobodyさん2011/01/31(月) 21:40:38ID:???
/VALUES\(([^\,]+),([^\,]+)/
0373nobodyさん2011/01/31(月) 21:43:15ID:???
正規表現わかんねーんなら、

$v = explode(',', str_replace('INSERT INTO TEST ( NUM_1 , NUM 2 , NAME ) VALUES(', '', $string));
$v1 = (int) trim($v[0]);
$v2 = (int) trim($v[2]);

とでも書いておけや・・・
0374nobodyさん2011/01/31(月) 23:27:38ID:???
>>373
それならいっそsubstr()でいいんじゃねw
03753742011/01/31(月) 23:28:37ID:???
ダメだスマン反省してる許してくれ
0376nobodyさん2011/02/01(火) 00:45:12ID:???
/[0-9]+\s?,\s?[0-9]+/

上級者じゃないけど、こういうのどうよ。
0377nobodyさん2011/02/01(火) 01:35:24ID:???
>>376
80点を上げよう
・対象を () で囲み忘れてる
・VALUES等の固定文字列を書いた方が処理速度が上がる
ぜ
0378nobodyさん2011/02/01(火) 08:02:02ID:???
これだけのことに正規表現は愚作
0379nobodyさん2011/02/01(火) 08:26:02ID:???
>>372 >>377
ありがとうございます。
流石上級者の手に掛かれば一発ですね。。。

文字列処理でやるより正規表現でやる方が断然速いですね。

0380nobodyさん2011/02/08(火) 02:56:53ID:???
strpos と substr のが早いんじゃね
0381nobodyさん2011/02/09(水) 23:46:13ID:???
PHP技術者認定ウィザードか
やってみたいが受験料高いなぁ
0382nobodyさん2011/02/23(水) 23:27:05.00ID:RrQiOYHD
HTMLの中にPHPの変数を埋め込む場合、
普通はこのようにやりますが、

<?php echo($hoge); ?>

ではなくて例えば以下のように
JSPのEL式みたいな書き方をしたいです。

${hoge}

Smartyで似たようなことができますが、
私の目指すところは
テンプレートエンジンを使うのではなく
PHP自体を拡張したいのです。
(例えばExtentionみたいなもので)
このようなことは可能でしょうか?
0383nobodyさん2011/02/23(水) 23:51:44.00ID:???
そんな風味の仕様をちゃんと確立出来る?
使い勝手悪そうだけど…
0384nobodyさん2011/02/24(木) 02:59:24.91ID:???
>>382
PHPはオープンソースなんだからCが出来れば普通に可能だよ
0385nobodyさん2011/02/25(金) 21:39:46.81ID:???
>>384
PHPのソース自体に手を入れないと駄目ですかね?
そうなると結構敷居が高いですねぇ。
Extention程度ならなんとかなりそうかと思いましたが・・・
0386nobodyさん2011/02/25(金) 21:42:17.75ID:???
extensionでもできるんじゃない?
0387nobodyさん2011/02/26(土) 01:50:05.74ID:???
>>386
Extensionって関数を追加するだけじゃなくて
PHPファイルのタグの拡張もできるもんですかね?
0388nobodyさん2011/02/26(土) 02:12:02.57ID:???
できるんじゃない?
0389nobodyさん2011/02/26(土) 11:27:10.67ID:???
まじっすか・・・!
0390nobodyさん2011/03/01(火) 19:07:35.82ID:C4PHx9pJ
っつか、それってsimplateじゃねーか?
0391nobodyさん2011/03/01(火) 23:12:58.80ID:???
simplate検索して初めて知りましたがちょっと違いますね。
これって結局やってることはSmartyをExtensionにしただけですよね。
僕が目指してるのは、PHPファイルのタグの拡張です。
0392nobodyさん2011/03/02(水) 02:44:46.18ID:???
御託並べてないでやりたいならさっさとやれよ
0393nobodyさん2011/03/09(水) 13:24:51.70ID:ftgAWXF8

Smartyみたいなテンプレートエンジンって結構使われてるの?
なんかIF文まで専用のものが用意されてるみたいだし、
これまでのPHP知識が無駄になりそうで怖いんだけど。
タグが多すぎて可読性も悪いし。
PurePHPに慣れた人間には逆に使いづらいんじゃないかな。
0394nobodyさん2011/03/09(水) 14:02:59.21ID:???
スレタイ読んだの?
0395nobodyさん2011/03/11(金) 00:19:59.02ID:???
>>393
そりゃあもちろん使いづらい
全部一人でできちゃう人には使いづらいと思う
ただプログラマとデザイナ分けて開発したいときはSmartyがラク
0396nobodyさん2011/03/11(金) 00:27:24.80ID:???
{$var}{foreach}{if}くらいしか使わないけど
ピュアPHPより見やすくて書きやすくて好きだよオレは

オレオレフレームワークに組み込んで使ってます。
0397nobodyさん2011/03/28(月) 00:37:54.55ID:KPnbB4lM
俺趣味でPHP使ってるけど、フレームワークなんて一度も使ったこと無いな。
自前のライブラリはあるけど。それで十分だ。むしろそっちのほうが速い。
Javaならともかく、PHPで組む程度のサイトなら自前ライブラリ+コピペで十分だろ。
0398nobodyさん2011/03/28(月) 00:55:49.73ID:???
そりゃその程度のものしか作ってないからだろ
0399nobodyさん2011/04/06(水) 05:16:33.63ID:???
複数人で作業する時ラクなんだよ
0400nobodyさん2011/04/06(水) 22:15:25.72ID:???
趣味と仕事は違う
0401 忍法帖【Lv=40,xxxPT】 2011/05/12(木) 21:13:01.99ID:E3Km+bRW
pho上級者っていくらくらいもらえてんの?
0402nobodyさん2011/05/12(木) 21:27:50.03ID:???
>>401
遠足のおやつ代くらいはもらえるよ
0403 忍法帖【Lv=40,xxxPT】 2011/05/12(木) 23:10:20.95ID:???
わーい
0404nobodyさん2011/08/09(火) 12:40:12.23ID:rbkGhtrp
なんかここの住人って質問する奴を批判するだけで答えてなくてワロタw
スルーもせず批判ばかりで自分大好きなのがw
0405nobodyさん2011/08/09(火) 14:01:16.22ID:???
オレはこのスレ好きだよ。
0406nobodyさん2011/08/12(金) 19:13:13.66ID:YJp+MY1H
俺にかなうものはいない
0407nobodyさん2011/08/12(金) 21:01:55.22ID:???
twitterの基本機能クローンをフルスクラッチで5時間以内に構築できたら上級者。
0408nobodyさん2011/08/13(土) 21:18:57.87ID:???
>>407
その課題に疑問を持たない時点で低級だな。

ログイン認証と相互フォローが可能なWEBチャット程度にしか考えてないんだろうけど。
0409nobodyさん2011/08/14(日) 02:35:05.91ID:???
UIだけならなんとかなるかもしれんが・・・
0410nobodyさん2011/08/16(火) 03:01:07.18ID:???
5時間じゃ無理だわ・・・3日はほしい。
それでもスケールアップを無視したツラだけのものになる
0411nobodyさん2011/08/16(火) 19:37:34.07ID:???
メールフォームでいいのがあれば教えてくらはい。
自分でカスタマイズして使う。
無料でも有料でもどちらでもOK。
UTF8対応必須。

・ZeroMailのようなもの。
http://zeromail.webtecnote.com/

動作サーバーlolipop
0412nobodyさん2011/08/16(火) 20:23:05.93ID:???
上級者なら自分で作れ
0413nobodyさん2011/09/28(水) 12:20:53.45ID:???
PHPのコーディング規約の標準を作ろう、活動があったと思うんだがぐぐっても出てこない。
URLわかる人いる?

Symfony2とかZendがベースになってるやつ。
0414nobodyさん2011/09/28(水) 13:02:46.43ID:???
pearは文書化されたコーディング規約があるね
http://pear.php.net/manual/ja/standards.php
0415nobodyさん2011/09/29(木) 00:39:30.13ID:???
>>414
PEARとSymfony2とZendの規約を良いとこ取りした英語のサイトだったんよ。

まだドラフト段階ぽかったけど、
namespaceやクラスの命名規約と、
ファイルとのマッピング(オートロード方法)が定義されてて、
いいなぁ・・・と思ったんだけどブックマークするの忘れてた。
0416nobodyさん2011/09/29(木) 23:32:24.65ID:???
日本語だけど、こんな内容?
ttp://blog.asial.co.jp/658
0417nobodyさん2011/09/29(木) 23:33:38.38ID:???
このルールは、先日のphpカンファレンスで始めて知りました。
0418nobodyさん2011/09/30(金) 21:11:31.81ID:???
>>416
まさにコレだ!
PHP Standards Working Group.

ドラフト定義のページ自体は消えてるっぽいね・・・検索しても出てこないわけだ・・・。
04194S買います。2011/10/07(金) 14:09:26.50ID:NzNwk4X7
MacでPHPのプログラミングをやろうと思っているんですが、プログラムを
入力して実行するところまでができません。
PHP上級者なんですが、まったくわかりません。
どうしたらいいでしょうか?
0420nobodyさん2011/10/07(金) 21:40:59.43ID:???
MacOSX関連のしかるべき場所で聞いてみれ
0421nobodyさん2011/10/07(金) 22:00:47.65ID:???
>>419
逆に質問。
webサーバは何を使おうとしてる?
apache? nginx? web共有(中身はapache)?

OSのバージョンは?
古いのだと、別途developer toolをインストールする必要があるかも。

phpはインストールされてる?
ターミナル開けて、which phpを実行してみる。

webサーバとphp間の接続は?
isap? cgi (fcgi)? fpm?
■ このスレッドは過去ログ倉庫に格納されています