【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 WordPressならローカルで動かしてデバッグ実行したほうが解決しやすいんじゃないの?
レンタルサーバーのphpにXdebugも設定されてたらそれ使ってデバッグもできるかも >>771
それ、全然解決になってない
Invalid argument supplied for foreach()って書いてるよね?
つまり、foreach() には「配列」や「オブジェクト」を渡せるけど、
$listはforeach()で扱える型にはなってないってこと
だったらまずは
var_dump($list);
とでも書いて、中身がどうなってるか確認しないと…
たぶん、中身はNULLか(boolの)falseになってるのでは?
あと>>770に今更気づいたってことは、PHPのエラー設定がおかしいってこと
PHPはエラー内容を細かく出力したりログに残したりできるから、それを見れば>>770なんてすぐ気づく
だからまずはエラー設定から見直すべき
WordPressぐらい「本当にPHPが書ける人なら」どうにでもできるけど、WordPress云々以前の話 で、PHPのエラー設定を変えるには
1. php.iniに書く
2. (WebサーバがApacheなら) .htaccessに書く
3. プログラム内に直接書く
といった方法があるけど、(質問レベルも考慮して)WordPressならとりあえず「wp-config.php」の先頭あたりに
ini_set('error_reporting', E_ALL);
ini_set('display_errors', 1);
ini_set('log_errors', 1);
ini_set('error_log', 'エラー記録ファイルまでのパス'); // PHPからの書き込み権限を与えること
と書けばいい
本番で一般公開させる場合は
ini_set('display_errors', 0);
に変えること そのめんどくささがPHPのクセになるところなのかもしれんぞ >>775
で、他の言語はどう楽なの?w
PHP以上に楽な言語は無いやろ ログはデフォで出力してたな
ただ、レベル設定して
一定の数値未満は出力しないようにしてた あれから考えてデフォルトのRSSを書き換えることにしたんですが、<description><![CDATA[<p>
</description>のなかにいくつものサイズの画像が出力されておりそいつが邪魔してるようです。
通常RSSの<description><![CDATA[のなかには画像が1つしか出力されないはずがプラグインWP POST SHOWSの仕様?で複数表示されてます。
スマホ用とPC用で記事を分けてサイズを変えると2重に表示されるのでしょうか?12パターンも表示されてます。スマホとpcで記事を分けてるといってもサイズは2パターンだけです。 >>773>>774
ありがとうございます。検索欄を作るときに実践してみます。 >>779
君アホなの?誘導されたんだからそっちいけ 同じ記事をPCとスマホで分けて480px以下の時はdisplay:noneで消したんですがこれが悪かったんですかね… >>779
アクセスされた、すべての画面サイズの画像を作るのかも?
そういうのは、WordPress(WP)の設定で決まるのでは?
web制作管理板のWPのスレで聞いた方がよい。
PHP とは関係ないから PHP初心者なのですが質問よろしいでしょうか?
現在PHPで掲示板を作成しています
CSVを読み込んで取得した書き込みを2次元配列$listに入れています。
それをforeachでテーブルに出力したいのですが上手くテーブル状に出力できません。
foreachの処理の順番がよく分かってないのですが1つ目の処理で$listの[0]を$key1に格納して次の処理で$key1を$key2に格納して…と考えてコードを書いたのですがそこが間違ってるのでしょうか?
汚いですがコードも載せておきます
https://imgur.com/gallery/YwgAn0c ファイル読み込みの時点で間違ってる
csvなのに'\n'でexplodeしてるよ >>786
ありがとうございます
という事はやはりforなどとは違ってループというよりは一括で処理してるのですかね?
>>787
ありがとうございます
ほんとですね…お恥ずかしい限りです >>790
ありがとうございます
こんなに綺麗にできるんですねお恥ずかしい限りです
参考にさせていただきます Ruby で書いた
https://paiza.io/projects/_naoN2p3jNU96323k6gU7Q
質問は画像ではなく、ソースコードを実行できるサイトに書いてください!
画像だと、コードをコピペできないので
正しくは、erb ファイルに書いた、ERB::Util のh メソッドで、
<>& などのHTML の特殊文字をエスケープしないといけない
テキストの「<犬>」が、HTMLでは「<犬>」と表示される
ERBでは、<% 〜 %> は単に、Rubyで実行されるだけ。
一方、<%= 〜 %> は実行されて出力される >>792
>質問は画像ではなく、ソースコードを実行できるサイトに書いてください!
じゃねーよカス
人にあれこれ言う前に回答は質問者の使ってる言語で書け 誰も教えてくれないので気づいたらプロ並みphp買いましたプンプン 多分だけど、今時は本とか買わないんだよ
ググれば大抵の情報はあるし、俺なんかPHPの本は買ったことが無い
アセンブラ,C,C++,C#,Java等既にやってたというのもあるけど
Vue.jsの本は買ったけど、あんまり読まずに結局ググって調べて作ってた感じ
PHPだとLaravelを使った開発になることが多いけど
普及しているから調べたら大抵やりたい事のヒントは見つかるし本買うことは無いかな 初学者がググって調べていくのはおすすめせんな
断片的な知識になりすぎる >>799
他言語をやってプログラミングの基礎が身に付いてればググった知識で新しい言語を覚えたり必要ならリファレンス等を自分で調べることも可能だけど、まったくの初心者がネットの情報だけで学ぼうとしても断片的な寄せ集めだけで基礎を積み上げられず、いつまでたっても上達しないって奴を良く見かけるよ サンプル付きのphp.netで文法見てcomposerで入れたパッケージのソースで実用例を学ぶので良いよ。
プログラミング初心者ならVisualStudio CommunityでWindows用UWPアプリ作ったほうがGUIで楽しいと思う。 いまからPHPを勉強しようと思ったら、
いまでも、XAMPPをインストールするのがベスト?
オンラインエディタもあるけれど、きっとファイルのアップロードとかダウンロードとか、
あと、データベース周りなんかまではきっとサポートしていないよね・・・? XAMPPがベストかどうかは何とも言えないけどWindows環境なら割とお手軽ではある
VSCodeなどでデバッグする場合はphp.iniを編集してxdebugを有効にしたりする必要はあるけど
設定方法が分からなければxdebug wizardでググれば出てくる一番上のサイトに
php -iの出力を貼り付ければおおまかなやり方を教えてくれる 今も昔も言われてるけど
初学者はPHPマニュアルを1から読んでいけばいいんだよ
プログラムに対してある程度知識あるなら
いきなりフレームワークからいってもいいけど
PHPマニュアルに書いてることがある程度理解できないと
フレームワークのチュートリアル読んでても意味わからんと思うわ phpでユーザー関数の勉強をしているのですが引数に2次元配列は入れれないのでしょうか?
2次元配列とその他のデータを入れようとしても上手く読み込んでくれずFatal error: Unsupported operand types inという変数の型が違う?エラーが起きてしまうのですが >>803
xamppは脳死者向け
Vagrant辺りを使えば昔に比べてかなり簡単に環境構築できる
今更xamppで環境構築云々書いてるようなサイトは
内容も古くて間違いだらけだったりするから気をつけた方がいい
そういうサイトって運営者自身がまず間違いなく素人だし >>807
2次元だろうが3次元だろうが渡せる
Unsupported "operand" types in
って書いてるよね?
operand の意味が分からないならそこから調べないと駄目だわな
$hoge + $fuge
$hoge / $fuge
operand(被演算子)ってのは上記でいえば$hogeや$fugeのこと
それに対して「+」や「/」はoperator(演算子)だ
まぁたぶんその関数内での2次元配列の扱いがおかしいんじゃね?
本来 int型 + int型 しかできないのに、array型 + int型 してるとかさ 最近php勉強してるけどコード古臭さ感じてきついわ >>809
ありがとうございます
コード見直して勉強します!
>>810
自力で見直してそれでもダメだったらコード上げて質問させて頂きます🙌
普通最初からコードあげといた方がみなさんも分かりやすくて良かったですよねすいません MacにXAMPP入れて動かしているのですが、
フォルダやファイルを作成してFinderで削除しようとすると毎回パスワードの入力を求められます。
どうすれば回避することができるでしょうか? PHPを使って外部ファイルの指定行を読み取りたい場合ってfor文を使って
for($n=0;$n<$line;$n++)
とするのが1番ベターでしょうか?
もう少し効率の良い方法はないかと探したのですが見つからなかったので教えて頂きたいです $file = new SplFileObject('sample.txt');
$file->seek(10);
echo $file->current(); >>817
ありがとうございます!自分が無知でした!
調べて使わさせて頂きます! n行目をseek使って読みたいなら
seek(n - 1)してから
current()
だけどね ttps://www.sejuku.net/blog/97648
↑この記事の一番下のコードをコピペしてhtdocsフォルダにbord.phpで保存、
xamppでテストしたら文字化けかつ最初の書き込みしか表示されません。
どこを修正したら正しく表示されるのでしょう? >>821
UTF-8やSJISといった文字コードの事ぐらいは理解してるのか?
理解してないならPHP云々以前の話だが >>822
それが正しいと思いますがツイッターやっていないです
>>823
文字コードは分かります。 >>824
貼ったURL読んですぐ分かると思うが
こんなものコピペしたって動かないぞ
セキュリティどうのって書いてあるが、
それ以前の問題だから
何故動かないのかを調べて修正するって言うなら良い勉強になる 文字化けは知らんがおそらく"\t"と"\n"が"t","n"に化けてるな >>825-827
了解です、もう少し勉強します
ありがとうございました。 >>827
9行目を
"\n"にしたら出来ました。
ありがとうございました。 ブレークポイントを使用する事が出来ません。
phpinfoのページを開くと、REMOTE_PORTの番号が数秒おきに変更されて居る様なんですが、これが原因でしょうか?
・lounch.jsonに「"port": 9001」を追加
・php.iniに「xdebug.remote_port = 9003」を追加
この二点を追加したのですが、相変わらず、REMOTE_PORTの番号が数秒おきに変更されています。
原因をご存知の方いらっしゃいましたら教えて下さい。
お願い致します。
【開発環境】
Windows10
XAMPP
VSCode 同じポート番号を指定する。番号は何でも良い。
xdebugはxdebugのバージョンでポート指定の項目名が変わる。 PHPやRails系のフレームワークを
理解出来ず、使いこなすことが出来ずに何度も挫折しています。
ちなみにデータベースは直接使いこなすことが出来、
SQLも問題なく書けます、オラクルマスターも取得しています。
HTML CSS JavaScriptにも困っていません。
フレームワークを使わずに直接SQLを組み立てるアプリなら
開発したことがあり、作成出来ます。
node.jsやexpressなら理解できるレベルです
しかし、PHP系のフレームワークのドキュメントを呼んでも
意味が理解できません。
問題点としては、連想配列をやたら大量に定義する部分で
毎回意味がわからなくなり挫折します。
オブジェクト指向は苦手なタイプです。
MVCのモデルがなんなのか未だに理解出来ていません。
私が思うに、この手のフレームワークのドキュメントは
既に同じようなフレームワークを使いこなしている人を
想定して説明されており、私は一度も使いこなせていないので
理解できないのだと思います。
なぜSQLをここまで隠蔽して連想配列が沢山出てくるのか
私には分かりません。
とても悩んでいるので誰かアドバイスよろしくお願いします。 >>832
MVCを理解できないだけでしょ
php関係無い >>833
そうかもしれません
node.jsはmodelがないから使えるのだと思います
Railsも苦手です
modelと連想配列を使った
メソッドについて理解することが出来ません。 >>832
ある意味慣れみたいなものだと思う。取りあえずLaravelの話をするけど
まずはルートを定義するroutes/web.phpみたいなファイル
ここにどういうURLでアクセスされたらどのコントローラを呼ぶかと定義する
実際に特定のURLがアクセスされると定義されているコントローラを呼ぶ
コントローラはapp/Http/Controllersに配置するのが一般的で
そこにコントローラのコードを書く
流儀に従うとDIやら色々あるけどそこは省略してコントローラに全てのコードを書いて取りあえず構わない
(ファットコントローラーが悪いという奴もいるが取りあえず気にしない)
returnするときに、HTMLを返すような作りならbladeというテンプレートのファイルと
その表示に必要なデータを指定すれば、webページが表示される
そのbladeのテンプレートは一般的にはresources/views以下に配置しファイルの命名規則は
テンプレート名.blade.phpとなる
SQLの部分が一番不満?に思っているかもしれないがこれも慣れで
Laravelでは別にモデルを必ず使わなければならないと言う訳でも無く
素のSQLを書いても動くのだが(PHPのPDOクラスを使うような感じでパラメータをバインドするような使い方)
基本的にはEloquentのクエリビルダを使うのが一般的だ
この方が慣れると非常に楽になると思う
ただ、Laravelの場合idというオートインクリメントのプライマリーキーがデフォルトで全てのテーブルに
存在するという考え方で私は好きなのだがサロゲートキーが嫌いみたいな人も時々いるのでその場合は
モデルの定義を若干書き換えれば対応は可能ではある
簡単には説明できないな。この辺で少しは掴んでもらえたらと思う
また質問されたら書けることがあれば書いてみる >>835
ありがとうございます。
ララベルも触ったことがありますが、
例えばURLとcontrollerのルーティングや
Viewをレンダーする部分は理解できます。
ただ、やはり「DI」?というものと、
Eloqent、クエリビルダーなどというものが
よく分からず挫折しています。 >>836
DIは今はどうでもいいのでパスして
MVCのModelの部分が納得いかないという事なのは分かるので取りあえずLaravelの話をすると
Laravelが採用しているEloquentというのは、railsのactiverecordとか一般的になORMとは結構違う部分があり
Eloquentでは、特にカラム名の定義を書く必要はありません
(キャストしたりする場合やidがプライマリーキーじゃないなど設定を変更する場合は書く必要があるが)
ただ、モデルを扱う上ではキャメルケースで単数形のクラスの定義だけは必要です
(テーブル名は基本的に複数形とするが、このルールに従わない場合は、モデル内に実際のテーブル名を指定出来る)
モデルクラスを用意しておけば、コントローラから例えばplayersテーブルにアクセスするPlayerクラスのモデルを利用して
id=1のデータを取るなら
$player = Player::find(1);
のような形で取れます。これはselect * from players where id=1 limit 1と同等です
検索キーが違う場合は、Player::where('key',1)->first()みたいな形で一つだけ取って来れます
これはselect * from players where key=1 limit 1と同等です
find()やfirst()で終わった場合は、結果は一つだけなので、Playerのインスタンスが返されます
そのインスタンスには他のカラムのデータ全てが入っている為、player->idやらplayer->keyなどで
それぞれのカラムが取得できます
複数になりうる条件の場合、例えばresult = Player::where('key','>',1)->get()みたいな場合は
結果は配列となり帰ってきます
この場合、結果が0でも空の配列になるし、結果が一つでも1個の配列になります
ですので1個目の結果がいるならresult[0]->idみたいな形でカラムにアクセスしますが
通常ならforeach()等で回ってそれぞれを処理する形になるでしょう 配列と書きましたがLaravelの場合はCollection型というものがありそれで帰ってきますので
厳密には説明と違う部分がありますが、概要と言う事でご勘弁ください
(toArray()など配列に変換したりも出来はします) >>837
なんでおめーそんなに親切なんだよ
カッコいいじゃねえか >>837
なるほど、
ではModelとは
SQLより書きやすくするために
オブジェクト指向を使ってDBアクセスをする
構文を再定義したものということですか? YouTube で有名な、雑食系エンジニア・KENTA のサロンは、千円で日本6位。
KENTAは初心者は、学習環境が整っている、Ruby on Rails をやるべきって言ってる
Java, PHP はやる必要がない。
Python も含めて、これらはサラリーマンで、金をもらいながらやるもの
無料で勉強するものじゃない。
時間が掛かるだけで、他に転用できる技術が身につかない
一方、Railsは、Rails 6 の本だけでも数冊出てるし、
Railsガイド・Rails Tutorial もある
ほとんどの学校・サロンも、Rails >>840
再定義と言うよりDBをポスグレからMySQLに変えやすくしてるとかそんな感じ。
migrationでテーブル作成する際に外部キー制約付けると、そのキーのデータも自動で取得してくれてModelアクセスできたりしていろいろ便利機能がある Rails の本とか、学校・サロンへ行っても、
ルールが分からない香具師は、よほどの馬鹿
Railsなんて皆、KENTA・東京フリーランスのとだこうきとか、
前職が営業職などの、文系がやってるのに オラクルの資格も持っているのか
時間がもったいない。
KENTA のサロンに入れば良いだけ
勉強方法なんて、KENTAみたいな専門家に聞けばよいだけ。
Java, PHP, Python などを独学でやろうとするから、皆挫折する
KENTAが、Java, PHP, Python などを初学者に勧めないのだから、明らか。
Rails 以外は、無理という結論 Ruby君の悪評と頭の悪さはこの板の誰もが知るところだろうw Rails の時価総額
Shopify 15兆円、Airbnb 10兆円、GitHub 8千億円、HashiCorp 5千億円
Laravel の時価総額
ZOZO 1兆円 プログラミングなんて「そういうルールなのだ」「ルールの理由なんか考えても仕方ない」
と俺は思ってるが、そこを無駄に考えこむ人って時々いるね
例えば、SQLが書ければクエリビルダーも「感覚的」に分かると思うのだが、
分からない人には分からないものなのか
俺にはSQLは書けるのになぜそこが分からないのかがサッパリ理解できん 基礎をすっ飛ばしてフレームワークから入った人とかで
フレームワークのクエリビルダーは使えてもろくにSQLが書けない…なんて人も居たりするから
一長一短だなぁ… Rails の 時 価 総 額 !
何このお馬鹿なパワーワードはw
お前頭の悪さ隠す気無いだろうw クエリビルダーは、where 何々とか、ORDER BY 何々とか、
部分をつなげて、SQL 文を作っているだけだろ またRailsガイジ湧いてんのか
スレチすぎるんだよこいつ 誰も負け組にはなりたくないから分からんでもない…
ただ出来るやつは何れも使えるだろうし転身も早いのでそもそも負けない
そして出来るやつに仕事を取られてRailsガイジは負け組へと転落していくのだ よく言われる事だが、大事なのは「何で」作るかではなく「何を」作るかだからなぁ
利用しているサービスが何の言語で何のフレームワークで作られてるかなんて、ユーザーには何の関係もない話なのでw
だから特定の言語やフレームワークにご執心な人は、三流未満だとよく言われるわけだね >>857
三流だなぁw
「何を」作るかが大事なのはビジネスサイドの人間
プログラマーとか設計者として一流になりたかったら道具のことをよく知ることが必須だぞ Railsガイジへのメッセージだろうに少しは空気を読めよと 何をつくりたいか?
→既存のシステムをパクった「これと同じようなものを作りたい」
何故それを作りたいか?
→「同じものが欲しいから」
ではどうやって作るか?
→「そのシステムの見た目や設計、コードをパクるか」
ほとんどのシステム開発はこれ
そして結局パクリ元がララベルだったらララベルを
nodeだったらnodeをReactにはReactを
「同じようなの作ったことある奴」が求められる
>>857
故にこのような意識高い系の
そもそも論はほとんんど無意味 >>859
このスレにはphpに執心な人もいること、理解してんのか?
空気読め 「どんなアプリを作りたくてユーザが何を求めてるかが
重要でフレームワークは何だろうが関係ない」
というのはフルスクラッチで新規開発する時の話
全く新しいアプリを「発明」する時の話しだ。
そうではない一般的な「パクリ開発」では
フレームワークごとの細かなシンタックスとか規約とか
しょうもないヘルパーメソッドだとか
ユーザーの顧客満足度に何の関係もない
フレームワーク変わる事にに変動する細かな
事に習熟していなければならない。
文法だけが変わるだけの何度も同じような無駄とも思える内容を
再勉強させられることを強いられる >>859
Railsガイジで一番笑えるのは
他者が何をやったかばかりで自分がどういう実績を残してきたかは一切語ってない点
虎の威を借る狐どころか虎の威を借るゴキブリ未満 >>863
その人ネズミ講やマルチ商法にハマってる人と同じ匂いがするから怖い phpのメインレポジトリがハッカーに乗っ取られたらしい。 PhpSpreadsheetでエクセルファイルを読み書きできる エクセルのデータを移すだけなら
一般的にはエクセルでcsvを生成して
PHPでインポートする感じだが、単純にやると文字コードの問題があるけどね >>868
このデータなら>>870の言う通りエクセル側で一度csvとして書き出して
csvを読めばいいだけ
エクセルで書き出したcsvはSJIS(cp932)になってるからそこだけ注意だな
慣れてる人なら10分もあれば書けるかと ■ このスレッドは過去ログ倉庫に格納されています