[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 2ch.scのread.cgiへ]
Update time : 02/23 23:57 / Filesize : 381 KB / Number-of Response : 998
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

【PHP】下らねぇ質問はここに書き込みやがれ 14



1 名前:デフォルトの名無しさん [2022/09/20(火) 16:46:23.39 ID:Sb2Kpzh+0.net]
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ

PHPに関する質問スレです

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 13
https://mevius.5ch.net/test/read.cgi/tech/1631147923/

次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured

844 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 04:36:49.17 ID:j7JGuKK50.net]
利用者が多いと高速化モジュールを作ってくれる人がそのうち出て来る

でもphpよりperlの方が速いって言う人もいる

845 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 10:35:03.69 ID:6qmOkfsb0.net]
今やpythonのほうが高速だから残念ながらphpのアドバンテージは下がってしまった

846 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 11:14:04.07 ID:kYFjszay0.net]
fastAPIってどのくらい速いんかね?

847 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 11:23:09.48 ID:MMZJeoHC0.net]
メンテしやすい方が楽で良い

848 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 20:06:50.70 ID:uAswjotn0.net]
Laravelとかも最近のopcache使ったときやたら速くて感心したな

849 名前:デフォルトの名無しさん mailto:sage [2024/04/16(火) 23:44:05.47 ID:dnnaoba60.net]
いくらphpが速くてもpythonはcかc++並になってしまったからもう追いつけない

850 名前: mailto:sage [2024/04/17(水) 00:07:31.24 ID:I8L23udN0.net]
追いつけないかどうかはやろうとする処理次第
Eコマースで商品一覧をDBから取得し画面に出力するとなれば
処理の大部分はDBの処理時間

851 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 01:28:51.06 ID:c72vfF8y0.net]
誰もDBの話はしとらんが?

852 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 01:34:48.91 ID:ze0TvR6C0.net]
>850 そりゃそうだろw今はそんな話はしてないし、自分の土俵に持っていく為に話題のすり替えになってるぞ



853 名前:デフォルトの名無しさん (ワッチョイ 7f3a-/8Es) mailto:sage [2024/04/17(水) 07:51:37.15 ID:xZLw0gTi0.net]
なでしこ3はPythonより6.5倍速い

854 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 09:34:48.22 ID:CzOcQm8R0.net]
PythonよりPHPやRubyのほうが速い
ざっくり3〜5倍
さらにPHPやRubyよりJavaScriptのほうが速い
それもざっくり3〜5倍
PerlはPythonと似たり寄ったり
PythonだけJITがないから置いてきぼり
今年のQ4に出る3.13で導入予定らしいけど最適化に時間がかかるから今のレベルに追いつけるのは5年くらい先

Pythonで性能を出したければシェルスクリプトと同じようにできるだけPython内でループを回さずC/C++で書かれたライブラリに一括で処理を委譲する
Webアプリだとなかなかそうもいかないけど

855 名前:デフォルトの名無しさん mailto:sage [2024/04/17(水) 11:15:26.47 ID:hNUrcL2F0.net]
フルスタックとしてPHP8.2は速いよね
バックエンドだと言語による差は無いか

856 名前: 警備員[Lv.1][新芽] (ワッチョイ df94-R43V) mailto:sage [2024/05/01(水) 22:35:49.91 ID:Jo6lQIiP0.net]
php8でJITが導入されていてそれを利用することで現状だと単純な計算速度ではphpの方がpythonより速いと思う
ただpythonもJIT導入予定と聞いている

857 名前:デフォルトの名無しさん (ワッチョイ bf5f-b946) mailto:sage [2024/05/03(金) 19:58:28.18 ID:+USmG/sP0.net]
node.jsってそんなに速いの? 知らなかった

858 名前:デフォルトの名無しさん (ワッチョイ 277b-z+LQ) mailto:sage [2024/05/03(金) 20:16:52.06 ID:+XAyZCIw0.net]
>>857
Rustと比較対象にされるくらいは速いよ
https://deepu.tech/concurrency-in-modern-languages-final/

というかね、PHP/Python/Rubyが論外に遅すぎて、これらの言語使った時点で速度は度外視前提だから、
これらについては速度比較すらまともにされて無いでしょ

859 名前:デフォルトの名無しさん (ワッチョイ 277b-z+LQ) mailto:sage [2024/05/03(金) 20:57:10.70 ID:+XAyZCIw0.net]
こっちの方がよかったかも?
https://www.techempower.com/benchmarks/#hw=ph&test=composite§ion=data-r22

860 名前:デフォルトの名無しさん (ワッチョイ 7f63-Ufki) mailto:sage [2024/05/03(金) 20:59:44.77 ID:9ebiuCIb0.net]
この人はどんな利益を得ているんだろう

861 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 00:40:36.66 ID:TbdOZmgm0.net]
個人でPHPとJS(ブラウザ)とPythonの速度比較したら
JS, PHP, Pythonの順で早かった
JSはGoogleのエンジニアがV8組んでるだけあってインタプリタの中じゃ最速だな

862 名前:デフォルトの名無しさん (ワッチョイ a744-u6uN) mailto:sage [2024/05/04(土) 09:25:16.85 ID:hhjXOeVD0.net]
ゆうてサーバ側でjs使うのはawait promise地獄になりがちで見た目がね



863 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 11:46:29.84 ID:7p9CFEdI0.net]
>>862
いやasyncは見た目も地獄にはならんやろ
お前大幅に勘違いして無いか?

864 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 12:25:25.54 ID:qT6RngEw0.net]
でもあと数年でC = python > js >>>> phpになる

865 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 14:20:07.47 ID:0cPYdG0t0.net]
数年も経ったら、全く新しい別の何かになってる

866 名前:デフォルトの名無しさん mailto:sage [2024/05/04(土) 14:54:41.55 ID:ur5HC8pk0.net]
昔から「PHPは遅くて使い物にならなくなる:と言われてたが
結局シェア見ると落ちないしなぁ
PHP5時代と比べてPHP8の早いこと

867 名前:デフォルトの名無しさん (ワッチョイ a744-u6uN) mailto:sage [2024/05/04(土) 21:20:04.52 ID:hhjXOeVD0.net]
>>863
jsとphpで同じ動作の同期的なコードを書いてみ
async不要で同期でかける方がキレイなのは当然やろ
そらあんま複雑な処理が無けりゃ変わらんやろけど

868 名前:デフォルトの名無しさん (ワッチョイ 437b-GrxP) mailto:sage [2024/05/05(日) 00:06:00.25 ID:VpuIuth60.net]
>>867
いやawaitが付いてるだけで同じだぞ
JSは全部の関数にクロージャ付きだから変数も同様にアクセスできる点がphpとは違う
まあここはphpのスレなのでもういいが、気になるなら以下見てみ

> async function sequentialStart() {
> console.log("==SEQUENTIAL START==");
>
> // 1. これは即時実行される
> const slow = await resolveAfter2Seconds();
> console.log(slow); // 2. これは 1. の 2 秒後に実行される
>
> const fast = await resolveAfter1Second();
> console.log(fast); // 3. これは 1. の 3 秒後に実行される
> }
> https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Statements/async_function

869 名前:デフォルトの名無しさん mailto:sage [2024/05/05(日) 00:22:56.43 ID:VpuIuth60.net]
と思ったが、もしかしてJSって子関数はnew Promiseしないと駄目な感じか?
俺はてっきりC#のと同じと思ってたから勘違いしてたかも?
まあこの辺はこちらで確認する。

ちなみにcallback地獄はJSの連中が馬鹿だらけだから正当化してるだけで、
実はちゃんと抽象化して組めばcallback地獄にはならない。
そしてサポートの関係もあり、俺はasync/await使ってきて無いから勘違いしてるかもしれん。
さらに言うとPromiseもゴミだと思ってるよ。あれは不要な仕様だ。JSの連中はこれも正当化してるが。

というわけで、JSも色々ゴミだが、全体見るならphpの方がゴミだと思うぜ。

870 名前:デフォルトの名無しさん mailto:sage [2024/05/08(水) 01:04:50.50 ID:Aq7zVlUM0.net]
そんなPHPもpythonに比べたら10倍マシなわけで
世の中ままならないもんだよな

871 名前:デフォルトの名無しさん (ワッチョイ 6fe7-M17B) [2024/06/13(木) 08:47:33.24 ID:8kjXK8h10.net]
POSIXメッセージキューをサポートしてる拡張モジュール でおすすめをおしえて

872 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 06:05:03.56 ID:jdN7cEyp0.net]
ニコニコ動画のランサムウェアって、phpの最近のやつと関係あるのかな
ttps://innovatopia.jp/cyber-security/cyber-security-news/31048/



873 名前:デフォルトの名無しさん mailto:sage [2024/06/15(土) 09:17:52.21 ID:nM9V99Q80.net]
ハイパーバイザーの管理権限まで盗られたって話だから
個々のランサムウェアがどれなのかなんて些末な問題だろうな

874 名前:デフォルトの名無しさん [2024/06/19(水) 19:07:59.04 ID:rcHRA2+h0.net]
FuelPHPの代替ってどんなのがあるの?

875 名前:デフォルトの名無しさん mailto:sage [2024/06/20(木) 02:13:33.44 ID:GIlSg4MN0.net]
Laravel一択

876 名前:デフォルトの名無しさん (ワッチョイ cfbb-muU0) mailto:sage [2024/06/23(日) 00:56:02.55 ID:/fMztCCi0.net]
なんかわけあって形態素解析ライブラリを作ろうかと思うんだけど辞書はMecabの辞書を使うとしてどうやって解析しようかな
最長一致で比較してマッチしたら抜き出すって方法を考えてるけど皆ならどう作る?

877 名前:デフォルトの名無しさん (ワッチョイ 3f4d-tL4z) mailto:sage [2024/06/23(日) 11:04:07.30 ID:BYEVr0N80.net]
作らない
断る

878 名前:デフォルトの名無しさん (ワッチョイ 7f63-uW6V) mailto:sage [2024/06/23(日) 11:07:53.98 ID:8Dr+KSC80.net]
宿題か?自分でやる方が良いぞ

879 名前:デフォルトの名無しさん mailto:sage [2024/08/31(土) 14:07:37.82 ID:o+gAgvj50.net]
>>874
flight

880 名前:デフォルトの名無しさん mailto:sage [2024/09/06(金) 14:19:31.11 ID:J9Dx+vkX0.net]
PHP v8.0.30で
$LDC=0;
$LDC=ldap_connect($ldhost)
ldap_set_option($LDC,'LDAP_OPT_PROTOCOL_VERSION', 3);
のldap_set_option()行でmust be of type int,string given in~のエラーが出たんだけど3がint値として読めないって言われてるのかな

881 名前:デフォルトの名無しさん mailto:sage [2024/09/06(金) 16:44:39.99 ID:QtgCCsYf0.net]
引数の、どれかだろ

882 名前:デフォルトの名無しさん mailto:sage [2024/09/06(金) 16:50:09.62 ID:xfC3DfZt0.net]
LDAP_OPT_PROTOCOL_VERSIONは定数なんだからクォートで囲っちゃだめでしょ



883 名前:デフォルトの名無しさん mailto:sage [2024/09/09(月) 18:23:38.31 ID:8AzXAdmE0.net]
>>882
言われた通りだったわ
ありがとー

884 名前:デフォルトの名無しさん [2024/09/23(月) 08:24:39.70 ID:TOpTpz460.net]
連想配列のarray_merge全然うまくいかんやん
ほんとなんなのこの言語、まじイラつく

885 名前:デフォルトの名無しさん [2024/09/23(月) 08:30:38.84 ID:TOpTpz460.net]
できてるけどvar_dumpで表示されてないだけか?
要素数23ってなってるのに15しか表示されん
まじでよーわからん

886 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 09:07:14.03 ID:dfCQ5A4R0.net]
まず再現コード貼れよ、話はそれからだ

887 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 09:28:56.66 ID:h2Aoyerx0.net]
再現コード貼れ しか言わない奴は大抵は
十分に与えられた情報を見ても解決できない
無能隠しの時間稼ぎなんだよね

888 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 09:40:34.39 ID:dfCQ5A4R0.net]
>>887は超絶無能だとは断定出来るね

891がスーパーエスパーなら891の時点で答えを貼るべき
自分では出来ない癖に他人をやたら貶すのは超絶無能な奴の特徴
そもそも本件は、再現コードも数行で済み、それがあれば誰でも回答出来るレベルなので、
本件で「無能隠し」とか言い出す時点で、何が簡単で難しいか判断すら出来ない大馬鹿

889 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 10:16:17.79 ID:nGCd//e20.net]
十分に与えられているとは思わないけどな
エスパーならできるかもしれんが、普通の人には無理

890 名前:デフォルトの名無しさん mailto:sage [2024/09/23(月) 11:44:05.43 ID:kXVPwjR50.net]
まあそうこうしてる間に本人は解決してるだろうよ、こんくらいなら
コードなきゃ>>885もイミフだしな

891 名前:デフォルトの名無しさん mailto:sage [2024/09/26(木) 20:00:35.39 ID:hH68uGfdp.net]
>884-885
エスパーだから答えてあげる。恐らく下のうちのいずれかが原因。つまりPHPは間違えてなくて君が間違えている

1、null値が要素の中に入ってる。nullが入ってる場合は対象の要素を詰めてマージされるよ
2、配列のキーが文字列で指定されていて、配列Aと配列Bで同様の文字列キーを使用している。配列の文字列キーが同じ内容だと後列の文字列キーの配列要素で上書きされるよ。以下は例

$arr1 = ['key' => 'value1'];
$arr2 = ['key' => 'value2'];
$result = array_merge($arr1, $arr2);
// 結果: ['key' => 'value2']

3、配列ではない値を引数に入れてる。array_merge()に配列以外の引数を渡すと警告が発生して予期しない結果になる可能性があるよ。

1と2の合わせ技の可能性もあるな。なんにしてもドキュメント読む癖付けた方がいいぞ。

892 名前:デフォルトの名無しさん mailto:sage [2024/09/26(木) 20:33:58.69 ID:RCBNwTlp0.net]
>>891
いやエスパーすべきは、
> var_dumpで
> 要素数23ってなってるのに15しか表示されん
の部分だと思うが。

そして俺がエスパーするなら、多分初心者用 『教材』 としてどこかの馬鹿が作った、
実用性皆無だが、PHPなりの型変換等で見た目奇妙な動作をする何かを与えられ、
動きを理解しなさい、或いはどうしてそうなるかを説明しなさい、みたいな 『練習問題』 をやらされてるのではないかと。
正直この手の 『クソ課題』 は無視でいいよ、他言語である程度組める実力があるのなら尚更。
array_mergeなんて普通に使ってる分には名前通りの直感的な仕様だし、ハマる所ではない。

PHPはクソだが、クソ糞言うのなら他言語使えばいい話であって、
PHP使うと決めた/決まっているのならクソであろうが使うしかないし、糞な所ばかり気にしてても始まらない。
そしてPHPが糞だと思うのはプログラミング言語と捉えるからであって、Web専用シェルと考えればすごく有用だと気づく。



893 名前:デフォルトの名無しさん mailto:sage [2024/09/26(木) 22:38:14.36 ID:y4Her8JE0.net]
>892へ
>891の私がエスパーなりの解釈させてもらうw

>できてるけどvar_dumpで表示されてないだけか?
>要素数23ってなってるのに15しか表示されん

「できてるけど」=array_mergeは機能してるけど、
「var_dumpで表示されてないだけか?」=var_dumpして23あった要素が15に減ってるのは表示されてないだけか?
「要素数23ってなってるのに」=あ、ごめん主語無かったねぐへへへwつまり配列を直接var_dumpでデバッグした時は要素数23ってなってるのに
「15しか表示されん」=array_merge の結果をvar_dumpすると15しか表示されん

繋げると

array_mergeは機能してるけど、var_dumpして23あった要素が15に減ってるのは表示されてないだけか?あ、ごめん主語無かったねぐへへへwつまり配列を直接var_dumpでデバッグした時は要素数23ってなってるのにarray_merge の結果をvar_dumpすると15しか表示されん

いずれにしても>884-885のように話し言葉と書き言葉を一緒くたにしてしまう人や、脳みそと口または手が直結してしまって伝える内容を並び替えできない人とは本気で仕事したくないw

894 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 00:37:53.28 ID:793m8l+c0.net]
こんなことに数分でも時間つかうのがもったいないw

895 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 01:03:15.09 ID:xb00usC10.net]
そのコメント書くのに何分かかった?

896 名前:デフォルトの名無しさん mailto:sage [2024/09/27(金) 10:54:14.55 ID:+POBWt7L0.net]
エスパーしてる連中がキモすぎる

897 名前:デフォルトの名無しさん (ワッチョイ dee7-rNKn) mailto:sage [2024/09/27(金) 16:27:53.83 ID:wGbKsk4o0.net]
$a = ["a"=>0, "b"=>1];
$b = ["b"=>1, "c"=>2];
$c = array_merge($a,$b);
var_dump($c);

俺が>>885ならまず最初にこれを疑うかな

898 名前:デフォルトの名無しさん (ワッチョイ 6f68-2Kaa) mailto:sage [2024/10/03(木) 19:40:44.30 ID:/z7xIJX+0.net]
netbeans使ってるんですが、こいつが出す警告(モジュールは20行以内にしろ、$_POST使うなとか、クラスは1ファイル1クラスにして名前を揃えろとか)には従っておくほうがいいんでしょうか?
$_POSTなんて入門サイトとか入門書だと未だに主流だし、今の相場がどんなものか知りたいです

899 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 20:14:27.24 ID:+g5yChSt0.net]
netbeansってのは使った事ないから分からないけど「$_POST使うな」は無茶だと思うけどね
あとモジュールも20行以上になる事なんか当たり前にあるよ
実際にソース貼って、その上でどんな警告出てるかも貼った方がより正確に回答出来る気がする
コードの文脈を考えた時に必要無い処理である可能性もあって警告出してくれてるかもしれんからね(知らんけど)

900 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 20:35:40.28 ID:SHWJQkyV0.net]
この辺ではなかろうか

「スーパーグローバル$_POST配列に直接アクセスしないでください」

901 名前:902 mailto:sage [2024/10/03(木) 20:53:20.38 ID:/z7xIJX+0.net]
>>899
>>900
実際のとこ、filterinputを使ったりモジュールは分割したりで回避できてるのですが、もしかしてこんなことやってるの俺だけ?って不安になったので

902 名前:デフォルトの名無しさん mailto:sage [2024/10/03(木) 20:59:42.10 ID:tAJvCxJt0.net]
>>900
netbeans使ってるけどそれだぞ
ちなみに表示は、以下

================================
スーパーグローバル$_POST配列に直接アクセスしないでください。

かわりにフィルタリング関数(例: filter_input()、is_*()関数を使用した条件など)を使用してください。
----
([Alt]+[Enter]キーを押すとヒントが表示されます)
================================


>>898
分からないのなら従うのが常道(=自分で自信持って不要と判断出来ないのなら従え)
入門サイトとか入門書がゴミなだけ、マジで参考にするのは全部php,netとlaravelにしろ
掲示板なんて簡単ですよ!とか言いつつgetで書き込みとか、死ねな入門サイトはいくらでもある
Qiitaの方がまだだいぶマシ、あいつらは自分でやった事を書いてるだけなので

> モジュールは20行以内にしろ
普通に経験があれば自分で判断出来る、出来ないのなら従え

> $_POST使うな
上記の通り、filter_input使え馬鹿、と出るはず

> クラスは1ファイル1クラスにして
Javaの文化で、つまり慣れの問題

> 名前を揃えろとか
意味不明(必要ないのではなく、何が言いたいのか分からんので判断付かない)



903 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 08:58:20.60 ID:/JNwl4gJ0.net]
>902
俺は>899だが$_POSTに関して、配列に直接アクセスしてゴニョゴニョすんなよってことね、理解した

>898
ちなみにfilter_inputをバリデーションとかサニタイズで使おうとすると期待してた動作通りに行かないこともままあるから気を付けてね。例としてhtmlタグ取り除きたい時とかは正規表現使って自分で関数作った方が良かったりする。いずれにしてもphpの組み込み関数使う時は必ずphpの公式リファレンス読むようにした方が良いよ

904 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 10:07:59.19 ID:5cV2iGMA0.net]
>>903
> 例としてhtmlタグ取り除きたい時とかは正規表現使って自分で関数作った方が良かったりする。
気持ちは分かるが特定のタグを除去したいときは公式DOM使った方がよいかと
単純な末端ノードならいいが、階層作られたらだいたい無理なので
なおボロカス言われてるDOMだが、俺はJSでもjQuery不要派なのでさほど不満はなかった

905 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 11:52:16.55 ID:/JNwl4gJ0.net]
>904
フロント側でタグを取っちゃうって認識で合ってるかな?自分が基本バックエンドの人間なのでフロント殆ど触らんのよね…w でも提案有難う

906 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 12:00:04.09 ID:b7vgemF30.net]
ちゃんとしたものを作ろうとすると、本格的ブラウザ作る並に大変笑

907 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 12:14:58.84 ID:M8Xyx2No0.net]
phpの話なのにフロントでタグ取り除くとかバックエンドで正規表現使ってタグ取り除くとか意味わからん

フロントでやるならJSの仕事だしバックエンドのPHPなら自分でhtml組み立ててるんだから正規表現使ってhtmlタグを取り除く必要とかそもそもない

908 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 12:48:49.83 ID:5cV2iGMA0.net]
>>905
htmlタグを取り除く=PHPでスクレイプ、或いは掲示板等で許可してないタグを投稿されたときに、PHPでタグを除去する場合を考えている

PHPのDOMはゴミ扱いされてるが、ほぼ生JSと同じなので個人的には問題なかった
正規表現は階層/入れ子を考慮されてないので、正規表現でhtmlをパースするのは死ねるし変な物を食わされたらだいたいバグる
とはいえDOM構築はそれなりに遅くなるので、スクレイプ先のhtml構造が単純かつ固定的なときは正規表現で除去するのもあり
フロント側に不要タグ含めて垂れ流すのもありだが、DBやネットワークの帯域を無駄に消費するだけなので、
可能であれば上流=PHP側で除去した方がいいのは事実

909 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 13:33:27.23 ID:swUgCMz+0.net]
filter_input使え って警告、PhpStormでは見たことないな
運良く推奨されるパターンでも踏んでるのかな

910 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 14:14:38.35 ID:5cV2iGMA0.net]
>>909
IDE内部のリンターなので、直接関係ないのと、
あったとしても普通に切れる

911 名前:デフォルトの名無しさん (ワッチョイ 3f72-Ligk) mailto:sage [2024/10/04(金) 16:00:15.82 ID:M8Xyx2No0.net]
>>908
PHPでスクレイプ時に特定のhtmlタグを取り除くってレアリティ高いな

そっちはいいとしてユーザー入力に許可されてないタグがあるならエラー返した方がいいと思うが除去するにしてもstrip_tagsやHTMLPurifierみたいな出来上がったものを使った方がいいのでは?

あとフロントでタグ除去するのはユーザーアクションに応じてhtmlを変更するためで不要タグを垂れ流してるわけではない

912 名前:デフォルトの名無しさん (ワッチョイ 037b-jS/a) mailto:sage [2024/10/04(金) 19:01:50.57 ID:5cV2iGMA0.net]
>>911
> strip_tagsやHTMLPurifierみたいな出来上がったものを使った方がいいのでは?
これらはいいね
言及出来なかったのは俺が単に知らなかったからで、タグ単位の除去にはこれらを使うべきだろう

> レアリティ高いな
そうでもないから上記の関数/ライブラリが整備されてるわけだ
ただPHPはこの手の、あると便利だが的な関数が無駄に多く、把握しきれてなかったのは上記の通り

> ユーザー入力に許可されてないタグがあるならエラー返した方がいいと思うが
相手がまともな人間の場合はそうだが、
攻撃目的で掲示板にタグを書き込んでくる場合、晒しの意味でも黙って落としてそのまま表示させるのもあり
瞬時にエラーを返してしまうと、何がどこまで駄目なのかすぐばれてしまう
何だかんだで無駄に時間をかけさせるのは地味に有効

> あとフロントでタグ除去するのはユーザーアクションに応じてhtmlを変更するためで不要タグを垂れ流してるわけではない
それは俺に言わせれば、(使う可能性のあるタグなので)仕様上サーバー側では落とせない、となる
サーバー側で落としておくべきなのは、どうやっても不要なタグ、具体的に言うとscriptとか、
或いは公式strip_tagsの警告に書かれてるとおり、onXXXX属性
ただstyle属性まで落とすと、タグを許可した意味が無くなってくるので、判断は難しいところ
opacityとかだけは許可しない等、属性も精査する気だと、結局DOM使う事になるとは思うが…HTMLPurifierでも出来るらしい
まあこの辺は要調査だな



913 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 19:47:14.07 ID:eshA0leg0.net]
>907
どう言うこと?w
PHPでデータベース扱ってる現場ならバックエンドにデータ飛んでくる前にタグ取り除くでしょ
俺の場合はPHPのユーザー定義関数で正規表現使ってタグ取り除く関数を作ったらhtmlのフォーム内でバリデーションとサニタイズ行なってるけど

>自分でhtml組み立てるんだから
分業してる現場なのでJSはフロントの子がやってるのよ
だからフロントは殆ど触らないし関数作ったらフロントの子に渡してる

914 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 19:48:47.53 ID:eshA0leg0.net]
>913
× htmlのフォーム内でバリデーションとサニタイズ行なってるけど

⚪︎ htmlのフォーム内に適宜関数を挿してバリデーションとサニタイズ行なってるけど

915 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 20:30:24.85 ID:5cV2iGMA0.net]
>>913
俺宛ではないが、>>907の使い方はまあ普通、というか9割以上の局面ではそうなる

> バックエンドにデータ飛んでくる前にタグ取り除く
そもそもDBへのアップデータでタグを許可してない/する必要ないのがほぼ全部
例えばここ5ch、安価は最終的に<a>として表示されるが、ユーザーの投稿段階ではただのテキスト
それをDB登録段階で<a>にしてしまうか、JSで<a>にするかは実装によるが、PHPでタグ除去なんてする必要がない

> PHPのユーザー定義関数で正規表現使ってタグ取り除く関数を作ったら
> htmlのフォーム内に適宜関数を挿してバリデーションとサニタイズ行なってる
> だからフロントは殆ど触らないし関数作ったらフロントの子に渡してる
もしかしてEmscriptenかWebAssenbly使ってPHPのコードをクライアントサイドで動かしてる?
それはすさまじくレアだと思うのだけども

916 名前:デフォルトの名無しさん mailto:sage [2024/10/04(金) 21:11:39.79 ID:eshA0leg0.net]
>915
>PHPでタグ除去なんてする必要がない
これは自分の言葉足らずでしたわ。謝ります
ユーザーからのhtmlタグの投稿を一切許可していない現場なのよ、だからタグはDB到達前に全部サニタイズしてる

>もしかしてEmscriptenかWebAssenbly使ってPHPのコードをクライアントサイドで動かしてる?
いや、素のPHP(Laravelとかのフレームワーク使わず)でコード書いてて、ライブラリ含めて全てフルスクラッチで作成してる現場だよ

917 名前:デフォルトの名無しさん mailto:sage [2024/10/16(水) 16:44:48.13 ID:tW0ztwU3d.net]
先生!PHP独学したいのですが
独習PHP 第4版 山田 祥寛 (著)
これでいいですか?

C#
Java
VBA
JavaScript
経験者です

918 名前:デフォルトの名無しさん mailto:sage [2024/10/16(水) 22:44:42.10 ID:XSPkOsBG0.net]
>>917
php.netを頭から全部読めばそれで十分
多分SQLも必須、というかPHPは自身の変数等を保持する機構が言語にないのでどうせDBを使うことになる

919 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 00:25:58.27 ID:exPg1AY+0.net]
>>918
本物のワルなのでセッション使っちゃうぜ

920 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 00:33:42.25 ID:13fsix/Td.net]
>>918
先生!ぼくおじさんなので本にカキカキメモしながらじゃないと勉強できません
後出しですがSQLも基本的なところはできます
独習PHP 第4版が古すぎるとかいうのでなければよいのですが

921 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 08:25:20.34 ID:aXgLojE+0.net]
>>919
ユーザーまたげねえだろ
というか普通のサーバーのように、全体の変数を保持する事が出来ない
だから毎回初期値やデータを一からロードし直す必要があってウザかったが、
JSもクローム拡張V3では同様になってるから、サーバーとしては適切な構造なのだろうよ
PHPの場合、これにより毎回最初から行うのを強制され、結果的に毎回同じ動作となり、デバッグしやすくなってるのも事実
糞言語だが、何だかんだで結果的によく出来てるから使い続けられてる

でもやはりウザイのも事実で、Node他ならもうちょっとすっきり書けるのに、というのは多々ある
ちょっとした配列を保持出来てれば済むのに、一々DBにtry-catchになるから


>>920
持ってないから知らん

922 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 08:51:18.77 ID:Q0zeibWJ0.net]
>>921
セッションIDを知っていればユーザーを跨げるので、本物のワルはこれを悪用しちゃうぜ



923 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 09:15:02.73 ID:aXgLojE+0.net]
>>922
いやそれはアウトだろ
ただ、「絶対に誰にも使われないセッションID」を作れれば便利な倉庫に出来るのかな?
まあ俺はそこまでPHP知らんので止めとくが


しかしPHPは色々糞ったれなことが多い
今目に付いてるのはアップロードされたファイルが $_FILES["pictures"]["tmp_name"][$index] に入る点
逆じゃボケ!!!$_FILES["pictures"][$index]["tmp_name"] に入れろや!!!ってね
この辺一々糞コード化を余儀なくされてストレスが溜まる
まあlaravel導入すれば解決するんだろうけどさ

924 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 23:09:44.41 ID:goFejqio0.net]
>917
私見で恐縮だけど、それだけ他言語を学習済みなら(経験年数にもよるけど)基礎的な事は理解してるはずだから書籍はあんまり意味を為さないと思うなー
@他の人も言ってるようにリファレンス読み込むのがいいと思う。どのページに何が書いてあるか理解把握するのが大事かな、と。あくまで重要なのはリファレンスの内容を覚えるんじゃなくて、必要な時に直ぐに取り出せるように「何処に何が書いてあるか」を理解把握すると良いと思うよ。例えばphp7系とphp8系で大幅に仕様変更があったんだけどその差異を見るにはどのページ見れば良いかとか、もっとシンプルに言うと関数のリファレンスは何処に纏まってるか、とか。
@の手順が終わったら、プログラム経験者でphp手っ取り早く学びたいならLaravelの環境を構築するかまたはWordPress作って弄り倒すのが良いと思う。
前者の理由は、ここ数年のphp開発現場はLaravelを基本としてるから。
後者の理由は、WordPressはphpで構成されているのでソースレベルで弄り倒せるようになれればclassや一通りの組み込み関数も理解出来ていると判断できるから(俺社比)

若干話変わって個人的に興味があるのは、何故phpを学習したいと思ったのかを知りたいな
聞きたい理由としては、phpって言語としても旬は過ぎたし、もしWordPressが使われなくなったらレガシーな環境を除けばphpを選択する意味が無くなってきてると個人的に感じてるのよね。(俺自身はphp好きだけどw)

例えば最近ならNode.js+TypeScript+.vueとかの方が需要高いから何故phpを学ぼうと思ったかその機会を知りたいと思いました。長文スマンでした

925 名前:デフォルトの名無しさん mailto:sage [2024/10/17(木) 23:37:25.31 ID:goFejqio0.net]
横レスおじさんだけどごめんね❤

>919 については、確かにセッション使えば自身の変数は保持できる

>921 に対しては、おっしゃる通りユーザ跨げない。後述(※参照)するけど、ユーザー跨ごうとすると変則的な運用のみ使えると思う(という知見しか自分には無い)から結論非常にオススメしない。

>922 マジでオススメしない。理由はセッションIDを対象ユーザー以外で使うのは大事故に繋がるから。
(※)一応例外も挙げておくけど、【そのサービスを1人しか利用しない】という前提ならもしかしたらありかな?とは思う。逆を言えばそれくらいのレベル感じゃ無いとセッションIDの使い回しは超御法度。
つまり非常に限定的で、ローカル環境で構築したサービスや外部非公開の環境というのが前提で、もし外部に公開するサービスならセッションIDは絶対に使い回しちゃダメよ、って事。

926 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 07:32:13.18 ID:IRpwug8I0.net]
>>924
> レガシーな環境を除けばphpを選択する意味が無くなってきてる
商用ならその通り
ただしレンタルサーバーのような小口だと、プロセス2秒でぶった切る運用が出来るPHPの方が相性がいい
だからブログにはPHP+WPの方が相性がよく、
今のところ他言語では…そういえばHugoとかあったがあれどうなったんだろ?

ちなみにphp.net、読み物としては非常に優秀だが、リファレンスとして逆引きするにはイマイチだと分かった
だから一通り知って、しばらく使わずに忘れて、再確認したいときに
> 何処に何が書いてあるか
を覚えておかないと辿り着けない
(逆に他言語は逆引きするように書いているから、頭から読む読み物としてはイマイチ)

927 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 08:54:50.32 ID:WQ7AgxmX0.net]
>926
うんうん、小口の場合は確かにphpですね。個人からの依頼や企業でも小規模なWEBページの依頼はphpが未だに多い印象。
php.netはそうなのよ、読み物としては立派なんだよね。phpの設定関連は読み込むと理解把握しやすい。一方で「この機能を実現する組み込み関数ってあるかな」と逆引きしたい時や、「ソース書いてて躓いた時、詰まった時」はあんまり役に立たない印象。
そこで次はどうするかというとネット記事(個人ブログ含)に行き着くんだけど、php関連のネット記事って有象無象入り混じってて特殊なアプローチ(裏技的な内容)やセキュリティガバガバのソース提示されてるから初学者はネット記事参考にしない方が良い、というね。
やっぱり実際の業務で学ぶか、WordPress作って理解するか、GitHubで学ぶとかがいいかなーと思う

928 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:05:17.56 ID:IRpwug8I0.net]
>>927
内容については全文同意でいいが、>>920に戻ると、

php.netは読み物としてはMDN/MSDN/Oracleと比べて段違いにいいので、
紙好きであっても初手として通読する事を進める(他言語のリファレンスを想定しているのなら特に)
どうしてもというなら全文印刷して読め、それくらい良質だ

一方で
> php関連のネット記事って有象無象入り混じってて特殊なアプローチ(裏技的な内容)やセキュリティガバガバのソース提示されてるから初学者はネット記事参考にしない方が良い
これは本当にその通りで、理由はPHPが糞言語でろくなコードが書けないというのも多々あるが、(927参考)
JSも相当に酷いので、「主戦場がWebなので(技術的/気分的に)『初心者にも』情報発信しやすい」のが主な理由だろう
Web系は馬鹿しかいないというのも通説ではあるが、
実際の所Cなんて仕事化されない限り(例えば大学の準教授で講義内容を公開するとか)上級者でもWeb記事なんて書かないから、
記事書いてる時点で大半は教える事が仕事として成立する程度のフィルタがかかってるので全然違う

(すまんがNGワード規制に引っかかるようなのでバラバラに落とす)

929 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:06:19.93 ID:IRpwug8I0.net]
ではどうすればいいかといえば、俺は「レビュー済み」のコードを参考にする事を勧める

930 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:07:10.73 ID:IRpwug8I0.net]
俺は上記の通り、JSではMDNのコードしか信用しない事にしてるが、それは「MDNは多数に見られてる」からだ(=酷いコードは修正済み)
StackOverflowが良質なのも、各回答がレビューされて上位順に並ぶからだ

931 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:07:41.36 ID:IRpwug8I0.net]
この点、php.netは同様に、各ページの下にコードがずらずらと『上位順』に並び、
結果的に各ページにStackOverflow並の上質なコードが付随する事になってる

932 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:08:32.58 ID:IRpwug8I0.net]
初学者であれを全部読むのは辛いだろうが、あのコードも読む価値があるので余裕があれば読むべき



933 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:09:03.23 ID:IRpwug8I0.net]
大体において各ページの機能のハマりポイントをコードで解説してある

934 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:09:27.64 ID:IRpwug8I0.net]
面倒なら、ハマったときにはググると同時にphp.netのその機能のコードも読む事だ

935 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:10:14.73 ID:IRpwug8I0.net]
ちなみに引っかかったらだいたいググるとQiitaで何とかなる事が多いはず
Qiitaも勿論いいサイトではあるが、結局「上位順」ではないので、StackOverflowに成れなかった、というより成り損ねた感がある
これは10年ほど昔にJS界隈でKenOkabe、通称「毛の壁」が、
細かい間違いを修正するよう突っ込みまくってウザがられて荒らし扱いされ、結局コメント機能が削除された、という経緯があるらしいが
結果的に「よりよいコード、より正しい情報を発信する」(StackOverflow的価値観)より、
「僕が気持ちよく情報発信する」(ゆとり世代的価値観)を優先したので、そうなってる
まあ創始者がゆとり世代だし、この判断が間違ってるかどうかも微妙で、例えば商業的意味なら「成功」となるのだが、
とにかく現状ではQiitaは玉石混淆、というよりゴミの方が多いので要注意
それでもないよりは100万倍いいので、素晴らしいサイトではあるけども

936 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:11:06.01 ID:IRpwug8I0.net]
これはQiitaのユーザーの問題というよりは、やはりレビューされてない事によるものだと思ってる
同様にGitHubでも個人レベルで公開してるのは、公開の場所が違うだけで、同様に糞コードの地雷原でしかない

937 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:11:36.87 ID:IRpwug8I0.net]
ただ世界的に超有名なOSS(勿論GitHub上)でも超絶糞コードな事に遭遇した事があるので、(なおC言語)
OSSで多数に見られてればコードの質が上がる、ということでもないらしい

938 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:11:54.86 ID:IRpwug8I0.net]
結局はレビュワーによるのだが、OSSでレビューで落としたら関係がそれなりに悪くなるらしいので、
長期戦略を考えたら糞コードもなかなかに落としづらいというのはあるのかもしれない

939 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:12:12.67 ID:IRpwug8I0.net]
この点、PHP自体もOSSの産物だから、はっきり言って機能がデタラメで統一感もなく、
大手がガッツリ整備してる他言語(C#/Java等)と比べたら色々チグハグだが、
これもそういうものだと認識して諦めるしかない
文句があるならお前が直せ、のOSS文化そのままだ
とはいえPHP8には表面的には機能が揃ってる感はあるが

940 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 14:14:03.60 ID:IRpwug8I0.net]
…多分「コード」がNGワードっぽい

941 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 18:47:58.42 ID:9d2rbs7t0.net]
ここは毛の壁の落書き帳です

942 名前:デフォルトの名無しさん mailto:sage [2024/10/18(金) 20:59:29.50 ID:IRpwug8I0.net]
実際の所俺は、毛の壁が超えた、ゆとり世代的レッドラインがどの程度なのかは知りたいんだけどね
Qiita上では綺麗さっぱり消されてるので確認出来ないし

まあ言いたい事は、
つべこべ言わずpnp.netを読め、そして各ページのコードも読め、だ
他言語の常識でpnp.netを忌避するのは、勿体なさ過ぎる



943 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 10:50:17.35 ID:hAiZn1ip0.net]
環境: PHP 8.3.6, ubuntu24.04 LTS, oniguruma 6.9.9

mb_ereg_replace() に使う正規表現の中で (*FAIL) が使えません
PHP側で (*hoge) の形の正規表現パーツを無効化しているようですが
もし使えるようにする方法があれば教えて下さい
最近 oniguruma に (*SKIP) が実装されたので正規表現の高速化のために使いたいです

mb_ereg_replace()
https://www.php.net/manual/ja/function.mb-ereg-replace.php

944 名前:デフォルトの名無しさん mailto:sage [2024/10/21(月) 11:21:53.55 ID:9J9C943n0.net]
知らんが常識的にはdllを差し替えるだけでは?






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](;´∀`)<381KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef