【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なしは原則スルーすること。
0243nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???おまえらどうしてだらだらと無駄なソースを増やすんだ?
無能か?
ましてやここはphpのスレなんだからRubyだのCだの場違いなこと書くなよ。
0244nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???お前の頭が固すぎなんだよ
64^11を超えた場合のこと想定してるんだろうけど
youtubeのクエリ部分がいつまでも同じとも限らないだろ
確定してない将来の仕様を勝手に想像して
その時々に対処できないようなやつとこそ仕事したくないわ
0245nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvUどういうこと?
雑に?=#で分割するだけってこともあるけど、まじめにやるなら>>239がいいよね。
もし質問者、または正規表現の回答を書いてた人なら、この問題に正規表現を持ち出すのは愚か。
0246nobodyさん
2013/08/21(水) NY:AN:NY.ANID:SYBh4kvUつり乙。
0248nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???正規表現厨との揺ぎない戦い
0250nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???URLとして確定してるなら、普通にパースすりゃいいじゃん、と思う。
用意されてるものがあるんだからそれ使え、と。
0251nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???わかりやすいかどうかで考えるとパース2回>文字列切り出し>正規表現
ただ正規表現は得意な人にとっては構図が逆転するので
俺は正規表現慣れてるぜって人なら正規表現が一番バランスがいいのでは
0252nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???さして難しくないのに、毛嫌いして毎度騒ぐいつもの正規表現厨に惑わされないことだ。
つーか、youtubeのこれ何度目だっての。
0253!ninja
2013/08/21(水) NY:AN:NY.ANID:???闇雲に正規表現が重たい言ってるバカは、パターン識別にシングルバイト文字しか使わないための[@なんたら]について少しググってこい。
配列厨には配列のメモリアドレス食いが理解できねえんだよ。
0254nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???何がバカなの?普通でそ
0255nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???substr('http://www.youtube.com/watch?v=pco91kroVgQ', -11);
これだけなのにな
0257nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???それに対して自己顕示欲を満たしたいから必死で回答する奴と承認欲求の塊が入り乱れて
阿鼻叫喚の地獄絵図
だから>>226みたいな知能障害の質問は受け入れるなって言ってんだよ
0258nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???PHP使ってるくらいだからそれくらい分からなくて当然
0262nobodyさん
2013/08/21(水) NY:AN:NY.ANID:???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違反してるけどな
■ このスレッドは過去ログ倉庫に格納されています