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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ 0f97-W3aP)
垢版 |
2022/09/20(火) 16:46:23.39ID:Sb2Kpzh+0
!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
2023/01/13(金) 10:43:36.33ID:uhe6l7V30
>>397
同名だが中身の違う関数をたくさん用意することで
デバッグする人を地獄に突き落とすことができます
2023/01/13(金) 12:58:11.16ID:xC8ANj/Hr
なるほど有用ですね
2023/01/13(金) 13:44:47.33ID:v3PGKsRXd
ネットワークの通信ができてるかどうかのチェックで使うイメージだけど、PHPみたいなバックエンドだとそんなに使うのかな?
2023/01/13(金) 14:53:26.37ID:QZjdOIAl0
>>400
ごめん。理解できなかった
もう少し教えて
2023/01/14(土) 14:30:25.12ID:Jyz+KL40d
>>397
他言語では使えるけどPHPでは使えない機能、たとえば、Javaのオーバーロードなどを
PHPで実装したい場合に使うんじゃない?
2023/01/14(土) 19:50:48.74ID:P3hr+e0sM
IPアドレス許可制のAPI使ってる場合、
ローカル環境だと動かないんだけど、
vardumpデバッグしか無理ですか?
よい方法あるでしょうか
2023/01/15(日) 09:00:10.89ID:hSLDNDVd0
開発環境の(外部)IPも登録するやろ普通
無理って言うならテストはAPIは投げないか、テストデータでも返すサーバ立てれば
2023/01/15(日) 14:37:40.80ID:AWxSAqC40
>>404
りょ
406デフォルトの名無しさん (ワッチョイ ca02-sAzJ)
垢版 |
2023/01/16(月) 19:19:15.29ID:5P5oBxU40
データベースへクエリを送る場合その都度、データベース接続してクエリ実行が完了したらデータベースへの接続を閉じる必要がありますか。

それとも、サービス中(ログイン中)、ログアウトまでデータベースの接続を開けっ放しでよいのでしょうか?

これらは、PDO接続と、mysqli接続とで変わったりしますでしょうか?
2023/01/16(月) 19:31:29.63ID:J/kqHiDI0
>>406
https://qiita.com/daijinload/items/85f9af5a905f8348f637
でも読んでみれば?
2023/01/16(月) 19:57:20.24ID:5P5oBxU40
ありがとうございます。何度か読んで理解するようにします。
2023/01/16(月) 23:21:46.53ID:5P5oBxU40
うーん。よくわからない。
mysqli接続は別にして、PDOはインスタンスが生まれるのだから、
どっかでインスタンスを消してあげる必要はありますよねえ。
2023/01/16(月) 23:28:49.90ID:sBJhzrYC0
データベースへの接続に成功すると、PDO クラスのインスタンスが スクリプトに返されます。
この PDO オブジェクトが存在する間、 接続がアクティブであり続けます。
接続を閉じるには、他から 参照されていないことを保障することでオブジェクトを破棄する 必要があります。
それには、オブジェクトを保持している変数に対して null を代入します。
明示的にこれを行わなかった場合は、スクリプトの終了時に自動的に 接続が閉じられます。

https://www.php.net/manual/ja/pdo.connections.php

サーバーサイドのリファレンスは良く出来てるから気になったらPHPのマニュアル見るべし
2023/01/16(月) 23:29:52.72ID:sBJhzrYC0
注意:
この PDO インスタンスへの参照 (PDOStatement インスタンスからの参照や、同じ PDO インスタンスを参照する別の変数からの参照など) が他にも残っているなら、それらもあわせて削除する必要があります (PDOStatement を参照する変数に null を代入するなど)
2023/01/16(月) 23:34:10.32ID:LRLUHTpW0
カーソルはちゃんと破棄しないと行けなかったと思う
2023/01/16(月) 23:56:32.16ID:WBihDz4f0
プログラム上で何度もsql使うのであれば
つなぎっぱなしの方が処理が早くなる
つなぐだけでもCPUを使うからね
ただつなぎっぱなしにするとセキュリティ面で
ちょっと不安がある
2023/01/17(火) 00:47:20.33ID:wX7hemkt0
その加減はDB側の(詳細的な)ログでプロジェクト毎に判断すると思ってるわ
2023/01/17(火) 04:54:14.80ID:6I3RRF7Q0
よく考えたら、PDOもそうなんだけど、インスタンス産んだら削除しないとなあ。
ブラウザが立ち上がっている間だけのJavaScriptと違って
ずっとサーバー動かしてんだから、野良インスタンスが永遠に残るのかなあ。
ガページコレクションでなんとかしてくれるのかな。
2023/01/17(火) 09:36:19.84ID:FlIYwx2Q0
負荷テストの話になるの?
2023/01/17(火) 12:58:15.74ID:jvyk9KUQ0
>>415
JavaScriptはページ遷移しない間中ずっとメモリを食い続けるけど
PHPとかサーバサイドは一瞬でメモリ解放されるんだから問題ないっしょ
2023/01/20(金) 12:25:28.31ID:vM/PeHqd0
普通Singletonパターンでやらね?
419デフォルトの名無しさん (ブーイモ MMde-kl6v)
垢版 |
2023/01/20(金) 13:28:58.95ID:i5w7+2oLM
普通Singletonパターンでやらねぇ。
2023/01/22(日) 15:42:02.21ID:T5vd63r+0
Symfony2ってもうインストールできないんでしょうか?
2023/01/22(日) 20:51:29.62ID:sQRPxjho0
>>420
当時の環境を用意すれば問題なくできますよ
2023/01/28(土) 23:30:37.96ID:Jwday6Ts0
PHPって文字列を '' シングルクォーテーションでくくるのがどうもキモチワルイ
2023/01/28(土) 23:37:54.90ID:IgBexFfv0
>>422
ダブルクォーテーションでくくるのが普通
シングルでくくるのは横着者か変態のどちらか
2023/01/28(土) 23:47:57.92ID:Jwday6Ts0
>>423
ただ、php系のブログをみると文字列を'' でくくってるヤツが多いんだよ。
何考えてんだろ。
2023/01/28(土) 23:53:22.12ID:kdhfDMp00
>>423
>>424
アホですか?
2023/01/29(日) 09:17:31.73ID:fK++OG3R0
変数展開やエスケープされるのがいやなので、シングルクォーテーション使ってる人多いと思うんだが
2023/01/29(日) 09:40:31.75ID:eUvMCdrW0
ダブルクォーテーション使うのはテンプレートリテラル使うときくらいかなあ、HTMLはダブルクォーテーションで書くから差別化出来る
2023/01/29(日) 15:55:23.90ID:TRowOWXz0
Eclipseのリモートデスクトップみたくサーバに直結して
コードを編集できるIDEでおすすめを教えてください。
2023/01/29(日) 18:14:12.88ID:g6N0uCCo0
最近はじめたやつでないならまずシングル使ってるだろうな
散々話し尽くされたもの その辺
2023/01/29(日) 22:35:03.92ID:k6oKhiJQ0
>>428
vscode
2023/01/30(月) 10:49:41.56ID:vlKZGS9W0
>>430
使ってみます
2023/01/31(火) 22:36:29.52ID:FCkZQF5b0
>>430
vs code はAjaxのリモートデバッグもできますか?
2023/02/01(水) 23:24:11.85ID:aDyRNPMT0
サーバーサイドならajaxだろうが何だろうが一緒だし
クライアントサイドのjavascriptのデバッグって意味ならchromeでやれ
2023/02/04(土) 01:18:45.04ID:Lh4Wlvuq0
mb_send_mailを開発環境(VboxのAlma9)で実装するために必要なことってある?
2023/02/04(土) 14:39:04.47ID:6T/TTLk6M
>>434
特に無いです
mailコマンドを嘘コマンドにしておくと便利 くらい
2023/02/04(土) 15:10:53.12ID:Lh4Wlvuq0
>>435
メール送信するかわりに成功したらファイルに書き出すとかやるんですね、なるほどなあ
437デフォルトの名無しさん (ワッチョイ 7ff2-zLlH)
垢版 |
2023/02/05(日) 13:41:33.74ID:xP8aJhtt0
セッションを使った名前とパスワードの保存とログイン時に
その名前とパスでしか通過できないような感じのサンプルが欲しいです
簡易的なので大丈夫ですのでどなたかおねがいします。
2023/02/06(月) 11:31:01.16ID:t0SsOUx4a
Ruby on Rails で最初に学ぶのが、ログイン機能

Devise, Sorcery などを使う
2023/02/07(火) 10:24:59.58ID:pb+AWCd70
レンタルサーバでPHPが使える場合、5~8.1まで幅広く対応していますが、
古いPHPを使っても甚大な被害は起きないと考えて良いのでしょうか?
(もちろん、ソースに問題がないという前提で)

確か、JavaやPythonだとセキュリティに問題があるバージョンは切っていたと思います。
2023/02/07(火) 10:48:04.68ID:Akm2sd/s0
古いphpを使っていても適切な書き方で実装されていれば問題は発生しません
ただ、無理だと思いますよ
2023/02/07(火) 18:14:42.48ID:nvwGCUTc0
ソースが問題ないなら8.0使いたい
8.2は9.0に向けた仕様変更で使いにくくなってる感がある
2023/02/07(火) 18:19:37.21ID:fu1nz0OP0
大体はPHP5ぐらいの古いプロジェクトのソースを最新のPHPで動くようにみたいなのがあるけど
何気に結構大変なんだよなぁ
2023/02/07(火) 18:48:47.51ID:COtCIMLi0
php8って未定義の変数使った時点でcriticalで止まるとかだったっけ?
ifとか配列とか何十回も起きるし、俺もうphp書けない・・・
2023/02/07(火) 18:51:13.17ID:SlNXBAXu0
サポ切れバージョンがいつまで提供されるかなんて鯖屋さん次第だし
今から古いのをわざわざ使うのはあまりお勧めしない
2023/02/07(火) 20:54:28.61ID:QImcmWPd0
PHPMyAdminにアクセスすると画像のようにフォルダが表示されるだけになってしまうのですが、
何が考えられますでしょうか。
localhost/phpinfo.phpは表示されるので、PHPの設定はできているのではないかと思うのですが・・・。
https://i.imgur.com/0X3XoLU.png

よろしくお願いいたします。
2023/02/07(火) 21:01:51.10ID:oBLl+Yrl0
DirectoryIndex
2023/02/08(水) 00:33:01.13ID:SpIBc7Av0
>>443
多分8.2からwarningが出て9から完全にエラー

wordpressのduplicatorとかも多分8.2から使えない
2023/02/08(水) 05:27:41.07ID:IePtKEIOr
20年くらい前にみたことある
2023/02/09(木) 13:29:04.27ID:Ij8K/FB60
$str = "https://www.youtube.com/watch?v=fNapOJYpz18";;
preg_match('/v=(\w+)', $str, $match);
var_dump($match);


Youtubeの「fNapOJYpz18」を抽出したいのですが
正規表現の書き方どこが間違っているのでしょうか?
2023/02/09(木) 13:32:17.64ID:8spDrzND0
>>449
'/v=(\w+)/'
2023/02/09(木) 13:38:54.85ID:aelylg1C0
正規表現なんて使わないのが正解
2023/02/09(木) 14:02:08.03ID:Ij8K/FB60
>>450
ありがとうございます。
抽出できました。

末尾に「/」は想定していないのですが、どうして「/」を入れると抽出できるのでしょうか?
2023/02/09(木) 14:06:15.26ID:Ij8K/FB60
/ / で囲むのはルールみたいですね^^
2023/02/09(木) 23:44:53.39ID:n57XqqLF0
https://www.php.net/manual/ja/regexp.reference.delimiters.php
2023/02/10(金) 01:18:19.20ID:FzQIxJJi0
>>454
デリミタって言うんですね。ありがとうございます。
正規表現は難しいなー。
2023/02/10(金) 10:25:38.51ID:FzQIxJJi0
正規表現面白いな。
これマスターしたらゴリ押しのコーディングで文字列処理する必要なくなるじゃん
2023/02/10(金) 14:34:17.06ID:ZVb4m7DN0
だからと言ってなんでもかんでも使うのは良くないけどな
10,20,30みたいな数字とカンマ区切りが確定しているようなものには使わんし
2023/02/10(金) 15:05:12.91ID:ECKlR5jZ0
好きなやり方でやれば良いよ
望む通りになれば良いんだし
2023/02/10(金) 15:50:26.87ID:ue64guLk0
第一候補にしなければ良いよ

「この方法がうまくいかなくても まー正規表現でなんとかなんだろ」
的なプランBとして考えとくと良いね
2023/02/11(土) 17:48:19.67ID:uHiybqGX0
ふと疑問におもったのですが、
PHPがWEBページを生成する過程で生まれた、普通の変数や配列もろもろのオブジェクトは
生成が完了したら自動的に削除されるものですか?

たとえば、ブラウザがそのPHPが生成したページから遷移したとしても、
それらのオブジェクトが残っていても役に経たないですよね。

一方で、セッション管理のためのセッション変数っていうものは、サーバーの中で消えてなくならないオブジェクト
という理解であってますでしょうか?
2023/02/11(土) 18:05:39.49ID:hVG8U9QK0
全部消えます
セッションは外部に(標準ではファイル)に吐き出されています
2023/02/11(土) 19:00:55.67ID:uHiybqGX0
ありがとうございます。
セッション変数、$_SESSION[]も実体が削除されファイルに吐き出されるということは、
session_start()の実行ごとに、ファイルの情報をもとに消えた$_SESSION[]がインスタンス化?
されるということでしょうか?
2023/02/11(土) 19:08:46.97ID:hVG8U9QK0
マニュアルのセッション関連の項を読んだ上で実際のファイルを覗いてみるといい
https://www.php.net/manual/ja/refs.basic.session.php

/tmp配下に吐き出されるはずだけど、session.save_path で変更して観察しやすくするのが良いかも
フレームワークを使用しだすと状況はまた変わるので注意が必要
2023/02/11(土) 19:23:05.41ID:uHiybqGX0
ありがとうございます。参考になります。
2023/02/11(土) 19:25:48.80ID:hVG8U9QK0
シリアライズ方法が通常のインスタンスと違うからちょっと注意
https://www.php.net/manual/ja/function.session-encode.php
2023/02/11(土) 20:06:17.69ID:uHiybqGX0
む。
お話変わりますが。
実行後に全て消えるということは、
$pdo = new PDO($dsn, $username, $password, $driver_options);
のハンドラ$pdoも削除されますね。
$pdo = null;
も不要ですか?
2023/02/11(土) 22:26:33.03ID:v8sAV+Uv0
>>466
そもそも nullを入れること自体が元から不要
古のJavaじゃあるまいしどっからそんな悪癖が湧いてくるんだ
468デフォルトの名無しさん (ワッチョイ 9f5c-D0vN)
垢版 |
2023/02/11(土) 22:59:28.99ID:VU40DDuL0
>>467
おまえPDO使ったことないだろ?
https://www.php.net/manual/ja/pdo.connections.php
2023/02/12(日) 00:20:56.68ID:kdLrjrT/0
>>467
知ったかぶりする悪癖は治そうなw
2023/02/12(日) 01:29:41.79ID:Jy8zTObO0
たまにClose cursorしないといけない時があるよね
2023/02/12(日) 10:52:00.85ID:d/88ECv40
HTTPはステートレス
2023/02/12(日) 13:40:33.70ID:2oU17ty6a
>>449
Ruby では、URL を扱うモジュールがあるので、正規表現などは使わない

require 'uri'

url = "そのyoutube のURL"

p ary = URI.split( url )
#=> ["https", nil, "www.youtube.com", nil, nil, "/watch", nil, "v=fNapOJYpz18", nil]

uri = URI( url )
p uri.query #=> "v=fNapOJYpz18"

含む項目
scheme
userinfo
host
port
registry
path
opaque
query
fragment
2023/02/12(日) 16:22:39.83ID:fJXtAG7P0
>>471
それぐらいは知っとる
2023/02/12(日) 17:51:22.67ID:disuH4ke0
aタグのクリックで指定フォームのpostをしようとしています。
以下コードを記述したところどうやら文字列の「-」がJavaScriptにて
認識されていない様です。

「-」はJSで認識されないのでしょうか?
もしくは私の書き方がどこか間違っていますか?

<コード>
<a href="javascript:name_form_delete_kNjQxl-K7.submit()">Remove</a>

<form class="" name="name_form_delete_kNjQxl-K7" method="post" action="addhoge.php">
<input type="hidden" name="name_t1" value="1">
<input type="hidden" name="name_t2" value="2">
</form>

<エラー>
Uncaught ReferenceError: name_form_delete_kNjQxl is not defined
2023/02/12(日) 18:08:34.40ID:Jy8zTObO0
kNjQxl-K7がなんかで生成してる文字列なら変数に入れてテンプレートリテラル使うとか
2023/02/12(日) 18:23:53.22ID:19IYgGC60
>>474
ハイフンはマイナス記号と同じだから関数名や変数名(要は識別子)に使える言語の方が少ないよ
素直にname_form_delete_kNjQxl_K7とかにすべし
2023/02/12(日) 18:29:58.02ID:n7060JSN0
>>474
document.forms['name_form_delete_kNjQxl-K7'].submit()
idやnameがwindowインターフェイスに自動生成されるショートハンドは元からある名前と被った時に困るから使わない方がいいよ
2023/02/12(日) 20:31:31.32ID:bFc1YPr30
aタグでもonclickで書けば良くね?
Vueで書くときはhrefすら書いてないわ
2023/02/12(日) 21:35:07.83ID:fJXtAG7P0
これはフロントエンドの話ですか。。


<a>タグのhref属性は、リンク先を記述するのであって
イベントのターゲットを記述するのではないです。
javaScriptでイベント駆動を記述するのであれば、
addEventListener()で、イベントオブジェクトを利用するのが
一般です。
JavaScriptスレに訊いた方が良い回答があると思います。
2023/02/12(日) 22:36:32.24ID:disuH4ke0
>>475
元のデータに「-」が入っていてそのまま使いたかったのです。

>>476
そうだったのですね。極力使わない様にします。

>>477
ありがとうございます!出来ました!
その様な書き方もあるのですね!!
481デフォルトの名無しさん (ワッチョイ 465f-D0vN)
垢版 |
2023/02/13(月) 15:51:52.79ID:PTUH+xs80
unko() or die("chinko");
という書き方はよくあると思いますが、die()の代わりにreturnを使いたいです。
でもreturnは使えません!

そこで、returnの代わりになる関数ってなんかないですか?
2023/02/13(月) 16:14:41.21ID:SJQ1XhAi0
ない
2023/02/13(月) 16:36:48.27ID:3Y+V2LMTd
throwでも使っとけ
というかいまどきor dieなんて使ってるソースはクソゴミだから脱出を検討しろ
2023/02/13(月) 23:44:40.57ID:UX0KmCtq0
Eclipse⇒VS Codeに乗り換え中
使い辛いなー
2023/02/13(月) 23:48:06.11ID:v/vixYv70
それならnetbeansにしてみたら?
俺はPHPはnetbeansでやってる
2023/02/14(火) 00:22:03.18ID:F+rfJu9X0
>>485
eclipseが一番使い易く無い?
慣れのせいかもしれないけど・・・
2023/02/14(火) 01:56:02.60ID:DAv1op2d0
PhpStormが一番良いと思います
2023/02/14(火) 03:06:09.76ID:F+rfJu9X0
VS codeでサーバに接続しようとしています。
すると「リモートを開いています」のまま
フリーズします。


VS Codeに設定したユーザ名、パスワードは正しいです。
WinSCPからだと同じ情報で接続できます。


何の設定が間違っているのでしょうか?
2023/02/14(火) 04:09:47.12ID:+hscb0Qf0
そうでしょうね
2023/02/14(火) 12:02:50.23ID:F+rfJu9X0
VS CodeでRmote Developmentをインストールし
接続情報を設定しました。
そして、パスワードを入力しEnterを押したところ
「リモートを開いています...」と画面左下に表示されています。

しかし、

エクスプローラー
 開いているフォルダーがありません
 リモートに接続しました。
 フォルダーを開く

という表示です。リモート接続は出来ている様なのですがサーバ上の
ファイル一覧が表示されません。。。
共有サーバだと出来ないのでしょうか?
2023/02/14(火) 13:43:42.54ID:F+rfJu9X0
Eclipseの方がよっぽど使い易いじゃねーかよ。
VS Code進めてたヤツはアホか?
2023/02/14(火) 18:19:18.79ID:9fQYo556d
なれの問題を人のせいにするのは愚かだよ
2023/02/14(火) 18:59:35.83ID:F+rfJu9X0
VS Codeで出来る事ほぼすべてEclipseで使えるじゃねーか。
いちいち拡張機能を入れてF1⇒実行

糞面倒臭い。
2023/02/14(火) 19:23:03.28ID:JNIzMgrA0
EclipseってVScodeより軽いの?
2023/02/15(水) 10:31:40.86ID:WfU34a1O0
軽い
2023/02/15(水) 15:54:51.90ID:ficf9YEj0
pycharm

vscodeより、かるい
2023/02/15(水) 19:54:45.75ID:4xfiC8CV0
vscodeよりさらに
本家?visualstudioなんてマゾいし、
vscodeとvsで全然ショートカットも違うから笑えてくる
■ このスレッドは過去ログ倉庫に格納されています