【PHP】下らねぇ質問はここに書き込みやがれ 11
■ このスレッドは過去ログ倉庫に格納されています
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 10
http://mevius.5ch.net/test/read.cgi/tech/1543392526/
次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured $http_response_headerを扱いやすくするクラスを作ろうと思います
配列の先頭要素がステータス行、
それ以降の要素はヘッダ、と単純に思っていたのですが、
リダイレクトされた場合は、
ステータス行、ヘッダ、ヘッダ、ヘッダ、リダイレクト先のステータス行、ヘッダ、ヘッダ、ヘッダ・・
のように、ステータス行とヘッダのセットが複数含まれると気づきました
ヘッダの値やステータスコードを取得できるだけのシンプルなクラスを想定していたので、
どうしたものかと思っています
HttpResponseHeaderListクラスとHttpResponseHeaderクラスを作るべきなのでしょうか? >>672
欲しいのが最後のやつだけなら、それを取得出来るようにすればいいのでは? >>673
たしかに、大抵の場合、必要になるのは最終的なステータス行とヘッダだけですね
一応すべての結果も保存しつつ、最終的なステータスとヘッダを扱うようにするのが一番スマートかもしれません
ありがとうございました >>667
ダブルクオートなら、出力する文字列内に変数を埋め込める 初心者がwindiwsから乗り換えてLamp環境を構築するのにつかうのはUbuntuでいいですか? 最近はDockerで構築して、ホストを汚さないというのが主流なのだよ黄猿くん
どうしてもホストに直接Lampを構築したい場合はUbuntuでもなんでもいいけど
活発なディス取りを選択したほうがいいよ
Vine LInuxとかは論外 仮想マシンで良いならLAMP構築済みのVMアプライアンスでいいんじゃないの > PHP Warning: PHP Startup: Unable to load dynamic library 'C:\\php\\ext\\php_pdo_sqlite.dll' (tried: C:\\php\\ext\\php_pdo_sqlite.dll 指定されたモジュールが見つかりません。
apacheからsqliteやcurl等の一部のphpのエクステンションが読み込めません。全てではなくmbstringやopenssl等は問題ないようです
OS,php,apacheとも64bitで統一しています。extensionはphp_有り無し、相対パス、絶対パスどれも駄目でした。extension_dirの絶対パス、相対パス、コメントアウトも試しました
phpやextのパスをPATHに入れたりsystem32にDLLを全部放り込んだりPCやapacheの再起動も試しました
DLLはちゃんと存在し、コマンドラインからphp -r "phpinfo();"で確認した場合は問題なく読み込めているようですが解決方法がもう思いつきません >>682
最後二行がドンピシャでした!ありがとうございます 正規表現の質問です
preg _replace関数の中で[\w-]←これでは問題なかったのに[\w- ./?%&=]←このように書くとハイフンがエラーになるのですがなぜですか?
(ちなみに\wとハイフンの間にスペースを開けると正常に動作しました)
どういう挙動なのか教えてください
独習phpという本で勉強をしいますが、そこには[\w- ./?%&=]と書かれていてその通りに書いたのですが本が間違ってるのでしょうか?
preg _replace(‘|http(s)?://([\w-]+\.)+[\w-]+(/[\w- ./?%&=]*)?)|’ ~
本にはこのように書いてあります。urlのパターンだそうです
よろしくお願いします [a-c]・[1-3]など、[ ]内では、- で範囲を表す特殊文字。
a〜c, 1〜3
だから、[ ]内では必ず、- を最初に書くべき!
[-a-c]
最初に書いたら、絶対に範囲にならないから 「-」の前に「\」付けたら正規表現特殊文字も使える。
正規表現の話だと思う
Regular Expression(正規表現) Part15
https://mevius.5ch.net/test/read.cgi/tech/1568640311/ >>686
ありがとうございます。
範囲として認識されてしまってたんですね
納得することができました
ありがとうございました。
>>687
スレ違いでしたか、すみません(^_^;)
エスケープすればエラーにならないのは確認できたのですが理屈が分からなかったので
解決できました。ありがとうございます。 laravel勉強中なんですがartisanの読み方はどれがメジャーなんですか?アルチザン?アーティザン? すみません。LAMP環境で作ってくださいと言われたら一般的にはどんな開発環境の事を言うんでしょう。
調べたら具体的にはvirtual_boxでcentOS(Linux)入れてそこにmysql(apache)とphpをインストールして
って事だと思うんですが、MAMPで開発するのとは別物なんでしょうか?
MAMPの場合はhtdocs内に作れば良かったのですが、LAMPだと色々設定する必要があるのでしょうか。
FWはlaravelとvue.jsでherokuにデプロイする事になってます。新年早々の質問ですが、よろしくお願いします。 商用環境がLAMPだからそこで動作するようにしてほしいという意味だろ?
開発環境でそれを再現する手段として、VirtualBoxで構築した仮想のLinuxを使おうがMAMPを使おうが、頼む側からしたらどうでもいいことだろ。
もっとも、その構成なら開発環境のphpとMySQLはdockerで構築し、apacheの代わりにphpのビルトインサーバーを使うのが一般的だろう。
dockerで構築するからlinuxである必要もなくてwindowsだろうがmacでも同じだ。 >>692
>>693
レスありがとうございます。
遅くなってごめんなさい。てっきりLAMP環境で動かす時はMAMP環境でlaravelで書いたプログラムの設定や構成とかを変えなきゃいけないのかと思ってました。
dockerは使った事ないのですが、調べてみますね。
phpのビルトインサーバも知らなかったので試してみます。 phpからmysql接続するときにパスワードに記号がはいってると接続できないっぽいんですがどうやって回避したらいいですか >>696
客先のパスワードだからこっちの権限で変えられないんだ
LinuxのMysqlコマンドでなら接続できるんだけど
PHPライブラリのバグなんかな なんでこういうレベルの話を聞く人ってエラーメッセージやライブラリの名前書かないんだろ。 >>698
常識問題かと思って
とりあえず標準のライブラリは全部試したけど同じ
Php7.2
エラーはパスワード間違いのアクセスデナイのパスワードYESのやつだ その記号がバックスラッシュ(エンマーク)だったら笑うが new PDO('mysql:host=localhost', 'root', '*+-^.?');
普通に繋がったが
どうせエスケープが必要な文字の使ったせいだろ 言葉は厳しいけど一応みてくれてるという優しさ
勘違いしてたっぽいわ
全ての権限許可*で許可したら接続できたから
ユーザー権限臭い
コマンドラインからの接続はできてPHPからの接続を拒否する権限ってなんだろうか 自己解決しそう
Ssl証明書での接続必須になってたわ
コンソールからだと勝手にやってくれるけど
Phpからだとオプションで証明書指定しないといけない臭かったか いまから開発するならLaravelのどのバージョンにしますか? ありがとうございます。10待ちながら6弄っときます >>705
8でよくね?
無理に古いLTS使ってもアップデートの手間が増えるだけだぞ。
どうせ6使ってる間に10がでたらアップデートすることに変わりは無いだろうし。 10にアップデートする前提で6から始める意味あるの?
10にアップデートしない前提で6使うならまだ分かるんだけど 仕事で作っていて、運用もやるとか今まで無かったので基本的には6で作ってたな
そもそも運用中にバージョン上げるのは俺はやりたくないな
修正が軽微でも保証できんし sql文のcountを使い、humanテーブルのレコード件数を取得し出力したいのですが、 Object of class SQLite3Result could not be converted to string in
のエラーが出て困っています。
@humanテーブルのレコード件数を表示する方法を教えてください。(sql文はうまく動いているのが確認できているので、表示する方法を教えていただきたいです。データベースの接続も正常です。)
Asqlの出力って配列のみなのでしょうか?
<?php
// 変数の初期化
$db = null;
$query=null;
$con =null;
$db = new SQLite3("test.db");
$res = $db->query ($sql);
// データの取得
$query = "SELECT count (id) from human";
//クエリを実行
$con = $db->query($query);
//データの件数を表示する
print $con;
?> SQlite3Result型の変数を文字列に変換するなと怒られている。
マニュアル読め。
https://www.php.net/manual/ja/class.sqlite3result.php
@
$con->fetchArray()[0] で取れるんじゃない?
使ったことないから知らんけど、マニュアル見た限りではそうなる。
A
配列になるというか、SQLの結果は必ず行単位で取得する。
そのSQLは必ず1行のレコードを取得する。
それをSQliteのライブラリが配列に変換してる。 >>713
ご丁寧にありがとうございます。
始めて質問したのですが、この質問はここでは底辺過ぎて邪魔ですかね? >>714
くだらない質問だとは思うけど、スレタイに忠実だし別に良いんじゃないかな。
ただ、マニュアルくらい読めばいいのにとは思う。 知識がPHP5.2までしかないから無名関数とからいろいろついていけない xamppでバーチャルホストを複数設定している場合(プロジェクトも複数として)
composerはどこにインストールすべきものなのでしょうか? >>718
レスありがとうございます
テストプロジェクト作ってそこでいろいろうりうりやってみます、、 >>719
わからなかったら何でも質問してくれ
他の奴らが答えるから Laravelで、DOMをjquery(ajax)で書いてたんだけど、
vueとかphp(bladeでforとか沢山やっちゃう)で作る選択肢あるじゃないですか
結局みなさんどうしてるんですかね
他の人が「こんなんどうかな」ってphpのでやってきてちょっと懐疑的になってきた
vueも理解させる時間がもったいないし。。
ちょっとした業務システム作るのに迷ってきたんで世の人々はどうしてるのかか知りたくなりました その性格損するからさっさとゴミのようなアイデアは捨てろ
とりあえず動けば何でもいい >>723
ちょっと何言ってるのか分からない。
背景を語るのは良いんだけど、質問自体は端的にしてほしい。 セキュリティ対策って具体的に何をやっておけばおkですか? >>726
最低限、XSS, CSRF, SQLインジェクション
パラメータ改ざん攻撃は全部対策が必要 >>723
Ruby on Rails なら、React, Bootstrap が多い。
Bootstrapには、jQuery も含まれるから、jQueryも使える
JavaScript(JS)も、埋め込みRubyのERB で書く。
ERBは、あらゆるコード内に、<%= 〜 %>, <% 〜 %> で、Rubyのコードを埋め込める
JSを書く場合でも、a.js.erb として、
JSコード内に、Rubyのコードを埋め込んでから、JSに変換する なんだかんだでVueはやっぱりやめました
Vueだと要素にバインドするまではいいけどデバッグ中DOMとして分かりづらいし、
Laravel的に別に嬉しくなかったので
業務だとtableとmodalのフォームとAPIコールがよく絡むので、
Vueのcomponentが増えて見るとこ多すぎて説明疲れる
ただでさえblade.phpも盛りだくさんになるのに
表示するだけとかのページならVueもいいんだろうけど、、 >>730
基本jqueryですね
API読んでDOM更新がデフォで、トランザクションじゃないデータはPHPで処理でも可、みたいな
table elementゴニョゴニョしてdivとかにポン、は分かりやすかったみたいで >>726
IPAが公開している「安全なウェブサイトの作り方」の内容ぐらいは理解しような。。 >>731
オメーの能力がゴミってことがわかっただけだった >>731
> トランザクションじゃないデータはPHPで処理でも可
これ意味が分からん
トランザクション処理と画面がどう関わるんだよ
> table elementゴニョゴニョしてdivとかにポン
もはや意味不明で草 >>733
教えるのって大変で無理だと思いましたわ
いい教え方とか解決法書いてくれると嬉しいですねえw
>>734
マスタデータ(営業所リストとか)のhtmlはphpでも可、みたいなふんわりですねえ
注文データとかはトランザクションデータとして扱って分けて考えてますねえ
DB機能のトランザクションとかは意味が違いますねえ >>735
マスターデータの表示とトランザクション系の表示は画面が違うの?
同じ画面内であればトランザクション系だろうがそうじゃなかろうが表示方法は同じでいいと思うんだが >>736
そこは突っ込まれると微妙なところで、
phpのほうで描画してもいいじゃんて言う意見をひっくり返せなかったんですよね
操作によるDOM再構築とかの対象にはならない、画面リロードで十分、少しは通信量減るじゃんと言われるとそれまでで
でも例えば営業所に紐付く担当営業プルダウンリストなんかは、営業所を選択するとリストを置き換えるjqueryなんですよね
自分は統一したいけど結局最後は書く人次第なとこもありますわ。。 >>737
Reactしかやったことないからvueは知らんけどどっちにしてもリアクティブになってるから営業所を選択するとリストは勝手に置き換わる仕組みなはずだがそうしてないの?
マスター系だろうがトランザクション系だろうがバックエンドで選択するのかフロントエンドで選択するのかはどっちでもよくて
単にAPIの呼び出し結果どおりに表示すればいいのに、こっちはphpで書いてこっちはvueで書いてのほうがむしろ煩雑になるだろ
DOM再構築はvueが宣言的だから勝手にやってくれるのにjqueryだと命令的だからむしろ今後苦しくなる >>738
まさに言うとおりです
Vueを辞めた理由はそのリアクティブな書き方を説明しても理解されにくいとこにありました
業務アプリ用途で、
tableがあったとして、その行をクリックするとそのrowのデータを動的にmodalに反映して表示して、
さらにそのなかで操作次第でaxiosやらmodal切り替える、とかあるんですけど、
そうなると子コンポーネントとして新たに作っていかないと行けなくてそれが多階層に渡ってくるんですよね
それがjqueryでの単純さやhtmlの長さに慣れた人には理解したくない、できないことらしいです
だからvueファイルがやたら増えるとか理由つけてくるんですよね、共通化も限界あるし
DOMのphp側JS側云々はVueやらないって話の後ですね
メンバーは機能ごとにLaravelのcontrollerもViewも書くので、controllerからViewに変数渡すのはその人の責任範疇内だといえばそれまでという >>739
開発の規模がそれほど大きくないなら好きなようにすればいいけど、中規模以上で今後スケールするならそのやり方だと厳しい
そもそも古いやり方を選択したのならそれしかないんじゃない? >>740
全くそのとおりですわ
Laravel使ったのも「今までの知識でもなんとか通用しそう」ってとこだったっぽいし
皆さんはどうやって新しい手法を啓蒙していけたのか気になりますね タグクラウドのリンク先を自作したいのですが可能でしょうか?
固定ページ、投稿ページを原型がない状態になるまでカスタマイズしたのですが、タグクラウドを設定した際にリダイレクト先が元の残念なデザインになってしまいます。
huemanをカスタマイズしたのですが、構造が複雑なため手に負えませんでした。 YouTube で有名な、雑食系エンジニア・KENTA が言うのには、
自社開発系へ就職するには、Ruby on Rails でポートフォリオを作る
だから皆、80万円払って学校へ通う。
それで、マコなりは何十億円ももうけている
一方、Java なら誰でも受かるから、勉強しなくてよい。
そのかわり土方だから、20年やっても、年収は300万円行かない
KENTA は、Java, PHP を言わない。
Rails しか言わない >>737
Ruby on Rails でも、サーバー側で、HTML を作る
React, Bootstrap, jQuery は、単に画面だけ。
DB・ビジネスロジックは、Rails へ集める
これが、MVC の基本
>>728
に書いたように、HTML, JavaScript のファイルにも、
ERB で、Rubyの構文を埋め込んで作る Ruby on Rails でも、Vue.js も選択できるけど、使う人はいない
ほとんどが、React, Bootstrap。
jQuery は依存関係で、Bootstrapに含まれている
Railsは米国人主体だから、中華製のVueは使わない Rubyガイジって頭悪そうだよね
bootstrapも5になるとjquery不要になるし
レガシーガイジにはついて行けなくなるか ERB とJSX も、書きやすい
埋め込みRuby のERB、a.html.erb から、
React コンポーネントのFoo.jsx へ、インスタンス変数などを渡せる
サーバー側のRubyで、HTMLを作って、GUI はReactと、役割分担も明確 Rails には、API モードもあるので、
サーバーからHTML ではなく、JSON を返す事もできる
この場合は、Rails, React, GraphQL とか
JSONにする利点は、スマホアプリにも対応できる点 自作検索フォームでキーワードごとに条件分岐させて検索結果にそれぞれ違うコンテンツを実装したいんですが、
キーワードごとに分岐させることは可能でしょうか?
調べたんですが、どこにも書いておらず本も何を参考にすればよいかわからず。教えてくださいお願いします。 いまからPHPを勉強しようと思って、
このページを参考にしようかなと思っているのですが、情報が古いですか?
https://gihyo.jp/dev/serial/01/start-php/ >>752
そのページのPHP5.2.5は古い。PHPの最新は8.0。
ウィンドウズXP使ってるなら参考になるかもだけど古い 5から7だと色々違いがある
最初から覚えるなら、7からで良いと思う
余裕があったら、5も覚えてみれば RSS2.0を自作しているのですがチェックしてもこのサイトで重大なエラーが表示されましたと表示されどこが間違っているのか分かりません。
エラー原因を突き止める場合はどのような事をすれば良いのでしょうか?
構文のエラーはチェックしましたが問題ありませんでした。 >>757
ほんとに「このサイトで重大なエラーが表示されました」なんて表示されたのか?
お前の提供する情報は全く信用できないんで、まず「構文のエラーはチェックしましたが問題ありませんでした。 」の根拠から提示しろ 最も単純で間違いようがない、1文だけのRSS を作って、やってみれば?
それでエラーになるなら、システムのどこかがおかしいから、エラーログを見る >>760
ヒアリングまでするつもり無いから指摘だけするけど、お前のそれは自作じゃない
WordPressにライブラリを使ってRSSを導入しようとしたって書け
で、多分構文チェックも「吐き出されたRSS」に対してのものじゃなくて、phpのsyntax errorが出てないとかそんな話だろ?
まず質問を「正確な情報に整理」しろ >>761
すみません。
wordpressで前も質問したのですが結局ライブラリの読み込みに失敗してうまくいかなかったのですが、画像パスと同じようにフォルダまでのパスを書けば通常読み込み可能なのでしょうか?
エラーもどのようにチェックすればよいか分かりません。 w3cでチェックしたのですが構文にエラーはなく内部サーバーエラー 未定義のルート要素:エラーと出てきます。 WordPress の質問は、web制作管理板の方へ書き込んでください!
たぶん、この板よりも、やってる人が多いはず 結局は、WordPress の本・説明書を読むしかない
個別のアプリの使い方を聞かれても、やっていない人には分からない php.iniでRSSを開いた場合error on line 2 at column 1: Extra content at the end of the document
と表示されています。 >>764
すみません。おそらくwordpress関係なくパスのエラー構文エラーです。 ライブラリの読み込みを
require_once "Item.php" ;
require_once "Feed.php" ;
require_once "RSS2.php" ;
参考サイト様のように戻すとエラーが一つ解消されました。
http://weble.org/2011/06/18/php-simplexml_load_string 不要な文字列が出てるのが問題だというエラーでした。
新たにInvalid argument supplied for foreach()
/home/cwfpagfn/public_html/wp-content/themes/hueman_child/feed-rss2.php</b> on line <b>23</b>
23行目のforeach()に無効な引数が指定されましたとエラーが出てきました。 この板で聞いても、WordPress をやってる人がいないのでは?
基本的に、WordPress の本・説明書を読むしかない。
その説明を理解して作るしかない
他のサイトからコピペして動かせるのは、既に勉強して、仕組みを分かっている人だけ。
仕組みを分かっていないのなら、WordPress の本・説明書から始めるしかない 今まで使えなかった原因がわかりました。レンタルサーバーの仕様でhome/契約時のパス/フォルダ名にしていなかったためパスが通っていなかったみたいです。
Invalid argument supplied for foreach() エラーが出ているのは構文を変えなさいと警告されてました。 Invalid argument supplied for foreach() エラーは
foreach ($list as $key => $value){ が配列の形式で文を実行していたため起こったので
(arry)を付け加えましたforeach ((arry)$list as $key => $value){
w3cで確認したところ最後のエラーが書いてありXML parsing error: <unknown>:1:0: no element found
とあったのですが、記事をWP SHOW POSTSプラグインで上げているためかRSSが認識されず真っ白になります。 ■ このスレッドは過去ログ倉庫に格納されています