PHP質問・雑談スレ6【初心者お断り(ROM歓迎)】
■ このスレッドは過去ログ倉庫に格納されています
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の改造 formのsubmitとajaxが2つ動いてるパターンIEでよくある。 遅くなってしまいすみません
>>103
まさにこちらがどんピシャリでchromeでは上のような挙動になるのに、Edgeだとちゃんと動きました
ですがchromeの何が悪さをしているかは謎のままなので、これからどのように特定すればいいのか少し調べてみます
ありがとうございました
>>104
axiosのresponseが2件重複しているかは最初に調べて、postの重複でないことは確認しておりました 指定したディレクトリ配下全ての拡張子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);
}
}
これをもっと綺麗なコードにしたいんですが何かありませんか? >>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";
} >>111
yieldって構文は知らなかった。ありがとう file_get_contentsで2chの過去ログ保管サイトをスクレイピングしてるんだが、なぜか連続で更新すると内容を取得できないことがある
これってサイト側がスクレイピング対策のブロッキングを施してるってことなのかな? >>114
そうかもしれないし、違うかもしれない
事実はサイトの運営者のみが知る
人間っぽくないリクエストを弾く方法はいくつもある
高負荷のリクエストを送るIPをブロックしたり、
ハニーポット置いたり
Facebookはマウスの動きまで見てるらしいが
そこまでしてる所は稀だろう
1分間のリクエスト数に制限かけたり、
Exponential Backoffで時間置いてからリトライしたら?
https://github.com/bandwidth-throttle/token-bucket
https://github.com/stechstudio/backoff C#かjavaのコードをPHPのコードに変換できる無料ツールってないかな?
↓このSDKをPHPにしたいんだが
https://sevenzip.osdn.jp/sdk.html >>116
変数に$を付けて回るだけでほとんど丸コピーで動くから
perlとかphpといったスクリプト系の無料ツールを使うと良いよ ↓こういうjson配列を
[
{id:0, name:"ああ", age:20,....},
{id:1, name:"いい", age:21,....},
{id:2, name:"うう", age:22,....},
];
idとname以外のデータ落として↓一次元の連想配列に変えたいんだけど
{0:"ああ",1:"いい",2:"うう",};
array_filterで一発変換みたいことは無理? json向けの組み込み関数は少ない
外部ライブラリ使えば可能だと思うが
関数1つにこだわる必要もないだろう array_columnとarray_combineでどうぞ preg_replaceで$1を$foo["$1"]に置き換えたいのですが
$1の意味が違うのでこれではundefined indexになってしまいます
ここはどう書くのが正しいですか? すみません自己解決です
callbackじゃないとだめみたいですね CRで保存したファイルを読み込んで、
一部の\rとか\nとかtrimで除去してたらおかしくなってしまいました。
CR+LF、LFは問題ありません。
コードでどうにかするのはめんどくさそうなので、
CRのファイルだったらLFに内部で変換するようなことってできますか? >>128
簡単にできるよ!
じどうてきにCRをLFに変換する関数を呼ぶ仕組みが用意されてる
入出力ストリームとかストリームラッパーで検索しよう >>128
CRで保存するってどういう事情でそうするの?
個人的に知りたい >>130
アホのマカーが作ったファイルとかでしょ >>129
ありがとうございます。
頂いたヒントからたどり着いた答えは、php://filterですがあってますか?
ビルトインのフィルタを確認しましたが、文字コードを変えるものはありましたが、
改行コードを変えれそうなものはなさそうなので、自分で作って登録しろということでしょうか?
>>130-131
アホかどうかはおいといて、そういうことですねー >>132
str_replace(["\r\n","\r"],"\n",$subject)
でよくね
ストリームとか全然わからん Apacheってオワコン?
速度は静的コンテンツについてはnginxの完全勝利
動的ならApache+fpmでnginx+fpmと同程度
.htaccessでどのディレクトリでも
設定変更出来るのはDockerが一般的になった今や無意味
むしろセキュリティ上のリスクにもなり得る
preforkモジュールにすればsupervisordなしでDockerコンテナを一つに出来ると言うメリットは一応あるが
preforkモジュールはかなり遅い あとApacheの設定ってすごく読みづらくね?
nginxの方が直感的に理解しやすい それを5chの僻地で主張することにどんな意味があるの? どっちもオワコンだろ
lswsを使ったらもう戻れない >>137
そんなもの流行りませんよ
apacheのデファクトぶりに震えて眠れ 「〜はオワコン」って言ってるのは評価軸を決められない未熟なエンジニアか荒らし。
どっちゴミなんでほっとけばいい。 nginxはここ数ヶ月で下落の兆候あり
apacheとiisは長期的に下落を続けている
かといってlswsが急上昇してるわけでもない
さて一体失われたシェアはどこへ行ったのやら >>125
こういう関数がすっと出てくるのはすごいと思う。
mapしてzipしてcollectすればいいと考えても、そこからPHPの関数にたどり着くまでが大変。
覚えりゃいいんだけど、PHP離れるとすぐ忘れるし。 International Semantic Web Research School? >>140
アイじゃなくてエル LiteSpeedWebServer
PHPはこのサーバ向けにカスタマイズされた特殊なものが使われてる
おかげで設定なしにPHPが導入出来るばかりか
優秀なリポのおかげもあって常に最新のPHPにアップデートされる
もちろん普通のPHPのコードが動くので心配はいらない
Web設定ツールはPHPで書かれているのでPHPとセットになってるし
特にWP向けに最適化されててWP配信ならWebServer界最速で
PHPerのためのサーバといっても過言じゃないわ オープンソース版もある
https://openlitespeed.org/
solarisとopen solarisみたいなもんだ openlitespeedって公式dockerないの?
検索しても出ない >>142
貧乏人だからセレロンに8GBのノートPC
これじゃあんま強力な環境を作れず
IDEよりもエディタで本当はフレームワーク勉強したいけど
開発環境作ると重いしピュアなPHPでゴリゴリ書いてる
だから俺はPHPの関数めっちゃ覚えてるよ
あーいいパソコンがほしい メモリ8Gってすげえ高性能だな
俺なんかまだ716MBで頑張ってるよ >>148
同意します。
ブラックボックスは小さい方が良いと思う。 >>150
linuxのコンソールからviでも起動してプログラムかいてんのか?
それだったら尊敬するわw >>152
xp
5chとネットサーフィンだけだけど全然余裕
ブラウザはnewmoonってのを使ってる >5chとネットサーフィンだけだけど全然余裕
PHP書けよ Atomで書いてるけど、最近Visual Studio Codeに浮気しようか悩んでる >>155
元Atom使いだがVSCodeのがいい htmlとcssが出来るようになった
次はjavascriptかphpを勉強したいと思ってる
どちらから先にやるべきだ?
分かりやすく教えろ。 phpはブラウザで使えない
javascriptはサーバーで使うには素人は難しい 次はxmlとxsltだ
異論は認めん
さぁ頑張ってこい $dbh = new PDO(
'mysql:host=localhost;dbname=db1;charset=utf8', $user, $pass
);
っていう、dbへの接続方法
$dbh の中身をどうやって実行するんや!?と思ってたんだけど、
new PDOでPDOが呼ばれた段階でPDO以降の実行結果が代入されるということだから、接続確立したって事でOK?
あほだからこんな事で丸一日悩んでしまったんだけど… JavaScript優先だろう
JavaScriptは今やhtml5を使うには必須スキルで代えは聞かない。
ブラウザあればすぐに試せるから実行環境が用意しやすい。
Googleドライブにあるスプレットシートなどのマクロ、Google Apps ScriptなんかもJavaScriptと同じ構文で動くし
RPGツクールMVなどのゲーム作成でも役に立つ。node.jsのようなサーバーサイドで動くJavaScriptもある。
JavaScript知識は活用範囲は非常に広い
phpは基本サーバーサイドでしか動かんし用途が限定的。
ライバル言語が非常に多く、別の言語でもいいってこともしばしば
他に代用がいくらでもあるので優先順位は低い java script とかはやりたい事ググってサンプルスクリプトを見つけて
コピペしてあまり理解せず使ってるわ
そんなもんでいいだろう <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) {
}
こんなん探せばありそう 素のPHPでWebバックエンド周り(フォームとかセッションとかセキュリティとか)を一通りやるのは悪手とは思わん。
その後はさっさとPHPとおさらばして、他の言語に移るべき。 >>167
MariaDB上のデータベースをネットから検索する簡単なフォームとPHPを書こうと思うんだけど、
面倒くさい。
データベースの構造を元に検索フォームとPHPの雛形を簡単に作ってくれるアプリは無いのかな? それこそWebフレームワークが最も得意なことじゃない bitbucketに対してコミット、プッシュが簡単に出来るphpライブラリって無いかな?
無ければssh2_connectコマンドで頑張るしかないんだけど 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です。 そんな古いPHPでSFTPとかなんかやばそうw
多分原因もそれでしょ opensslも古そう
VPSなら環境のアップデートぐらいしなさいよ こちらも同じ見解に達していました。
ありがとうございます。
OpenSSLが0.98とかで、今や一般的ではないようです。大は小を兼ねるみたいに向こうが新しくても、互換でやってくれるとかじゃないみたいですね。 セキュリティ系は古いもの切り捨てないと穴あいちゃうからねぇ。 今はプログラムよりツールの使い方を学ぶ時代になって
新人にとってはずいぶんつまらない世の中になってしまったな 昔の人がアセンブラ書かないのはプログラマじゃないって言ってるようなもんだろ
時代は常に流れているんだよ >昔の人がアセンブラ書かないのはプログラマじゃないって言ってるようなもんだろ
つまらなくなったとはいったけどそこまでいっとらんわ
今と比べて面倒なことをしろなんて主張もするつもりはない
スタート地点で面倒なことから始めればそれを面倒とは思わないだろうし
人間後退したくない以上より多くを覚えるならスタート地点は重要だけどね
目的違うしアセンブラから始められてたらもっと楽しかったのだろうとは微塵も思わんけど
出来ることは増えてただろうし習得してればまた考え方も変わるのだろう しっかしーこのスレ死んどるな
もうPHPも終わったんだな 死んではいないしょ
WEBではなんだかんだこれ以外の選択肢は多くないし
てか、5chで情報共有なんかしないわ まぁ、たしかにもっと愚痴がこぼれてきてもイイと思う。
なんで、7.4の阿鼻叫喚がここに流れない??? うちも5.xだわ
昔にとあるツール使って構築したサイトで色々カスタマイズというかいじりまくってしまって
最新版に更新できなくなっちゃってるんだよなぁ
だから7系に上げられない
さっさとそのコンテンツ終わってくれれば良いんだけど妙に長生きしてるんで困ってる アロー演算子ってクロージャーとはスコープの扱いが違うんだねえ
引数渡したりuse書く必要なくなったんだな すげぇな、アロー関数まで搭載するんだw
PHPってほんと、あらゆる技術を無節操に取り込みまくるよな。
やっぱ間違いなく最強の言語だ。
絶対最後に生き残るの、PHPだって、これ。 んなことない
今だいたいどの言語も統合が進んでる感じ
ただしPHPから学ぶ機能は何もないという
もともとWeb制作ツールの延長だし
革新的な機能を出すような言語じゃないからしょうがないけど >ただしPHPから学ぶ機能は何もないという
そら、そうだろ。
PHPは与える側じゃなくて、全部取り込む側。
漁夫の利作戦。
他の言語であれこれ試行錯誤して『これいいよね』ってなったものを
無節操に取り込むのが我らがPHPだよ。
もう、最強。 連想配列なんてのがのさばっているうちは、どこまでいっても二流ですわ。 すれ違いなのは承知です。
GAS(Google App Script)の専用スレッドはありませんか? 誤訳直そうと思ったらログインがうんぬんメーリスがうんうん言われて面倒だったんで
https://www.php.net/manual/ja/function.curl-getinfo.php の CURLINFO_FILETIME
編集権があってヒマな人誰か直しといてもらえませんか ググればだいたい解決するから5chの出番はないな
というかこういう実用系の内容では5chは要らない つーかPHPの公式ドキュメントって
数多のP系スクリプトの中でも他の追随を許さない質と量だよね
言語自体スパゲティだのなんだの言われてるけど
そんなのを軽くチャラにするくらい丁寧で充実してる ■ このスレッドは過去ログ倉庫に格納されています