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の改造 問い合わせフォーム程度のセキュリティなんざたかが知れてるのだが
普段からフレームワークに頼りきってると難しいのかな 難しくはないよ、めんどくさいだけ
バリデーションとかCSRF用トークンとか今更自分で書きたくない 問い合わせフォームのセキュリティって、SPAM対策じゃないの?
バリデーションとかトークン生成より、そっちのほうが全然めんどくさいと思うけど >>387
だったらそこだけZendFrameworkでも使えば?
軽量フレームワークっていうと定番はCodelginiterかSlimだろうけど
それを使うまでもない
つか金曜日に質問して月曜日になってもまだ作れてないのに笑うw
こんなもん小一時間で作って時給○万円のお仕事あざーっす!ってもんだろうに てか、PHP勉強する時にある程度フォーム関係のことは学ぶだろ
その時のデータはないのかよ
基礎学習せずにいきなりフレームーワーク使うほうが怖いだろ その気になれば作り込みは普通にできるけど
自分で作ると抜けもあるから 出来合いのものを使いたい
なんかいいやつなーい? という話では?
お前が使っててお勧めするものを信頼したいという気持ち
大事にしたいよね スパム対策はリキャプチャ入れて終了だと思ってたけど、何か忘れてるかな
ていうかやりきろうと思っても終わりのないものだし、どこまでやるかだけど >>391
そもそもフレームワークも自分で設定しないと使えないぞ
あくまで道具を用意されてるだけで、それで組み立てるのには知識が必要 >>390
どういうことだ?初心者の学習時に作ったコードを本番で使えと? >>389
もちろんその気になればすぐ作れるけどさ、車輪の再発明みたいなことあんまりやりたくないなーと思ったのと
こういう時みんなどうしてるのかなーと思って
普段はFW使わない案件なんてないし、ここまでシンプルな依頼10年以上やってて初めてだったから
見積もまだ通ってないから着手まで検討できる時間あるし、でもまあこの流れならFW使わずに自作かなあ >>394
学習って書いたろ。そのまま使えって一切書いてないぞ >>395
俺も同じ考えしてたが、結論としては車輪の再発明でも
”今”正しいと思うことをするべきだ
ピュアPHPだけの方が正しいと思えば再発明でも作り直せばいいし、
それだと時間がかかると思うなら、どんな規模でもFWを使えばいい。
仕事で大切なのはクライアントの希望通りの物を提供することであり
開発の理念や価値観は関係ない >>395
codeigniter やろうぜ
本当は fuelphp をお勧めしたいけど、お勧めできない codeigniterってライセンス問題は解決したの?ググらず聞いてすまないが >>399
したよ
ドキュメントの日本語翻訳はグダグダのままだったと思うけど マイクロフレームワークの需要ってあると思うんだけど、
世に出てるものって、たいていややこしいよな。Slimとか 欲しい機能を集約、自由に好きなようにカスタマイズするのに、
10年ぐらい前フリーランスやってたころは自家製の超軽量フレームワーク作ってやってたな。
クライアントはその後移行に苦労しただろうがね。 俺も自家製作ってたけど、カスタマイズが必要ない一点物だったな
(フォームとか、カレンダーとか、画像集みたいな 簡単なものならフレームワークと言うほどのものは要らないけど
最近はどんなに簡単なものでもLaravelにしているわ
やっぱり多くの人が使っているものを使う方が安泰な気がする
composer使えて、テンプレートエンジン(Smarty、Twigなど)ぐらいは導入するけど
DBはPDOでアクセスみたいなのを大昔は採用してた フレームワークもテンプレートエンジンも使わず、1つのPHPソース内にロジックもビューも
ごちゃごちゃに書いてあるWebシステムをメンテしてます。
PDOも使っておらずDBのネイティブ関数を使ってるし。 Laravelスレや5ちゃん以外の掲示板でも似たような質問したことがあるけど、
そのときも「どんなに小さなものでもフレームワークを使うべき」って言われたな
今はファイルサイズで困ることはないし、極端に重くなるわけじゃないからな 別に使わなくてもいいよ
どうせ誰かと共用するコードじゃないんだから むしろフレームワークで納品したら、蔵が設置できなくて終わると思うw
composerとか使えると思えない 誰かと共用しなくても自分とは共用するだろ
いくら自作でも数年前に作ったものなんて覚えてないぞ >>409
普通にファイルをZIPで圧縮して渡すだけじゃないのか? だからそれを受け取った蔵が鯖にデプロイできないってことだよ まぁサーバ案件まで一緒に取ってこれないのは無能の証拠でもある >>410
それFW使ってようが同じこといえね?
自分で書いたコードが何やってるかわからないなんてそらねーわw 俺もやったことあるけど、売るだけってパターンはしんどいぞ
知識あるクライアントばかりじゃないから、サポートの負担が増える
サーバ設置まで込みで受けたほうがよっぽど楽だよ 鯖関係全然わからんPHPプログラマも多いみたいで
同業の蔵からそいつらが開発したLaravelのデプロイだけ頼まれたことあるわw
アホらしすぎて見積いくら取ったら良いかだけ困ったわ >>420
そういうの頼んだことあるわ
自分でやってやれないことはないけど、ちゃんと金を払ったら
どういう観点でテストとか調査とかするのか知りたかったので
あえて頼んでみた。
気付いてなかった点とかやたら洗い出せてめっちゃ役立ったし 鯖案件まで一緒に引っ張ってこれないと、その場限りの仕事になるからなぁ
ましてやフリーを名乗っていて(まぁ実際はただのバイトレベルでしょw)鯖ができないとか無能以外の何者でもない もともとの380はクラウドワークスとかの話っぽく見えたw
もし看板(HPで受注)上げて見積り依頼受けたとしたら恐ろしい綱渡りやってんだなと 複数のログインなどが必要なサイトにアクセスするための情報群をサーバにおいて
PHPからその情報を使ってアクセスします
この情報は本当に人に見られて悪用されたらまずいレベルのものなのですが
PHPから重要情報にアクセス可能な方法で重要情報の最適な隠蔽方法を教えて下さい 明らかにヤバいことしてるのに、そのことに気づいてないアホっているよな 一生懸命にガッタガタの車輪を作ろうとしてる様にみえる サンプルなんかではスクリプト中に書いてるんですが本当にそれでいいんですかねえ…
サーバがバグってphpがtextやらダウンロード可能なものとして表示されるようなことがなければいいのですが 例えばwebサーバーのbasic認証のユーザーとパスワードが書かれたファイルってどこに置いてる? サーバがバグるってなんやねんw
勝手にバグるんじゃなくて、バグらせるからバグるんだろ 自信ないならやるな
もしくは対価払って知識ある人に頼め ようはサーバ含めて外部のソフトウェアが信頼しきれないということに帰結してしまいそうなので
みんなそういうのを信頼して使ってるということで自分も気にしないことにしますね 少なくとも自分が完璧だって思って作った成果物よりもバグや不具合は無いと思って使ってる
例えば自分が作ったプログラムがnginxより完成度が高いとはとても考える事ができない
だからその部分を心配するよりも自分の能力を上げる方に頭を使う様にしてる >>424
426に一票。
ネットの怖さを知っている人ほど426を推すと思う。
433の気持ちもわかるけど。 PHPを勉強している者です。
教えてください。
あるページで、<a href="php/mkKobetsuP.php?id=100">個別ページに移動</a>として、
個別ページへのリンクが書いてあるとします。
mkKobetsuP.phpには、データベースに接続して必要情報を取得してhtml文書を生成するコードが書いてあります。
できれば、最初のページにあるリンクを、<a href="php/mkKobetsuP.php#bikou?id=100">のように、
name属性まで指定したいのですが、うまくいきません。
個別ページの内容じたいname属性も含めて、phpでこれから生成するのに、そのまえにname属性まで
リンク先に指定するのは可能なんでしょうか?
こういうことをやりたいという発想じたいセンス悪いでしょうか? >>434
横だが433は
424から感じる超初心者特有の「俺が間違えるはずがない」という馬鹿な思いこみを嗜めてるだけだぞ。 >>434
ヤバいのレベルにもよると思うんだけど
自分が想定してたものって
AWSの認証キーとか複数サイトに対してログインする際に必要な情報で
その情報がサーバーとかのバグで閲覧可能にならないか?って事に対しての返答だけど
その手の情報も置かない感じ? そのサーバによりけりでは?
ぶっちゃけ、何があっても責任とれるなら置けばいい ECサイトのクレカ決済代行に必要なアクセストークンはどこに保存するの 認証情報はセッション変数にセットしとけばいいじゃない。セッションが続く限り保持されるしセッション切れれば消える。 自分が作ったプログラムが取られたくない場合はどうしたらいいですか? >>443
ローカル環境で開発して、ローカル環境で運用
てか、プログラム取られるって何を想定してるの?
一人で鯖借りるなりしたら普通は取られることないでしょ >>445
>>437 に対して>>438 って書かれたからなんだよね 物事は常に最悪の事態を想定しておくべき
ど素人がどうやったら取られる、取られないとかそんなことを考えても意味がない
技術があって悪意のあるやつにはかなわない
盗まれて困るもの、責任取れないものはとにかく置かない
盗まれても困らない、責任取れるものなら置いとけば良い
シンプルに考えようよ >>435です。
質問を取り下げます。お邪魔しました。 php5.5のシステムを7.4に移行することになりマニュアルを読んでいます
https://www.php.net/manual/ja/migration70.incompatible.php
> 値渡しの foreach は、配列のコピーを使って操作を進める
どのようなコードが下位互換がないコードに該当するか教えていただけないでしょうか >>451
値渡しの foreach は挙動に変更無いように見えるね
なんで記述があるんだろ。わからん >>452
具体的な例がないまま、参照渡しの話になっているかと
参照渡しのほうは新旧での挙動の違いは理解できましたが、値渡しのほうがわからないのです 手元の環境で試してみればよくね?
1分もあれば結論分かる >>455
試すためのコード例と出力結果の記載がないので、どのようなコードであれば試せますか?という質問です 値渡しにして中で配列いじって試せば良いだけじゃん…
そんなんで本当に移行作業なんかできるの?
てか、まずはPHP7の開発環境作って、そこで実際のソースコード置いて試すのが一番早い >>457
試せば良いだけ、のコードがわからないので質問しているのです
>>453 さんにしか質問が伝わっていないのかな >>458
> デフォルトの値渡しモードの場合の foreach は、 配列そのものではなくそのコピーを使って反復処理を進めるようになりました。 つまり、処理中に配列を書き換えた場合でも、反復処理の対象となる値には影響が及びません。
確実じゃないから間違えてたら申し訳ないのだけれど
内部的に仕様がこうなりましたって報告の為に書いてるだけじゃないかな?
5.6と7.4で何パターンか試してみたけど違いは無さそうだったよ php7は独学では無理みたいだからまだphp5.6使ってるわ
php7使うにはコンサルタント必要で
コンサルタントにカモられるだけや 最近5.6以来8をみたら俺の知ってるphpじゃなかった
別の言語だろ >>464
そやね
随分型に拘れるようになった
おれも結構ビビってるw 型意識するとやたらキャストの多い汚いコードになっちまうのだが >>459
ありがとうございます
挙動に違いがないならわざわざ下位互換性のない変更点として記載するのはおかしいしなぁとも思ったりもやもやしています foreachで参照使ったときにおかしなことになるやつって
直ったの? それとも仕様扱いでそのまま? >>466
きちんと型を意識しているなら、キャストの回数は激減するよ
ソースは俺 >>468
横だがそれはその上の
> foreach は内部の配列ポインタを変更しない
の説明だろう。ただし結果は意味不明だが。
(php.netの方の結果は理解出来る) laravelでcsv読み込みがうまくいきません
csvファイルや実行ソース、出力結果については以下の通りです
どなたか対処方法わかる方は教えてください
・csvファイルの内容[C:\hope.csv]
希,望
・tinkerで以下を入力
$file = new SplFileObject("C:\\hope.csv");
$file->setFlags(\SplFileObject::READ_CSV |\SplFileObject::READ_AHEAD |\SplFileObject::SKIP_EMPTY);
$collection = collect($file);
$collection // 配列を出力
・理想の出力結果
["希","望"]
・実際の出力結果
["希,望"] そのcsvが本当に1行なのかどうかは知らないけど複数行と過程して
file()で読み込んだのをforeachして1行ずつexplode()したの返せばいいんじゃね
csvが長くなるようならジェネレーター使ってな >>474
他の文字はちゃんと分かれるんですが
なぜか希,望だけカンマが認識されないんです 文字コード処理の話じゃないの?
「SplFileObject 文字コード」 一気に解決しようとせずに切り分けて調べなさい
原因切り分けのためのシンプルなcsvファイルを別に作って
一つ一つ原因を確かめていけばわかるでしょ
文字コードなのか改行コードなのか知らんけど、
自分の環境で起きることは他人の環境でおきるとは限らない
人に聞いても無駄なこともある オープンソースのライブラリ作ってるんだけど、
PHPUnitのコードカバレージHTMLレポートも含めるもんかね? 含めないもんかね? csvはカンマで分割した時に最後の箇所に改行コードが入って動作しない経験あり。
だからtrim()する。 MacのExcelで作ったCSVなのか、サーバサイドのエンジニアがダメなのかしらんけど、
たまにCR単体が入ってるCSVがあって、
PHPのパーサで正常にパース出来ないケースがあったなぁ…。
Microsoftはやらかすから、どっちが悪いのかは知らない。
RFC 4180ではCSVの改行コードはCRLFと決まっている。 世界的にはPHPは完全にPythonに食われちまったようだけど
日本でPythonっていうほどWebでは流行ってないよね 元々、PHPはHTMLテンプレートエンジンだったのが便利なので機能拡張された結果、
WEBしかできないプログラミング言語化し、
更に使われまくった結果、GUI以外なら大抵なんでも出来る言語化したのがPHP。 ■ このスレッドは過去ログ倉庫に格納されています