【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/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で全然ショートカットも違うから笑えてくる
2023/02/15(水) 22:24:26.83ID:ficf9YEj0
php

javascript,css,html,データベース


いろいろ、絡んでくるから、初心者には、ほんと難しいとおもう

webプログラミング、がね
2023/02/16(木) 13:41:24.91ID:U29SVQBb0
phpMyAdminで使える、定数のCURRENT_DATE
をbindValue()を通して送りたい野だけど失敗します。
データベースの定数をクエリ文に埋め込みPHPで送信することは難しいでしょうか?

-----------

$name ="cola";
$update_date = CURRENT_DATE;

$insert =
"INSERT INTO
item(name,update_date)
VALUES
(:name,:update_date);";
}

$statement = $db->prepare($insert);

$statement->bindValue(':name', $name);
$statement->bindValue(':update_date', $update_date, PDO::PARAM_STR_NATL);

うまくいかない!!
---------

↓理想の変形

INSERT INTO
item(name,update_date)
VALUES
("cola",CURRENT_DATE);
2023/02/16(木) 14:34:50.94ID:wXxzWMIn0
>>499
CURRENT_DATEはphp側ではなくsql側の日付関数なのでbindできない
INSERT INTO item(name,update_date) VALUES(:name,CURRENT_DATE);
2023/02/16(木) 16:20:52.89ID:ZhDpu7bI0
IDEはEclipseで十分
2023/02/16(木) 17:17:33.60ID:U29SVQBb0
>>500
ありがとうございます。
2023/02/17(金) 00:53:37.37ID:VY6wNZlY0
PHPのシンタックスハイライトぐらいしか出来ないエディタで
5MBほどの社内用プログラムをかきあげたことがあるぞ(゚A゚;)
2023/02/17(金) 01:00:09.42ID:O/H37gNs0
メモ帳野郎が湧くぞ
2023/02/18(土) 16:21:45.50ID:wTUF9m4P0
cd ~/.ssh


の ~ ってどういう意味なのでしょうか?

cd .ssh だと確かにこのディレクトリに入れません。決まり文句と覚えておけばよいでしょうか?
2023/02/18(土) 17:00:32.72ID:zhx+QJQI0
>>505
スレチ
2023/02/25(土) 19:20:55.02ID:L/ecqLAZ0
>>501
ホームディレクトリの略だよ
2023/02/26(日) 23:08:14.21ID:yz/O0wFra
requireとextendsはどう違うの?
requireはclassだけ呼ぶのかと思ったらプロパティも呼ぶし混乱する
この2つ重なってない?
2023/02/27(月) 00:20:33.97ID:sow/rINj0
includeとrequireを混同するのは微笑ましいあるあるだけど
extendsは初めて見るパターンで困惑する
2023/02/27(月) 01:15:02.38ID:BPjGYXVma
無能なんだな俺

でも分かった
requireは親のクラスを使ってインスタンスが作れる。だから呼び出し元でclass Hoge { しなくていい
requireは更に親のphpファイルで作った変数が使える
requireは更に親のphpファイルで作ったコンストラクタを使える
つまりclass内が使える

一方のextendsはclass Hoge { の外にあるメソッドとかを継承する

↑この理解はどうかな?
2023/02/27(月) 01:24:44.70ID:BPjGYXVma
メソッドもclass Hoge {の中にあるのか。やっぱ被ってるように思うけど
2023/02/27(月) 04:20:55.93ID:ocW3Jac80
requireはあくまでも外部のPHPファイルを読み込んでるだけ
そこに記載されたクラスを継承して新たにクラスを作ることとは何の関連もない
ポリモーフィズムの概念やらオブジェクト指向がなんたるかを勉強してきたほうがいい
2023/02/27(月) 04:22:36.00ID:ocW3Jac80
ちなみにネコがワンと鳴くみたいな説明してるとこは見ない方がいい
2023/02/27(月) 04:37:15.50ID:iRiTYulC0
俺はPHPだけじゃなくて、Windowsアプリ開発もできる
2023/02/27(月) 08:40:23.44ID:TElJ4lxXa
>>512
You Tubeいくつか見てみるよ
2023/02/27(月) 13:52:10.05ID:OQAydld20
初心者なんだけど他人のコード見てたら

if(true){
・・・
}

if(false){
・・・
}

とかあるんだが、これはどういう条件式なの?
ifの中に変数名が入っていたりしたら入ってるかどうかぐらいなのはわかるんだけど、
不思議な書き方なのでよくわからんです
2023/02/27(月) 13:59:57.21ID:sow/rINj0
>>516
・もともとはif文の中に条件判定が入ってたが、削除したときに横着した
・実験でコメントアウトしたり戻したりを頻繁にしてたときのなごり雪
ふざけすぎたコーディングの跡で
2023/02/28(火) 01:30:55.97ID:YvnM6/8va
やっぱrequireよく分からんな
とあるwebページ作ってて、管理しやすくするためにphpファイルをiedex.php、data.php、hoge.php、hogehoge.phpみたいに分ける
data.phpにインスタンスまとめる。この場合data.phpは各クラスをrequireする
index.phpはHTMLとして表示される。この場合ここはdata.phpをrequireする
hoge.phpとhogehoge.phpはclassだけど、他のクラスから継承しないならrequireしたりしない

extendsは分かったかも
とあるクラスからインスタンスを作る。このインスタンスをタイプは同じだけど性質によって分けたいならextendsする

アニマルクラスを作る。プロパティは
種族
年齢
吠える
そのクラスから犬クラスと猫クラスに分けてからインスタンス作りたい場合、extendsでアニマルクラスを継承する(プロパティは共通だから)

これでどうかな。requireせずにextendsだけする事あるのだろうか?必ずrequireやincludeとかのファイル読み込みをセットで使う?
それと皆は本当にハッキリとrequireするかしないか分かるの?
2023/02/28(火) 01:34:20.21ID:YvnM6/8va
それと、クラスメソッドやクラスプロパティ使う時も皆は明白に判断つくの?
インスタンス作成回数とかid作成はクラスメソッドとかみたいのは分かるけど俺はハッキリと判断つかないな
2023/02/28(火) 01:50:28.85ID:YvnM6/8va
HTMLに変換されるindex.php上で他のphpファイル上で定義されたメソッドを実行する場合、requireしなくてもいいのはなぜ?
requireはインスタンス作成時にのみ行うのかと思わせて他のケースもあるみたいで分からなくなる
2023/02/28(火) 02:32:15.26ID:RiJyC4pT0
requireで読み込むファイルはクラスや関数が書かれたライブラリだったり
定数や共通の設定事項を記載したファイルだったり
単にhtmlを出力してるだけのファイルならその内容が読み込んだ側で出力されるし用途は様々
C言語で書かれたPHPコアライブラリに含まれてる関数群やPDOなんかのクラスは
使用するにあたってrequireなんて書いたりしないけど
PHPで作られてるものはrequireしないと使えない
インスタンスだの継承だのそんな次元の話じゃない
2023/02/28(火) 07:09:43.47ID:3WmX3+jc0
基礎的なところからすれ違ってんだから体系的に学習できる本でも読めよ
phpは基礎が学べればあとはマニュアルでなんとかなるくらいマニュアルが優秀だけど、そもそもの基礎がズレてたらマニュアルも読めん
2023/02/28(火) 08:28:11.46ID:xmhsjsFza
基礎がおかしいか。Progateで勉強したけどrequireするしないの差が曖昧だった
何で勉強しようと思ったかというと、今使ってるブログサービスで不具合あって、そこがWordPressだから直せないかなと思った
である程度勉強してブログ設定見たらユーザーが触れる部分はHTMLで勉強の意味無かった
意味無かったけど途中までやったから全部終わらせた
PHPかなり難しかったよ。でもCやってたら楽々なんだろうな
2023/02/28(火) 09:06:04.41ID:3WmX3+jc0
WordPressはphpとはまた別物
多分、両方エキスパートって人はいないと思う

そもそも一般的なphp開発だと、requireとかほぼ使わなくなってる
composerのautoloadがメジャーだよ

WordPressがやりたいんだったら、一般的なphpじゃなくてそれ用の本読んだほうがいいかなぁ
2023/02/28(火) 09:19:48.98ID:95tx/KzW0
>>518
まず言語仕様として1ファイル1クラスじゃなくてもいい。1ファイルに複数クラス定義を書いてもいい。
(ただし作法としては1ファイル1クラスにするのが望ましい)

そしてrequireは別のファイルからコードを挿入してくるだけの機能
例えばecho文が書かれたPHPファイルをrequireしたらその時に実行される。
2023/02/28(火) 12:09:34.54ID:K5lzl+NyF
ファイルには関数やクラスの定義だけしておくパターンが多いかな
2023/02/28(火) 16:54:00.06ID:E6p/DZkf0
そんなに違いが気になるなら、Ruby の逆引き本を読んだ方が早い

Ruby on Rails が良い
2023/02/28(火) 18:14:11.17ID:qVVLPrT9r
Rubyって読みづらくね?
波括弧ないしif~endとかダサい
2023/03/01(水) 01:33:59.12ID:UTDLtYqT0
>>528
そういうのをかっこいいと思ってる人たちが使っているんです
2023/03/01(水) 03:49:41.82ID:QN9phVrM0
file_put_contentsでjsonにデータを書き込みたいんだけど、jsonに
[ ]
を予め用意しておいて その中にデータ書き込むって出来ないかなあ?
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況