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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2013/08/05(月) NY:AN:NY.ANID:dIT4JFvF
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、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:???
>>262
そこまでは小さくない。
実測したところ、parse_url(), parse_str()は一回あたり3usくらいだった。
0264nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>256
そんなこといったら仕様決める立場でない外部の人間にとってどの理論も馬鹿ってことになるのでは・・・
いつyoutube.com/v/pco91kroVgQっていう形式になっても不思議じゃないのに
0265nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>256
いやいや、用意されてる関数で容易にパラメータ取れない=馬鹿って言ってんだよ
つまり>>255の指摘がおそらく正しい
0266nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>264
これはコード体系の話。
0267nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>265
読解力なさすぎ
0268nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
substrを知らない馬鹿
0269nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>267
読解力のないのはそっちだ
>正規表現とか用意されてる関数で容易にパラメータ取れるのに後ろから11文字とか馬鹿かと思う
これがどう解釈したら>>256になるのか?
0270nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
substrも知らない馬鹿が読解力ないとか自己の主張ねじ曲げてるスレはここですか?
0271nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>264
そういうことじゃなくて、ビデオIDが11文字じゃなくなったり、v=のほかに&...とパラメータが付加される場合もあるよねってこと。
0272nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>269
> 正規表現とか用意されてる関数で容易にパラメータ取れるの
のだから、普通はそれ使うよね。

> 後ろから11文字
決めうちで取得するとか
> 馬鹿かと思う

まあ、普通ならこう読むだろう。
0273nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
目的にたどり着く手段にああだこうだ言ってるのはレベル低すぎてわろえるな
substrだろうが正規表現だろうがparseしようがどれも目的にたどりつくんだろ?
その中で個々の優位性なんて主張せんでいい
向こうがいじって目的にたどりつけなくなったらアップデートすればいいだけの話だろ
0274nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
必死で弁明してるけど哀れだな
0275nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>273
明らかに「後ろから11文字」というアプローチはアホがやることだけど。
0276nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
お前がアホと思ってるだけで世間ではそう思ってないよ
ム板でアンケートでもとってきてみろよ
0277nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
PHPプログラマって、パースという概念がないのか
0278nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>276
お前が取ってこいアホ
0279nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>273
> その中で個々の優位性なんて主張せんでいい
優位性がわからないって白状しろよ
0280nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
後ろから11文字とかアホすぎてプログラマかどうか疑うレベル
0281nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
この前の糞コテならどれが優位かよくわかってるだろう
ちょっと出てきて解説してやれよ
0282nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
後ろ11文字っていってたのはそもそもyoutubeの仕様わからんって言ってるだろ
ちゃんと&fmt=18とかパラメータ加わることを教えてやれよ
0283nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
元の質問者置いてきぼりw
0284nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>282
その場合はsubstr($url, strlen($url) - 18, 11)ってやれば大丈夫。
0285nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>284
アホすぎるwww
0286nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
パラメータがvだけならクエリ部分の文字列抜き出しは常套手段だが
この場合は正規表現がベストだろう
parseで1発でとれるならいいけどparseしてさらにparseだと冗長すぎる
parse_urlだけで>>239の求める結果までとれてくれるならいいんだけどね
PHPがいかに適当かがわかるな
0287nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>286
parse_url()でクエリパラメータを抽出できて、parse_str()でクエリパラメータをパースできる、
というのが冗長すぎるという間隔が良くわからない。
0288nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>286
その結果が「/watch\?v\=([@0-9a-zA-Z]+).*$/」なんだとしたら、
・@って何?
・$でいいの?
・パラメータは必ずvで始まるの?
などの疑問が出てくる訳だが。
02892882013/08/21(水) NY:AN:NY.ANID:???
あー、".*$"か。
0290nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>287-288
空気読めよ
さりげなく全部フォローしてやってんのに
0291nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
?の後の正規表現かえればいいだけだろ
もっと頭を柔軟にしろ
0292nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>291
そうだね。
変えればいいだけだね。
0293nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>250でFAだな。
0294nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
いや、>>240-243で終わってる
0295nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
俺は>>253の最後の言葉に賛成だから可能ならシンプルに文字列処理がいいと思う
もっとも正規表現もパターンによっては配列厨とあんま変わらないからその前についてはあれだけど
0296nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>295
お前、この処理を何百万回やるつもりなんだ
0297nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>295
つまり、シンプルに>>284がベストだと?
0298nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
この手の処理に速度を持ち出す馬鹿
0299nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
今やってんのは速度の話じゃなくてリソースの話だと思うが
>>284はネタだろwww
0300nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
parse_url()/parse_str()が一番シンプル。
0301nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
300レスまで引っ張ってんじゃねえよ・・・
好きにしろでFAだろ

ところでお前らPHPマニュアルのUI変わったβ版出てるの気づいたか?
http://www.php.net/manual/ja/?setbeta=1
0302nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>226
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:???
(v=[^&]+)にしなきゃsubstr使ってる意味がなかったぜ
0304nobodyさん2013/08/21(水) NY:AN:NY.ANID:SYBh4kvU
>>302
http://www.youtube.com/watch?t=49s&;v=pco91kroVgQ&fmt=22#main
いい方向だ。どうせならこれでやろう。
0305nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>295
じゃあ、お前でもいいや
[@について説明してくれ。 
0306nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>305
@の含まれる
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:???
#&v=abc
(ヾノ・∀・`)ナイナイ
0309nobodyさん2013/08/21(水) NY:AN:NY.ANID:SYBh4kvU
RFC的にはアリ。そして悪影響もない。
と思ったんだけど違うの?
0310nobodyさん2013/08/21(水) NY:AN:NY.ANID:SYBh4kvU
愚かにも必要ではない場面で正規表現を使ったコードは修正が必要な一方で、
>>239は何の問題も無く動作し続けるということを分かってもらえれば。
もちろん、元データがどこまで正規化されているかにもよるけどね。
0311nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
本当にPHP使ってる奴はレベル低いな
YouTubeのURLくらいでしか盛り上がれない
だからレン鯖もどんどんPHPを入れない方向になってるんだよ
今PHPが入ってるレン鯖なんて昔入ってたところばかりだからな
PHP入ってるって言って客集めて金取ってきたからPHPをアンインストールするにできない状況
0312nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>310
$arr['v']が果たしていつまで使えるかなんて保証はないよ
ちなみに>>307でも$arr[1]ってなってるから結局結果は同じだけどね
じゃあ最初のv=idがある以前に#&v=abcを入れようとしてもそれじゃマッチしないどころか
動画のURL的にもおかしくなってしまってサイトも見れないだろうし(フラグメントはクエリの前に置けない)
結局その指摘は成立しないんだよ
0313nobodyさん2013/08/21(水) NY:AN:NY.ANID:SYBh4kvU
>>312
あれ、parse_urlは容認することになったの?
パース→正規表現?
0314nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
マッチしないのはparse_urlで$url['query']ってやってるのが原因か
まぁそれでもフラグメントに合致しないように正規表現も修正可能
0315nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
>>313
つうかね誰と戦ってるのか知らないけど
別にパースを否定も肯定もしないの俺はw
ただ正規表現でもパースでも対応しなきゃいけないケースは出てくるってのを言ってるだけ
0316nobodyさん2013/08/21(水) NY:AN:NY.ANID:SYBh4kvU
うん、「修正すれば」対応可能だね。それは承知してる。
正規表現を否定するわけじゃないよ。
/watch/v/movie という形式になった場合はどちらのコードも修正が必要。

>>315
戦ってるんじゃなくて、正規表現がベストだというレスがあるので、
そんなことないよと。
0317nobodyさん2013/08/21(水) NY:AN:NY.ANID:???
今指摘されてちょこちょこ修正してるようなことを>>310の1行目は言ってるの?
もしそうならそれはなんかちょっと違う気がするぞ・・・
最初からバッチリかける人にとっては修正は必要ないってことになるからな。
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:???
対象がURLであることが明確な場合でも正規表現なの?
0322nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>318
http://ideone.com/fEIKWc
どうすれば動く?
0323(´^ω^`)wwwww ◆vvzT0dXw7c 2013/08/22(木) NY:AN:NY.ANID:???
>>320
ケースバイケースだお(´^ω^`)
パラメータをしっかりした形で取得したいならURLをパースすればいいし
条件分岐のしかた次第では、多次元的な正規表現のマッチングを使ったほうがリソース食わなくていいお(´^ω^`)

>>322
(´^)ω(^`)
http://ideone.com/QRhaNK
0324nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>320
^^;
0325nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
PHPの話じゃないけど業務じゃ正規表現って避けるもんじゃないのか
プログラムの基礎教わった知り合いのとこじゃ文字分解して調べてるって言ってたけどな
正規表現なんて使わんとも言ってた
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
>>323
コードの意図が分からなかったようで申し訳ない。
> 頭についてる@は、シングルバイト文字しか見ませんよっていうおまじない
>>232はこう書いていて、そしてそれが使えるといってるよね。

そのおまじないだといわれているものは、まるで通常の文字のように@にマッチするが、それでいいのかという話。
@にマッチせず、シングルバイト文字しか見ませんよっていう正規表現はどう書くの?
なお、utf-8においてはシングルバイトかどうかを判定する処理を行うことが、
余計なパフォーマンス低下を招くことにしかならないのは分かるかな。

>>325
一応PHPで飯食ってるので回答してみるよ。
単に適材適所。提供されている関数で実装することを優先する。
ちなみに、規約によって提供されている機能を制限するのは、それもまた基本的に愚かな行為。
その延長線上には、ループはforのみで実装することというトンデモ規約までありうる。
きわめて好意的にとらえるなら、過去に必要のない場面で自己顕示欲の塊のような、
かつ何のメリットもないコードを書かれた過去でもあるんじゃないかな。
0329nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>326
だよな
まず業務でPHPなんか使ってる時点で技術力はかなり低いよな
0330nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>規約によって提供されている機能を制限するのは、それもまた基本的に愚かな行為。
これ飯食ってる人が本気で言ってるのかな?
0331nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
あのさあ。ここはプロの人の自己啓発スレじゃないんで。いい加減にしてくれる??
0332nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
つかよー。ここ社会人のフリしたガキ多いだろ。
ガキにコード聞いてないので。引っ込んでて欲しいんでよろ。
0333nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>330
ID出せ
0334nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>328
ならこうじゃね?そもそもマッチしないコード書いたところで検証もくそもねえだろ。
<?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:???
「PHP使いはもう正規表現をblogに書くな」と言わせないでくれ
http://blog.livedoor.jp/dankogai/archives/51189905.html

> もうおまえらPHPerは正規表現をブログにうpするんじゃねえ!
0340nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
ワラタw
0341(´^ω^`)wwwww ◆vvzT0dXw7c 2013/08/22(木) NY:AN:NY.ANID:???
メールアドレスやURL等に使う場合は、RFCによく正規表現パターンが記述されているからそれ応用しろお(´^ω^`)
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_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:"(?:\\[^\r\n]|[^\\"])*")))\@(?:(?:(?:(?:
[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+)(?:\.(?:[a-zA-Z0-9_!#\$\%&'*+/=?\^`{}~|\-]+))*)|(?:\[(?:\\\S|[\x21-\x5a\x5e-\x7e])*\])))$/

これ見て正規表現禁止納得したわ
0344nobodyさん2013/08/22(木) NY:AN:NY.ANID:y8Wxdz1j
>>334
何をどうこじらせたらそのコードで@がフラグとして作用するかどうかを検証できると思ったの。
勘弁してください。

>>339
懐かしい。phpspotに代表されるクソサイトの被害者はいまだ多い。

>>341
…プロにいまさらいうまでもないと思うんだけど、ここはRFC非準拠のメールアドレスが跋扈している日本ですよ。
「応用」とやらがそれを含めてるのかな。
0345nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>339
PHP使いが多い典型例だろうコレ
ある程度覚えた時に自分できる!と錯覚して
自分はこんなに出来るんだと他人にレクチャーしたくなる自己顕示欲の塊
PHPの場合簡単で餓鬼にも使いやすいのでその傾向が強すぎるのがまた問題だな
自己顕示欲なんて最近の馬鹿発見器での冷凍庫写真なんか見てると餓鬼が多いだろう?
ちなみにPHPerって限定してるけどJSのレクチャーしてるやつも相当ひどいぞ

同じネット環境でなら一昔前JavaやPerlが主流だったころも似たような流れはあったはず
まだそれほど餓鬼が暴れられる環境が当時は整ってなかっただけだ
0346nobodyさん2013/08/22(木) NY:AN:NY.ANID:in3Bwn+U
>>342
マジでそれ
docomoが最悪すぎた
0347nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
よく知らないんだけどRFCって絶対守らなきゃいけないものなの?
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:???
だいたいpregで /u つけないでマルチバイト考慮した処理してると思ってる時点でアレだよ。
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だぜ
0354nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>347
はい?
0355nobodyさん2013/08/22(木) NY:AN:NY.ANID:???
>>354
そんな臆病にならずに思ったことを言えばいいのに。
0356nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
>>355
あほ?
0357nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
>>356
ウザい消えろゴ
ミ
0358nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
>>356
ID出せ
0359nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
>>343
同意してくれる人が多いとでもおもったか?w

それと等価なプログラム書いてみ。
0360nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
>>359
で、テストはどうすんの?
0361nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
>>359
おれはほぼ同意するが。
>>343の正規表現は、解読困難でありメンテ困難。妥当かどうかを調べるのも困難。
0362nobodyさん2013/08/23(金) NY:AN:NY.ANID:???
>>359
構文解析すりゃいいだろ
■ このスレッドは過去ログ倉庫に格納されています