【PHP】下らねぇ質問はID出して書き込みやがれ 129
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2013/08/05(月) NY:AN:NY.ANID:dIT4JFvF過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 128
http://kohada.2ch.net/test/read.cgi/php/1369576918/
◆質問用テンプレ
【OS名】CentOS
【PHPのバージョン】5.3
【連携ソフトウェア】MySQL ImageMagick
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。IDを出すこと。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・全員IDを出すことが推奨されるようになりました。IDなしは原則スルーすること。
0263nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???そこまでは小さくない。
実測したところ、parse_url(), parse_str()は一回あたり3usくらいだった。
0264nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???そんなこといったら仕様決める立場でない外部の人間にとってどの理論も馬鹿ってことになるのでは・・・
いつyoutube.com/v/pco91kroVgQっていう形式になっても不思議じゃないのに
0265nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???いやいや、用意されてる関数で容易にパラメータ取れない=馬鹿って言ってんだよ
つまり>>255の指摘がおそらく正しい
0268nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0269nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???読解力のないのはそっちだ
>正規表現とか用意されてる関数で容易にパラメータ取れるのに後ろから11文字とか馬鹿かと思う
これがどう解釈したら>>256になるのか?
0270nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0271nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???そういうことじゃなくて、ビデオIDが11文字じゃなくなったり、v=のほかに&...とパラメータが付加される場合もあるよねってこと。
0272nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???> 正規表現とか用意されてる関数で容易にパラメータ取れるの
のだから、普通はそれ使うよね。
> 後ろから11文字
決めうちで取得するとか
> 馬鹿かと思う
まあ、普通ならこう読むだろう。
0273nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???substrだろうが正規表現だろうがparseしようがどれも目的にたどりつくんだろ?
その中で個々の優位性なんて主張せんでいい
向こうがいじって目的にたどりつけなくなったらアップデートすればいいだけの話だろ
0274nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0276nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???ム板でアンケートでもとってきてみろよ
0277nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0280nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0281nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???ちょっと出てきて解説してやれよ
0282nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???ちゃんと&fmt=18とかパラメータ加わることを教えてやれよ
0283nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0286nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???この場合は正規表現がベストだろう
parseで1発でとれるならいいけどparseしてさらにparseだと冗長すぎる
parse_urlだけで>>239の求める結果までとれてくれるならいいんだけどね
PHPがいかに適当かがわかるな
0287nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???parse_url()でクエリパラメータを抽出できて、parse_str()でクエリパラメータをパースできる、
というのが冗長すぎるという間隔が良くわからない。
0288nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???その結果が「/watch\?v\=([@0-9a-zA-Z]+).*$/」なんだとしたら、
・@って何?
・$でいいの?
・パラメータは必ずvで始まるの?
などの疑問が出てくる訳だが。
0289288
2013/08/21(水) NY:AN:NY.ANID:???0291nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???もっと頭を柔軟にしろ
0295nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???もっとも正規表現もパターンによっては配列厨とあんま変わらないからその前についてはあれだけど
0298nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0300nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0301nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???好きにしろでFAだろ
ところでお前らPHPマニュアルのUI変わったβ版出てるの気づいたか?
http://www.php.net/manual/ja/?setbeta=1
0302nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???PHPスレの壊答者の皆さんの意見をまとめたからこれを使いなさい
$str = 'http://www.youtube.com/watch?v=pco91kroVgQ&fmt=18';
$url = parse_url($str);
preg_match('/&?v=([^&]+)&?/', $url['query'], $arr);
echo substr($arr[1], -11);
0303nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0304nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvUhttp://www.youtube.com/watch?t=49s&v=pco91kroVgQ&fmt=22#main
いい方向だ。どうせならこれでやろう。
0307nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvUじゃあ
http://www.youtube.com/watch?t=49s&v=pco91kroVgQ#main
http://www.youtube.com/watch?t=49s&v=pco91kroVgQ#&v=abc
この辺で試すのがよいね。
0308nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???(ヾノ・∀・`)ナイナイ
0309nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvUと思ったんだけど違うの?
0310nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvU>>239は何の問題も無く動作し続けるということを分かってもらえれば。
もちろん、元データがどこまで正規化されているかにもよるけどね。
0311nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???YouTubeのURLくらいでしか盛り上がれない
だからレン鯖もどんどんPHPを入れない方向になってるんだよ
今PHPが入ってるレン鯖なんて昔入ってたところばかりだからな
PHP入ってるって言って客集めて金取ってきたからPHPをアンインストールするにできない状況
0312nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???$arr['v']が果たしていつまで使えるかなんて保証はないよ
ちなみに>>307でも$arr[1]ってなってるから結局結果は同じだけどね
じゃあ最初のv=idがある以前に#&v=abcを入れようとしてもそれじゃマッチしないどころか
動画のURL的にもおかしくなってしまってサイトも見れないだろうし(フラグメントはクエリの前に置けない)
結局その指摘は成立しないんだよ
0313nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvUあれ、parse_urlは容認することになったの?
パース→正規表現?
0314nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???まぁそれでもフラグメントに合致しないように正規表現も修正可能
0315nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???つうかね誰と戦ってるのか知らないけど
別にパースを否定も肯定もしないの俺はw
ただ正規表現でもパースでも対応しなきゃいけないケースは出てくるってのを言ってるだけ
0316nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvU正規表現を否定するわけじゃないよ。
/watch/v/movie という形式になった場合はどちらのコードも修正が必要。
>>315
戦ってるんじゃなくて、正規表現がベストだというレスがあるので、
そんなことないよと。
0317nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???もしそうならそれはなんかちょっと違う気がするぞ・・・
最初からバッチリかける人にとっては修正は必要ないってことになるからな。
0318(´^ω^`)wwwww ◆vvzT0dXw7c
2013/08/21(水) NY:AN:NY.ANID:???@云々はずっと昔のPOSIXの解説サイトにあったような気がするけど、見つからなかった(;´^ω^)
でもぼくの記憶が正しければ、preg系関数には今でも使えるはずだお(´^ω^`)
でもこの場合は、URLをパースしたほうがコードも組みやすいだろうから、別にそれでもいいお(´^ω^`)
文字列切り出しについては、処理にかけるURLパラメータのフォーマットが決まっていれば何も言わないけど
そうではない動的なURLを処理にかけると想定するならば、頭悪いとしか言えないお(;´^ω^)
0319nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0320(´^ω^`)wwwww ◆vvzT0dXw7c
2013/08/21(水) NY:AN:NY.ANID:???0321nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???0322nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???http://ideone.com/fEIKWc
どうすれば動く?
0323(´^ω^`)wwwww ◆vvzT0dXw7c
2013/08/22(木) NY:AN:NY.ANID:???ケースバイケースだお(´^ω^`)
パラメータをしっかりした形で取得したいならURLをパースすればいいし
条件分岐のしかた次第では、多次元的な正規表現のマッチングを使ったほうがリソース食わなくていいお(´^ω^`)
>>322
(´^)ω(^`)
http://ideone.com/QRhaNK
0325nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???プログラムの基礎教わった知り合いのとこじゃ文字分解して調べてるって言ってたけどな
正規表現なんて使わんとも言ってた
0326nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???お前もそう。
0327nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???趣味でやる分にはいいけども言ってた
コテはプロみたいだからプロにそのへん聞きたかったんだけど
0328nobodyさん
2013/08/22(木) NY:AN:NY.ANID:y8Wxdz1jコードの意図が分からなかったようで申し訳ない。
> 頭についてる@は、シングルバイト文字しか見ませんよっていうおまじない
>>232はこう書いていて、そしてそれが使えるといってるよね。
そのおまじないだといわれているものは、まるで通常の文字のように@にマッチするが、それでいいのかという話。
@にマッチせず、シングルバイト文字しか見ませんよっていう正規表現はどう書くの?
なお、utf-8においてはシングルバイトかどうかを判定する処理を行うことが、
余計なパフォーマンス低下を招くことにしかならないのは分かるかな。
>>325
一応PHPで飯食ってるので回答してみるよ。
単に適材適所。提供されている関数で実装することを優先する。
ちなみに、規約によって提供されている機能を制限するのは、それもまた基本的に愚かな行為。
その延長線上には、ループはforのみで実装することというトンデモ規約までありうる。
きわめて好意的にとらえるなら、過去に必要のない場面で自己顕示欲の塊のような、
かつ何のメリットもないコードを書かれた過去でもあるんじゃないかな。
0330nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???これ飯食ってる人が本気で言ってるのかな?
0331nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0332nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???ガキにコード聞いてないので。引っ込んでて欲しいんでよろ。
0334nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???ならこうじゃね?そもそもマッチしないコード書いたところで検証もくそもねえだろ。
<?php
preg_match('/[@@a]/', '@a', $matches);
var_dump($matches);
?>
0335nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0336nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0337nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???消えろ
0338nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???このスレに出てくるようなひよっこ正規表現なら別にいいけど
あれは本当にすごい人が書くととんでもない暗号みたいになるし
意味理解するのも一苦労だろうよ
0339nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???http://blog.livedoor.jp/dankogai/archives/51189905.html
> もうおまえらPHPerは正規表現をブログにうpするんじゃねえ!
0340nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0341(´^ω^`)wwwww ◆vvzT0dXw7c
2013/08/22(木) NY:AN:NY.ANID:???0342nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???ケータイのメアドはモロRFC違反してるけどな
0343nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/
これ見て正規表現禁止納得したわ
0344nobodyさん
2013/08/22(木) NY:AN:NY.ANID:y8Wxdz1j何をどうこじらせたらそのコードで@がフラグとして作用するかどうかを検証できると思ったの。
勘弁してください。
>>339
懐かしい。phpspotに代表されるクソサイトの被害者はいまだ多い。
>>341
…プロにいまさらいうまでもないと思うんだけど、ここはRFC非準拠のメールアドレスが跋扈している日本ですよ。
「応用」とやらがそれを含めてるのかな。
0345nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???PHP使いが多い典型例だろうコレ
ある程度覚えた時に自分できる!と錯覚して
自分はこんなに出来るんだと他人にレクチャーしたくなる自己顕示欲の塊
PHPの場合簡単で餓鬼にも使いやすいのでその傾向が強すぎるのがまた問題だな
自己顕示欲なんて最近の馬鹿発見器での冷凍庫写真なんか見てると餓鬼が多いだろう?
ちなみにPHPerって限定してるけどJSのレクチャーしてるやつも相当ひどいぞ
同じネット環境でなら一昔前JavaやPerlが主流だったころも似たような流れはあったはず
まだそれほど餓鬼が暴れられる環境が当時は整ってなかっただけだ
0346nobodyさん
2013/08/22(木) NY:AN:NY.ANID:in3Bwn+Uマジでそれ
docomoが最悪すぎた
0347nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???SQLの標準規格守ってるRDBMSは存在しないよね
0348nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0349nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???メールサーバなんてほとんどRFC準拠で実装されてるんだから
携帯のRFC違反アドレス宛に送受信できないこともままある
0350nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0351nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0352nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???0353nobodyさん
2013/08/22(木) NY:AN:NY.ANID:???さすがPHPだぜ
0361nobodyさん
2013/08/23(金) NY:AN:NY.ANID:???おれはほぼ同意するが。
>>343の正規表現は、解読困難でありメンテ困難。妥当かどうかを調べるのも困難。
■ このスレッドは過去ログ倉庫に格納されています