[過去ログ]
【PHP】下らねぇ質問はここに書き込みやがれ 14 (1002レス)
【PHP】下らねぇ質問はここに書き込みやがれ 14 http://mevius.5ch.net/test/read.cgi/tech/1663659983/
上
下
前
次
1-
新
通常表示
512バイト分割
レス栞
このスレッドは過去ログ倉庫に格納されています。
次スレ検索
歴削→次スレ
栞削→次スレ
過去ログメニュー
868: デフォルトの名無しさん (ワッチョイ e7dd-OY7+) [sage] 2024/05/04(土) 12:25:25.54 ID:qT6RngEw0 でもあと数年でC = python > js >>>> phpになる http://mevius.5ch.net/test/read.cgi/tech/1663659983/868
869: デフォルトの名無しさん (ワッチョイ 7f63-Ufki) [sage] 2024/05/04(土) 14:20:07.47 ID:0cPYdG0t0 数年も経ったら、全く新しい別の何かになってる http://mevius.5ch.net/test/read.cgi/tech/1663659983/869
870: デフォルトの名無しさん (ワッチョイ df37-b946) [sage] 2024/05/04(土) 14:54:41.55 ID:ur5HC8pk0 昔から「PHPは遅くて使い物にならなくなる:と言われてたが 結局シェア見ると落ちないしなぁ PHP5時代と比べてPHP8の早いこと http://mevius.5ch.net/test/read.cgi/tech/1663659983/870
871: デフォルトの名無しさん (ワッチョイ a744-u6uN) [sage] 2024/05/04(土) 21:20:04.52 ID:hhjXOeVD0 >>867 jsとphpで同じ動作の同期的なコードを書いてみ async不要で同期でかける方がキレイなのは当然やろ そらあんま複雑な処理が無けりゃ変わらんやろけど http://mevius.5ch.net/test/read.cgi/tech/1663659983/871
872: デフォルトの名無しさん (ワッチョイ 437b-GrxP) [sage] 2024/05/05(日) 00:06:00.25 ID:VpuIuth60 >>871 いや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 http://mevius.5ch.net/test/read.cgi/tech/1663659983/872
873: デフォルトの名無しさん (ワッチョイ 437b-GrxP) [sage] 2024/05/05(日) 00:22:56.43 ID:VpuIuth60 と思ったが、もしかしてJSって子関数はnew Promiseしないと駄目な感じか? 俺はてっきりC#のと同じと思ってたから勘違いしてたかも? まあこの辺はこちらで確認する。 ちなみにcallback地獄はJSの連中が馬鹿だらけだから正当化してるだけで、 実はちゃんと抽象化して組めばcallback地獄にはならない。 そしてサポートの関係もあり、俺はasync/await使ってきて無いから勘違いしてるかもしれん。 さらに言うとPromiseもゴミだと思ってるよ。あれは不要な仕様だ。JSの連中はこれも正当化してるが。 というわけで、JSも色々ゴミだが、全体見るならphpの方がゴミだと思うぜ。 http://mevius.5ch.net/test/read.cgi/tech/1663659983/873
874: デフォルトの名無しさん (ワッチョイ 665f-0+0w) [sage] 2024/05/08(水) 01:04:50.50 ID:Aq7zVlUM0 そんなPHPもpythonに比べたら10倍マシなわけで 世の中ままならないもんだよな http://mevius.5ch.net/test/read.cgi/tech/1663659983/874
875: デフォルトの名無しさん (ワッチョイ 6fe7-M17B) [] 2024/06/13(木) 08:47:33.24 ID:8kjXK8h10 POSIXメッセージキューをサポートしてる拡張モジュール でおすすめをおしえて http://mevius.5ch.net/test/read.cgi/tech/1663659983/875
876: デフォルトの名無しさん (ワッチョイ 1301-CmyF) [sage] 2024/06/15(土) 06:05:03.56 ID:jdN7cEyp0 ニコニコ動画のランサムウェアって、phpの最近のやつと関係あるのかな ttps://innovatopia.jp/cyber-security/cyber-security-news/31048/ http://mevius.5ch.net/test/read.cgi/tech/1663659983/876
877: デフォルトの名無しさん (ワッチョイ e330-/mLI) [sage] 2024/06/15(土) 09:17:52.21 ID:nM9V99Q80 ハイパーバイザーの管理権限まで盗られたって話だから 個々のランサムウェアがどれなのかなんて些末な問題だろうな http://mevius.5ch.net/test/read.cgi/tech/1663659983/877
878: デフォルトの名無しさん (ワッチョイ 76e7-kvsZ) [] 2024/06/19(水) 19:07:59.04 ID:rcHRA2+h0 FuelPHPの代替ってどんなのがあるの? http://mevius.5ch.net/test/read.cgi/tech/1663659983/878
879: デフォルトの名無しさん (ワッチョイ 339c-FBvh) [sage] 2024/06/20(木) 02:13:33.44 ID:GIlSg4MN0 Laravel一択 http://mevius.5ch.net/test/read.cgi/tech/1663659983/879
880: デフォルトの名無しさん (ワッチョイ cfbb-muU0) [sage] 2024/06/23(日) 00:56:02.55 ID:/fMztCCi0 なんかわけあって形態素解析ライブラリを作ろうかと思うんだけど辞書はMecabの辞書を使うとしてどうやって解析しようかな 最長一致で比較してマッチしたら抜き出すって方法を考えてるけど皆ならどう作る? http://mevius.5ch.net/test/read.cgi/tech/1663659983/880
881: デフォルトの名無しさん (ワッチョイ 3f4d-tL4z) [sage] 2024/06/23(日) 11:04:07.30 ID:BYEVr0N80 作らない 断る http://mevius.5ch.net/test/read.cgi/tech/1663659983/881
882: デフォルトの名無しさん (ワッチョイ 7f63-uW6V) [sage] 2024/06/23(日) 11:07:53.98 ID:8Dr+KSC80 宿題か?自分でやる方が良いぞ http://mevius.5ch.net/test/read.cgi/tech/1663659983/882
883: デフォルトの名無しさん (ワッチョイ 7901-vp4l) [sage] 2024/08/31(土) 14:07:37.82 ID:o+gAgvj50 >>878 flight http://mevius.5ch.net/test/read.cgi/tech/1663659983/883
884: デフォルトの名無しさん (ワッチョイ 5fad-vm2V) [sage] 2024/09/06(金) 14:19:31.11 ID:J9Dx+vkX0 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値として読めないって言われてるのかな http://mevius.5ch.net/test/read.cgi/tech/1663659983/884
885: デフォルトの名無しさん (ワッチョイ 5f87-F2Kr) [sage] 2024/09/06(金) 16:44:39.99 ID:QtgCCsYf0 引数の、どれかだろ http://mevius.5ch.net/test/read.cgi/tech/1663659983/885
886: デフォルトの名無しさん (ワッチョイ 5f61-CMA8) [sage] 2024/09/06(金) 16:50:09.62 ID:xfC3DfZt0 LDAP_OPT_PROTOCOL_VERSIONは定数なんだからクォートで囲っちゃだめでしょ http://mevius.5ch.net/test/read.cgi/tech/1663659983/886
887: デフォルトの名無しさん (ワッチョイ b6a2-LJWL) [sage] 2024/09/09(月) 18:23:38.31 ID:8AzXAdmE0 >>886 言われた通りだったわ ありがとー http://mevius.5ch.net/test/read.cgi/tech/1663659983/887
888: デフォルトの名無しさん (ワッチョイ 77cb-7haC) [] 2024/09/23(月) 08:24:39.70 ID:TOpTpz460 連想配列のarray_merge全然うまくいかんやん ほんとなんなのこの言語、まじイラつく http://mevius.5ch.net/test/read.cgi/tech/1663659983/888
889: デフォルトの名無しさん (ワッチョイ 77cb-7haC) [] 2024/09/23(月) 08:30:38.84 ID:TOpTpz460 できてるけどvar_dumpで表示されてないだけか? 要素数23ってなってるのに15しか表示されん まじでよーわからん http://mevius.5ch.net/test/read.cgi/tech/1663659983/889
890: デフォルトの名無しさん (ワッチョイ c77b-dQvS) [sage] 2024/09/23(月) 09:07:14.03 ID:dfCQ5A4R0 まず再現コード貼れよ、話はそれからだ http://mevius.5ch.net/test/read.cgi/tech/1663659983/890
891: デフォルトの名無しさん (ワッチョイ dee7-rNKn) [sage] 2024/09/23(月) 09:28:56.66 ID:h2Aoyerx0 再現コード貼れ しか言わない奴は大抵は 十分に与えられた情報を見ても解決できない 無能隠しの時間稼ぎなんだよね http://mevius.5ch.net/test/read.cgi/tech/1663659983/891
892: デフォルトの名無しさん (ワッチョイ c77b-dQvS) [sage] 2024/09/23(月) 09:40:34.39 ID:dfCQ5A4R0 >>891は超絶無能だとは断定出来るね 891がスーパーエスパーなら891の時点で答えを貼るべき 自分では出来ない癖に他人をやたら貶すのは超絶無能な奴の特徴 そもそも本件は、再現コードも数行で済み、それがあれば誰でも回答出来るレベルなので、 本件で「無能隠し」とか言い出す時点で、何が簡単で難しいか判断すら出来ない大馬鹿 http://mevius.5ch.net/test/read.cgi/tech/1663659983/892
893: デフォルトの名無しさん (ワッチョイ 1663-7cnK) [sage] 2024/09/23(月) 10:16:17.79 ID:nGCd//e20 十分に与えられているとは思わないけどな エスパーならできるかもしれんが、普通の人には無理 http://mevius.5ch.net/test/read.cgi/tech/1663659983/893
894: デフォルトの名無しさん (ワッチョイ 7758-M+A0) [sage] 2024/09/23(月) 11:44:05.43 ID:kXVPwjR50 まあそうこうしてる間に本人は解決してるだろうよ、こんくらいなら コードなきゃ>>889もイミフだしな http://mevius.5ch.net/test/read.cgi/tech/1663659983/894
895: デフォルトの名無しさん (ササクッテロル Sp47-1cT1) [sage] 2024/09/26(木) 20:00:35.39 ID:hH68uGfdp >888-889 エスパーだから答えてあげる。恐らく下のうちのいずれかが原因。つまり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の合わせ技の可能性もあるな。なんにしてもドキュメント読む癖付けた方がいいぞ。 http://mevius.5ch.net/test/read.cgi/tech/1663659983/895
896: デフォルトの名無しさん (ワッチョイ c77b-dQvS) [sage] 2024/09/26(木) 20:33:58.69 ID:RCBNwTlp0 >>895 いやエスパーすべきは、 > var_dumpで > 要素数23ってなってるのに15しか表示されん の部分だと思うが。 そして俺がエスパーするなら、多分初心者用 『教材』 としてどこかの馬鹿が作った、 実用性皆無だが、PHPなりの型変換等で見た目奇妙な動作をする何かを与えられ、 動きを理解しなさい、或いはどうしてそうなるかを説明しなさい、みたいな 『練習問題』 をやらされてるのではないかと。 正直この手の 『クソ課題』 は無視でいいよ、他言語である程度組める実力があるのなら尚更。 array_mergeなんて普通に使ってる分には名前通りの直感的な仕様だし、ハマる所ではない。 PHPはクソだが、クソ糞言うのなら他言語使えばいい話であって、 PHP使うと決めた/決まっているのならクソであろうが使うしかないし、糞な所ばかり気にしてても始まらない。 そしてPHPが糞だと思うのはプログラミング言語と捉えるからであって、Web専用シェルと考えればすごく有用だと気づく。 http://mevius.5ch.net/test/read.cgi/tech/1663659983/896
897: デフォルトの名無しさん (ワッチョイ de01-1cT1) [sage] 2024/09/26(木) 22:38:14.36 ID:y4Her8JE0 >896へ >895の私がエスパーなりの解釈させてもらう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しか表示されん いずれにしても>888-889のように話し言葉と書き言葉を一緒くたにしてしまう人や、脳みそと口または手が直結してしまって伝える内容を並び替えできない人とは本気で仕事したくないw http://mevius.5ch.net/test/read.cgi/tech/1663659983/897
898: デフォルトの名無しさん (ワッチョイ 77cc-M+A0) [sage] 2024/09/27(金) 00:37:53.28 ID:793m8l+c0 こんなことに数分でも時間つかうのがもったいないw http://mevius.5ch.net/test/read.cgi/tech/1663659983/898
899: デフォルトの名無しさん (ワッチョイ 1663-7cnK) [sage] 2024/09/27(金) 01:03:15.09 ID:xb00usC10 そのコメント書くのに何分かかった? http://mevius.5ch.net/test/read.cgi/tech/1663659983/899
900: デフォルトの名無しさん (ワッチョイ 1e28-DO7g) [sage] 2024/09/27(金) 10:54:14.55 ID:+POBWt7L0 エスパーしてる連中がキモすぎる http://mevius.5ch.net/test/read.cgi/tech/1663659983/900
901: デフォルトの名無しさん (ワッチョイ dee7-rNKn) [sage] 2024/09/27(金) 16:27:53.83 ID:wGbKsk4o0 $a = ["a"=>0, "b"=>1]; $b = ["b"=>1, "c"=>2]; $c = array_merge($a,$b); var_dump($c); 俺が>>889ならまず最初にこれを疑うかな http://mevius.5ch.net/test/read.cgi/tech/1663659983/901
902: デフォルトの名無しさん (ワッチョイ 6f68-2Kaa) [sage] 2024/10/03(木) 19:40:44.30 ID:/z7xIJX+0 netbeans使ってるんですが、こいつが出す警告(モジュールは20行以内にしろ、$_POST使うなとか、クラスは1ファイル1クラスにして名前を揃えろとか)には従っておくほうがいいんでしょうか? $_POSTなんて入門サイトとか入門書だと未だに主流だし、今の相場がどんなものか知りたいです http://mevius.5ch.net/test/read.cgi/tech/1663659983/902
903: デフォルトの名無しさん (ワッチョイ 830b-gq2J) [sage] 2024/10/03(木) 20:14:27.24 ID:+g5yChSt0 netbeansってのは使った事ないから分からないけど「$_POST使うな」は無茶だと思うけどね あとモジュールも20行以上になる事なんか当たり前にあるよ 実際にソース貼って、その上でどんな警告出てるかも貼った方がより正確に回答出来る気がする コードの文脈を考えた時に必要無い処理である可能性もあって警告出してくれてるかもしれんからね(知らんけど) http://mevius.5ch.net/test/read.cgi/tech/1663659983/903
904: デフォルトの名無しさん (ワッチョイ cf63-3hiK) [sage] 2024/10/03(木) 20:35:40.28 ID:SHWJQkyV0 この辺ではなかろうか 「スーパーグローバル$_POST配列に直接アクセスしないでください」 http://mevius.5ch.net/test/read.cgi/tech/1663659983/904
905: 902 (ワッチョイ 6f68-2Kaa) [sage] 2024/10/03(木) 20:53:20.38 ID:/z7xIJX+0 >>903 >>904 実際のとこ、filterinputを使ったりモジュールは分割したりで回避できてるのですが、もしかしてこんなことやってるの俺だけ?って不安になったので http://mevius.5ch.net/test/read.cgi/tech/1663659983/905
906: デフォルトの名無しさん (ワッチョイ 037b-jS/a) [sage] 2024/10/03(木) 20:59:42.10 ID:tAJvCxJt0 >>904 netbeans使ってるけどそれだぞ ちなみに表示は、以下 ================================ スーパーグローバル$_POST配列に直接アクセスしないでください。 かわりにフィルタリング関数(例: filter_input()、is_*()関数を使用した条件など)を使用してください。 ---- ([Alt]+[Enter]キーを押すとヒントが表示されます) ================================ >>902 分からないのなら従うのが常道(=自分で自信持って不要と判断出来ないのなら従え) 入門サイトとか入門書がゴミなだけ、マジで参考にするのは全部php,netとlaravelにしろ 掲示板なんて簡単ですよ!とか言いつつgetで書き込みとか、死ねな入門サイトはいくらでもある Qiitaの方がまだだいぶマシ、あいつらは自分でやった事を書いてるだけなので > モジュールは20行以内にしろ 普通に経験があれば自分で判断出来る、出来ないのなら従え > $_POST使うな 上記の通り、filter_input使え馬鹿、と出るはず > クラスは1ファイル1クラスにして Javaの文化で、つまり慣れの問題 > 名前を揃えろとか 意味不明(必要ないのではなく、何が言いたいのか分からんので判断付かない) http://mevius.5ch.net/test/read.cgi/tech/1663659983/906
907: デフォルトの名無しさん (ワッチョイ 830b-gq2J) [sage] 2024/10/04(金) 08:58:20.60 ID:/JNwl4gJ0 >906 俺は>903だが$_POSTに関して、配列に直接アクセスしてゴニョゴニョすんなよってことね、理解した >902 ちなみにfilter_inputをバリデーションとかサニタイズで使おうとすると期待してた動作通りに行かないこともままあるから気を付けてね。例としてhtmlタグ取り除きたい時とかは正規表現使って自分で関数作った方が良かったりする。いずれにしてもphpの組み込み関数使う時は必ずphpの公式リファレンス読むようにした方が良いよ http://mevius.5ch.net/test/read.cgi/tech/1663659983/907
908: デフォルトの名無しさん (ワッチョイ 037b-jS/a) [sage] 2024/10/04(金) 10:07:59.19 ID:5cV2iGMA0 >>907 > 例としてhtmlタグ取り除きたい時とかは正規表現使って自分で関数作った方が良かったりする。 気持ちは分かるが特定のタグを除去したいときは公式DOM使った方がよいかと 単純な末端ノードならいいが、階層作られたらだいたい無理なので なおボロカス言われてるDOMだが、俺はJSでもjQuery不要派なのでさほど不満はなかった http://mevius.5ch.net/test/read.cgi/tech/1663659983/908
909: デフォルトの名無しさん (ワッチョイ 830b-gq2J) [sage] 2024/10/04(金) 11:52:16.55 ID:/JNwl4gJ0 >908 フロント側でタグを取っちゃうって認識で合ってるかな?自分が基本バックエンドの人間なのでフロント殆ど触らんのよね…w でも提案有難う http://mevius.5ch.net/test/read.cgi/tech/1663659983/909
910: デフォルトの名無しさん (ワッチョイ cf63-3hiK) [sage] 2024/10/04(金) 12:00:04.09 ID:b7vgemF30 ちゃんとしたものを作ろうとすると、本格的ブラウザ作る並に大変笑 http://mevius.5ch.net/test/read.cgi/tech/1663659983/910
911: デフォルトの名無しさん (ワッチョイ 3f72-Ligk) [sage] 2024/10/04(金) 12:14:58.84 ID:M8Xyx2No0 phpの話なのにフロントでタグ取り除くとかバックエンドで正規表現使ってタグ取り除くとか意味わからん フロントでやるならJSの仕事だしバックエンドのPHPなら自分でhtml組み立ててるんだから正規表現使ってhtmlタグを取り除く必要とかそもそもない http://mevius.5ch.net/test/read.cgi/tech/1663659983/911
912: デフォルトの名無しさん (ワッチョイ 037b-jS/a) [sage] 2024/10/04(金) 12:48:49.83 ID:5cV2iGMA0 >>909 htmlタグを取り除く=PHPでスクレイプ、或いは掲示板等で許可してないタグを投稿されたときに、PHPでタグを除去する場合を考えている PHPのDOMはゴミ扱いされてるが、ほぼ生JSと同じなので個人的には問題なかった 正規表現は階層/入れ子を考慮されてないので、正規表現でhtmlをパースするのは死ねるし変な物を食わされたらだいたいバグる とはいえDOM構築はそれなりに遅くなるので、スクレイプ先のhtml構造が単純かつ固定的なときは正規表現で除去するのもあり フロント側に不要タグ含めて垂れ流すのもありだが、DBやネットワークの帯域を無駄に消費するだけなので、 可能であれば上流=PHP側で除去した方がいいのは事実 http://mevius.5ch.net/test/read.cgi/tech/1663659983/912
913: デフォルトの名無しさん (ワッチョイ 6f5f-D2eP) [sage] 2024/10/04(金) 13:33:27.23 ID:swUgCMz+0 filter_input使え って警告、PhpStormでは見たことないな 運良く推奨されるパターンでも踏んでるのかな http://mevius.5ch.net/test/read.cgi/tech/1663659983/913
914: デフォルトの名無しさん (ワッチョイ 037b-jS/a) [sage] 2024/10/04(金) 14:14:38.35 ID:5cV2iGMA0 >>913 IDE内部のリンターなので、直接関係ないのと、 あったとしても普通に切れる http://mevius.5ch.net/test/read.cgi/tech/1663659983/914
915: デフォルトの名無しさん (ワッチョイ 3f72-Ligk) [sage] 2024/10/04(金) 16:00:15.82 ID:M8Xyx2No0 >>912 PHPでスクレイプ時に特定のhtmlタグを取り除くってレアリティ高いな そっちはいいとしてユーザー入力に許可されてないタグがあるならエラー返した方がいいと思うが除去するにしてもstrip_tagsやHTMLPurifierみたいな出来上がったものを使った方がいいのでは? あとフロントでタグ除去するのはユーザーアクションに応じてhtmlを変更するためで不要タグを垂れ流してるわけではない http://mevius.5ch.net/test/read.cgi/tech/1663659983/915
916: デフォルトの名無しさん (ワッチョイ 037b-jS/a) [sage] 2024/10/04(金) 19:01:50.57 ID:5cV2iGMA0 >>915 > strip_tagsやHTMLPurifierみたいな出来上がったものを使った方がいいのでは? これらはいいね 言及出来なかったのは俺が単に知らなかったからで、タグ単位の除去にはこれらを使うべきだろう > レアリティ高いな そうでもないから上記の関数/ライブラリが整備されてるわけだ ただPHPはこの手の、あると便利だが的な関数が無駄に多く、把握しきれてなかったのは上記の通り > ユーザー入力に許可されてないタグがあるならエラー返した方がいいと思うが 相手がまともな人間の場合はそうだが、 攻撃目的で掲示板にタグを書き込んでくる場合、晒しの意味でも黙って落としてそのまま表示させるのもあり 瞬時にエラーを返してしまうと、何がどこまで駄目なのかすぐばれてしまう 何だかんだで無駄に時間をかけさせるのは地味に有効 > あとフロントでタグ除去するのはユーザーアクションに応じてhtmlを変更するためで不要タグを垂れ流してるわけではない それは俺に言わせれば、(使う可能性のあるタグなので)仕様上サーバー側では落とせない、となる サーバー側で落としておくべきなのは、どうやっても不要なタグ、具体的に言うとscriptとか、 或いは公式strip_tagsの警告に書かれてるとおり、onXXXX属性 ただstyle属性まで落とすと、タグを許可した意味が無くなってくるので、判断は難しいところ opacityとかだけは許可しない等、属性も精査する気だと、結局DOM使う事になるとは思うが…HTMLPurifierでも出来るらしい まあこの辺は要調査だな http://mevius.5ch.net/test/read.cgi/tech/1663659983/916
917: デフォルトの名無しさん (ワッチョイ b39e-gq2J) [sage] 2024/10/04(金) 19:47:14.07 ID:eshA0leg0 >911 どう言うこと?w PHPでデータベース扱ってる現場ならバックエンドにデータ飛んでくる前にタグ取り除くでしょ 俺の場合はPHPのユーザー定義関数で正規表現使ってタグ取り除く関数を作ったらhtmlのフォーム内でバリデーションとサニタイズ行なってるけど >自分でhtml組み立てるんだから 分業してる現場なのでJSはフロントの子がやってるのよ だからフロントは殆ど触らないし関数作ったらフロントの子に渡してる http://mevius.5ch.net/test/read.cgi/tech/1663659983/917
918: デフォルトの名無しさん (ワッチョイ b39e-gq2J) [sage] 2024/10/04(金) 19:48:47.53 ID:eshA0leg0 >917 × htmlのフォーム内でバリデーションとサニタイズ行なってるけど ⚪︎ htmlのフォーム内に適宜関数を挿してバリデーションとサニタイズ行なってるけど http://mevius.5ch.net/test/read.cgi/tech/1663659983/918
919: デフォルトの名無しさん (ワッチョイ 037b-jS/a) [sage] 2024/10/04(金) 20:30:24.85 ID:5cV2iGMA0 >>917 俺宛ではないが、>>911の使い方はまあ普通、というか9割以上の局面ではそうなる > バックエンドにデータ飛んでくる前にタグ取り除く そもそもDBへのアップデータでタグを許可してない/する必要ないのがほぼ全部 例えばここ5ch、安価は最終的に<a>として表示されるが、ユーザーの投稿段階ではただのテキスト それをDB登録段階で<a>にしてしまうか、JSで<a>にするかは実装によるが、PHPでタグ除去なんてする必要がない > PHPのユーザー定義関数で正規表現使ってタグ取り除く関数を作ったら > htmlのフォーム内に適宜関数を挿してバリデーションとサニタイズ行なってる > だからフロントは殆ど触らないし関数作ったらフロントの子に渡してる もしかしてEmscriptenかWebAssenbly使ってPHPのコードをクライアントサイドで動かしてる? それはすさまじくレアだと思うのだけども http://mevius.5ch.net/test/read.cgi/tech/1663659983/919
920: デフォルトの名無しさん (ワッチョイ b39e-gq2J) [sage] 2024/10/04(金) 21:11:39.79 ID:eshA0leg0 >919 >PHPでタグ除去なんてする必要がない これは自分の言葉足らずでしたわ。謝ります ユーザーからのhtmlタグの投稿を一切許可していない現場なのよ、だからタグはDB到達前に全部サニタイズしてる >もしかしてEmscriptenかWebAssenbly使ってPHPのコードをクライアントサイドで動かしてる? いや、素のPHP(Laravelとかのフレームワーク使わず)でコード書いてて、ライブラリ含めて全てフルスクラッチで作成してる現場だよ http://mevius.5ch.net/test/read.cgi/tech/1663659983/920
921: デフォルトの名無しさん (スップ Sdbf-qfF2) [sage] 2024/10/16(水) 16:44:48.13 ID:tW0ztwU3d 先生!PHP独学したいのですが 独習PHP 第4版 山田 祥寛 (著) これでいいですか? C# Java VBA JavaScript 経験者です http://mevius.5ch.net/test/read.cgi/tech/1663659983/921
922: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/16(水) 22:44:42.10 ID:XSPkOsBG0 >>921 php.netを頭から全部読めばそれで十分 多分SQLも必須、というかPHPは自身の変数等を保持する機構が言語にないのでどうせDBを使うことになる http://mevius.5ch.net/test/read.cgi/tech/1663659983/922
923: デフォルトの名無しさん (ワッチョイ ef5f-nmm0) [sage] 2024/10/17(木) 00:25:58.27 ID:exPg1AY+0 >>922 本物のワルなのでセッション使っちゃうぜ http://mevius.5ch.net/test/read.cgi/tech/1663659983/923
924: デフォルトの名無しさん (スップ Sdbf-qfF2) [sage] 2024/10/17(木) 00:33:42.25 ID:13fsix/Td >>922 先生!ぼくおじさんなので本にカキカキメモしながらじゃないと勉強できません 後出しですがSQLも基本的なところはできます 独習PHP 第4版が古すぎるとかいうのでなければよいのですが http://mevius.5ch.net/test/read.cgi/tech/1663659983/924
925: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/17(木) 08:25:20.34 ID:aXgLojE+0 >>923 ユーザーまたげねえだろ というか普通のサーバーのように、全体の変数を保持する事が出来ない だから毎回初期値やデータを一からロードし直す必要があってウザかったが、 JSもクローム拡張V3では同様になってるから、サーバーとしては適切な構造なのだろうよ PHPの場合、これにより毎回最初から行うのを強制され、結果的に毎回同じ動作となり、デバッグしやすくなってるのも事実 糞言語だが、何だかんだで結果的によく出来てるから使い続けられてる でもやはりウザイのも事実で、Node他ならもうちょっとすっきり書けるのに、というのは多々ある ちょっとした配列を保持出来てれば済むのに、一々DBにtry-catchになるから >>924 持ってないから知らん http://mevius.5ch.net/test/read.cgi/tech/1663659983/925
926: デフォルトの名無しさん (ワッチョイ efe7-nmm0) [sage] 2024/10/17(木) 08:51:18.77 ID:Q0zeibWJ0 >>925 セッションIDを知っていればユーザーを跨げるので、本物のワルはこれを悪用しちゃうぜ http://mevius.5ch.net/test/read.cgi/tech/1663659983/926
927: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/17(木) 09:15:02.73 ID:aXgLojE+0 >>926 いやそれはアウトだろ ただ、「絶対に誰にも使われないセッションID」を作れれば便利な倉庫に出来るのかな? まあ俺はそこまでPHP知らんので止めとくが しかしPHPは色々糞ったれなことが多い 今目に付いてるのはアップロードされたファイルが $_FILES["pictures"]["tmp_name"][$index] に入る点 逆じゃボケ!!!$_FILES["pictures"][$index]["tmp_name"] に入れろや!!!ってね この辺一々糞コード化を余儀なくされてストレスが溜まる まあlaravel導入すれば解決するんだろうけどさ http://mevius.5ch.net/test/read.cgi/tech/1663659983/927
928: デフォルトの名無しさん (ワッチョイ db85-xAPd) [sage] 2024/10/17(木) 23:09:44.41 ID:goFejqio0 >921 私見で恐縮だけど、それだけ他言語を学習済みなら(経験年数にもよるけど)基礎的な事は理解してるはずだから書籍はあんまり意味を為さないと思うなー ?他の人も言ってるようにリファレンス読み込むのがいいと思う。どのページに何が書いてあるか理解把握するのが大事かな、と。あくまで重要なのはリファレンスの内容を覚えるんじゃなくて、必要な時に直ぐに取り出せるように「何処に何が書いてあるか」を理解把握すると良いと思うよ。例えばphp7系とphp8系で大幅に仕様変更があったんだけどその差異を見るにはどのページ見れば良いかとか、もっとシンプルに言うと関数のリファレンスは何処に纏まってるか、とか。 ?の手順が終わったら、プログラム経験者でphp手っ取り早く学びたいならLaravelの環境を構築するかまたはWordPress作って弄り倒すのが良いと思う。 前者の理由は、ここ数年のphp開発現場はLaravelを基本としてるから。 後者の理由は、WordPressはphpで構成されているのでソースレベルで弄り倒せるようになれればclassや一通りの組み込み関数も理解出来ていると判断できるから(俺社比) 若干話変わって個人的に興味があるのは、何故phpを学習したいと思ったのかを知りたいな 聞きたい理由としては、phpって言語としても旬は過ぎたし、もしWordPressが使われなくなったらレガシーな環境を除けばphpを選択する意味が無くなってきてると個人的に感じてるのよね。(俺自身はphp好きだけどw) 例えば最近ならNode.js+TypeScript+.vueとかの方が需要高いから何故phpを学ぼうと思ったかその機会を知りたいと思いました。長文スマンでした http://mevius.5ch.net/test/read.cgi/tech/1663659983/928
929: デフォルトの名無しさん (ワッチョイ db85-xAPd) [sage] 2024/10/17(木) 23:37:25.31 ID:goFejqio0 横レスおじさんだけどごめんね❤ >923 については、確かにセッション使えば自身の変数は保持できる >925 に対しては、おっしゃる通りユーザ跨げない。後述(※参照)するけど、ユーザー跨ごうとすると変則的な運用のみ使えると思う(という知見しか自分には無い)から結論非常にオススメしない。 >926 マジでオススメしない。理由はセッションIDを対象ユーザー以外で使うのは大事故に繋がるから。 (※)一応例外も挙げておくけど、【そのサービスを1人しか利用しない】という前提ならもしかしたらありかな?とは思う。逆を言えばそれくらいのレベル感じゃ無いとセッションIDの使い回しは超御法度。 つまり非常に限定的で、ローカル環境で構築したサービスや外部非公開の環境というのが前提で、もし外部に公開するサービスならセッションIDは絶対に使い回しちゃダメよ、って事。 http://mevius.5ch.net/test/read.cgi/tech/1663659983/929
930: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 07:32:13.18 ID:IRpwug8I0 >>928 > レガシーな環境を除けばphpを選択する意味が無くなってきてる 商用ならその通り ただしレンタルサーバーのような小口だと、プロセス2秒でぶった切る運用が出来るPHPの方が相性がいい だからブログにはPHP+WPの方が相性がよく、 今のところ他言語では…そういえばHugoとかあったがあれどうなったんだろ? ちなみにphp.net、読み物としては非常に優秀だが、リファレンスとして逆引きするにはイマイチだと分かった だから一通り知って、しばらく使わずに忘れて、再確認したいときに > 何処に何が書いてあるか を覚えておかないと辿り着けない (逆に他言語は逆引きするように書いているから、頭から読む読み物としてはイマイチ) http://mevius.5ch.net/test/read.cgi/tech/1663659983/930
931: デフォルトの名無しさん (ワッチョイ ef29-xAPd) [sage] 2024/10/18(金) 08:54:50.32 ID:WQ7AgxmX0 >930 うんうん、小口の場合は確かにphpですね。個人からの依頼や企業でも小規模なWEBページの依頼はphpが未だに多い印象。 php.netはそうなのよ、読み物としては立派なんだよね。phpの設定関連は読み込むと理解把握しやすい。一方で「この機能を実現する組み込み関数ってあるかな」と逆引きしたい時や、「ソース書いてて躓いた時、詰まった時」はあんまり役に立たない印象。 そこで次はどうするかというとネット記事(個人ブログ含)に行き着くんだけど、php関連のネット記事って有象無象入り混じってて特殊なアプローチ(裏技的な内容)やセキュリティガバガバのソース提示されてるから初学者はネット記事参考にしない方が良い、というね。 やっぱり実際の業務で学ぶか、WordPress作って理解するか、GitHubで学ぶとかがいいかなーと思う http://mevius.5ch.net/test/read.cgi/tech/1663659983/931
932: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:05:17.56 ID:IRpwug8I0 >>931 内容については全文同意でいいが、>>924に戻ると、 php.netは読み物としてはMDN/MSDN/Oracleと比べて段違いにいいので、 紙好きであっても初手として通読する事を進める(他言語のリファレンスを想定しているのなら特に) どうしてもというなら全文印刷して読め、それくらい良質だ 一方で > php関連のネット記事って有象無象入り混じってて特殊なアプローチ(裏技的な内容)やセキュリティガバガバのソース提示されてるから初学者はネット記事参考にしない方が良い これは本当にその通りで、理由はPHPが糞言語でろくなコードが書けないというのも多々あるが、(927参考) JSも相当に酷いので、「主戦場がWebなので(技術的/気分的に)『初心者にも』情報発信しやすい」のが主な理由だろう Web系は馬鹿しかいないというのも通説ではあるが、 実際の所Cなんて仕事化されない限り(例えば大学の準教授で講義内容を公開するとか)上級者でもWeb記事なんて書かないから、 記事書いてる時点で大半は教える事が仕事として成立する程度のフィルタがかかってるので全然違う (すまんがNGワード規制に引っかかるようなのでバラバラに落とす) http://mevius.5ch.net/test/read.cgi/tech/1663659983/932
933: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:06:19.93 ID:IRpwug8I0 ではどうすればいいかといえば、俺は「レビュー済み」のコードを参考にする事を勧める http://mevius.5ch.net/test/read.cgi/tech/1663659983/933
934: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:07:10.73 ID:IRpwug8I0 俺は上記の通り、JSではMDNのコードしか信用しない事にしてるが、それは「MDNは多数に見られてる」からだ(=酷いコードは修正済み) StackOverflowが良質なのも、各回答がレビューされて上位順に並ぶからだ http://mevius.5ch.net/test/read.cgi/tech/1663659983/934
935: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:07:41.36 ID:IRpwug8I0 この点、php.netは同様に、各ページの下にコードがずらずらと『上位順』に並び、 結果的に各ページにStackOverflow並の上質なコードが付随する事になってる http://mevius.5ch.net/test/read.cgi/tech/1663659983/935
936: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:08:32.58 ID:IRpwug8I0 初学者であれを全部読むのは辛いだろうが、あのコードも読む価値があるので余裕があれば読むべき http://mevius.5ch.net/test/read.cgi/tech/1663659983/936
937: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:09:03.23 ID:IRpwug8I0 大体において各ページの機能のハマりポイントをコードで解説してある http://mevius.5ch.net/test/read.cgi/tech/1663659983/937
938: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:09:27.64 ID:IRpwug8I0 面倒なら、ハマったときにはググると同時にphp.netのその機能のコードも読む事だ http://mevius.5ch.net/test/read.cgi/tech/1663659983/938
939: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:10:14.73 ID:IRpwug8I0 ちなみに引っかかったらだいたいググるとQiitaで何とかなる事が多いはず Qiitaも勿論いいサイトではあるが、結局「上位順」ではないので、StackOverflowに成れなかった、というより成り損ねた感がある これは10年ほど昔にJS界隈でKenOkabe、通称「毛の壁」が、 細かい間違いを修正するよう突っ込みまくってウザがられて荒らし扱いされ、結局コメント機能が削除された、という経緯があるらしいが 結果的に「よりよいコード、より正しい情報を発信する」(StackOverflow的価値観)より、 「僕が気持ちよく情報発信する」(ゆとり世代的価値観)を優先したので、そうなってる まあ創始者がゆとり世代だし、この判断が間違ってるかどうかも微妙で、例えば商業的意味なら「成功」となるのだが、 とにかく現状ではQiitaは玉石混淆、というよりゴミの方が多いので要注意 それでもないよりは100万倍いいので、素晴らしいサイトではあるけども http://mevius.5ch.net/test/read.cgi/tech/1663659983/939
940: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:11:06.01 ID:IRpwug8I0 これはQiitaのユーザーの問題というよりは、やはりレビューされてない事によるものだと思ってる 同様にGitHubでも個人レベルで公開してるのは、公開の場所が違うだけで、同様に糞コードの地雷原でしかない http://mevius.5ch.net/test/read.cgi/tech/1663659983/940
941: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:11:36.87 ID:IRpwug8I0 ただ世界的に超有名なOSS(勿論GitHub上)でも超絶糞コードな事に遭遇した事があるので、(なおC言語) OSSで多数に見られてればコードの質が上がる、ということでもないらしい http://mevius.5ch.net/test/read.cgi/tech/1663659983/941
942: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:11:54.86 ID:IRpwug8I0 結局はレビュワーによるのだが、OSSでレビューで落としたら関係がそれなりに悪くなるらしいので、 長期戦略を考えたら糞コードもなかなかに落としづらいというのはあるのかもしれない http://mevius.5ch.net/test/read.cgi/tech/1663659983/942
943: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:12:12.67 ID:IRpwug8I0 この点、PHP自体もOSSの産物だから、はっきり言って機能がデタラメで統一感もなく、 大手がガッツリ整備してる他言語(C#/Java等)と比べたら色々チグハグだが、 これもそういうものだと認識して諦めるしかない 文句があるならお前が直せ、のOSS文化そのままだ とはいえPHP8には表面的には機能が揃ってる感はあるが http://mevius.5ch.net/test/read.cgi/tech/1663659983/943
944: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 14:14:03.60 ID:IRpwug8I0 …多分「コード」がNGワードっぽい http://mevius.5ch.net/test/read.cgi/tech/1663659983/944
945: デフォルトの名無しさん (ワッチョイ 6b4a-yGIB) [sage] 2024/10/18(金) 18:47:58.42 ID:9d2rbs7t0 ここは毛の壁の落書き帳です http://mevius.5ch.net/test/read.cgi/tech/1663659983/945
946: デフォルトの名無しさん (ワッチョイ eb7b-1jHB) [sage] 2024/10/18(金) 20:59:29.50 ID:IRpwug8I0 実際の所俺は、毛の壁が超えた、ゆとり世代的レッドラインがどの程度なのかは知りたいんだけどね Qiita上では綺麗さっぱり消されてるので確認出来ないし まあ言いたい事は、 つべこべ言わずpnp.netを読め、そして各ページのコードも読め、だ 他言語の常識でpnp.netを忌避するのは、勿体なさ過ぎる http://mevius.5ch.net/test/read.cgi/tech/1663659983/946
947: デフォルトの名無しさん (ワッチョイ d274-nV0L) [sage] 2024/10/21(月) 10:50:17.35 ID:hAiZn1ip0 環境: 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 http://mevius.5ch.net/test/read.cgi/tech/1663659983/947
948: デフォルトの名無しさん (ワッチョイ 197b-QJZg) [sage] 2024/10/21(月) 11:21:53.55 ID:9J9C943n0 知らんが常識的にはdllを差し替えるだけでは? http://mevius.5ch.net/test/read.cgi/tech/1663659983/948
メモ帳
(0/65535文字)
上
下
前
次
1-
新
書
関
写
板
覧
索
設
栞
歴
あと 54 レスあります
スレ情報
赤レス抽出
画像レス抽出
歴の未読スレ
AAサムネイル
Google検索
Wikipedia
ぬこの手
ぬこTOP
0.175s*