X



PHP質問・雑談スレ6【初心者お断り(ROM歓迎)】

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
垢版 |
2019/05/12(日) 18:21:04.82ID:Bj6LHkP3
PHPに関する質問や雑談をするスレです。
初心者お断り(ROM歓迎)と書いてますが、初心者用のスレが用意されているからで、
難しい質問や話題をしなければいけないわけではありません。
PHPマニュアルの読み方を概ね理解していて、関数リファレンスが正しく読める方用のスレです。

PHP未導入の方や、手取り足取りが必要な初心者の方はム板のくだスレへどうぞ。
https://mevius.5ch.net/tech/ (【PHP】で板内を検索)

前スレ
https://medaka.5ch.net/test/read.cgi/php/1538639036/

その他リンク
・PHPマニュアル
 https://secure.php.net/manual/ja/index.php
・コードテスト・貼り付け用
 https://ideone.com/
・プログラミングのお題スレ (求PHPer参戦)
 https://mevius.5ch.net/tech/ (お題スレで板内を検索)

このスレで扱う話題
・PHPのコード,設定や設定値に関する質問
・常識的範囲内でのコードレビュー依頼・改良相談
・PECL,PEARに関する質問
・PHP新機能やPHP関連トレンドの話題
 (FWや非公式ライブラリの話題や特徴比較は良いが使い方から先の話題は専スレへ)
・PHPのバグ発見報告・公式に報告する前の検証依頼

このスレで扱わない話題
・直接関係ない○○特有の質問(専スレへ)
 (HH,エディタ,IDE,サーバ,OS,DB,SQL,FW,テンプレート,非公式ライブラリ・アプリケーション等)
・PHPの改造
0105nobodyさん
垢版 |
2019/07/26(金) 15:37:13.70ID:???
formのsubmitとajaxが2つ動いてるパターンIEでよくある。
0106nobodyさん
垢版 |
2019/07/28(日) 19:18:24.72ID:???
遅くなってしまいすみません

>>103
まさにこちらがどんピシャリでchromeでは上のような挙動になるのに、Edgeだとちゃんと動きました
ですがchromeの何が悪さをしているかは謎のままなので、これからどのように特定すればいいのか少し調べてみます
ありがとうございました

>>104
axiosのresponseが2件重複しているかは最初に調べて、postの重複でないことは確認しておりました
0109nobodyさん
垢版 |
2019/07/30(火) 22:55:37.68ID:???
faviconちゃいます?
0110nobodyさん
垢版 |
2019/08/02(金) 19:19:39.72ID:???
指定したディレクトリ配下全ての拡張子jpegをjpgに書き換えるコード

function jpeg2jpg($path)
{
$array = glob($path.'/*',GLOB_ONLYDIR);
foreach ($array as $filename)
{
jpeg2jpg($filename);
}

$array = glob($path.'/*.jpeg');
foreach ($array as $filename)
{
$newpath = str_replace(".jpeg", ".jpg", $filename);
rename($filename, $newpath);
}
}

これをもっと綺麗なコードにしたいんですが何かありませんか?
0111nobodyさん
垢版 |
2019/08/04(日) 11:50:01.70ID:5btAphd0
>>110
それで十分綺麗だと思うけど。
ファイルの検索とリネームを分けるこんな方法もある。

function files($path)
{
yield from glob($path.'/*.jpeg');
foreach (glob($path.'/*', GLOB_ONLYDIR) as $dir) {
yield from files($dir);
}
}

foreach (files('images/') as $jpeg) {
$jpg = str_replace(".jpeg", ".jpg", $jpeg);
echo "rename($jpeg, $jpg);\n";
}
0113nobodyさん
垢版 |
2019/08/04(日) 16:02:34.71ID:???
>>111
yieldって構文は知らなかった。ありがとう
0114nobodyさん
垢版 |
2019/08/11(日) 13:43:40.86ID:yc7XMF1E
file_get_contentsで2chの過去ログ保管サイトをスクレイピングしてるんだが、なぜか連続で更新すると内容を取得できないことがある
これってサイト側がスクレイピング対策のブロッキングを施してるってことなのかな?
0115nobodyさん
垢版 |
2019/08/11(日) 21:01:01.13ID:???
>>114
そうかもしれないし、違うかもしれない
事実はサイトの運営者のみが知る
人間っぽくないリクエストを弾く方法はいくつもある

高負荷のリクエストを送るIPをブロックしたり、
ハニーポット置いたり

Facebookはマウスの動きまで見てるらしいが
そこまでしてる所は稀だろう

1分間のリクエスト数に制限かけたり、
Exponential Backoffで時間置いてからリトライしたら?
https://github.com/bandwidth-throttle/token-bucket
https://github.com/stechstudio/backoff
0118nobodyさん
垢版 |
2019/08/26(月) 12:27:40.91ID:???
>>116
変数に$を付けて回るだけでほとんど丸コピーで動くから
perlとかphpといったスクリプト系の無料ツールを使うと良いよ
0119nobodyさん
垢版 |
2019/08/26(月) 14:55:37.96ID:???
さすがにそれはねーわw
0122nobodyさん
垢版 |
2019/08/30(金) 03:38:37.57ID:???
HHVMがRustで書き直されるらしい
0123nobodyさん
垢版 |
2019/09/02(月) 04:26:01.03ID:???
↓こういうjson配列を
[
{id:0, name:"ああ", age:20,....},
{id:1, name:"いい", age:21,....},
{id:2, name:"うう", age:22,....},
];

idとname以外のデータ落として↓一次元の連想配列に変えたいんだけど
{0:"ああ",1:"いい",2:"うう",};

array_filterで一発変換みたいことは無理?
0124nobodyさん
垢版 |
2019/09/02(月) 07:07:50.73ID:???
json向けの組み込み関数は少ない
外部ライブラリ使えば可能だと思うが
関数1つにこだわる必要もないだろう
0125nobodyさん
垢版 |
2019/09/02(月) 09:35:13.96ID:???
array_columnとarray_combineでどうぞ
0126nobodyさん
垢版 |
2019/09/17(火) 01:53:23.96ID:???
preg_replaceで$1を$foo["$1"]に置き換えたいのですが
$1の意味が違うのでこれではundefined indexになってしまいます
ここはどう書くのが正しいですか?
0127126
垢版 |
2019/09/17(火) 02:01:17.23ID:???
すみません自己解決です
callbackじゃないとだめみたいですね
0128nobodyさん
垢版 |
2019/09/17(火) 12:34:12.78ID:???
CRで保存したファイルを読み込んで、
一部の\rとか\nとかtrimで除去してたらおかしくなってしまいました。
CR+LF、LFは問題ありません。
コードでどうにかするのはめんどくさそうなので、
CRのファイルだったらLFに内部で変換するようなことってできますか?
0129nobodyさん
垢版 |
2019/09/17(火) 14:05:13.65ID:???
>>128
簡単にできるよ!
じどうてきにCRをLFに変換する関数を呼ぶ仕組みが用意されてる
入出力ストリームとかストリームラッパーで検索しよう
0130nobodyさん
垢版 |
2019/09/18(水) 06:03:03.69ID:LxHdNOoK
>>128
CRで保存するってどういう事情でそうするの?
個人的に知りたい
0131nobodyさん
垢版 |
2019/09/18(水) 09:15:45.70ID:???
>>130
アホのマカーが作ったファイルとかでしょ
0132128
垢版 |
2019/09/18(水) 15:48:17.90ID:???
>>129
ありがとうございます。
頂いたヒントからたどり着いた答えは、php://filterですがあってますか?
ビルトインのフィルタを確認しましたが、文字コードを変えるものはありましたが、
改行コードを変えれそうなものはなさそうなので、自分で作って登録しろということでしょうか?

>>130-131
アホかどうかはおいといて、そういうことですねー
0133nobodyさん
垢版 |
2019/09/19(木) 05:43:59.95ID:jad6fnCm
>>132
str_replace(["\r\n","\r"],"\n",$subject)
でよくね
ストリームとか全然わからん
0134nobodyさん
垢版 |
2019/09/19(木) 09:26:58.26ID:???
Apacheってオワコン?
速度は静的コンテンツについてはnginxの完全勝利
動的ならApache+fpmでnginx+fpmと同程度

.htaccessでどのディレクトリでも
設定変更出来るのはDockerが一般的になった今や無意味
むしろセキュリティ上のリスクにもなり得る

preforkモジュールにすればsupervisordなしでDockerコンテナを一つに出来ると言うメリットは一応あるが
preforkモジュールはかなり遅い
0135nobodyさん
垢版 |
2019/09/19(木) 09:30:30.89ID:???
あとApacheの設定ってすごく読みづらくね?
nginxの方が直感的に理解しやすい
0136nobodyさん
垢版 |
2019/09/19(木) 10:06:18.06ID:FBUFJOFs
それを5chの僻地で主張することにどんな意味があるの?
0137nobodyさん
垢版 |
2019/09/19(木) 12:41:12.60ID:???
どっちもオワコンだろ
lswsを使ったらもう戻れない
0138nobodyさん
垢版 |
2019/09/19(木) 12:46:21.36ID:???
>>137
そんなもの流行りませんよ
apacheのデファクトぶりに震えて眠れ
0139nobodyさん
垢版 |
2019/09/19(木) 12:55:28.25ID:???
「〜はオワコン」って言ってるのは評価軸を決められない未熟なエンジニアか荒らし。
どっちゴミなんでほっとけばいい。
0141nobodyさん
垢版 |
2019/09/19(木) 17:53:36.03ID:???
nginxはここ数ヶ月で下落の兆候あり
apacheとiisは長期的に下落を続けている
かといってlswsが急上昇してるわけでもない
さて一体失われたシェアはどこへ行ったのやら
0142nobodyさん
垢版 |
2019/09/19(木) 18:42:10.84ID:eAWoBb1U
>>125
こういう関数がすっと出てくるのはすごいと思う。
mapしてzipしてcollectすればいいと考えても、そこからPHPの関数にたどり着くまでが大変。
覚えりゃいいんだけど、PHP離れるとすぐ忘れるし。
0143nobodyさん
垢版 |
2019/09/19(木) 21:02:25.41ID:???
International Semantic Web Research School?
0144nobodyさん
垢版 |
2019/09/19(木) 22:17:40.43ID:???
>>140
アイじゃなくてエル LiteSpeedWebServer
PHPはこのサーバ向けにカスタマイズされた特殊なものが使われてる
おかげで設定なしにPHPが導入出来るばかりか
優秀なリポのおかげもあって常に最新のPHPにアップデートされる
もちろん普通のPHPのコードが動くので心配はいらない
Web設定ツールはPHPで書かれているのでPHPとセットになってるし
特にWP向けに最適化されててWP配信ならWebServer界最速で
PHPerのためのサーバといっても過言じゃないわ
0145nobodyさん
垢版 |
2019/09/19(木) 22:59:29.63ID:???
何だ有料かよ…
どうりで流行ってないわけだ
0147nobodyさん
垢版 |
2019/09/20(金) 07:16:09.29ID:???
openlitespeedって公式dockerないの?
検索しても出ない
0148nobodyさん
垢版 |
2019/09/20(金) 15:08:57.50ID:???
dockerこそがオワコンなのでは・・・
0149nobodyさん
垢版 |
2019/09/22(日) 15:11:34.94ID:???
>>142
貧乏人だからセレロンに8GBのノートPC
これじゃあんま強力な環境を作れず
IDEよりもエディタで本当はフレームワーク勉強したいけど
開発環境作ると重いしピュアなPHPでゴリゴリ書いてる
だから俺はPHPの関数めっちゃ覚えてるよ
あーいいパソコンがほしい
0150nobodyさん
垢版 |
2019/09/23(月) 08:54:20.94ID:QSgTtzwO
メモリ8Gってすげえ高性能だな
俺なんかまだ716MBで頑張ってるよ
0151nobodyさん
垢版 |
2019/09/23(月) 12:30:25.95ID:???
>>148
同意します。
ブラックボックスは小さい方が良いと思う。
0152nobodyさん
垢版 |
2019/09/23(月) 13:20:41.47ID:???
>>150
linuxのコンソールからviでも起動してプログラムかいてんのか?
それだったら尊敬するわw
0153nobodyさん
垢版 |
2019/09/23(月) 13:25:22.22ID:QSgTtzwO
>>152
xp
5chとネットサーフィンだけだけど全然余裕
ブラウザはnewmoonってのを使ってる
0154nobodyさん
垢版 |
2019/09/23(月) 17:09:58.24ID:???
>5chとネットサーフィンだけだけど全然余裕
PHP書けよ
0155nobodyさん
垢版 |
2019/09/24(火) 00:42:30.94ID:???
Atomで書いてるけど、最近Visual Studio Codeに浮気しようか悩んでる
0157nobodyさん
垢版 |
2019/10/10(木) 15:06:45.91ID:6vRbT12P
htmlとcssが出来るようになった
次はjavascriptかphpを勉強したいと思ってる
どちらから先にやるべきだ?
分かりやすく教えろ。
0158nobodyさん
垢版 |
2019/10/10(木) 17:06:25.16ID:???
phpはブラウザで使えない
javascriptはサーバーで使うには素人は難しい
0159nobodyさん
垢版 |
2019/10/10(木) 18:00:37.97ID:???
次はxmlとxsltだ
異論は認めん
さぁ頑張ってこい
0160nobodyさん
垢版 |
2019/10/10(木) 23:12:46.80ID:???
$dbh = new PDO(
'mysql:host=localhost;dbname=db1;charset=utf8', $user, $pass
);
っていう、dbへの接続方法

$dbh の中身をどうやって実行するんや!?と思ってたんだけど、
new PDOでPDOが呼ばれた段階でPDO以降の実行結果が代入されるということだから、接続確立したって事でOK?
あほだからこんな事で丸一日悩んでしまったんだけど…
0161nobodyさん
垢版 |
2019/10/11(金) 01:08:56.63ID:???
JavaScript優先だろう
JavaScriptは今やhtml5を使うには必須スキルで代えは聞かない。
ブラウザあればすぐに試せるから実行環境が用意しやすい。
Googleドライブにあるスプレットシートなどのマクロ、Google Apps ScriptなんかもJavaScriptと同じ構文で動くし
RPGツクールMVなどのゲーム作成でも役に立つ。node.jsのようなサーバーサイドで動くJavaScriptもある。
JavaScript知識は活用範囲は非常に広い


phpは基本サーバーサイドでしか動かんし用途が限定的。
ライバル言語が非常に多く、別の言語でもいいってこともしばしば
他に代用がいくらでもあるので優先順位は低い
0162nobodyさん
垢版 |
2019/10/11(金) 01:15:16.16ID:???
java script とかはやりたい事ググってサンプルスクリプトを見つけて
コピペしてあまり理解せず使ってるわ
そんなもんでいいだろう
0166nobodyさん
垢版 |
2019/10/11(金) 02:46:57.19ID:leI7Cv7w
<script type="text/php">
$a = Document::getElementById('a');
$a->style(['background-color'=>'#fcf']);
$a->innerHTML('<p>hello</p>');
try {
 Core::ajax('http://example.com', 'get', function($text) {
 });
} catch (HttpError $e) {
}

こんなん探せばありそう
0167nobodyさん
垢版 |
2019/10/12(土) 10:54:07.93ID:8sBNDV+V
素のPHPでWebバックエンド周り(フォームとかセッションとかセキュリティとか)を一通りやるのは悪手とは思わん。
その後はさっさとPHPとおさらばして、他の言語に移るべき。
0168nobodyさん
垢版 |
2019/10/12(土) 11:56:12.79ID:???
>>167
MariaDB上のデータベースをネットから検索する簡単なフォームとPHPを書こうと思うんだけど、
面倒くさい。

データベースの構造を元に検索フォームとPHPの雛形を簡単に作ってくれるアプリは無いのかな?
0169nobodyさん
垢版 |
2019/10/12(土) 19:32:38.63ID:???
それこそWebフレームワークが最も得意なことじゃない
0170nobodyさん
垢版 |
2019/10/13(日) 01:09:28.72ID:???
>>169
ありがとうございます。試してみます。
0171nobodyさん
垢版 |
2019/10/14(月) 01:35:48.88ID:???
bitbucketに対してコミット、プッシュが簡単に出来るphpライブラリって無いかな?
無ければssh2_connectコマンドで頑張るしかないんだけど
0172nobodyさん
垢版 |
2019/11/14(木) 10:13:01.22ID:???
VPSからPHPで外部サーバへFPTS接続して、ファイルをアップロードしたいのですが、

ftp_ssl_connect()は成功してるようなのですが、

ftp_login($connectId, $userId, $userPass) のところで

「SSL/TLS handshake failed」「Proceed with negotiation」などと出て失敗してしまいます。

php.info()では「ftp」「openssl」は有効になっているのですが、

ほかに何か設定するべきところがあるのでしょうか?
送信元のapacheやvsftpdなど。
送信元のサーバのapacheで証明書とかも要りますか?

OSはCentOS6
PHPは5.1.6です。
0173nobodyさん
垢版 |
2019/11/17(日) 00:24:31.45ID:???
そんな古いPHPでSFTPとかなんかやばそうw
多分原因もそれでしょ
0174nobodyさん
垢版 |
2019/11/17(日) 04:27:48.89ID:???
opensslも古そう
VPSなら環境のアップデートぐらいしなさいよ
0175172
垢版 |
2019/11/17(日) 09:33:43.17ID:???
こちらも同じ見解に達していました。
ありがとうございます。
OpenSSLが0.98とかで、今や一般的ではないようです。大は小を兼ねるみたいに向こうが新しくても、互換でやってくれるとかじゃないみたいですね。
0176nobodyさん
垢版 |
2019/11/17(日) 10:41:49.57ID:???
そら復号は暗号化した側でやったら意味ないからな
0177nobodyさん
垢版 |
2019/11/17(日) 10:45:14.85ID:???
セキュリティ系は古いもの切り捨てないと穴あいちゃうからねぇ。
0178172
垢版 |
2019/11/17(日) 19:44:47.97ID:???
なるほど・・・
0179nobodyさん
垢版 |
2019/12/08(日) 23:42:29.20ID:???
今はプログラムよりツールの使い方を学ぶ時代になって
新人にとってはずいぶんつまらない世の中になってしまったな
0180nobodyさん
垢版 |
2019/12/09(月) 00:13:15.31ID:???
昔の人がアセンブラ書かないのはプログラマじゃないって言ってるようなもんだろ
時代は常に流れているんだよ
0181nobodyさん
垢版 |
2019/12/09(月) 10:51:00.98ID:???
>昔の人がアセンブラ書かないのはプログラマじゃないって言ってるようなもんだろ
つまらなくなったとはいったけどそこまでいっとらんわ
今と比べて面倒なことをしろなんて主張もするつもりはない
スタート地点で面倒なことから始めればそれを面倒とは思わないだろうし
人間後退したくない以上より多くを覚えるならスタート地点は重要だけどね
目的違うしアセンブラから始められてたらもっと楽しかったのだろうとは微塵も思わんけど
出来ることは増えてただろうし習得してればまた考え方も変わるのだろう
0182nobodyさん
垢版 |
2019/12/09(月) 10:57:24.86ID:???
しっかしーこのスレ死んどるな
もうPHPも終わったんだな
0183nobodyさん
垢版 |
2019/12/12(木) 01:34:02.13ID:???
死んではいないしょ
WEBではなんだかんだこれ以外の選択肢は多くないし
てか、5chで情報共有なんかしないわ
0184nobodyさん
垢版 |
2019/12/12(木) 12:00:42.23ID:???
つまり死んでいるということだなw
0185nobodyさん
垢版 |
2019/12/12(木) 12:09:10.40ID:???
まぁ、たしかにもっと愚痴がこぼれてきてもイイと思う。
なんで、7.4の阿鼻叫喚がここに流れない???
0186nobodyさん
垢版 |
2019/12/12(木) 12:18:36.42ID:???
うちは未だに5.xだからね
0188nobodyさん
垢版 |
2019/12/12(木) 13:23:16.10ID:G9NaIZtM
うちも5.xだわ
昔にとあるツール使って構築したサイトで色々カスタマイズというかいじりまくってしまって
最新版に更新できなくなっちゃってるんだよなぁ
だから7系に上げられない
さっさとそのコンテンツ終わってくれれば良いんだけど妙に長生きしてるんで困ってる
0189nobodyさん
垢版 |
2019/12/12(木) 18:23:13.02ID:???
アロー演算子ってクロージャーとはスコープの扱いが違うんだねえ
引数渡したりuse書く必要なくなったんだな
0190nobodyさん
垢版 |
2019/12/12(木) 18:23:31.72ID:???
アロー演算子じゃなくてアロー関数だ
0191nobodyさん
垢版 |
2019/12/14(土) 15:50:54.40ID:1rEU0u8X
すげぇな、アロー関数まで搭載するんだw

PHPってほんと、あらゆる技術を無節操に取り込みまくるよな。
やっぱ間違いなく最強の言語だ。

絶対最後に生き残るの、PHPだって、これ。
0192nobodyさん
垢版 |
2019/12/14(土) 16:37:58.34ID:???
んなことない
今だいたいどの言語も統合が進んでる感じ
ただしPHPから学ぶ機能は何もないという
もともとWeb制作ツールの延長だし
革新的な機能を出すような言語じゃないからしょうがないけど
0193nobodyさん
垢版 |
2019/12/14(土) 16:53:30.04ID:1rEU0u8X
>ただしPHPから学ぶ機能は何もないという

そら、そうだろ。

PHPは与える側じゃなくて、全部取り込む側。
漁夫の利作戦。

他の言語であれこれ試行錯誤して『これいいよね』ってなったものを
無節操に取り込むのが我らがPHPだよ。

もう、最強。
0194nobodyさん
垢版 |
2019/12/14(土) 18:51:03.37ID:???
goto…おっとなんでもない
0195nobodyさん
垢版 |
2019/12/16(月) 10:32:30.14ID:???
>>193
そのたとえに漁夫の利は不適切では?
0196nobodyさん
垢版 |
2019/12/17(火) 15:54:53.27ID:???
機能的スパゲティ
0197nobodyさん
垢版 |
2019/12/20(金) 19:11:39.64ID:PTeWJYC9
連想配列なんてのがのさばっているうちは、どこまでいっても二流ですわ。
0198nobodyさん
垢版 |
2019/12/21(土) 16:07:03.15ID:???
なんか意味不明なこといってますね
0199nobodyさん
垢版 |
2019/12/30(月) 18:21:34.30ID:???
すれ違いなのは承知です。

GAS(Google App Script)の専用スレッドはありませんか?
0201nobodyさん
垢版 |
2020/01/23(木) 00:51:35.57ID:B6IkrdgX
誤訳直そうと思ったらログインがうんぬんメーリスがうんうん言われて面倒だったんで
https://www.php.net/manual/ja/function.curl-getinfo.php の CURLINFO_FILETIME
編集権があってヒマな人誰か直しといてもらえませんか
0202nobodyさん
垢版 |
2020/01/23(木) 17:22:55.09ID:???
>ドキュメントを取得するのにかかった時間
0203nobodyさん
垢版 |
2020/01/27(月) 14:16:21.90ID:???
ググればだいたい解決するから5chの出番はないな
というかこういう実用系の内容では5chは要らない
0204nobodyさん
垢版 |
2020/01/27(月) 14:35:37.95ID:???
つーかPHPの公式ドキュメントって
数多のP系スクリプトの中でも他の追随を許さない質と量だよね

言語自体スパゲティだのなんだの言われてるけど
そんなのを軽くチャラにするくらい丁寧で充実してる
■ このスレッドは過去ログ倉庫に格納されています

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