【PHP】下らねぇ質問はここに書き込みやがれ 13
レス数が1000を超えています。これ以上書き込みはできません。
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 12
https://mevius.5ch.net/test/read.cgi/tech/1619667579/
次スレは>>980以降
VIPQ2_EXTDAT: default:vvvvv:1000:512:: EXT was configured NG推奨ワード: Ruby
この単語を含むレスは一切相手にしないように 今更ながらPHP8でimplode/joinの引数順が逆順で固定されているのに気づいた。
どんな糞な議論の結果かを知りたくてRFCを探したが、
https://wiki.php.net/rfc/deprecations_php_7_4?s[]=implode#implode_parameter_order_mix
で38vs5で賛成されたくらいしか分からない。
もっと詳しい経緯が分かるところがあればURL頼む。
これに限らずPHPでは引数が逆順の事が多い(と感じるのは目立つからか?)のだが、
いっそのこと全部逆順で統一することにしたのかこれ?
だとするとこの判断は多分間違いだが。 $hogehoge = str_replace('/hoge/', '/hage/', $hogehoge);
というパスを書き換える部分があるのですが、これをvscodeでコーディングしていると、
'/hoge/', '/hage/'の部分がいつもと異なるエラー?のような色になります
文法上問題があるのでしょうか?
一応動いていますが
'/ho/ge/', '/ha/ge/'という書き方では色は変わりません
関数的にも正規表現は使わないから問題ないですよね? 一定のルールで色付けをするシンタックスハイライトは
どこかしら抜けがあって完璧ではないし気にしなくていいよ
あれは参考程度だと思ったほうがいい 問題ないようでよかったです
どうもありがとうございました 最近phpを始めたので良く分からない事があります。
phpでUNIXTIMEで時刻を表示させたいのですが、上手く行きません。
php.iniで"date_timezoneをAsia/tokyo"にしているのですが、適応されません。
スクリプトに"date_default_timezone_set(Asia/tokyo)"と記述すると、適応されます。
これは、何故ですか? unixtimeは世界に一つで相対時刻はありません スクレイピングの勉強するのですが、下手するとF5アタックになるとかの法的リスクと回避法を重視している入門書ってありますか?
今の所やりたいことは、特定の市町村の5年分気温気象データを収集して自分用に加工
近所のコインランドリーの稼働データを集計して空いてる確率が高い時間帯を調べるの2つです
前者は膨大なデータを取得する必要があります
後者は10分から20分おきにアクセスすることになります 頭のおかしい人に以下のようなことを言われました
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか? スクレイピングはクローリングでない
マルチポストは返信の作業を勘案した返答をもらえる確率の問題 >>15
https://ja.meta.stackoverflow.com/questions/2418/
マルチポストをする場合、回答への返信や質問の追記を、
質問した 全て のサイトで行って欲しいと考える回答者が多いです。
しかしそのようなことはさすがに手間であるためか、
質問を最初に投稿したっきりになり、
そのまま放置されてしまう場合が多いため、
マルチポストは問題視されています。 駆け出しの個人開発者だけど個人ウェブサイトをVipで宣伝したらちょっと流行った、前スレで教えてくれた人ありがとう fopen関数でモードを'c'にして、fwrite関数で.txtに書き込んでいるのですが何故が上書きされて書き込まれます。
常に、最新の書き込みを上部に表示したいのですがどうすれば良いのでしょうか?
モードを'a'にすると上書きはされませんが、最新のコメントが常に下部に表示されてしまいます。
因みにコードはこんな感じです。
<?php
date_default_timezone_set('Asia/Tokyo');
$time = time();
$date = date('Y/m/d H:i:s',$time);
if(isset($_POST['send']) === true) {
$name = $_POST['name'];
$message = $_POST['message'];
$fopen = fopen('message.txt','c');
fwrite($fopen,$name."\t".$message."\t".$date."\n");
fclose($fopen);
}
?> cはクリエイト
aはアペンド
仕様通りの動きやろ
で、何がしたいの?w ファイル書き込みには上書きか追記しか存在しません
逆に言えば挿入は存在しません
あなたの部屋の壁をディスクとして見てください
壁に書き込んだものは移動できませんから、塗りつぶして上書きするか追記しか出来ません
コメント表示処理を工夫しましょう >>21
>常に、最新の書き込みを上部に表示したいのですがどうすれば良いのでしょうか?
書き込み事の複数ファイルに分け、
新しいファイルから順に表示する >>21
配列に入れてarray_reverse関数使えば? そもそもDB使えば良いだけなのに
今どきファイルとか無いわ
DBでも今度はorder byすら分からないかもだがw 今時DB使うだけだからFS知識なんて不要
って訳でもないのではと思ったけど、やっぱ不要なんかね >>28
勿論ファイル操作も知っていて当然ではあるけどね
ファイルのアップロード機能とかあれば扱う事もあるけれど
昔に比べたらファイルを直接操作するような事は減ってる気はする 失礼します
フォームを送信した後に他のページに飛ぶようにしたいです。
<form method=“post”>
のところを変えるのでしょうか? >>32
ありがとうございます。
action属性を指定して<form method=“post” action=“移動したいサイトのリンク”>
としたところ、サイトには飛びますが、フォームを送信できなくなります。
開いているサイトに送信してから移動するにはどうすればよいでしょうか? フォームデータ受け取ったページでリダイレクトすればいいだけじゃない >>33
飛ばしたいデータにname属性はつけてる?付けてないなら記述しよう
付けてるなら目視では確認し辛いだろうけど
遷移先のphpで変数等に格納する記述はしてる?
一時的にpostでなくgetにするとurlに表示されるからデータが飛んでるどうかは分かりやすいよ name属性がなかったので付けたら解決しました!
ご教示くださりありがとうございました。 PHPは $d[20][10] のようなサイズ指定の配列変数の定義はできないんですか?
そうなら膨大な大きさの配列作る時、ひとつひとつですごい負担がかかりませんか? PHPの配列特殊ですね
調べてみたんですけどこんな感じでいいでしょうか?
// $dm[200][100]を作る
$dm=array_chunk(array_fill(0,200*100-1,''),100,false); >>38
動的にサイズは増やせるし
あんまり需要ないのよ
膨大な処理をするのもそもそも間違い
DBから拾うなら条件を絞るなりしないとそもそもwebでのサービスに耐えられない
スタンドアローンで何かの処理させるだけなら
C#とかJavaとかで良くね? 何を使うにしろ、まずそういうデカい配列を用意しないと行けないロジックを疑ってみよう 俺がphpで使った一番でかい配列は「エラトステネスの篩」用のやつで60万個ぐらいだった そいやPHPで配列とかの中身いじることなくなってきた気がするなあ
jsonなりでそのまま送っちゃうようになったわ
だいたいSQLで済むしなあ 質問です
windows10でXAMPP環境なんですが、PHPで自身(正確にはルーターの)のグローバルIPを取得する方法はありますか? >>47
デバイスが知らない情報をデバイスに聞いても入手は無理なので、外部にアクセスしてそこから情報を抜き出すコードを書くと良いです。 フリーDNS提供サイトを利用している人なら
サイト側でアドレス取得サービス提供していると思う ありがとうございます、やっぱり外側から取得するしかないんですね〜 ルーターの状態ページのWAN側アドレスにグローバルIP載ってるなら読み込んでパース
BASIC認証の機種なら楽だけど独自のログイン画面使ってるやつだと面倒かもしれん 外部にサーバー置けばそこにリクエスト流せばIP分かるからAPIにして利用すればよいのでは?
単に自己情報だけでは分からんよ
分かるのはwindowsならipconfigで知れる情報くらい
そもそも外部にどのように出るかわからんしな >>54
そんなの使う人によってルーターなんて違うしどこが良いやり方なのかと どういう環境がしらんけど
ルーターのグローバルIPアドレスならupnpで取れるんじゃね? グローバルIP質問した者です
みなさまありがとうございます
目的は自分のホスト名からIPに変換した値と、実際の自分のグローバルIPを定期的に比較して、無料のDDNSがちゃんと動いてるかチェックしてます
DDNS更新ツールで、Diceって名前のソフトがあったと思いますが、あれって自身のグローバルIPを検出する時、ソフト内部から外と通信して結論出してるってことになるのか〜
つまり作者のサーバが落ちたら動かないとか。
てっきりwindows内で検出する方法があるのかと思ってました DiCEはipcheck.datに書いてあるところに問い合わせてる
大昔に使ったときはなぜか他の通信阻害したり常駐させたままシャットダウンすると設定ファイルたまに飛んだりであまりいい印象はない diceみたいなものかと思ったらそうだった
execでipconfig叩いて何とかなりそうな
知らんけど >>61
それならグローバルIPも意味がないやんw PHPでアプリをたくさん作る本はないですか?
入門書にありがちな細かい文法の説明はいらないですから。
理想はその1冊で10個くらいの簡易なアプリの作り方を説明してる本。 なぜなら、基礎が出来たらそのあとは実践や練習としていっぱいアプリを作りまくったほうがスキルが上達すると聞いたからです。 >>69
自分で作りたいものを見つけて取り敢えず作り始めれば(着手すれば)いいと思うが、それができないならまだ基礎ができてないんじゃね >>66
ググって出て来なきゃ無いだろ。今時出版側もSEO程度はしてるだろうし。
無い場合の理由は売れない/必要ないの両方だろうね。
あと、アプリを作るならPHPよりも他言語の方がだいぶマシだからそうした方がいいと思うよ。
どのみちJSは避けて通れないから手っ取り早いのはNodeとか。 >>72
ワッチョイの必死チェッカー
アプリと呼ぶ程の物でもないけど、PHPだけで済むし、あれば使うかも PHP8だと下記がfatal errorなんですが、どうすれば良いでしょうかmm
ググっても分かりませんでした。
if (!isset($value['url']))
$value['url'] = ''; >>74
どんなエラーなの?
それだけ見たらエラー要素が無いが スクレイピングに興味があるのですが1時間に1回の頻度のGETだけで訴えられる危険があるって本当ですか? 普通にブラウザでアクセスするだけで訴えられるレベルやん >>76
はい。普通にありえます
権利系の話では頻度は関係ありません インターネットで公開してるから何でも自由にしていいってわけじゃないからねえ
こそこそやるのが不安なら、権利関係のページ見るとかサイト管理者に聞くとかすればええやろ PHP覚えようと本買った途端に
「マイクロソフト、スクリプト言語「PHP 8.0」以降の正式サポートを中止」
って記事を見かけたんだけど、もうPHPは衰退するん? >>80
そもそもMSとは元々あまり関係なかったからどうでもいい >>83
そうなん?本代無駄になるかと思った
サンクス 開発に協力しない、IIS等で使用できないという意味だっけ
公式に8.0のwindows版置いてあるでしょ myspli_queryを使ってcount数を引っ張ってきたいんですけど恐らく(?)型が違う為か数式に当てはめられません、、、
型が楽なphpに頼ってまともにやってこなかった自分が悪いのですが変換方法教えて頂けませんか count(columnname) as newname
$records["newname"]
で解決する話? laravelについて教えてください。
以下のようなリレーションの際にAモデルからDの値を取得するにはどうしたらいいですか?ちなみにbelongsToManyではうまくとれませんでした。どなたかよろしくおねがいします
AとBは1対多
BとCは1対1
CとDは多対1 ツイッターを使おうとしていて
入門動画や解説ページをいくつか見たが説明が抽象的過ぎてなにがなんだかわからん
クラス図とかER図とか使って何をやったら何が起きるかを具体的説明してる資料ってどこかに無い? >>90
クラス図とER図が抽象的なら、どう言えば具体的になるんだ >>92
○○を取得したい、とかだろ。
そもそもお前には無理だと思うが。
>>89
> 入門動画や解説ページをいくつか見たが説明が抽象的過ぎてなにがなんだかわからん
それはお前がその動画等で想定されている「入門者」にすら至ってないだけの話。
一般論として入門者向け内容は「○○するだけでほらこんなに簡単に出来る!」だから、
見て分からんとかありえん。その先をやろうとすると実は結構大変、というのは常だが。
> クラス図とかER図とか使って
逆に、API等の説明で「クラス図とかER図とか使って」る例なんて無いだろ。
PHPと言えばLaravelだけど、見てみろよ。無いから。
APIって基本「○○すれば△△が得られます」だから必要ないし。
お前DB屋か?目の付け所や考え方が明らかにずれてる。 >>93
>○○するだけでほらこんなに簡単に出来る!
だから、その○○したときに、何がどうなってるのか何にも書いてないからさっぱりわからんのよ >>95
いや、おまえがそんなにわかってるってのなら
代表的なユースケースの定義と基本シナリオをひとつ書いてみてくれ クラス図を書くとクラス間の関係が明確になる
ER図を書くとそこからRDBが自動生成できる
大規模な開発ではクラス図ER図などの図と
仕様書が開発者に渡され、それで開発する
こんなところか? >>98
おまえ、設計レベルの違いもわからんのか?
ユースケースレベルの話にAPI持ち出すとかド素人なん? >>100
ならお前が俺より良い回答をすればPHPerも糞ではないと証明出来るね。
噛みつくんだから勿論出来るに決まってるよな。よろしく。 >>101
自分が頭が至ってないと断言した相手に自分よりよい回答を求めるなよ
自分の発言に責任ももてないのか? >>102
ワッチョイもIDも異なる相手が同一(ID:iJ+tKDn4r===ID:41Ya32wv0)
である事を期待した回答を得たいのなら、先にお前がそれを明示しないと無理だろ。
お前はコミュ障でもあるな。 >>103
あんたがリンク先見ろというから
わざわざ家のwifiに繋ぎ変えたんだが
そんなに不満かね? >>104
それを言わないと同一人物だと相手には理解出来ない、と分からないのは、ガチのアスペだね。 >>105
確信はできないかも知れないがそこまで難しい推測でもないだろ >>106
IDもワッチョイも違う相手を無条件で同一だと認識するようなら完全に統失だろ。
それを期待する君はコミュ障だよ。
会話を成立させる為に相手に何を伝えるべきか分かってない。
まあそれはいい。
APIのドキュメントは公式ので十分だから、それで出来ないのなら君の問題だよ。 >>107
コンテクストってものがあるだろ
俗に言うとこのアスベとか糖質ってのはそういうものが追えない人のことでは >>108
アスペってのは医学的にはサリーとアン課題が解けない奴の事で、
https://livedoor.blogimg.jp/shinesokuhou/imgs/a/2/a27f1508.jpg
プログラミング的に言えば、相手と自分の情報状態を別々にインスタンス化して管理出来ない奴、
つまりお前の事だよ。
統失はパターンは色々あるけど、ありもしないものが見える奴とかだね。
つかもういいかね?もう生産性まるでないだろこの会話。 >>109
いや、そんな厳密な意味の診断をあんたが下したってこと?
医師免許は持ってるの?なきゃ医師法違反じゃね? >>110
君は本当に>>104と思ってるのだから、
それは煽り抜きでガチのアスペの典型的症状だし、病院に行って診断を受けた方がいいってだけだね。 まあAPIのドキュメントなんてどこもこんなもんよね
SDKなんてのも大雑把だったりするし
curlサンプルでも載ってれば、まあ問題なく出来るやろって感じやな
ちょっと思ったがAPIに至ってはクラス図とかなんてのはユーザ(こちら)側の話であって
提供側が作るものではないのでは?
あとTwitterAPIのサンプルなら転がってるんじゃないかな、しらんけど いやどうでも良くはないんだけどね。
クラウド系でPHPのサポート範囲が将来狭くなっていきますよってことだから。 PHP CodeSniffer使ってメソッド名をスネークケースからキャメルケースへ自動補完したいんですが以下のコマンドをうってもうまくいかないです。
どうすればいいでしょうか?どなたか教えてください
phpcbf --standard=phpcs.xml src 久しぶりにスレ見たらまたPHPerは糞おじさんが長文垂れ流して暴れてたのか
発端となった>>89についてはそもそも相手にするのが間違いだ
こんな奴が居るからPHPerはバカにされるんだ >>113
APIに対してクラス図がどうとか言ってる時点で相手にしたらダメな人だ
ムキになって相手にする必要すら無い >>117
お前も>>89と大差ないけどね。
馬鹿にされたくないなら、少なくとも俺よりましな回答をしてから言うべきだよ。 即レスワロタw
>>98で話終わってるからな
これ理解できないガイジ相手にいつまで長文垂れ流してるんだ?
お前そんなだからまともな会社に就職できないし結婚できないし頭が禿げてるんだぞ
あと口臭いから近寄らないでくれる? >>120
キチガイの自己紹介乙
お前ら人にコテを付けろと指図したのだから、120も「キチガイ120」とコテ付けろ。
出来ないのなら俺はコテ外す。
PHPerでは120程度のキチガイが標準なら、俺がコテの意味は無いから。 cookieのPHPSESSIDがセッション時しか保持されないのを変更することはできますか?
ブラウザを閉じて再度開いた時もPHPSESSIDを保持しておきたいです。
別のcookieにセッションIDをセットするのがいいのでしょうか? >>122
どういうこと?
cookie_lifetimeを長く設定しておけば良くね? セッションってそういうもんだしな
セッションをブラウザ閉じてからも保持し続ける必要があるのであれば
それは設計上間違ってる >>123
ありがとう。それでできそうです
setcookieばかりヒットしまって辿り着けんかった。。
>>124
そうなのか。ブラウザ閉じて開いてもログインしたままなのってセッションIDをcookieに持ってるからかと思ってたけど違うんか Web Storage には、sessionStorage とlocalStorage の2種類ある 質問です
PHPのechoで出力した文字を
JAVAでPHPアドレスから取得したいのですが方法が全然わかりません
ググっても全然見つかりません
教えて下さい PHPを学習してから、気になることが一つあって
WordPressでのお問い合わせフォームってセキュリティ対策されてる?、
tokenを持たせるというCSRF対策をしてないサイトばっかりなんだけど
また違ったやり方で対策されてたりするんですか? Word Press のスレは、web制作管理板にある C言語で関数ポインタというのがあって
returnで関数を返せると思うのですが
PHPで新たに関数を生成して、returnで関数を返すことはできるんですか? これではできません
どうやればできますか?
function funA($n) {
static $F = [];
$c = count($F);
$F[$c] = function($x) use ($n) { $x+$n; };
return $F[$c]; }
$fun = funA(2);
var_dump($fun(7)); 自己解決しました これでできました
function funA($n) {
static $F = [];
$c = count($F);
$F[$c] = function($x) use ($n) { return $x+$n; };
return $F[$c]; }
$fun = funA(2);
var_dump($fun(7)); $F[$c] = function($x) use ($n) { return $x+$n; }; staticで関数が消えないようにしようとしたんですが不要でした
function funA($n) { return function($x) use ($n) { return $x+$n; }; }
$f1 = funA(1);
$f2 = funA(2);
$f3 = funA(3);
var_dump($f1(3)); var_dump($f1(13));
var_dump($f2(3)); var_dump($f2(13));
var_dump($f3(3)); var_dump($f3(13)); 意味不明だと断言するだけの情報量があると思ってんのかな 意味不明だと断言するだけの情報量はあるだろ
普通なら適当なオブジェクト作って対応するケースだし 143じゃないけど、なんでこんな実装にする必要があるのかはすげぇ興味ある > なんでこんな実装にする必要があるのか
だから断言するほどの情報量がないって事だろ 関数アドレスをポインタでってのは、呼び出し元・親を弄らずにシステムを拡張できるプラグイン方式であり得るけどね
用途も何も話のないままプログラム例だけで要不要を論じる意味はないだろ >>147
この実装の意味がわかるんなら説明してくれ
おれには断言できるレベルでこのコードの意味は不明なんだ これなんですか
sqliteのprepareのリターンを変更し、すぐに値の代入ができるようにしたかったわけです
一部
$db = new SQL( "test.db", "user(key, val)" );
$set = $db->prepare("INSERT INTO user VALUES (?, ?)");
$get = $db->prepareSingle("SELECT val FROM user WHERE key=?");
$count = $db->prepareSingle("SELECT COUNT(*) FROM user");
$set(1,"山田太郎");
echo "{ 1, " . $get(1) ." }\n";
echo "count : " .$count() ."\n";
全体
https://paiza.io/projects/AWjyIWzoo2R1KmxSGIjjLw >>152
一部の方しか見てないけど、多分、classにメソッドを作ってPDOみたいな使い方ができるようにするのが良いと思う
PHP PDOとメソッドチェーンあたりでぐぐってみるとイメージがわくかと ガチでヌーブなんですけどrequestsとbeautifulsoupでスクレイピングやってます
waitかけないとバンされるよと言われましたがどうすればいいですか?
requests.get()でtimeoutは今書きましたがforで同じサイトの似たようなページに何度もアクセスするのでサーバーへの負荷はすごいと思います
これに対してどうすればいいですか? >>155
サーバー管理者のところに一升瓶持って「ごめんなさい!」って言いに行けばいいんじゃないかな。 社内の人間だけが使うローカルなwebアプリって
どの程度セキュリティに気を付ける必要がありますか?
会社のpcは外部接続ができず、
自分のPC内のapacheに他の人がアクセスする様な感じです。
今のところ、htmlspecialcharsとplaceholderだけです。 >>155
まずPHPなの?pythonじゃないの?w
>>157
社内向けでもうるさい所は普通にセキュリティチェックするから
Laravel等のフレームワークを使っている方が安全な気がする
要件でその辺こだわらないので安く早くとかあるなら適当でも良いかもしれないがw 本当に初心者過ぎてよくわからないので、質問させてください。
phpで、HTMLのinputタグに入力された値を、ボタンが実行されたときに取得して履歴に残すことって出来ますか? >>160
出来れば少し具体的に、前述を実行するために使うプロパティの名前とか教えてもらえませんか?
そうしてもらえれば自分でググってみます。 getとpostの違いを調べてから、
print_r($_GET)
または
print_r($_POST) >>162
>>163
ありがとうございます!
調べてみます! autoload.phpを扱いたくcomposerを使用するつもりだったのですが、調べてところ
composer 等の管理システムを使用して導入したファイル群は、公開ディレクトリに設置されることを想定していないものも多く、直接のアクセスをされると危険なものもあります。
ライブラリを使用するのにコードの挙動をすべて確認するのは本末転倒なので、普通はドキュメントルート外に置いて手間を省きます。
自身で安全が確認できないのであれば、ドキュメントルート内に設置はしないのが適切です。
セキュリティに問題がありpublic_htmlに配置するのは不安です。
使用する予定のレンタルサーバーではpublic_html(ドキュメントルート外)にファイルを置くことができないため困っております。
さらに詳しく調べたところautoloader.phpをドキュメントルート内に配置している方もおられるようでどちらが正しいのかわかりません。
autoloader.phpやcomposer 等の管理システムを使用して導入したファイルをpublic_html内においても問題ないのでしょうか?
Simplepieなどのフィードパースライブラリを使用せずに外部サイトRSSを取得可能なのでしょうか? >>165
> autoloader.phpやcomposer 等の管理システムを使用して導入したファイルをpublic_html内においても問題ないのでしょうか?
危険。テストやサンプルコードが入ってるケースが多いので、composer での管理を諦める決意して、コード全体を整理/修正することが必要
> Simplepieなどのフィードパースライブラリを使用せずに外部サイトRSSを取得可能なのでしょうか?
全然可能。問題ない。 >>166
ありがとうございます。
ライブラリを利用せず(ダウンロードしてドキュメントルート内にファイルを設置せずに)に外部サイトRSSを取得したいのですが、方法としてはどのようなものがあるのでしょうか?
最新のものですとfetch_rssが使えるようですがライブラリは必要ないのでしょうか? PHPのアノテーションは、開発者に向けてメソッドなどの解説をするだけではないのですか??
本を用い、ECCUBEの勉強をしているのですが
『アノテーションという仕組みを利用し、URLアクセスに対してこのメソッドを実行するというルーティングを行っている』という文が出てきて混乱しています。
それとPHP初心者なのですが、ECCUBEを勉強する前にsymfonyについて学んだほうがよいでしょうか??
ご回答のほどよろしくお願いいたします<(_ _)> YouTube で有名な、雑食系エンジニア・KENTA のサロンでは、Ruby on Rails のみ
PHP には、Laravel があるけど、Railsの1/3 のシェア。
他のフレームワークは、もっとシェアが低いので、やっても転職できない 毎回思うけど、コイツ絶対アンチruby工作員だよなw すみません…同じ内容を別の板で一度だけ質問したんですけどスレ違いだったっぽくて… index.phpでDB接続とかゴニョゴニョ処理してソース長くなる時って、別のphpファイルに処理書いて、それをindex.phpで呼び出して表示するもの?
それともソース長くて良いの?
今までJava +JSP使ってたから難しい 適当に作る場合、ソース一本で暮らす
ちゃんと作る場合、クラス別に分ける Ruby on Rails はMVC で、scaffold で自動的に、7つのCRUD アクションが作られる。
それらは、別々のPartial HTML ファイルで、それを全体のHTMLのbody に読み込む
全体のHTMLも、別々のPartial HTMLファイルで作ってあって、
body, header/footer, menu 部分を読み込んで、ページの全体像を作る
基本的に、フレームワークを使っていない開発は無理。
皆がRailsをやるのは、MVC などの作り方を学ぶため
各人が自由な構造で、開発してはいけない。
他人には、その構造を理解できないので、保守できないから アンテナサイトってワードプレスのアドオン使ったほうが良いですか?
自分で直せないときついような vscodeでphpのlinterというのはないんでしょうか?
wordpressのデバッグしたいんですが、wordpress向けのお作法には役立ちませんかね? vscodeに公式のlintあるみたいですね。
拡張子がphpでないと機能しないみたいですけど。 テーブル接続→テーブル作成(必要か不明)→RSSをまとめる→RSSを取得→RSSをテーブルに入れる→RSSを表示するをPHPで作成しているのですが、RSSをテーブルに入れる段階でつまずいています。
テーブルに入れる方法を調べたところIncsert文が出てきたのですが、それ以外の方法を勉強の為に知りたいです。
その他の構文で取得データをMy SQLに入れる方法はありますでしょうか? スマホアプリで位置情報を使った良いアイディア思いついたプログラムできない素人です。
位置情報とメールと仲間募集みたいなスレッドを作ろうと思います。
発注するとしたらいくらぐらい掛かると思いますか?またどこに依頼するのが一番安く作れますかね? >>183
ちょっと意味が違うが copy か join だな >>185
mysql データ追加をしたいんですがやっぱりincsert文を使う必要があるのでしょうか?
別のやり方でもやってみたかったのですが、joinも調べましたがiecsertと併用が必要なようです… >>187
あえて特別な方法をやるのは辞めた方が良いですかね… Ruby on Rails では、最初から3大データベースのO/R マッパーが付いているから、
SQL 文を直接使うことはない
SQLite, MySQL, PostgreSQL >>186
だから copy はどうなの?
csvファイルを一括して読み込めるけど ひさびさに見に来たけど
相変わらずRubyキチにRSSキチがいるのか(笑 アンテナサイトなんですが、wordpress上で作る意味ってありますかね? >>195
PHPの質問とは違うだろうが、プラグインがあるから簡単に作れるくらいじゃね?
更なるカスタマイズが必要だったりすると途端に難易度が上がり
PHPだけでなくwebアプリを作るレベルの技術が要求されるだろうが >>196
カスタマイズするくらいなら自分で作ったほうがわかりやすかったりしますよね テーブル接続→テーブル作成(必要か不明)→RSSをまとめる→RSSを取得→RSSをテーブルに入れる→RSSを表示をPHPで作成しているのですが、
RSSをテーブルに入れる最適なコードがわからず困っております。
OKWABEでPDOを使われているようなので、文字列変数にSQL文を入れて、それをPDOに渡して下さい。といわれたのですが、理解力がなくわかりません。
$sql文で取得したいtitle,link,thumb,contentをまとめて、
$sql = 'title, link,thumb,content';
これを
PDOに渡すということでしょうか?
$sql= $pdo->prepare('INSERT INTO '.$DB_table_name.' (title,link,thumb,content) VALUES (?, ?, ?, ?)');
$sql->execute([$title, $link, $thumb, $content]); そいつは、>1 のテンプレをしょっちゅう改変している、テンプレ改変荒らし。
基本的に、ソースコードを書かない香具師は荒らし
「Ruby, Rails, クソチョン」などを、NGワード登録推奨とか、
自分が有利なように、いつもテンプレを改変する
荒らしがスレ主として、居座っているので、
まともな人がスレ立てして、テンプレも元に戻した方がよい
荒らしは必ず、短文で2回以上書き込む。
必ず、複数人がいるように見せかける 質問です。
PHPでMySQLを使いたくて
MariaDB&MySQL全機能バイブル 単行本(ソフトカバー) ? 2014/12/18
鈴木 啓修 (著), 山田 奈緒子 (著)
を購入したのですが難しすぎました。
もっとわかりやすいお勧めの書籍とかありませんか。 >>198
高知県のトップページの下の方に、RSS・Atom のリンクがある
RSS
https://www.pref.kochi.lg.jp/news/index.rss
Atom
https://www.pref.kochi.lg.jp/news/index.atom
コマンドプロンプトで、curl を使って、ダウンロードしてみる。
where curl
C:\Windows\System32\curl.exe
curl -sSL -o rss_data.rss ここへRSSのURL
Ruby で、ダウンロードしたXML から、
RSS::Parser を使って、title を抜き出す
require 'rss'
text = File.read "rss_data.rss" # RSS 2
feed = RSS::Parser.parse( text )
feed.items.each { |item| puts "#{ item.title }" }
出力
高知県循環器病対策推進計画の策定について(意見公募期間:令和4
年1月6日から2月4日)
第3期高知県歯と口の健康づくり基本計画(案)について(意見公募
期間:令和4年1月5日から2月3日)
以下省略 >>199
データベース(DB)の設計は、勉強しないと無理。
DBが難しいのなら、CSV ファイルへ書き込んで、Excel で見るという手もある
Ruby on Rails のようなフレームワークのO/R マッパーを使えば、
テーブルも自動的に作られるので簡単
>>201
データベース(DB)の設計は、ひとまず簡単な本で、第3正規形まで学ぶ
国家資格のデータベーススペシャリストは、上級資格で難しすぎるので、
下級資格の基本情報技術者とか取れば良いかも >>202
リンクにあげたようなrss検出ツールもcurlを使っていると思われるのでしょうか? 結局のところPHP関連のホームページがおおいので、やりたいことはできそうです。
SQL文もなんとかなりそう。
ただ、動作するまで、エラーがどこで起きてるのかがわかりづらかったです。
ubuntu のgeditを使ってたのですが何か良い開発環境ありませんか? Windows 10, WSL2, VSCode(拡張機能・Remote Development)
ウェブ系のすべての言語・フレームワークで、VSCodeを推奨。
後は、おすすめ拡張機能を探す
詳しくは、VSCodeのスレで聞いて スレ立てるまでもない質問はここで 158匹目
https://mevius.5ch.net/test/read.cgi/tech/1635193843/538
ここに、YouTube で有名な、雑食系エンジニア・KENTA のサロンの、
Ruby on Rails 初心者用コースの内容を書いておいた
基本的に、Rails以外のフレームワークは、シェアが少ないのでおすすめしない。
学習環境も揃わないので、無理
Railsでは、Railsチュートリアル・Railsガイド・
黒田努の3冊の本・パーフェクト Ruby on Rails・Ruby on Rails 6 エンジニア養成読本とか、
Rubyでは、改訂2版 パーフェクトRuby・改訂2版 Ruby逆引きハンドブックなどの教科書が揃っている
これほど、良い教科書が揃っているフレームワークはない!
Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体がオワコンになってしまったw
日本のウェブ開発の将来は、ほぼKENTAが決めている。
Scala を滅ぼしたのも、KENTA >>206
PHPがエラーはかないから難しいです。
一応エラーはくようにしたけどそれでも。
>>207
> Windows 10, WSL2, VSCode(拡張機能・Remote Development)
> ウェブ系のすべての言語・フレームワークで、VSCodeを推奨。
> 後は、おすすめ拡張機能を探す
>
> 詳しくは、VSCodeのスレで聞いて
ありがとうございます。見に行きます。 >>204
curl は、ダウンロードするために使っただけ
開発時には、何回も他人のサーバーへアクセスしないようにする。
営業妨害などで逮捕されるかも知れないので、
一旦、自分のPC へダウンロードしてから、ローカルファイルに対してテストする。
または、自分のPC内でサーバーを立てて、それに対してテストする
>>202
は、Ruby だけど、以下のように、
直接、高知県庁のサイトへアクセスするようにも書ける
または、Rubyスクリプト内で、curl コマンドを呼ぶ事もできるけど、
普通は外部コマンドよりも、URI モジュールのようなRuby内のモジュールを呼ぶ
url = "ここへATOMのURL" # ATOM
text = URI( url ).read
# text = `curl #{ url }`
feed = RSS::Parser.parse( text ) YouTube で有名な、雑食系エンジニア・KENTA のサロンのRuby on Rails 初心者用コースでは、
Rails, Linux, Docker Compose, Node.js(Webpack, Babel), Bootstrap
VSCode(Remote Container, WSL2 ならRemote WSL), Heroku, CircleCI、データベース
今までは、Docker Compose までが初心者用コースだったが、最近は誰でも、Docker出来るから、
AWS Fargate, Terraform, React, Vue.js, TypeScript も必要
だから、AWSのくろかわこうへいのサロンにも、入る必要がある。
今では、1年の未経験者が、10年以上のプロよりも技術力が上になってる!
KENTA
2021年のWeb系エンジニア転職を成功させる3つの技術要素、2021/4
https://www.youtube.com/watch?v=70VrB7LTe9g
Web系エンジニアを目指す人のためのプログラミング学習ロードマップ、2021/2
https://www.youtube.com/watch?v=0TABrlhci5M
今までは、女の子が1人で、Herokuで起業するのがパターンだったけど、
今の未経験者の転職用では、AWS Fargate, Docker が絶対
要するに今は、サーバーを管理しない事が絶対。
EC2 みたいなものを構築しない
それ以外に、GCP も知っておけば良い程度。
でも、GCPの知識で転職できるとは思えない。
Azure は選択肢にすら入らない
AWSには、くろかわこうへいのサロンもあるけど、
他を選ぶと、まず勉強できない。学習環境がない。
だから皆、学習環境が揃っているRails, Heroku, Cloud9, AWSになる Rubyの話している奴は無視してw
フレームワーク使わずに素のPHPでデータベースいじるならPDO一択だけど
try catchで囲めば普通にエラー分かるような?
最近はLaravelしか使ってないからEloquentばかり利用してるけど結局これも中身はPDOだしなぁ
エラー時はcatchでMySQLならそのエラーが取れるよ 初心者です
サーバサイドはもうPHPよりNode.jsの時代でしょうか?
Laravel使ってるのは年寄だけと聞きます http://jin115.com/index.rdf
simplexml_load_fileでxmlオブジェクトを取ってくると以下のように要素が取得されるので、タイトルまで取ってしまいます。
channelを除外する分岐はどうしたらいいんでしょうか?
rss1なので
channel
item
item
item
という要素の構成になっているようです。 インデックス0を除外すればいいかなと思ったんですが、インデックスが取得出来ません。
foreachにおいては要素名がインデックスになっているようです。
<?php
$rss = "http://jin115.com/index.rdf";
$xml_object_test = simplexml_load_file($rss);
foreach($xml_object_test as $index => $element_of_hierarchy1){
echo $index;
echo ":";
echo $element_of_hierarchy1->title;
echo "<br>";
}
?> あっ、インデックスで名前取れるんだ 要素の
これで判断するす 本来の違いは
dieがプログラムが即終了する状態
例外処理はなんか処理するとプログラムの続行が
可能な状態 最近はPHP使わない案件も増えてきたね
数年後にはPHPはWeb開発言語の主役では無くなっていると思う 現時点では以下のランキングらしいがphpが脱落しRubyはその前から使われなくなってきたから
残るのはpythonとnodeか
Laravel
Express.js
Django
Ruby on Rails
Flask $arr = [
["sato1","sato2","sato3"],
["kato1","kato2","kato3"],
];
配列に名前ってつけられるんでしょうか?
sato_group
kato_group
のようにです
>>227
将来性ないんですか?個人用途でも >>228
個人用途なら何使ってもいい
そもそもpythonよりphpのほうが3倍高速
今はLaravelが多いんだけど、phpゴミ!php憎し!が多いから早く滅ぼしたい層がかなり多い
であればExpressやDjangoってことになるんだろうがExpressは薄いフレームワークだしDjangoは到底Laravelに及ばない
となるとどの言語も微妙
Nodeは後継としてDenoがあるけど全然使われていない
現状でどれもこれも微妙だしphpはバカにされてるので減っていくのにphpがまともなバージョンアップを続けていてLaravelが出来すぎなので使われ続けている
バックエンドはGoと言われてるがシェアはかなり低いしGoはクソ!っていうエンジニアも多い >>230
どうもです。phpにしときます。
wordpressも使うし。 >>231
PHPが糞なのは事実だが、滅ぼしきれないのは他もそれなりに糞だから。
とはいえ最終的に収束するならJSしかないので、学習対象を絞りたいのならJSにしとけ。
シェアは以下で確認出来る。各言語をつつけば詳細も見れる。
https://w3techs.com/technologies/overview/programming_language
https://w3techs.com/technologies/history_overview/programming_language/ms/y
PHPは漸減傾向、とはいえ10年以内に0になるようなペースではない。(現在78.1%)
JSは極めて順調に増加傾向、これは納得の結果。(現在1.8%)
Goは言語もシェアもゴミ。(現在<0.0007%)
Rustなんてそれ以下のゴミ。
なおRubyもオワコン扱いされているがシェアは順調に伸びている。(現在6.0%)
ただしこのシェアはサイト数であり、トラフィック数ではない点に注意。
ちなPHP滅ぼしたい奴はwordpressも滅ぼしたがってるけどね。 PHPで何のフレームワーク使われてるか見分ける方法ありますか?
レンタルサーバーからソースは全部ローカルに移したんだけどどこ見ればいいのかわからない。そもそも使ってないかもしれない >>234
ありがと
見たけど特にそれらしきもの無かった。
30画面以上はあってDB接続とかしてるけどフレームワーク使わないってよくあるもの? WordPressとか30ページ以上あってもフレームワークじゃないでしょ?
古いシステムでもフレームワーク使用してないのはそれなりに見かける >>235
JSは現状滅ぶ兆候すらない。
対抗馬もいないし、PHPerですらJSを書くしかない。
シェアは上がる可能性しかなく、実際にそうなってる。
PHPもまあ滅ぶ兆候はないが。
滅ぶかどうかは結局使う人が居るか≒新規参入者があるかであり、
PHPは一番簡単な所=新規参入者が多いところを占拠してるからこの点は盤石。
ただし改善はされてるが遅いし方向は間違ってるしで、今後とも他言語と比べて糞であり続ける。
そして新規参入者≒レベルが低いので、実際このスレもそうだし、
未来永劫PHPは糞でPHPerが馬鹿にされ続けるのもほぼ確定してる。けど滅ばない。
言語を開発する奴は通常はプログラミング大好きで「良い言語」を目ざし、「馬鹿向け」言語は目指さない。
この点、プログラミング嫌いを公言するラスマスが開発したので唯一性を保ってる。
ただし昨今のプログラミング教育義務化で「小学生でも出来る!」も目ざし始めたから多少は変わるかも。
とはいえ、PHPが滅ぶとしたら
・PHPより簡単な環境等の出現
・義務教育化で過半数が最初からJSで問題ない程度にプログラミング出来るようになる
のどちらかが必要で、どっちもないと俺は思うけど。 >>208
に書いた
日本のウェブ開発の将来は、ほぼKENTAが決めている
Ruby on Rails の有料サロンは、日本6位の3千人。
(1位は、数万人のキングコング西野)
Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体が一気にオワコンになってしまったw
Scala を滅ぼしたのも、KENTA
PHP はウェブサービスの言語だから、Railsに勝てないと、シェアが取れない。
Python, Julia には、AI・機械学習という新たな分野があるけど
Zozo は、Laravelだけど、
プロユースのウェブサービスでは基本、Rails以外のフレームワークのシェアがない >>239
プログラミング言語の中では最軽量級で簡単だよ。
段々と初心者向けページも充実してきてるので、諦めてさっさと学ぶべき。
https://developer.mozilla.org/ja/docs/Web/JavaScript
JSが難しいと言われるのは最初からHTML/CSS/DOM/WebAPI周りをある程度知っている必要があるから。
PHPerならこの辺の基礎知識はあり、純粋にプログラミング面だけで済む点は楽だよ。
仮にクライアントサイドでPHPが動いたとしても、コードも酷い事になるし死ねると思うよ。
JSは数多のAltJSを滅ぼしてきており、実際、一番マシ。
ただまあどうしてもPHPで書きたければBabelにはあるみたいだけど。
https://qiita.com/kotarella1110/items/064904b3269098938be8 見てたらPHP.netみたいな目次もあったわ。
https://qiita.com/kotarella1110/items/064904b3269098938be8
文法的にはここを読めば済むから、
これで駄目ならプログラミング自体が出来ておらず、その場合はどの言語でも難易度は同じ。 フレームワーク等は使用せずに、外部ファイルのHTMLテンプレを読み込んでテンプレの変数を展開した上で出力するPHPプログラムを作っています
テンプレートに記載されている変数をPHP側で展開する良い方法はありますでしょうか?
テンプレをfile_get_contentsで読み込んでstr_replaceで変数を値に置換する事でひとまず対応できたのですが、何かもっと良い方法が無いかと思い質問させて頂きました extract()
ob_start(), ob_get_clean()
preg_replace_callback()
自作のテンプレエンジンだと、大体これらの関数を使う レス有難うございます!
それらの関数について調べてみます! >>238
>ただし改善はされてるが遅いし方向は間違ってるしで、今後とも他言語と比べて糞であり続ける。
「遅い」というのをPHPの実行速度のことを言ってるならPHP8はかなり速いぞ >>247
遅いのは「進化」のことだよ。
他言語よりも進化速度が遅いから、他言語には永遠に追いつけず、差も広がり続ける。
だから絶対値はマシになるけど、比較的糞なままなのも確定してる。
つか、
> そもそもpythonよりphpのほうが3倍高速 (>>230)
これってマジ?聞いた事無いけど。(Pythonと大して変わらんと聞いている) >>248
聞いたことないお前が正しいのか?
https://hackr.io/blog/python-vs-php
Python vs PHP in 2022
新しいリリースのPHP 7.xは非常に高速で、通常のPythonプログラムのほぼ3倍の速度です。
https://medium.com/quick-code/php-vs-python-which-is-best-for-web-applications-in-2021-b7ad3fe0743a
PHP Vs Python: Which Is Best For Web Applications In 2021?
数年前、Pythonは最速のプログラミング言語と見なされていましたが、PHPバージョン7は状況を完全に変えました。今日、PHPはPythonや他の言語よりも3倍高速です。PHPを使用すると、開発者は大量のデータを一度に高速で処理できます。速度とスケーラビリティは、最終的にPythonよりもPHPのパフォーマンスを向上させます。
https://i.imgur.com/uOcFcxc.jpg >>245
教えて頂いた関数を調べました
テンプレ側でphpタグ内でechoすればいくらでも取り扱い方はあるんですね
元々インフラエンジニアでsmartyを使ったサイトの保守をやる事になりPHPを勉強し始めたので、何も考えずテンプレ側で中括弧で囲んだものを変数展開する実装をしようとしていましたw
ありがとうございました! >>249
> 数年前、Pythonは最速のプログラミング言語と見なされていましたが
どこのパラレルワールド?
とはいえ3枚目のは一見まあまあだが、出所は下記で、
https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/php-python3.html
PHPがPythonに勝ってる順にソートされてるので、印象操作としてはだいぶ酷い。
PHPの場合は数値計算で勝ったところで意味がないし、正規表現も大して使わないので、
どれもあまり適切ではないが、一つ選ぶとするとfastaか?
まあPythonよりは速い程度で、3倍は言いすぎだね。
(このベンチはPHP8.0.0/Python3.9.2を使用してる)
つかこういうのって、昔ながらの数値計算ベンチではなく、サーバーアプリケーションベンチで見るべきだよ。
ググったら下記がまあまあか?
https://medium.com/@mihaigeorge.c/web-rest-api-benchmark-on-a-real-life-application-ebb743a5d7a3
相変わらずフィボナッチはあるが無視として、SimpleListing/ComplexListingはまあいい。
見たところPython(Djago)とPHP(Laravel)は同程度。Lumenなら勝てる感じか。
本人も書いてるとおりNode(Express)の速さは特筆すべきだよ。 速さなんかでは言語は選ばれない
インフラ側をスケールすれば解決する
結局は人材確保が容易い言語が選ばれる
そういった意味ではPHPの地位を脅かす可能性のある言語は現状ではPythonよりjsになると思う クライアントサイドのjsが比較対象になる理由が分かりません node.js知らないのか・・・
まぁ、日本ではnode.js使ってるという話はあんまり聞かないなぁ
PHPで実装した方が使える人を集めるのも楽だしね
expressなどで一度はやってみたいけど
これもvueやらreactやってないと多分キツいのではないかと思う >>254
スケールにも限界があるからNode/Go/Rustに移行するわけだろ。
そしてPythonも十分人数はいるよ。PHPも多いけど。
https://www.youtube.com/watch?v=Og847HVwRSI
ただしPythonをWebで使う理由は「Python以外やりたくない」だけで、
それでもどのみちJSは外せないので普通ならJSを勉強するか最初からNodeで行く事になる。
だから、PythonによってPHPが滅ぼされるって事にはならないだろうね。 Django を選択する香具師は、適材適所じゃない
企業の目的は、安い速いうまい。
だからウェブサービスでは、Ruby on Rails で良い。
Python に、こだわる必要はない。
AI・機械学習なら、Python, Julia を使えば良いけど
Ruby の女神・池澤あやかは、
Ruby biz Grand prix 2020 の大賞を取っているけど、
他の言語で開発しようとしても、人材が確保できなかったので、
結局、Railsで作る事になったと言っていた WEBスクレイピングしたら逮捕されるって本当ですか? jQueryのajaxでPHPの処理呼んでmb_send_mailでメール送信してるんだけど、セキュリティ的に問題あったりします?
PHPMailerとか使わないとだめかしら RSSをデータベースに格納して表示したいのですが格納がどうしてもうまくいきません。
もう48時間以上かかっていて泣きそうです。どなたか原因はわかりませんでしょうか?
$url1 = ['','','',];
// insertの準備
$stmt = $dbh->prepare('insert into hlxclitx_feed_rss (post_thumbnail, site_title, link,description) values (?, ?, ?, ?)');
foreach ($url1 as $url) {// URLのループ開始
if (($rss = @simplexml_load_file($url)) === false) continue;
// URL固有のデータを取得(これ、全部必要なの?そもそも全部存在するの?)
$site_thumbnail= $rss->channel->thumb;
$site_title = $rss->channel->title;
$site_link = $rss->channel->link;
$site_description = $rss->channel->description;
$site_description = strip_tags($site_description);
if ($desW != 0) $site_description = mb_strimwidth($site_description, 0, $desW, "…",'utf-8');
$site_thumb = '/images/dummy_thumbnail.jpg';
printf('<h2>%s</h2>', $site_title);// サイトごとに表示するなら、サイトタイトル表示はこの位置
$count = 0
// 個別記事のループ開始
foreach ($rss->item as $item) {
if (++$count > 8) break;
$thumb = $item->thumb;
$title = $item->title;
$link = $item->link;
$description = $item->description;
$dc = $item->children('http://purl.org/dc/elements/1.1/');
$date = date('Y-m-d H:i:s', strtotime($dc->date));
// データを取得し終えたら、その内容を executeメソッドで書き込む
$stmt->execute([$site_thumbnail, $site_title, $link, $description]);
if ($count === 1) print('<ul>');// 取得した記事データの表示
printf('<li>%s:%s:%s</li>', $title, $link, $date);
} // 個別記事のループ終了
if ($count) print('</ul>');} // URLのループ終了 解体して表示だけ取得だけ全部試しました。
それなのにinsert into?が原因で格納に失敗します。
データベースの名前カラムすべて見直しました。
何が原因でしょうか? コンソールに、データベースのエラーメッセージが出ていないの?
そのエラーメッセージで検索すれば?
例えば、Ruby on Rails では、
SQLite のコンソールを使わなくても、
Rails console から、直接データベースを更新して、内容をチェックできる >>262
$desW ってどこかで設定しているの? https://www.sejuku.net/blog/24522
ubuntuで使っててここじゃないページでSQLのエラー表示の方法
みかけたけどどこか忘れた RSSを格納するときにエラーが出ていたので格納したところ、Base table or view not found: 1146 Tableと表示されておりました。
どうやら、モデル名.テーブル名に格納するようになっておりこのモデル名が邪魔なようです。どのように解決すればよいでしょうか?
lavelでの解決法しか出てこなくて困っております。 >>264
$desWは設定し忘れておりました。すみません。
格納がことごとく失敗してそこばかり修正していたので冷静に全体まで目が通ってないかもしれません… データベース名が複数存在しておりconfig.phpに記載されているdbnameと異なるものを新規で作成したためエラーが起こっておりました。デフォルトのデータベースにテーブルを作成したところ成功いたしました。
コードを修正するあまりデータベースの基本操作の理解をおろそかにしておりました。誠に申し訳ありません。 PHP初心者です。
index.phpにrequireでDBからデータ取得する共通処理を呼び出して表示をしていますが、キャッシュのせいかデータを更新しても古いデータが表示されてしまいます。
index.phpにheader(“Cache-Control: no-store•••のキャッシュ無効化を書いたら正しいデータが表示されるようにはなりましたが、imageとかcss等もキャッシュされないとサイトが重くなるのでは?と思っています
どうするのがいいでしょうか? >>269
普通はそんなキャッシュされないんだけどね
ブラウザの履歴全部消して、追加したheader()も削除して、index.phpを開いた時のリクエストヘッダとレスポンスヘッダさらせば、原因がわかるかもね >>270
ありがとうございます
レンタルサーバのキャッシュの設定ぽかったです
header(‘Cache-Control: no cashe’)で回避することにしました for文の入れ子が理解できません
コードを見て、どういう結果が出るのかっていうのはわかるんですが、意図通りの結果を出す為に1からどうコードを書けばいいのかがわからないんです..
以下を表示するためのfor文について、コードの組み立て方を教えてもらえないでしょうか
***1
**121
*12321
1234321 *は出力していないけど、
for ($i = 1; $i < 5; $i++) {
for ($j = 1; $j < $i; $j++) {
echo $j;
}
for (; $j > 0; $j--) {
echo $j;
}
echo PHP_EOL;
} *をリピートで出力。数字を出力。改行。以上
for ($i = 1; $i < 5; $i++) {echo str_repeat("*", 4-$i) . ((10**$i - 1)/9)**2 . PHP_EOL;} 上から何行目かを表す変数を、line_number とすると、
例えば、それが3(行目)なら、その行内の最大値が3となる
*12321
次に左側から、1,2,3 と、1からline_numberまで増やしていき、
そこから、line_numberから1まで減らしていく。
つまり、123 となって、21 となる。
ここで、12321は5文字(*を含まない)となり、number_length に5を保存する
次に、*を含む各行の文字数は、1〜4行目が4〜7文字なので、
*を含む文字数 = line_number + 3 となるので、
*だけの文字数 = line_number + 3 - number_length となる
例えば、3行目なら、3 + 3 - 5 = 1 となる >>272です。
皆様ありがとうございます。
いただいた回答をじっくり見て自分でも再度考えてみます。 html形式のメール送る時ってマルチパートメールにします?
書き方調べるとサイトによって違うし今どきhtmlメールだけでもいいかなとか思えてきた Ruby on Rails のAction Mailer では、
a.text.erb, a.html.erb という2つのテンプレートがあると、
Action Mailer は、それぞれのテンプレートから、HTML メール・テキストメールを生成し、
マルチパート形式のメールとして、ひとつにまとめて自動的に送信します
ERB とは、Embedded(埋め込み)RuBy の事で、
<% Rubyの構文の断片 %>, <%= Rubyの式 %>
を使って下のように、あらゆる文書形式に、Rubyスクリプトを埋め込める
<h1><%= @inquiry.name %> 様 から問い合わせがありました。</h1>
<p>・お問い合わせ内容</p>
<p><%= @inquiry.message %></p>
@変数名は、クラスから作られたインスタンス変数です 質問失礼します
現在フォームを作成しているのですが、
送信ボタンを押されていない時に送信してください!という文字を表示し、ボタンを押されたら送信完了しました!という文字を表示したいです
どうすればできるでしょうか? すごく難しい質問だけど理屈が分かれば簡単
つまり、
送信ボタンを押されていない時に送信してください!という文字を表示し、ボタンを押されたら送信完了しました!という文字を表示すれば完成するよ Ruby on Rails では、何かアクションをして、ページ遷移してから、
メッセージを表示する機能を、flash メッセージと言う
内部的には、表示するメッセージをセッションに保存しておいて、
ページ遷移したらメッセージを表示してから、
メッセージをセッションから削除する >>280
JavaScriptじゃない?
PHPでできるんか? flockでLOCK_EXを指定してロックした場合、別プロセスで同じファイルに対してアクセスした場合には
ロック解除されるまで具体的にはfopenで待たされているという認識で合っていますか? いいえ
fopenではなくflockを呼んだ時に待たされます もう一つすみません
flockで待たされている間、何らかの問題でロックされたままになってしまった場合はどうなるのでしょう?
max_execution_timeに引っかかりページエラーとなり、その後ロックも解除されるのでしょうか? 異常終了であってもスクリプトが終了した時に開きっぱなしだったファイルは閉じられるでロックも解除される >>280
最初から「押してください」と表示しといて、post先のphpで「あざっす」と表示すれば良いのでは? 押した時ではなく
応答で変わるでは
意図が違うかも >>290
とてもすっきりしました
ありがとうございました! >>280
Ruby on Rails のダブルクリックによる二重投稿の防止では、
送信するボタンを押すと、送信中...と表示が変わって、押せなくなる。
f は、form オブジェクト
<%= f.submit "送信する", class: "btn", data: { disable_with: "送信中..." } %>
こういうフレームワークを使っていないと、5ch みたいに二重投稿される >>291
すいません、その最初から押してくださいの表示はどんなコードを入力すればできますか?
今やってるコードでは送信しても送信前の文字が残ってしまいまして rssをデータベースに登録してそれを表示したいのですがやり方がわかりません。
どなたかアドバイスくださいお願いします。simplexml_load_fileを使わないとデータベースから値の取得はできないのでしょうか?
1.//まずデータベースに接続する
try {
$dsn = 'mysql:dbname=hlxclitx_wp1;host=localhost';
$user = 'hlxclitx_wp1';
$password = 'E.HrypHWxNmltXgC5eS26';
$dbh = new PDO($dsn,$user,$password);
$dbh->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);//エラーが発生した時に、例外を投げる
echo "データベースへの接続が出来ました";
}catch (PDOException $e) {
echo $e->getMessage();// err時はメッセージを表示
exit;}
2.//RSSをまとめる
$url1 = ['http://blog.livedoor.jp/dqnplus/index.rdf','http://alfalfalfa.com/index.rdf',
'http://himasoku.com/index.rdf',];
3.// insertの準備 テーブルに格納する準備
$stmt = $dbh->prepare('insert into rss_feed (title, link, date) values (?, ?, ?)');
$sql->execute([$title, $link, $date]);//DB用のエスケープ処理をPDOに丸投げしたいから
4.// テーブルのデータを解析してそこから表示するURLはテーブルに保存するとき以外使用禁止
foreach ($stmt as $わからない) {
$count = 0;
if (++$count > 8) break;
5.// 取得した記事データの表示
if ($count === 1) print('<ul>');
printf('<li class="sitelink"><a href="%s">%s</a></li>', $link, $title);
printf('<li class="sitelink"><a href="%s">site</a></li>', $link);
printf('<li class="sitedate">%s</li>', $date);
printf('<li class="sitethumb"><a href="%s"><img src="%s"></a></li>', $link, $thumbnail);
print '</ul>';//表示
}if ($count) print('</ul>');} 何回も修正しているんですが仕組みがわからずコードをどう修正すればいいのかわかりません。 >>295
echo '送信してください';
echo '<form>';
// ここにフォームの内容
echo '</form>';
送信しても送信前の表示が残るってことはpostでページ変遷させてないんですかね
あなたのコードをここに貼ったほうがいいかもです >>296
PHP には、O/R マッパーは無いの?
わざわざ自作しないといけないの?
例えば、Ruby on Rails みたいなフレームワークでは、
Active Record と言うO/R マッパーを使うので、自動的にデータベース操作できる
それを、HTML テンプレート内に、ERB で書く。
例えば、すべてのユーザーを1人ずつ取り出して、各人の名前・email を表示する
<% @users.each do |user| %>
<tr>
<td><%= user.name %></td>
<td><%= user.email %></td>
</tr>
<% end %> RSSをDBに入れる質問してるやつって>>299の自演じゃね? 普通POSTすればサーバーで処理をして返すから、それを表示するだけで良いはず この案件を紹介されましたが客観的に見てどうでしょうか?
プロの方から見て魅力的ですか?
▼業務内容
・新規事業(オンライン展示会サービス)の開発業務で以下の対応をお願いします
- Laravel / Vue.jsを使ったオンライン展示会のプラットフォームの開発業務
- オンライン展示会の主催(自社プラットフォームを使用)
▼必須条件
・LaravelとVue.jsを使用した開発実務経験 (3年以上)
▼歓迎条件
・PHP、JavaScript、SQL、AWSを使用した開発実務経験
・新規事業の立ち上げ経験
▼稼働
・正社員前提採用
・平日日中の週2日〜(週5日歓迎)
・1日8時間程度
・土日祝稼働可
▼報酬
・時給:2,000円〜4,000円
・正社員の場合380万円〜750万円/年 >>299
PHPでもフレームワークにはORMはだいたい付いてる >>296
>printf('<li class="sitelink"><a href="%s">%s</a></li>', $link, $title);
こういうように、HTML タグを、文字列から作っているけど、
HTMLエスケープされるのか?
<, > など、HTMLで特別に解釈される文字が入っても大丈夫なのか?
Ruby のERB では、
<%= user.name %>
みたいに、<%= 〜 %> で、HTMLエスケープされるから安全だけど RSSを纏めて出力するために何故DBを敢えて使うのかが謎なんだが PHPのスレなのにRubyの話している奴はガイジだからスルーしましょうw php5からphp7へ書き換えているのですが、
メールアドレスを抽出する部分をeregiからpreg_matchに変更して/ /iを足したところ
falseが返ってくるようになりましたが、どのように修正すればいいのでしょうか?
preg_matchとは違うものを使うのでしょうか?
https://paiza.io/projects/SopBb8b8jFfJrz4SBr8rHw eregからpreg_matchに変えるとエスケープしないといけないのですね
記号がこれだけあるとどれに加えて良いか難しいです・・ >>305
何でか考えたんですがコンテンツが重複するからですね
ページごとに固定で配置した場合記事が被ります index.phpにRSSを固定で置いた場合、1ページ目と2ページ目に同じのが表示されてしまっては意味がないです もう1点聞きたいんですがRSSをデータベースに入れた場合コンテンツの重複を確認する事は不可能ですよね?
クローラーでタイトルもURLも全部取っ替えられるので、最大100件格納するシステムにしてテーブルにあったら出力しないようにするのが良いのか、表示する時に重複は除外するのか
DBに保存せずにページが変わっても重複を避ける方法がありましたら教えてください48時間以上戦っていて限界がきてます >>298
なんとかできました
ありがとうございました コンテンツの重複とは、何の項目で判断するの?
普通は、URL とかだけど
また、データを何日で捨てるの?
何日間、同じデータを使うの?
例えば1日なら毎日、1週間に1回なら1週間毎に、
すべての古いデータを削除して、
すべての新しいデータを挿入していく
挿入していく処理中で、
URLなどの項目を、unique にしておけば、重複インサートできない
他には、同一のURLだけど、ファイルの内容だけが異なるのを判断したいのなら、
ファイルの内容から、MD5 みたいなハッシュ値を計算して、
それを保存しておいて比べるとかも出来るけど、
まあ、すべてのデータを削除して、
毎回、空の状態から始める方が分かりやすい・バグりにくい RSSの切り替えは基本的に相手側に合わせる事になると思います
基本は1日で切り替えていくつもりですが
uniqueで切り替えることを検討してみます
重複で保存しない、表示しない
データの保存は全部で10ページ分の360コンテンツを考えており、自分が調べた限りでは重複を避けるにはセレクトでテーブルとカラムを指定して値が入っているか確かめる方法を見つけました。
数についてはプライマリーキーを元に再現する方法を見つけました。 もう1点お聞きしたいのですが、insert intoでデータベースにRSSを格納した場合、RSSの更新で勝手に中身が切り替わるのでしょうか?キャッシュされない限り保存できるのでしょうか? 自分でupdateしない限り中身が変わる事などあり得ないのだがw
そもそもプライマリキーが何か知らないけど、updateしないでinsertし続けるのなら
自分でソートでもしないと最新は取れないし、どっちにしても勝手に中身が変わる事などあり得ないw >>302
> ・時給:2,000円〜4,000円
時給3000円以上になるなら、まぁまぁ
2000円とかありえん 90以上のWordPressのテーマとプラグインにウェブサイトへの
不正アクセスを可能にするバックドアが仕込まれていた きちんと理解できて無いんだがプレースホルダーというのはpdoを使った場合にのみ使えるの? あらまpdoを使った時のsqlインジェクション対策に使う :hoge のことを指すと思ってたわ
mysqliでプリペアドステートメント使ってみて、その時「?」をsql文に入れてbindしてexecuteしたけど、この「?」はプレースホルダーとは言わないの? >>302
それ実質年収380万でしょ どこの田舎?
東京だと舐めてるとしか思えない条件だけど、島根や秋田とかならありなのかな? >>327
(立地や人口的に)平均賃金がかなり低そうなイメージがあるからだが? [Rails] whereメソッドの「?」(プレースホルダ)
https://zenn.dev/yusuke_docha/articles/f04fb2cbd22508
Ruby on Rails でも、SQL injection を防ぐために、placeholder を使う
published.where('published_at < ?', 変数) PHPの案件引き継いだが
前任者は沖縄から遠隔で開発やってたぞ 質問です。
ubuntu+PHP7.4使ってるのですが、mbstringってインストール
しなくてもやっていけるでしょうか。
必要ないなら設定とかもよくわからないので入れたくないです。 >>333
ありがとうございます。
別に必須ではないのですね。 フォームなどで日本語文字列の入力が発生しないならば ajaxからPHP呼んで、PHPのcheckdateでありえない日付だった時、ajaxに帰ってくる結果がparsererrorになるんですがどうしたらいいですか?
PHP内でエラーは起きてなくて、試しにtry-catchしたけど意味なし。
正しい日付の時は結果は問題ない。
ありえない日付と正しい日付で返す結果を同じにしても変わりなし。
checkdateでありえない日付指定しただけでparsererrorになってしまいますが、そういうものですか…? エラーにしないと、ありえない日付、
例えば、2022/2/29 がデータベースに入ったら、えらいことになる
まさか、そういうバグがデータ中にあるとは、誰も想定していない >>337
で、PHPが返す結果(=Ajaxが読み取るデータ)はどういう形式にしてるの?
普通はJSONで返すと思うが、まさかPHPのtrue or falseをそのまま返してるみたいなオチでは >>338
何言ってんだこいつ…w
質問の意味分かってるのか >>337
すみません、解決しました。
checkdate全然関係なくて、初期化されてない変数を判定に使っててwarning が返却されてました。
デバッグしてもPHP上では問題なく動くから気づかんかった。。 お二人とも素早いレスありがとう
>>338
わかり辛くてすまんかった。。
>>339
>>341というオチでした。。
デバッグの時warning教えてくれよと思った。
スレ汚してすまんかった。 PHP7っていつまで使えると思います?
昨日、Laravel9がリリースされましたが、PHP8以上とのことです。
今後Laravelで開発するならPHP8に移行しなきゃいけないと思いますが、
PHP7から8ってすぐには移行できないと思います(サーバの問題で) >>343
サーバの問題で以降できないとは?
異なるバージョンのPHPを共存させる事もできるのだし、自分にサーバを触るスキルが無いだけじゃ無いの?
例えばRHEL系ならyumでしかPHPインストールできない!なんて言わずにソースコードからインストールしてみればいいだけ
やれば分かるが意外と簡単なのでやらない(やれない)奴が悪いだけ
サーバを絶対に触らせてもらえない環境ならご愁傷様だが… >>345
サーバの問題(テスト環境の構築と試験の為の予算も人材も無い) >>347
悲しいなぁ
>>346
それ、プログラミングやUNIXの板では煽りにも何にもならんわなw
私はスキルの無いバカでーすって自己紹介してるだけ レンタルサーバーなら有名所は8が入ってるのでいいとして、
VPSやクラウドなんかの運用中サーバを簡単にいじれないと思います。
完璧に問題が起きない自信があるなら別ですが、
共存にしてもWEBサーバ側の問題があるわけで、
リスクをおかせず古いOS・プログラムのままってケースが多いのではないでしょうか 仮想にして、見かけ上複数のWebサーバー立ててできないものなのか そもそもレンタルサーバーなんかでPHPやろうと思っているのが間違い
AWSでも無料枠あるし普通に何でも出来る所でやるべきでは無いかと
それとAWSで簡単な環境ぐらい構築出来ないとこの先生きのこることが出来ない dockerのalpineコンテナで
バージョンを指定せずにphpをインストールすると7がインストールされました
これはまだ安定性などから7が推奨されているということでしょうか?
特に8を使いたいということでなければこのまま7を使う方がいいですか? 調べるとPHPの各バージョンのサポート期間は
アクティブサポート2年+セキュリティサポート1年の3年で
PHP7.4は既にアクティブサポートが過ぎているので、
今ならPHP8.0がよさそうですね 自作でページャーを作ってるんですがうまく行きません
以下に問題があるみたいなのですが教えて頂けないでしょうか…
page_numには現在ページが、lineには1ページでの表示数が、data_arrayには全データが入ってます
/**
* 対象のページに表示するデータを配列で戻すメソッド
* 引数:なし
* 戻り値:表示データ(配列)
*/
public function get_data(){
// どこから表示するか
$number = ($this->page_num-1)*$this->line;
// 表示したいところから一ページ分(lineの値分)取得
$display_data[] = array_slice($this->data_array,$number,$this->line);
return $display_data;
} 自作なんてやめてフレームワーク使うか他人のコードをパクったほうがいいぞ
どうせ誰が書いても同じコードになるんだからそんなものに時間を費やすなんて無駄にしかならない >>360
具体的に何が問題なのかわからんが、そのメソッドの処理だけみると正常系は問題ない様にみえるけど >>360
問題があると思うという事はエラーメッセージでも出てた?
出てるなら情報頂戴
>>363
>>363 Ruby on Rails のpagenation では皆、kaminari を使う。
kaminari用の日本語辞書、Bootstrap のテーマもある
フレームワークを使わずに、ウェブサイトの全ての機能を開発するのは、無理。
ログインなど、色々な機能が必要になるから、その度に自作するのは無理 職業訓練校でphp学ぶのはアリですか?
progateはやりましたがイマイチ身になってる気がしません なんでもやってみて自分に合うか確認してみればいい
他人と自分は違うもの
それも自分で探していけないと身につかない 最初に勉強するにはPHPは良いとは思うが
コンピュータ的な知識、webの知識などが一切ないと多分チンプンカンプンじゃないのかなと思うけど
どんなふうに教えてもらえるのかね・・・ 身につけたいだけならネットで十分
就職につなげたいなら訓練校一択 どうしてもWebがいいなら止めはしませんがなしですね
スマホ時代なのでやってればJava
汎用性ならJavaScriptもしくはPythonがいいです PHPのスレでPythonとかw
そもそも仕事無いやろw
それにJavaってw
Androidの仕事よりwebを覚えた方が圧倒的にいい ある程度大きなシステムになるならJavaの方が良いかもしれないが
中規模ならPHPの方が見通し付けやすい
もちろん人にもよるが PHPもPHP3の頃はPerlよろしくグダグダだったが、
PHP8.1に至るまで予想してたよりまともに進化したなぁ。
8.1くらいまでの機能があれば、言語的な不満はあまり出ない域に入ったんじゃなかろうか。 >>371
Java=Androidというのはちょっと短絡的ですね
あげた言語はある程度なんでもできる言語ですよ
もちろんWebもいけます
事実上Webしか使いみちのないPHPとは違ってね
今日日PHPが担うバックエンドなんてのは
DB処理を行い結果返すだけのAPIなので言語なんてなんでもいいんです 今の様々なシステムはほぼWebで動かすと言う前提がある
Web以外はあまり需要がない >>360
いまいち分かりづらいしどんな不具合があるのか書いた方がいい
>>data_arrayには全データが入ってます
この処理はあまりよくない
100件ならいいし、1000件でもいいかもしれない
しかし、1万件、10万件と増えると無駄が多い
取得するレコードを何件から何件取得するというSELECT文にした方がいい >>374
バックエンドのJAVAなんてゴミやん・・・
業務用のつまらん仕事したいならアリだけどw
そもそも殆どの仕事がweb絡みなのに開発効率のいいPHPを覚えるだけで十分やし
JAVAみたいな開発効率悪そうな言語をわざわざ使う必要は無いのだよw
俺はandroidもやってたからJAVAは分かるけど
似たような言語ならUnityで使えるC#覚えた方が仕事もありそうだ >>377
でも、jarとかwarで配布されるツール結構あるけど
JenkinsとかMetabaseとか
何でJavaを選択したのかしらんけど、開発効率とかパフォーマンスとかが良かったりするのかな?
アップデートが楽なのは確か >>378
一時期はアプリも何でもJavaで作ってたぐらい勢いはあったと思う
JavaFXなんてものもあったし(今はOpenFX?に変わったようだがw)GUIのアプリを作れる環境はあった
SunがOracleに買収されたりして色々Java自体がメンドクサイ事になって
今時webでもJavaやデータベースのOracleはお堅い所しか使ってない印象かな
ジェンキンスとかはJava繁栄時代の後期ぐらいのリリースだろうから当時は何も疑わずに採用したのかと
かといってJavaがダメとは全然思ってはないけれど、コンパイルしないとダメな時点でメンドクサイなぁと
そんな事言ったらVueなどもトランスパイルするからメンドクサイやんwという意見もあるかもしれんがw
Javaは処理速度的には今でもメリットはありそうだけど、PHPも相当高速化してきているし開発効率や使える人の数からして
中小のプロジェクトでは俺がプロジェクトリーダーならバックエンドはPHP以外採用する気になれないなぁ 定期的にCRONで実行しているPHPプログラムにおいてCSVファイルにどんどん追記していく処理があります
ユーザーはブラウザで好きなときにそのCSVファイルをダウンロードするのですが、上記追記処理と
ダウンロードがたまたま同時になると、追記途中のCSVがダウンロードされる恐れがあります
PHP側ではflock LOCK_EXをかけてはいますが、ブラウザからのダウンロードはロックできないようです
(サーバーによる?)
これの対策をするにはどうすればいいでしょうか? 追記処理中のダウンロードリクエストはリダイレクトして飛ばす >>381
複数の方法が見えてきました
どうもありがとうございます PHPが他の言語に比べて劣ってる部分は?
ペチパーって呼ばれてバカにされてる要因も述べよ 劣っている部分というより全てが劣っている
そもそも開発者自体が認めている 1ページの投稿をブロックに分けて1ページあたり2ブロックとしたいのですが、
$block_per_page = 2; //ページあたりブロック件数
こちらの文のみでブロック数として使うことは可能なのでしょうか?
1ページあたりのブロック数を使いたいんですがphpでどのように書けばよいのかわかりません。
教えてくださいお願いします。 phpの中にhtmlより、htmlの中にphpとしたほうがコードがスッキリするでしょうか?
echoによるhtmlの出力をゼロに出来るか分かりませんけど 個人的にはそっち観点よりvscodeで書いてる時に求めてるもので分けてる
リアルタイムプレビューならhtml
デバッガならphp HTMLの部分は制御構文(ifやforeachなど)以外のコードを含ませないのが一般的かと
関数みたいなものをHTMLから呼ぶのは構わないが、そのコードは別に書いた方がいいかと どうも
どうしてもphp内にhtmlを埋め込まなければいけない場面というのは、出てくるのでしょうか? 表を出力したいとき、固定表示部分をHTML型式のまま出すというのはあると思う もともとshtml系のゴチャ混ぜ言語だろ
偉い人があとから使い方を考えても変わらんよ http://yahoo.warotamaker2.com/feed/445881767/
アンテナサイトについてなんですが、アンテナサイト自身もRSSを配信シてるって感じなんですよね
まとめサイトのRSSを取得して表示するだけでなく、その表示したRSSを配信もしているという仕組み? php内にhtmlを埋め込まなきゃいけないことがあるとかじゃなくて、どちらがコードを書く手間を省けるか好みや思想でしょ
ユーザーから見たらどっちでもいいことなんだし >>390
phpファイルにプログラムを記述するときは、php部分とhtml部分は、ごちゃ混ぜにならないように、
なるべく分離して書くようにするのがいい。
そして大抵の場合、ロジック部分であるphp部分がファイルの前半に来て、
その結果をファイルの後半でhtml部分で出力することになる。 >>399
分けたほうがやはり混乱しないですよね。
なるべくということですが、どうしても埋め込まないといけない場面はあるんですかね? https://ideone.com/UjQy6v
サンプル作りました
li部分はどうしても埋め込まないといけないのではないですかね? >>400
あるかないかで言えば、ある。
どうしても埋め込まないといけない場面はある。
MVCとかで調べるといい。
Modelの内容をViewに渡す方法には色々ある。 つーか、コードを書き込もうとしたらエラーになるのね。
Sorry, you have been blocked
You are unable to access 5ch.net >>402
回答遅れました。
できるだけ分けるようにします。
htmlの中にphp埋め込むには、phpを別ファイルにする必要がありますね。 http://2ch-c.net
phpで検索機能を作る場合、データベースへのデータの登録は必須なんでしょうか?
こういうアンテナサイトの検索機能を作りたいです。
rssはsimplexmlで取得してます。 phpでrss配信するには、wordpressなどを使ったほうが良いんでしょうか?
大げさですかね?
rssをまとめサイトから取得し、取得したものを記事としてまとめ、その記事を配信するという感じです。 たまにまとめサイトの記事一覧だけのゴミサイトがあるな
今時あれどこに需要があるの? ず〜〜〜〜っと完成しないよね 完成させる気は無くてプログラムっぽい話したいだけなんだろね 入力値が日付文字列かの検証をするのに
$str = '2000/01/10';
$arr = preg_sprit('/([ \ / \-])/' , $str); ←見にくいのでスペースを入れてます
if(count($arr) == 3 && checkdate($arr[1],$arr[2],$arr[0])~省略
この正規表現だと2000/01-10 のような / と - が混在した文字列も通してしまうのですが
これを解消する正規表現の書き方を教えていただきたいです
お願いします ハイフン必要か?
スラッシュだけでいいんじゃないの どこかからコピペしたっぽいな
元のは、どちらのフォーマットでも受け付ける趣旨なんだろう そもそも、preg_spritやcheckdateをする前に、入力値が正しいフォーマットであるか
チェックした方がいいんじゃない?
単に混在のみを許さないなら、事前に混在の有無をチェックしてエラーにするとか >>414-416
ありがとうございます
phpの本から抜粋しました
> preg_spritやcheckdateをする前に、入力値が正しいフォーマットであるか
>チェックした方がいいんじゃない?
単にyyyy-mm-ddもしくはyyyy/mm/ddのような日付文字列になっているかのチェックなので
>>413のif文のところがフォーマットのチェックになってるはずなんですけど、違いますか?
explode関数で/と-のそれぞれ分けてチェックしてみます
ありがとうございました 一応、念の為、おせっかいかもだけど、
checkdateの「年は 1 から 32767 の間となります」
とあるから、yearに5桁の32767がきてもtrueになるかもしれない
間違ってたらゴメンね
https://www.php.net/manual/ja/function.checkdate.php Ruby on Rails のValidate では、View, Model の両方でチェックする。
さらに、実際に存在する日付かどうかもチェックする
さらに、そのアプリ固有の制限もチェックする。
a の日付が、b の日付以降であるとか
こうして、すべてがチェックされたものしか、データベースへ保存しない RSS の難しさは、色々なバージョンがある事
Ruby では、RSS ParserはRSS 0.9x/1.0/2.0, Atom 1.0 をサポートしていますが,
RSS 0.90 はサポートしてません
RSS 1.0をパースした場合は RSS::RDF オブジェクト、
RSS 0.9x/2.0をパースした場合は RSS::Rss オブジェクト、
Atom をパースした場合は RSS::Atom::Feed オブジェクト
だから、Feedjira みたいに、異なるバージョンを統一的に扱えるモジュールが必要 xamppで使われているデータベースソフトはmysqlというものなんでしょうか?
大規模なものを作るわけではないのですが、もっと簡単な選択肢というのはありますか? mysqlだと思ってました
確認出来ますかねどこかから 簡単な選択肢という点へのレスじゃないの
solite自体はモジュールを有効にするだけでしょ? xamppでは結構な前に、mysqlからmariadbに変更になったんじゃないかな
sqliteはただのファイルだから、xamppでもPDOから簡単に使える気がする 実行時のエラーを画面に表示させないかわりにログに吐き出したいのですが、
探し方が悪いのかerror_reportingが見つかるばかりでよく分かりません
どのようにすれば実現できますか? phpで取得した日付をデータベースに保存するために、何の関数を使うんでしょうか? 使うDBによる
ていうかそんな質問してるってことはSQLの勉強すっ飛ばしてるんだろうから
ORMとかdoctrineとかで調べたほうが良いんじゃね >>434
sql触るのはほぼ初めてですね。
ありがとうございます。
phpとはまた別物なんですよね。 すっきりわかるSQL入門第2版が分かりやすかった。おすすめ。
あと自分はPHP7+MariaDB/MySQLマスターブック読んだ。
PHP8にしてたらそのまま動くのかは不明。 phpで簡易cms的なものを作るにはデータベース必須すね、、、
がんばります sqlでテーブル作成するにはこの構文で間違ってるでしょうか?
create table tableName(
table1,
table2,
);
xampp使用です
以下エラー文
静的解析:
解析中に 2 個のエラーが見つかりました。
認識できないデータ形式。 (near "," at position 31)
カンマか閉じる括弧があるべきです。 (near "table2" at position 34)
SQL クエリ: コピー
create table tableName( table1, table2, )
MySQL のメッセージ: ドキュメント
#1064 - SQL構文エラーです。バージョンに対応するマニュアルを参照して正しい構文を確認してください。 : '
table2,
)' 付近 2 行目 さすがにテーブルの作り方くらいこんなところで聞かないでググればわかるだろ
なんでここでレス待って無駄な時間かけてるのか
質問スレだから別にいいんだが すみません 調べる能力もないので
調べたとおりやってもエラー出るもんですから そもそもSQLをなんだと思ってるんだ?
table1やらtable2やらを、create table文のそこに書いて何をしたいんだ?
どこのサイトにそこに"table"(名?)を入れろって書いてあるんだ?
せめて"column"とだけ入れてエラーになったんなら理解出来なくもないけど
意味わからん。読まずにコピペだけして全部がうまく行くと思うなよ ECサイト作りながらphpの学習してます。
MVCフレームワークの件で、
Controllerと、Modelの切り分けがよくわかっていません。
例えば、処理に対するものは全部Modelに組み込んで、
Controllerには、require_onceなど他のファイルを読み込ませるだけではいけないのでしょうか?
サンプルを見るとセッションや、データベース接続などは、
Controllerに書かれているものもあります。
結構ここらは曖昧なもの、きっちり切り分けできないものでしょうか? 質問です
phpmyadminを使って登録データを書き換える場合はsql文を使う感じでしょうか?
10年くらい前に使ってたんですが、uiから操作もできた気がします 関数になっているものは、modelにあげればいいのかな。
関数になってないものは、Controllerで。。 >>448
Ruby on Rails では、Model がデータベース、View がHTML など。
Controller がそれら以外の雑多なもの、routing など
他に、サービスオブジェクトは、fat model を避けるために、特定の機能を抜き出す
サービスオブジェクトがアンチパターンと思うなら、
concern に、1つの関心事・責務をまとめる
歴史的経緯では、fat controllerを避けるため、処理をモデルに詰め込んだ。
次に、fat modelを避けるため、サービスオブジェクト・concernが登場した
フォームオブジェクトはHTMLのForm をまとめる
他に、form presenter, model presenter は、decorator の一種だが、
View から、複雑なコード部分を抜き出す データベースの操作は、pdoというものを使うのが基本なんすか? DBはpdoで使うけどWEBアプリ作る時はWEBアプリフレームワークが用意してるDB用ライブラリで使う。
WEBアプリフレームワークが用意してる DB用ライブラリといってもdoctrine使ってるだけだったりする。
DB接続管理しないとDB接続切断漏れでメモリ使用量が増えて接続出来なくなることがあるからそういうのも管理してるDB用ライブラリを使うと良い ありがとうございます
生のphpなのでpdo使いますです $fp = fopen("unko.txt","r") or return;
ってやりたいんだけど、当たり前だけど式じゃないから
これ出来ないじゃん?
で、質問だけど、PHPに 「リターンする式」 ってある? ログインのページで
session_start();
でセッションIDが発行され、サーバー側に保存、クライアントのブラウザにセッションIDの値がクッキーに保存されることは理解していますが?
そのあとの画面遷移で、
再度
session_start();
と記述されています。
これって?画面遷移したら、新たなセッションIDが発行されるということでしょうか?
それとも、既にセッションIDが廃棄されてない状態で、
session_start();が実行する場合は、別の意味になるのでしょうか? 画面遷移したらそもそも前の画面と今の画面とは処理的に何もつながりが無いから
セッションで同じユーザーですよという判別をする訳なのだがw
一度セッション開始していれば、セッションのクッキーの有効期限が過ぎてなければ残っているから
この辺の仕組みが分かってないなら、根本的な所から勉強した方が良いのでは? ありがとうございます。
最初のページで
session_start(); はセッションIDの発行。
画面遷移後の、
session_start(); は既存のセッションIDの継続。
のような意味合いで捉えればいいでしょうか? >>465
そうだよ
session_start — 新しいセッションを開始、あるいは既存のセッションを再開する
https://www.php.net/manual/ja/function.session-start.php
簡単に言えば、セッションの機能を使いたい場合は、そのすべてのページで、
最初にsession_start()を実行することになる
参考までに、新たなセッションIDの発行は、session_regenerate_idを使う
たとえば、ログインページなどで、セキュリティのためセッションIDを別のものに切り替える ありがとうございます。
すごくわかりやすかったです。 デバッグ用の関数を考えています
変数の中見を見た後、die()で止めるにはどのようにすれば良いでしょうか?
以下だと、returnで終わってしまいますのでdie()が実行されませんでした。
function v($var){
return var_dump($var);
die();
} >>470
そうですね・・・
全然うまく使いこなせなくて、変なことやっていましたが
やはりそちらをちゃんと勉強すべきだと思いました
ありがとうございます、目が覚めました! var_dumpに戻り値ないのになぜreturnしたいのか >>472
すいません!
returnがそもそも間違ってただけでした、お騒がせしました
return消したら全部解決しました。すいませんでした。 データベースを使わずに無理やり返信機能を作ろうとしてるんですが、やっぱりまずいでしょうか?
なんでもデータベースを使うのは嫌なんですが、使わないとクラッカーの攻撃の的になって迷惑をかけると書いてあったんですが
デフォルトのやり方に沿ってデータベースを使わないと駄目なんでしょうか? >>461
それ違うくない?
やりたいのは or return 的なものであって >>475
別にファイルなどに保存(大昔の掲示板のデータなどはそうやってた)でもいいのだけど
ファイルだとアクセスが競合すると意図しない結果になる可能性があるのでロックしたりやら何気に面倒なので
今ではちょっとしたデータでもDBに保存するのが普通になっているだけ
Sqliteとかでも導入した方が良いかと思うしLinuxならmysqlとか簡単に入れられるし何故DBを避けるのか?
SQLが全く分からないようなレベルだとしたら、ファイルでやるのも難しいのでは? ブラウザは内部的に、Sqlite を使っている
そういうアプリは無数にある ファイルシステムは広義のデータベース
積極的に使おう クライアントから送られてくるCSVを処理してCSVで返す仕事をしています >>477
DBが嫌なのは実装が面倒だからですね
返信ボタンとCSVファイルだと管理が楽だと思うので やりたい事がそれで完結するなら、
それで良いんじゃないか? それでいいんならいいんじゃね
ワイだったら後からの苦労が死ぬほどつらそうで嫌だ xdebugって本番環境に入れても良いの?
リモートipアドレスでデバッグ環境が有効になるから問題無い? 入れたらダメなのね
ちなみに本番環境に入れたらとんでもない事態っておこるものなの?
想像力が欠如していてどうなってしまうかわからないです 仮に脆弱性があった場合、
通常本番に入れるべきではないとされるものを開発側の理由で入れてた責任を取れるならいいんじゃね
ipスプーフィングされちゃいましたとかもあるし、普通セキュリティリスクは極力避けるものだと思うよ その本番環境がなんだか分からないが
一般論として、本番に穴が空く可能性は極力排除 同じphpファイルにある、フォームからデータをPOSTで受け取り、
データベースにデータを登録したあと、ブラウザリロードすると重複してしまうという事象。
一つは、header関数で、自分自身のファイルへロケーション設定させる方法。
https://www.php.net/manual/ja/functions.returning-values.php
あとトークンを使う方法。
https://techacademy.jp/magazine/41842
どっち使っても問題ないですか?
どっち使っても同じなら、簡単なロケーション設定で対応したいと思いますが、ご意見ありますか? >>485
xdebugはかなり重いしport9000とかを開けないといけないので
どっちにしてもあり得ない
>>490
上のURLは間違っているし、下にサンプルコードまであるのだから下の方法で良いのでは?
セッション使わずにやることも可能ではあるけど、ユーザーを認識した処理をするなら
どっちにしてもセッションは必須なので xdebugの件ありがとうございました
サーバ移行先に少し機能を付け加えたものが動かない部分があるので、
本番運用するまでに限りxdebugを有効にするのはやっても良いでしょうか? 関係者に了承もらって勝手にやれよ。終わったら無効にしとけよ これから3年ぐらいの運用を見越して開発する場合、PHP8が必須ですかね?
普段はLaravelで開発しているのですが、8か9かで悩んでいます。
なぜ悩むかと言うと、PHP7系の情報量が多いからです。
未だにPHP5を使えるようにしているレンサバもあるし、
PHP7でも大丈夫ではないか?と思う反面、セキュリティも気になります。
目的は個人サイト用ですが、仕事でこれから開発する人は
どのバージョンを選択するか教えて下さい。 個人なら好きなの使えばいい
どうせ世の中ゴミだらけのphpだし
セキュリティなんてバージョンだけでどうにかなるようなものではない >>490
参考までに、Ruby on Rails 6 で2重送信を防ぐには、
data: { disable_with: '送信中...' }
と書くだけだったが、
Rails 7 からは、CSS で制御する方式に変わった
<button class="btn btn-primary">
<span class="show-when-enabled">送信</span>
<span class="show-when-disabled">送信中...</span>
</button>
button .show-when-disabled { display: none; }
button[disabled] .show-when-disabled { display: initial; }
button .show-when-enabled { display: initial; }
button[disabled] .show-when-enabled { display: none; } あまり知識なさそうな人なら、情報量が多いバージョン使うのが良いのでは?
ご自身もそう考えていそうだし、背中押してあげようか? phpMyAdmin も、ブラウザでデータベースを見れて便利だから、
本番へ入れる香具師も多いけど、脆弱性を狙われる webサイトの攻撃を見れる立場だと、phpmyadmin狙ったクエリが多いことに気付けるよねw
あれは最初ビビったw オライリーの本にでてたのだけど。サンプルが間違ってるのかな?
次の$dinnerの値がfalseなのに、if条件がtrueになるのは何故?
if($dinner == 'Braised Scallops') {
print "Yum! I love seafood.";
} ちなみに以下なら、if条件はfalseになる。
if($dinner === 'Braised Scallops') {
print "Yum! I love seafood.";
}
リテラルと「false」で「==」の比較をするとtrueが返ってくるの?? if(isset($_POST['input1'])==false){$_POST['input1']=false;}
if(isset($_POST['input2'])==false){$_POST['input2']=false;}
if(isset($_POST['input3'])==false){$_POST['input3']=false;}
$input_set1=0;
if(true == $_POST['input1']){ $input_set1 = $_POST['input1'];}
else {$input_set1 = 0;}
if(true == $_POST['input2']){ $input_set2 = $_POST['input2'];}
else {$input_set2 = 0;}
if(true == $_POST['input3']){ $input_set3 = $_POST['input3'];}
else {$input_set3 = 0;}
$new_messages = $input_set1;
$max_messages = $input_set2;
$dinner = $input_set3; print <<<HTML_FORM
<form method="POST" action="$_SERVER[PHP_SELF]">
<ul>
<li>10,abcdef<input type="text" name="input1" >
<li>abcdef<input type="text" name="input2" >
<li>Braised Scallops<input type="text" name="input3" >
<button type="submit">送信する</button>
</form>
HTML_FORM;
print "$new_messages <br>";
print "$max_messages <br>";
print "$dinner <br>";
print "This is always printed.<br>";
if ($new_messages == 10){
print "You have ten new messages.<br>";
}
if($new_messages == $max_messages) {
print "You have the maximum number of messages.<br>";
}
if($dinner == 'Braised Scallops') {
print "Yum! I love seafood.";
} オライリーの「はじめてのphp」から。
の一部のコードを参考に、フォームからの入力で条件を確認しています。
3つ目のフォームが空の場合、$dinnerはfalseになるのですが。
($dinner == 'Braised Scallops')の場合、trueになるのです。
これまで、==で比較することなかったので、その結果に違和感があるところです。 0はfalseではないのですか、、。
調べてみます。ありがとうございます。 こんなの気にしながらコード書きたくないからstrcmp系一択だわ ちなみに、phpのバージョンは7系でした。
# php -v
PHP 7.3.28 (cli) (built: Apr 27 2021 17:19:33) ( ZTS MSVC15 (Visual C++ 2017) x64 )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.28, Copyright (c) 1998-2018 Zend Technologies 確かに 0 と false では挙動が違いますね。
すごくもやっとします。 自己解決しました。
https://so-zou.jp/web-app/tech/programming/php/grammar/operator/comparison.htm
==で比較するとき、
整数0 と 文字列'PHP' で true
整数1 と 文字列'PHP' で false
のようです。気味わるいですが、そうみたいです。 ありがとうございます。
でも、そうなのかなあ。
==の比較の場合、数値0 と false は結果が異なる。
っていうだけの話のような。。 君の最初の疑問は
if(0=='php')
の挙動が本と実機で異なるってことなんで、まずそこから理解するといいよ
で、この比較は
https://www.php.net/manual/ja/language.operators.comparison.php
の「さまざまな型の比較」にあるように
> 文字列やリソースを数値に変換し、算術演算を行います
この数値変換が8以降で挙動が変わったってのが回答
ちなみに参考にしたブログは 0=='php' が TRUE なので、現行のphp Active Support バージョンにおいては間違った情報を垂れ流していることになる > の挙動が本と実機で異なるってことなんで、まずそこから理解するといいよ
ん?違うのか?
単純に
if(0=='php')
が TRUE になるのが気持ち悪いってことなんかな?
それなら、8系で修正されて直感と揃ったぞってことだね >>496
jQuery で、ボタンをenable/disable に切り替える例
<button id="btn_1" class="btn btn-primary">
<span class="show-when-enabled">送信</span>
<span class="show-when-disabled">送信中...</span>
</button>
<button id="btn_2">送信ボタンをenable にする</button>
<style>
button .show-when-enabled { display: initial; }
button[disabled] .show-when-enabled { display: none; }
button .show-when-disabled { display: none; }
button[disabled] .show-when-disabled { display: initial; }
</style>
$( function ( ) {
$( '#btn_1' ).on( 'click', function ( event ) {
$( this ).prop( 'disabled', true ); // disable にする
} );
$( '#btn_2' ).on( 'click', function ( event ) {
$( '#btn_1' ).prop( 'disabled', false ); // enable にする
} );
} ); >>515
>if(0=='php')が TRUE になるのが気持ち悪いってことなんかな?
そうです。そうです。
Javascriptだと。
if(0 == 'php'){
document.write("this is true");
}else{
document.write("this is false");
}
//"this is false"が表示されるのが普通なので。
もやっとしてましたが、ver8では改善されているのですね。
詳しい説明ありがとうございました。 JavaScript では、== は使わない方がよい。
常に厳密等価演算子、=== を使うべき
型違いは危険だから、TypeScript が出来た
こういうバグは、全部テストできないから厄介 >>518
>JavaScript では、== は使わない方がよい。
>常に厳密等価演算子、=== を使うべき
↑
これはPHPには当てはまらないのですか?
もっともなんとなくphpでも、比較するときは===を使ってますけど。 タイトルのみ
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
画像と画像の下にタイトル
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
画像と画像の右にタイトル
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
<ul><li>〜</li></ul>
上記のように出力しているのですが、ul を1個ずつにする方法を教えてください、どうしてもわかりません。 $block_per_page = 2; //ページあたりブロック件数
$rss_per_block = 18; //ブロックあたりRSS件数
//RSS読み込み
$rss_per_page = $block_per_page * $rss_per_block; //ページあたりRSS件数
$rss_offset = ($current_page - 1) * $rss_per_page; //RSSオフセット
$sql = 'SELECT * FROM rss_feed ORDER BY date DESC LIMIT ?,?';
$stmt = $dbh->prepare($sql);
$stmt->bindParam(1, $rss_offset, PDO::PARAM_INT);
$stmt->bindParam(2, $rss_per_page, PDO::PARAM_INT);
$stmt->execute();
$rss_items = $stmt->fetchAll(PDO::FETCH_OBJ);
//RSS表示
for ($i = 0; $i < $block_per_page; ++$i) {
for ($j = 0; $j < $rss_per_block; ++$j) {
$item_index = $i * $rss_per_block + $j;
if ($item_index >= count($rss_items)) {
break;}
$item = $rss_items[$item_index];
$title = "<a href=\"{$item->link}\">{$item->title}</a>";
if (empty($item->img)) {
$img = 'wp-content/uploads/2021/12/EXt1cESWAAAwdOY.jpg';
} else {
$img = $item->img;}
$image = "<a href=\"{$item->link}\"><img src=\"{$img}\" width=\"100\"></a>";
if ($j >= 0 && $j <= 4) {
echo "<li class=\"sitelink\">{$title}</li>"; // タイトルのみ
} elseif ($j >= 5 && $j <= 8) {
echo "<li class=\"sitelink2\">{$image}<br>{$title}</li>"; // 画像と画像の下にタイトル
} elseif ($j >= 9 && $j <= 12) {
echo "<li class=\"sitelink3\">{$image}{$title}</li>"; // 画像と画像の右にタイトル
}} PHP8からの「文字列と数値の比較」は、この公式ページがわかりやすい
https://www.php.net/manual/ja/migration80.incompatible.php
(厳密でないやり方で)数値と非数値文字列を比較する場合、 数値を文字列にキャストし、文字列と比較するようになりました。
数値と数値形式の文字列の比較は、以前と同じ振る舞いをします。
注意すべきなのは、これによって、 0 == "not-a-number" が false と見なされるようになったことです。 つまり、PHP7では、
(厳密でないやり方で)数値と非数値文字列を比較する場合、文字列を数値にキャストし、数値と比較していた。
これによって、 0 == "not-a-number" が ture と見なされていた。
0 == "not-a-number"
この式は、次のようにキャストされて比較される
PHP7・・・0 == 0・・・true
PHP8・・・"0" == "not-a-number" ・・・false ありがとうございます。
なるほど。今7系のPHPで勉強してるけど。
$a =1 + "2";
echo $a;
これが 3
になるってのも、もやっとしてたんだけど
そこにつながるのですね。 >>520
>>521
に、ul が無いから、ブラウザが自動的に補完したのでは? さすがにブラウザが勝手にhtmlコードを追加することないですよ。
そのコードが本当に出力されているのなら、Javascriptなんかで<ul>を生成されているんじゃないかな。 >さすがにブラウザが勝手にhtmlコードを追加することないですよ。
あるよ >>528
chromeのコンソールで今やってみたけど
ul、liの開始タグだけ入力しても、ブラウザが終了タグを補完してからhtmlを描画する
https://i.imgur.com/RQ5uRzX.png
https://i.imgur.com/vbsdbFi.png ただ>>525はないかな
ブラウザからすると、liの親がulかolか判断できない 開発者モードで書き込み中の不備のタグを補完するのは、
単にエディタの補完機能と同じじゃん。
もともとソースコード問題があっても、ブラウザは生成するソースを変更しないよ。
ブラウザがやってるのは、描画時に問題がないように解釈するだけ。
Document変えるのはJSとかでしょ。
先のは、生成されたソースことなんだろうから。 <li>の親に<ul>を挿入するよう、JSでやってるんでしょ。
なんで、JSの問題じゃね。phpとはすれ違い。 ちゃんと文脈読もう
ブラウザが勝手にhtmlコードを追加する事はあるよ
>>530の言うように525のような補完方法はないけど
その前に下記の意味が分からんのだけど
>上記のように出力しているのですが、ul を1個ずつにする方法を教えてください、どうしてもわかりません。 補完とはどういう意味かなあ。
確かに、問題のコードは常にブラウザ内で補完しているよ。
でも、ソースコードを書き換えない。
これでわかる? どんな補完しているかは、ユーザー側でわかりっこない。 >>534
その前に下記の意味が分からんのだけど
>上記のように出力しているのですが、ul を1個ずつにする方法を教えてください、どうしてもわかりません。
多分こうしたいんだろうけど、<ul>がどう出力されているかわからんので、回答しようもない。
↓
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul>
<ul>
<li>...</li>
<li>...</li>
<li>...</li>
<li>...</li>
</ul> >>537
最初からその回答してれば終わってたんやで 質問がグダグダ過ぎて、みんな回答する気が失せてんだよなあ。 そもそもまともにHTMLすら書けないのにPHPが書ける訳無いよね・・・
これだけ質問しても出来ないという事は才能無いだろうし
金払って優秀な人に教えてもらうとかしないと自力では無理でしょw 公式サイトの日本語って何か難しくない?
Qiitaとかで調べてからじゃないと公式の言ってることがわからんことがある DB処理の格納接続表示を3つまとめたのですが重すぎてタイムアップになります
これを3つ分けて書いた場合負担は軽減されますでしょうか?
またファイルは分けた方が良いでしょうか? 通常のサイトでレンタルサーバーを使う場合データベースを10個も動かすことはできるんでしょうか? なんでサーバー仕様のことをサーバー会社に質問しないでphpスレで聞くんだ 重すぎるかどうかは、実行計画を見ないと分からない。
実行計画に、full scan・総当たりがあったら遅くなる。
総当たりは計算量(N)、つまりレコード数に比例する
インデックスを使えば、計算量(log N)になる
レンタルサーバーは他人のアプリの影響を受けるから、
他人が重い処理をすると、ずっと待たされる
それでタイムアウトしたのかも 質問です
現在私は掲示板をやっていて
formの送信があったらphpからdatに書き込みをしてphpがdatのデータを取得する形式なんですが
5chみたいに、formでリンクが送信されたときに自動でリンクを貼るにはどうすればいいのでしょうか? phpでは不可能ですね
rubyを使うのが良いでしょう 単に文字列の中のURLをpreg_match_all()などで抽出し
抽出されたURLにをaタグを付けて置換すれば良いだけでは?
この程度の事が分からないのに掲示板なんて作れたなw 作った掲示板にスクリプト書き込んだら普通に動作しそうwwww サニタイズという言葉を知らないとかあり得そうだ・・・ めっちゃハマったネタ置いとく
誰かの為になれば・・・
mb_ereg_replace()でコード、入力、パターンともEUC-JPで統一して置換してたんだけど
PHP7.4から8に移行して動かなくなった
8ではPattern is not valid under EUC-JP encodingというwarningが出て動かない
さんざ苦労した挙げ句、行き着いた答えは・・・
EUC-JPではなくeucjp-winを使うということ
同様にSJIS変換していたmb_convert_encoding()でもSJISではなくsjis-winを使う
確かに入力にローマ数字などが入っていたので、この8での挙動は理解できるのだけど
なぜ7.4まででは動いていたのかが謎 >>559
8.1 ではなくて 8 ですか?
8.1 に関しては、CP932/SJIS/EUC-JP あたりのことを tweet してた人がいた気がします
理解不能だったので読み飛ばしたんですけど、かなり深い闇だった気が >>559
ああ、ごめんなさい
8.0ではなくて8.1系です(8.1.4と8.1.5)
ツイッターは探索圏外でした
探してみます 自分にレスしてどうすんだw
561は>>560さんにです >>560
ttps://twitter.com/sji_ch/status/1512542333782622209
このツリーですかね?
メインはCP932とSJIS(-WIN)の関係みたいですけど
8.0系だったら問題なかったのかな?
まぁ、解決したから8.1でいいんですけど、やっぱり7.4以前(8.0も?)でOKだったのが謎
https://twitter.com/5chan_nel (5ch newer account) >>563
そのツリーだけではなくて、その前後も含めてですね
ただ、今読み返してみると、>>559 とは別の内容かもしれないです
エイリアス復活の話なので、むしろ SJIS-win を使用している場合に問題が出るケースを示唆してましたね^^; 大昔は文字コードの事を考慮しなきゃ行けない時代があったけど
今はUTF8前提でそれ以外のコードは完全に無視みたいになって
文字コードの話題が懐かしく感じるわw
Perlで掲示板を作ることが主流だった時はjcode.plみたいな変換ライブラリを通して
SJISなりEUCで保存する事をやってたな phpは、グローバル変数を素で関数内で扱えないのね。
javascript的に書いていたらハマった。。 3,4年ぶりにphpを書いてるんですが、
そもそもそんなにやってるわけではないですが。
'わたしは'.$tango.'です。'
といつも.で繋いでいたのですが、
'わたしは{$tango}です。'
でも行けるんですね。
何か違いが出てくるのでしょうか? >>568
後者の方が書きやすい読みやすいから基本的に後者でいい
ちなみに
${foo}
という書き方もあるけど、これはエラーの元になるので使うな
https://www.php.net/manual/ja/language.types.string.php 肯定と否定が同居してるんだが、どこかにダブルクォートで括れという暗黙の補足でも入ってるのか データベースから取得するデータのカラムを簡単に変更する方法はありますか? 正式リリース環境でも使いたければ使えばいいよ
禁止されてない
自分がどう見られるのかだけ気にすればいい そりゃそう言われても仕方ないね
でも言いたいことは>>580と変わりなく、上半身裸で外をうろついていいですかと聞かれても
それくらいなら別に止めんよということと同レベルとだけ password_hash($pass, PASSWORD_DEFAULT);
としてパスワードをハッシュ化した時のデメリットにはどのようなものがあるか教えて下さい。
例えば、古いバージョンのPHPでパスワードをハッシュ化し、それを新しいバージョンのPHPでpassword_verify()でマッチするか調べると、マッチしない事などはありますでしょうか? まずドキュメントを読もう
アルゴリズムの箇所を理解しよう、bcryptとはなんだか理解しよう
それぞれのハッシュ化のアルゴリズムについて理解しよう
古いバージョンとはどんなバージョンか想定しよう
さてそろそろイメージできるようになったのではないだろうか password_hashによってハッシュ化された文字列には
使用したアルゴリズム等の情報も含まれているから、将来性は考慮されている。 >>583
php VerUP 時にアルゴリズムが変更されたことに気が付かないでDBの制限に引っかかって無駄に悩む可能性がある
まぁ、普通に検証してればデメリットはないかなぁ 「ruby on rails bcrypt」で検索!
Rails では例えば、User モデルに、has_secure_password と書くと、
認証で、自動的にデータベースが暗号化される
class User < ApplicationRecord
has_secure_password
end フリーランスに立ちはだかる「常駐」の壁。慣例を打ち壊し、
“テレワーク”案件3割→8割へと成長を遂げた「クラウドテック」の軌跡
リモートワーク求人専門サイト「プロリモート」がリニューアルオープン、
業務委託契約の求職者と企業をマッチング
1/3以上が採用につながる高マッチング率、リモートワーク×エンジニア・デザイナー専門の
人材紹介サービス「ReworkerAgent」正式リリース場所からも時間からも自由な働き方を実現!
『ReWorks(リワークス)』リモートワーク特化型転職サイトとして 3月5日 リニューアル
副業・兼業マッチングサービス「クラウドリンクス」登録者数2万人突破
中小企業で進む副業人材の採用、96%が継続採用を希望
茨城県日立市、県外からの「テレワーク移住者」に最大151万円の助成金
長野市、市内に移転・事業所設置し、移住することで最大550万円の支援金を支給
フリーランスが活用できる「最大1,000〜3,000万円・補助率50%〜75%」の
『ものづくり・商業・サービス補助金』とは?概要や条件を解説 preg_replaceで下記のbbbで最短マッチさせたいのですが無理でしょうか?
$pattern:
/.*bbb+?/su
うまいこと?使ってできないでしょうか…
$replacement:
aaa
bbb
ccc
bbb
eee
上記の結果:
eee
求めてる結果:
ccc
bbb
eee preg_replace('/.*?bbb(.*)/s', '$1', $s); 神
?そうやって使うのか。そして後方参照使えばよかったのか。ありがとうございます $arrayのサイズが3だったとして、
isset($array[100])はエラーにならないのに
echo $array[100];はエラーになるの不思議。
Javaの感覚だとisset($array[100])でも存在しないとこ見てるからエラーになりそうなのに isset($array[100])が何を返したか調べて見た? isset()はそれ自体が有効かどうかチェックするものなので
isset()が実行される前にエラーになったら調べられないだろ?w
この動作が気持ちが悪いと思う気持ちも分からなくは無いがそういうものなのでw あーなんか昔の汎用系のヤツだと記憶保護例外みたいなのになるんじゃないか
みたいなイメージかなあ Is this set?
っていう中学レベルの英語すら出来ない馬鹿ってだけだろ
(なおウザイから先に言っておくが、setはset-set-setの不規則動詞な)
Javaも分かってないが、それも自覚出来ないレベルの馬鹿ってだけ set-setted-settlenだろ
現代英語ではsettedlenが主流 注意: これは、関数ではなく 言語構造のため、可変関数 や 名前付き引数 を用いてコールすることはできません。 クラス名 MyApp\FooBarBaz を 文字列 'my-app/foo-bar-baz' に変換する方法はありますか?
PHPのバージョンは7.4です $prices = array("apple" => "100円", "orange" => "300円", "grape" => "800円");
foreach ($prices AS $key => $str){
str_replace('円', '', $str);
}
var_dump($prices);
ぁぁぁ、円が消えない・・ foreach ($prices AS &$str){
$str = str_replace('円', '', $str); >>609
ありがとう
代入の=が忘れていたのはわかるんだけど
リファレンス私ってのがドキュメント見てるけど難しいな・・
関数を使う前に定義されているものを引数として使う時に&変数として使えると思ったけど
foreach内で出てくる変数を、リファレンス渡しする使い方ができるのね
($prices AS $key => $str)は合っているように思えただけに
なんで動かないんだろう ($prices AS $key => &$str) >>611
がんばってドキュメント読んで理解したいと思います、どうもです foreach のリファレンス渡しは基本的に避けるほうが良い
配列の中身を変更するんだったら別の配列に一度入れてから上書きするといいよ
array_map()とか使うと配列を処理して上書きしてんだな。ってわかりやすい
別解
$prices = array_map(fn($str) : int => sscanf($str, '%u円')[0], $prices); phpってpythonと違って'1' + 1の答えが'11'だか2だかになるんだろ?そういうのキモくない? キモイと思うヤツは言語仕様に興味が無いからだろ
まともなヤツは言語仕様の特徴(バージョンでの変化も)を先に調べてから使うから別になんとも思わん
あーでも引数の順番がまちまちなのは別だ。あれはキモいw >>616
他の言語は+で足したり文字くっつけたりするがPHPの場合は演算子が分かれてる
11にするには文字列連結(ドット)演算子
加算演算子は自動的にintにパースされるのがPHPの仕様
Web向けの言語だしHTMLフォームから渡されるのは文字列だからその辺考慮して簡潔に書けるようにした結果じゃね多分 PHPでファイルスコープの変数を使うやり方で
最も一般的な手法を教えろ >>620
先に「PHPでファイルスコープ」を定義しろ 文字の0と1をpreg_matchで判定したいんだけど、
preg_match('[01]{1}', $_SESSION['hogehoge'])
全然わからないけど、こうしてもダメだったわ
(int)$_SESSION['hogehoge'] とかでもダメみたい
デバッグでは $_SESSION['hogehoge']) = "0"
になってた、文字の0だよね マッチした検索結果が欲しいんなら第三引数も抜けてるし cake2で作ったシステムを cake4にアップグレードしようか
フレームワーク無しで作り直そうか
かなり迷ってます、、、
フレームワークはアップデートがあるので
アップデート作業がかなり面倒なんですよね。。。
みなさんならどうしますか? >>628
現行のシステムはやっぱりそのままの方がいいですよね。
仕様もかなり変わっているみたいで大変そうです。
新規開発はFW使いますか? window.onloadやaddEventListenerを使ってphpファイルを作成しました。
ChromeやEdgeでは動作しましたが、IEでは動きませんでした。
IEで動かすにはどのようにすれば良いでしょうか。 onloadの中にnew URLの記述があり、これがIEに対応していませんでした
除くと動きました >>627
自分も全く同じ状態で悩んでいたけど、Laravelに移行した。
Laravelを学んでみるとCakeの経験が活きたんだが、
今はLaravel9に移行しようか悩んでいるw
Laravelはバージョンアップ間隔短すぎるのがネックなんだよな
>>628の言う通り、そのまま使っても問題ない気がしてる
みんな、Wndows11でても10使い続けてるだろうし >>635
アップデートが面倒なので
今後は新規開発は、面倒だけどFWは使わない事にします。 アップデートよりも、新規開発の方が遙かに面倒だと思うぞ 面倒ではあるが、新規開発の方がモチベは上がるんだよな >>641
ブログあるから晒し記事探してみれば?
https://engineering.mercari.com/
技術スタック的には
Go, PHP, Python, Java, Scala,TypeScript, Node.js, NestJS
ってなってるね
https://engineering.mercari.com/technology-stack/ 今更だけど、Goなんて言語あったんだ。しらなんだ。 >>636
面倒を避けてさらに面倒を増やすパティーン ネットの銀行口座の預金残高を1000万以上の数値に変えてほしいのですが、どなたかやってくませんか?
自分ではできないので
何卒宜しくお願い致します
cpiwls0bdl@sute.jp 2,000万出してくれるなら引き受けてあげても良い
先払いで頼む >>650
振り込めば出来るよ
振り込み元の口座情報教えて? なんか面白いこと言ったろかと思ったけど
何言っても滑りそうだからやめとくわ( ゚д゚ ) PHPをやっててもネットワーク系はさっぱりな人も多いだろうし firefox で php のページを開いた時、 <!DOCTYPE html> を出力する前に include 使うと
This page is in Almost Standards Mode. Page layout may be impacted. For Standards Mode use “<!DOCTYPE html>”.
って去年あたりから出るようになったんだけど、これって回避方法ありますか?
クッキー処理を別ファイルにしてそれを読み込むときにこのワーニングが出てます。
色々なサイトで同じようにワーニングだのエラーだのが沢山出てるので
もうこんなの無視して良いんじゃね?とか言われればそれでもいいかなと思ってたりしますけど。 PHPで通信対戦のレーシングゲーム作りたいんですが
どうすればいいですか? 通信やらネットワーク周りはPHPでいいとして
肝心のゲーム部分についてはPHPじゃ作れないので
C系やらJava系やらJavaScript系やらのゲームエンジン使って作って下さい
そうするとだいたい通信部分も言語合わせたくなるので
そもそもの選択肢としてPHPは誤りです cake4ってFWとして安定してる?
なんか使うの怖いは。またアップデートされたらたまったものじゃない。 CAの技術ブログ?かなにかで
スマホアプリの開発でPHP使ってる記事があったけど、
PHPで開発できるんだと驚いた記憶がある
もちろん、PHPだけってことはないが >>662
俺はLaravelに移行したが、アップデート早すぎるので
新規開発できずにしばらく止まってるw
Laravelに限らないが、アップデート間隔短くて
どうやって業務で使うんだろうな?
アップデートするのも相当コスト&リスクが伴うのに アプデしなきゃいいという訳にはいかんから聞いておるのだ。 >>665
今その状態で、CakePHP2とLaravel6で保守してる。
が、新規開発となると古い技術使い続けるのは駄目だと思ってる。 >>664
やっぱりそれもアップデート頻度高いのか。
FWは便利なんだけど困るな~。アップデートが仕様がおもいっきり変わって一から作るのと工数が変わらなくなってしまう。 そこまで大きく変わる事は基本無いし、そもそもフレームワークのアップデートに付いていく必要が無い Laravelでやることなんて最低限のCRUDぐらいでいいし
細かいバックエンドは別で作ろう Laravelって社内の管理画面とかに使うもんじゃないの
基本的に一般公開しないだろうしアップデートしなくてもそんなに怖くない >>675
あーごめん
現場経験無いワナビプログラマー君も居たんだね >>676
素朴な疑問だけど、現場ならLaravelを管理画面のみに使うの?
公開画面はどうするの?vueとかreactでフロント中心? Laravelがってわけじゃないけど
アクセスログ見るとFWの脆弱性ついてるんだろうなというようなものが散見される
まあデフォルトのまま使ってない限り問題にならないケースも多いと思うけど
ブラックボックスじゃないものを使う場合それなりに気を使う必要はある 質問です。
phpに限ったことじゃないですけど、
functionじゃなくて、クラスを使うメリットってなんですか? オブジェクト指向をもう少し噛み砕くと
関数と変数の集合を入れ子にできる
管理しやすいということ オブジェクト指向は何と言っても継承
初めて実務で使ってすげえ革命的に効率的じゃん思った遠い記憶がある
PHPで使ったこと無いけど それこそphpのフレームワークのソース見ればそこら中extendsばっかわね ひらがなの判定で
$furi = 'む';
if (!preg_match("/^[ぁ-ん]*$/", $furi)) {
echo 'ふりがなではないです';
} else {
echo 'ふりがなです';
}
「む」があるとふりがなでは無いと言われるのはなぜ?
"/^[ぁ-ん]*$/u"の u があると通るけど、これはutfのuだと思うけど
php.netのマニュアルに u の記載ってどこにありますか? >>686
パターン修飾子というのか・・ありがとう
他はいけるのにu修飾子が無いと「む」が判定できないのはなぜなんだろう ちょっとググればUTF8でのコードで表記する方法も出てくるし
そんなに悩む問題かと思う session有効期限の24分後に破棄されなかった場合、
再度破棄の抽選は行われますか?
次のリクエストがあるまでは何も起こりませんか? >>689
その辺の挙動について調べたのはPHP5.x時代だから7以降で変更があったかどうか知らないが
要求があった際に確か1/100とかの確率で有効期限ぎれのセッションファイルが消去される
1/100ってのはデフォルトの設定なので値を変えて1/1にすれば毎回判定される(おすすめはしないが)
あとセッションファイルをテンポラリとかにおけばOS側でcronで定期的に削除される可能性もあるがこれも設定次第 include、reqioreでは、__DIR__は使えるのに、<a>タグのhrefでは使えないのは何故でしょうか?
解決策は分かっているのですが、何故hrefではダメなのかを知りたいです。
宜しくお願いします。 例えば、こんな感じです。
<a href="<?php echo __DIR__; ?>/signup.php">リンク先</a> >>693
構文的には使用可能です
ただし、一般的にURLを表すパスとしては適切ではありません
URLの指定は、Webサーバ経由でのリクエストとなるので、サーバ内部のファイル・ディレクトリとは別物となります >>694
わかりやすい説明ありがとうございます! php 初めてです。自分のパソコンの中で個人的にhtmlファイルを作ってそれをchromeで
読んでいろんなまとめものをしているのですが、
phpを使ってみようと思いhtmlの中で<?php---?>とかやってみましたが
phpをインストしないと使えないとわかりました。そこで質問です。
phpはサーバー側でインストしないと使えないのですか。
私みたいに、私のパソコンの中で使うことはできますか? それってapacheとかをインストするということですか?
そうして最低のサーバーを構築しないと使えないということですね 個別に入れて環境構築するのが面倒というならXAMPPという便利なものもありますよ >>690
>>691
ありがとうございます。
1回だけっぽいですね。
学校とか会社みたいに日中の決まった時間しかいないような場合だと
36000秒の1/1とかにしとけば日中は切断されず翌日は必ず切断って感じにできますね >>697
コマンドプロンプト(DOS窓)を開いて、
php -S localhost:8080
ってすると、Webサーバ起動できるので、ブラウザで、
http://localhost:8080/
にアクセスしてごらん。
resource was not found のエラーが表示されるので、index.phpをそのフォルダに作るべし。 たぶん、どのフォルダ?って理解になりそう、初心者だと XAMPPをデフォでインストールしたなら C:\XAMPP\htdocs だね。
まあ697ならまずはXAMPPがいいよ。 XAMPってバグだらけでずっとつかってないな~
もうバグは落ち着いてるの? >>712
お前もまず697読んでから言えよ
つか、このスレ相変わらず頭おかしい奴ばっかだな 初心者はXAMPPかMAMPでいい
本番環境云々とかかなり先の話だし、その時になってまた勉強だ
たぶん、そこまてたどり着かないうちに飽きる visual studio codeでphpを書いていますが
echoのシングルクォーテーション内でhtmlを書く際にインテリセンスが働かず、
働くようにする方法はないでしょうか? >>718
ありがとうございます。
テンプレートエンジン使ってみます。 <select>
<option <?php 関数 ?> >A</option>
<option <?php 関数 ?> >B</option>
</select>
こんなのをHTMLでそのまま書くと普通にできるのに、PHPからループで書き出すと「>A」みたいに余計なのがつくんだけどなんなん?
終わりの「?>」いらないの? >>720
<select>
<?php foreach ($list as $data) : ?>
<option<?php echo test($data['value']); ?>><?php echo $data['name']; ?></option>
<?php endforeach; ?>
</select>
みたいな感じになってる?
(全角?>は半角に直してくれ) >>721
PHPファイルの中で関数として書いてhtmlから呼んでる感じ
htmlというかWordPressなのでPHPファイルなんだけど
具体的には変数に入れて関数の返り値として返してる
function select_function() {
for($i = 0; $i < 5; $i++) {
変数 = "<select name = "sel[sel{$i}]">\n"
変数 .= "<option <?php 関数 ?> >A</option>\n"
変数 .= "<option <?php 関数 ?> >B</option>\n"
変数 .= "</select>\n"
}
return 変数
}
関数入れなくて、「<?php ?>」だけでもやっぱりおかしい
PHPかWordPressのバグなんだろうか
セレクトボックス沢山出したいだけなのにえらく苦労してるわ・・・ 変数に代入している式だからHTMLテンプレートじゃないよ。式の中だから<?php ... ?>は効かない。 変数.=<<<ENDOFVALUE
~
~
~
ENDOFVALUE;
ヒアドキュメント >>723
えっまじ?
>>725
こんな書き方があるのか・・・
PHPクセ強すぎだろ・・・ ヒアドキュメントなんてどの言語でもそれほど変わらん気がするけど、どのへんがクセ強なの? いやいやいや、>>722のソースがおかしいだろw
forの中でなんで<?php?>があるんだよw
PHPの基礎が知らないのに、WPいじるもんじゃないよ それはありさんが回答してくれてるやん
おれはクセのほうが気になる MVCモデルの学習で、ECサイト作成しています。
ViewやModelにあたるphpファイルを作っています。
模範回答として、controllerのphpごとに、
それぞれのphpファイルを作成するようです。
例えば、
controllerにlogin.phpがあれば、
それに沿うように
Model/login.php
View/login.php
を作成します。
これって実際の現場でも同じような考えで作るのでしょうか?
Viewは仕方ないとしても、Modelも各Controllerに合わせてphpファイルを
つくるものなのでしょうか?
Modelに関するphpはサイトまとめて、ユーザー関数の定義を記述するような構成はダメでしょうか? ケースバイケースじゃないのかね
ファットコントローラーやファットモデルにならないように、ってのはあるけど
リポジトリパターンとかもあるし、色々調べてみれば? 私はたいてい、DBのテーブル単位にModelのphpクラスを作ります。
テーブルとModelクラスが完全に1対1になることはあまりないけど。
>Modelに関するphpはサイトまとめて、ユーザー関数の定義を記述するような構成はダメでしょうか?
良いと思いますよ。規模が大きくなってきたら分割すればいいのでは? >>727>>728
こんなん必要ないだろ!
TextBlock
~
EndTextBlock
にしろ!
>>729
PHP不自由すぎ
結局ヒアドキュメントも意味なくてhtmlの方にゴリゴリPHP書いて解決したわ
ソースがありえないくらい汚い
頭悪いやつが作った言語だな >>私はたいてい、DBのテーブル単位にModelのphpクラスを作ります。
これが正解だね >>733,734,736
ありがとう。参考にさせていただきます。 >>735
UWSCか!
…もうちょい釣りやすい餌があっただろうにw >>736
MVC的には不正解だろ
それだとビジネスロジック書く場所がなくなる
ただ、phperでそのうちLaravel使うようになると、純MVCではなくなるからその設計が正解になるけど DBを
controllerで使う派?
modelで使う派? modelだろJK
って言いたいところだけど、DB接続くらいはcontrollerでやってもいいかな PHPで以下の書き方を、その下の書き方のように短くできますか
呼び出す側は変えないようにしたいです
public function index()
{
return view('home.index');
}
↓
public function index() => view('home.index'); useって無名関数しかダメなんですか?
$people = [
['name' => '太郎', 'age' => 19],
['name' => '洋子', 'age' => 37],
['name' => '美玖', 'age' => 21],
['name' => '信也', 'age' => 15],
['name' => '裕次郎','age' => 45],
['name' => '魁', 'age' => 8],
['name' => '達郎', 'age' => 55],
['name' => '真治', 'age' => 29]
];
function use($people) aaa() {
foreach ($people as $list){
echo $list['name'];
}
}
aaa(); 「->」を書く時に、
右手小指で「-」を入力して
左手シフトを押しながら、右手薬指で「>」を入力しますが
指がつって、なかなか慣れずにいます。
もっと楽に書けるような方法はないのでしょうか・・ >>746
右手薬指で「-」を入力して
右手小指でシフト押しながら右手人差し指で「>」を入力 ちゃんとしたタイピングだとそうなるのかー
ちゃんとしたタイピング身につけなかったから右手はほぼ人差し指と中指しか使ってないようだw
- 右人差し指
左SHIFT 左小手指指
> 右親指 ここって具体的な実装についても聞いていいの?
例えばこういうページを作りたいんだけど、どういう感じのコードを書けばいいのか分からないとか >>752
作成依頼はここでして大丈夫?
それとも他にもっと適切なスレがあるのかな? rubyスレにいくといいよ
あそこは初心者にも懇切丁寧に教えてくれる人がいるから >>754
いや、実装に使うのはLaravelなんだけど・・・ どのレベルで聞きたいのか具体的に書かないと分からんw >>756
オリジナルWebアプリを作りたいんだけど、いざ白紙の状態から作ろうとすると何も書けない
とりあえず↓の画像のようなViewファイルを作りたいんだけど、誰か教えてくれると助かる・・・
フォーム部分はLaravel CollectiveのFormを使うらしいんだけど、書き方よく分からない
https://i.imgur.com/jmbE8P4.jpg まず書籍なり動画学習なり先にやってこいよ
実装聞くって完全にお任せコースだろが 有償でやるなら、きちんとしたサイトがあるだろう
知り合いのつてたよって、企業に依頼する方法もあるだろう
匿名掲示板の、互いに正体不明の相手と金をやり取りって
釣りとしか受け取られない >>757
まずアプリ作る以前にそのHTMLだけを書いてみたら?
見栄えはどうでも良いとしてね
それが出来たらLaravelであればviewファイルを取りあえずHTMLのそのままコピーで置く
それだけだと見るだけなら動くのではないかな?
formのactionにsubmitを押した後の処理の先を設定したりcsrfトークンをhiddenに設定したりなど
色々しないとその先は動かないけど >>757
Laravelはバージョンがたくさんあって分かりづらいけど、
アップデートはそんなに大変じゃないから、
とりあえず本屋行って、わかりやすい本買ってきたら?
俺は6の本買って、MVCやフォーム操作をひと通り学んだ後、
8の開発に取り組んだけど、わりと簡単に移行できたよ。
白紙の状態だと難しいから、本のサンプルを作ってみれば良い お金が無ければ図書館で借りるといいよ
無ければリクエストすれば買ってもらえる
違う言語だけど2冊買ってもらったよ 全く書けないってPHPの基礎がないんだろ
まずは基礎を勉強せい どこにでも一定数いるけど
相手に時間に使わせても一向に平気な人間って居る
暇なひとだから教えてくれてるとか
自分に都合の良い解釈ばかりして
相手から搾取することしか考えていない
関わるだけ時間と手間の無駄 そりゃ友達には気を使うけど、会社の人間とかお前らなんて搾取さえ出来れば用無しだからな
俺が神でお前らは無償労働してくれる下僕。これからも俺の質問に無償で答えてくれよぉーんw ただで答えてもらう代わりに罵詈雑言も多々受ける
win winということで はい。よろしくたくさん罵っていただければありがたいです はい。たくさん罵っていただければありがたいですって なんか2回も書き込みミスって恥ずかしいからもうこのスレ見ません × やさしいから
× ひまだから
○ 搾取される体質だから × やさしいから
× ひまだから
× 搾取される体質だから
○ ハゲだから + JavaScript の質問用スレッド vol.124 +
https://mevius.5ch.net/test/read.cgi/tech/1636525464/922
ここに書いた
すべての初心者がRuby on Rails のMVC から始める。
YouTube で有名な雑食系エンジニア・KENTA が、Laravel, Django をやるなと言ってる
できない人には理由がある。
学習環境が無いから学べない。それに気付けない人は採用されない。
5年勉強しても、Railsを半年やった人に勝てない
予備校へ行かない人は、一流大学に受からないのと同じ。
なぜ受からないのか分からない。
賢くても受からない。アホでも予備校なら受かる
つまり、勉強のやり方がおかしい。
重要なのは何かを勉強する事ではなくて、勉強する方法を勉強すること!
サロン・予備校・学校へ行くとか、独学ならRailsみたいな学習環境が整っているとか。
これを適材適所と言って、ほとんどの企業がRailsを使う理由
例えば、AWS なら12資格あるから勉強できるので、多くの人が使う。
一方、GCP には資格の教科書が売ってないから、勉強できないから使われない
技術選定は、ほとんど学習環境で決まる。
学習環境が無いものは、上達できないから使われない 長文で頭悪そうなこと書いてると思ったら
やはりRuby君か phpでなに作ったらいいすか(´・ω・`)
アンテナサイトとか、、、 5ちゃんねるよりも軽くて性能の良い匿名掲示板作って webサイト作るより
Unrealエンジンでゲーム作るほうが
楽しいね(´;ω;`) 作る目的分からんのにアドバイスのしようがない
自分のレベルに合うもので好きなの作れよとしかいえん オワコンのPHPスレで質問しても有用な回答は得られない。
初心者はRubyから始めること。
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ テキストゲーム?をコマンドラインで作ると楽しいかもね >>793
オワコンはRubyガイジのお前w
もう仕事も無くなってきて焦っているのだろうなぁw
あ、お前ニートだったかw ゲームはゲームエンジン使いますから、phpの出番ないすよね、、、 そこをなんとかすれば伝説になれるかも?
いやごめん PHPだとゲームは作れないという狭い視野では今後も何もできないだろう
学校の課題か何かか?
ブログでもショッピングカートでも好きなもん作れ くらいって言うけどゲームエンジンで作ったオナニーより遥かに儲かるし需要もあるよ 対戦ゲームは大変かもしれないが、
マイクラくらいならなんとか出来るのでは まあ処理のほとんどはフロントエンドをJavaScriptで書く必要ありそう 国取りゲーやら人狼やらサーバーサイドで全部解決できるゲームあったじゃん グラブルなんか昔ながらのブラウザゲーだからフロントのjsはあるにしてもPHPがメインという感じだし
今でもバックエンドのAPIでPHPを使うケースも多いしゲームと無関係と言う事はないな ワイが最初にphpで作ったのはサイトというよりLINEのbotAPIサーバ?やったな
LINEサーバからのWebhookに応じてレスポンスするだけだけど、LINEアプリが色々できるから楽しかった
サーバ周りの費用以外はタダでできたんだけど、色々と勉強になった
ドキュメントは転がってるし公式のは親切だけど、コミュニティは使えない
今ならなんかのフレームワーク使ってラクするかもなあ PHPでwindowsのguiをぶん回す方法はありますか? php8.2ってもうほぼ静的言語並に型指定必須なんだな >>809
tcl/tkのPHPバインドがあるかな?ルック&フィールがお気に召さないかもだけど PHPのforeach文っていうのありますが、
これは、for文のように「構文」と思っていいですかね。
JavaScriptには、forEach()メソッドがありますが、こっちはメソッド
と理解しているので、プログラミングの要素としては別物と考えていいですかね。 標準関数における、構文とメソッドの違いって何?
また、コーディングする上でそれを意識する必要あるの? 一つの言語だけ習得して組むなら、慣れでコーディングできるかもしれんけど。
複数の言語を習得するなら、それぞれ言語のルールをきちんと理解したほうが
いいんじゃないかなって思っている。
foreachが構文であるのと、メソッドであるのとはだいぶ考え方が違うんじゃないかな。
とわたしは思うが、他の人はちがうかも。 >>816
構文とメソッドは別物だが、
それ以前に、php.netを読んで分かる事をここで聞くのは間違ってる。
ちゃんと学ぶ気があるのなら、どのみち読む事になるので、最初に全部読んでしまった方が結果的に早い。
他言語と違って頭から読む用に書かれてるし、通読する価値はあるよ。 それはそのとおりなんすけど。
独学だと自分の認識に自信ないので、諸先輩方のご意見は訊きたいなと思う。
スレ汚しごめん。 メソッドとの比較という意味であれば、php の foreach はキーワード
https://www.php.net/manual/ja/reserved.keywords.php
意識する必要はあるけど、意識しなければならない頃には自然に覚えてると思う
キーワードは標準関数とは異なる記述や法則で動くことが多い
よく例としてあげられるのは echo
標準関数である print() との比較は各所でされているので調べてみるといい >>818
その用途で質問するのは5chの使い方としては正しい。
ただ、それやるならPHPではなくもっとマシだとされてる言語、
一般的にはRustかC#あたりを参考にした方がいい。
多分それなりに整備されてる。 javascriptのforeachはarrayのメソッド
PHPのforeachと似たようなものがjavascriptにはfor ofがあるし
構文とメソッドは書き方がそもそも違うし結構はっきり分かれている気がするのだけどね 構文は、アセンブラから作られた関数
関数は、構文や関数から作られたもの
アセンブラからの距離やレイヤーが
考える上で少し大きな値になる アセンブラって各CPUの命令セットのことを指すのか?
飛んでもなく飛躍した話だな CPU命令セット群、
(アセンブラ含む)高級言語群、
高級言語群を使ったOOP群、
リリースアプリ
と考えるとあんまり飛躍でもないかと 2進数のマシン語プログラミングを最底レイヤーのCPU命令セットとする! アセンブラ仕事でやってたな
生産性激悪だけどコーディングすっごい楽しかった
オブジェクト指向とか無かった時代… すまん >>819 に嘘が入ってました
printもキーワードです
比較はいろんな記事でしてるんで見てみるといい
https://qiita.com/7968/items/d739e926189e219273bd
とか PHPはオブジェクト指向を学ぶのに向いていない。
なんといってもオブジェクト指向を学びやすいのはRuby。
初心者はRubyから始めるべき。
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ >>828
ありがとう。私にはすごくためになる。
>>830
rubyも少し学習したのですが、WordPressが権勢ふるっていると
私のような文系初心者はphpから学習してとりあえず食えるように
なるのが先じゃないかなあ。 Rubyはオブジェクト指向を学ぶのに向いていない。
なんといってもオブジェクト指向を学びやすいのはJava。
初心者はJavaから始めるべき。 Rubyは日本人が作った糞言語で世界では使っている人は全くいない。
われわれプログラマーに余計な学習コストをかけさせて害しかない。 WordPress は月5万円ぐらい。
一方、Ruby on Rails は月数十万円
仕事の単価が違いすぎる。
だから、YouTube で有名な雑食系エンジニア・KENTA が、PHP をオワコン認定した
PHP用のサロンを作って教えても、5万円ぐらいしか稼げなくて、
教えた方が詐欺師呼ばわりされるから
WordPressの本で、ソースコードが載っている本はない。
一方、Railsの本は、黒田努の3冊の本など、ソースコードばっかり
だから、WordPressではアプリ開発を学べないので上達せず、10年やっても低所得のまま。
Laravel を使っているZOZO も、まともなPHP開発者が集まらず、たぶん終わる
PHPは簡単に出来るはずだという固定概念があるから、客が安く叩いてくる。
客の質が悪いので、どうにもならない ワードプレスの実際の現場ってコード書かなくてもいいの? WordPress はオワコン。
保守が面倒だし単価も安い
そして何よりもPHPは難しい。
初心者はRubyから始めること
WordPressよりRuby on Railsを学ぶのが一番の近道。
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ 昔、職業訓練にかよってた頃
講師の人が、「JavaよりPHPのほうがよっぽど難しい」
って言ってた Javaは制約が大きいから、PHPのように自由に書けない
その分書きやすいと言える
他人が書いたコードも解読しやすい
Cobolの様に大勢で手分けしてシステムを組むなら都合が良いかもしれない javascriptもPHPも色んな書き方出来るからねぇ
簡単なようで難しいみたいな矛盾しているけど言い当ててる感じ Javaより特定のコードの意図が分かりにくい、というのはあるかもしれん 初心者から中級者へのステップアップが難しい言語かもねぇ
例えば、最近だと静的型付け言語ばりにかけるけど、その辺ってphpが最初の言語だとちょっと混乱する
common.phpとかdb.phpみたいな関数まとめたファイルの世界からの脱却も少し難しいよね PHP の客筋が悪い。傲慢で値切る
PHPは簡単だからと、安い金しか払わない。
こういう固定概念
Ruby よりも、ややこしい・可読性が悪いので、保守できない。
そのくせ低賃金
WordPress で簡単に作れるはずだという固定概念。嘘・迷信
こういう客を相手にしない方が良い。
PHPには、こういう客しかいない PHP下げるにしても、
Rubyを対抗馬に出されると説得力がほぼゼロになる Rubyガイジは色んなとこで上から目線でデタラメばら撒くからな JSとデータやりとりするだけのPHPは機能ごとに新しいファイル作っちゃうんだけど、一つにまとめた方が効率的とかあるんかな? >>850
そのレベルのパフォーマンスを気にするなら、インタプリタを選択してはだめだと思うよ
逆に言うと、インタプリタを選択した時点でそのレベルは誤差になる
むしろキャッシュとかを気にしたほうがいい フリーランス向けエージェント「クラウドテック」会員数8万人突破
〜働きやすい環境構築のため、単価向上・全年齢の活躍の場創出・
地方企業のDX推進の取り組みを強化します〜
フリーランスエンジニア専門の案件一括検索サイト「フリーランススタート」、
累計掲載案件数25万件突破!リモートワークの累計掲載案件数35,000件突破!
新規人材の80%がフルリモート希望! IT人材市況動向レポート2021年12月版を公開
人口移動報告 家賃高い、首都圏脱出 「コロナ禍、仕事フルリモート」
クラウドテック、地方企業向け『クラウドテックDX』を開始、
7万人を超えるDX人材が、地方の非IT企業のDX推進を支援
新潟県、移住してきたテレワーカー/フリーランスに最大50万円を支給
テレワークの一般化により、11月にはテレワーク可能案件83.7%へと増加。
2021年、フリーランスのトレンドは「移住&テレワーク」と予測 >>853
いやなでしこだろ
俺の会社は愛国者多いから基本的に全部のシステムはなでしこだよ
Rubyじゃまだまだ愛国度合いが足りないね PHPからPythonは移行しやすい?
Webサイト作れればいいんだけど、
なんだかんだでPHPが最適な気がしてるんだが webでPythonにする理由があんまりないんだけどねぇ
PHPの方が普通に速いし作りやすくね? PythonでWEBやるのは
サーバ周り全般の知識がそれなりにないと無理だろう
PHPみたいにレンサバにほぼ標準である、ってもんでもないしな 昔、MSの翻訳サービスAPIを使って、テキスト入力した日本語を各国語に翻訳するシステム作ったことがあるが
構文解析部分でPythonを利用した
全体はPHPを使ってた >>861
Grammarlyの日本語版サービスを作って欲しいとの依頼がある。作ってくれんカネ。 過去にTesseract OCRの実行結果が得たかったからC++でバイナリ作って
PHPから呼び出すみたいなことはやった事あったな YouTube で有名な雑食系エンジニア・KENTA の動画がある。
未経験からのエンジニア転職の必須教養【技術知識編】
Ruby on Rails 以外のLaravel, Django などを使うなと言っている。
別の動画では、PHP, Scala を使うなとオワコン認定した
転職時に技術選定で、なぜRailsではなく、Laravel, Djangoを選んだのか聞かれて困る。
アホと思われる
文系のキャリアパスは、Rails → Go のみ
理系なら大学院数学科か、
機械学習の資格・AWS Certified Machine Learning - Specialty を取ればよい このおじさんはおなじことずっといってるけどなんかのびょうきなの? YouTube で有名な雑食系エンジニア・KENTA の動画がある。
未経験からのエンジニア転職の必須教養【技術知識編】
Ruby on Rails 以外のLaravel, Django などを使うなと言っている。
別の動画では、PHP, Scala を使うなとオワコン認定した
転職時に技術選定で、なぜRailsではなく、Laravel, Djangoを選んだのか聞かれて困る。
ハゲと思われる
文系のキャリアパスは、Rails → Go のみ
理系なら大学院数学科か、
機械学習の資格・AWS Certified Machine Learning - Specialty を取ればよい vscodeを使用してPHPの学習をしていますが、
文末のセミコロンを打つのにendキーや矢印キーで
文末まで移動してから打ち込むのが手間に感じます。
文中に次の行にctrl+enterのショートカットで移動しつつ
文末のセミコロンを自動的に打つような機能はあるのでしょうか? 行末にセミコロンと同じくらい変数先読みして$をつけていただきたい >>867の書き込みしてる人、Laravelスレで延々とRails上げしてる人だよな
そもそもそのYouTuberもそんな偉そうなこといえるような人じゃないでしょ…
なんかズレてるよなぉ… file_get_contentsが使えないサバなのですが、cURLで代替する場合
$res = file_get_contents(URL, false, stream_context_create($options));
stream_context_create($options)で指定していた引数を
スムーズにcURLに繋ぐ方法はあるのでしょうか?
そのあたり全て書き直してcurl_setoptしていくしかないですか? 検索してみた。
KENTA
こばやし けんた
プロレスラー
って出てきた。 >>873
curlなら
$ch = curl_init();
curl_setopt_array($ch, [
CURLOPT_URL => $url, // 呼ぶURL
CURLOPT_RETURNTRANSFER => true,
CURLOPT_HTTPHEADER => [], // ヘッダの指定があるなら必要なものを書く
CURLOPT_HTTPGET => true, // GETならtrue
]);
$response = curl_exec($ch);
こんな感じで良いのでは?
GETでURLにパラメータを付ける場合は
$url .= '?'.http_build_puery($params);
とでもすればいいかと >>875
ありがとうございます!
できました!! 先日と同様にcURLに置き換える件なのですが、
file_get_contentsを使っていたときは以下をパラメータを入れていました。
$Params = array(
'method' => LOAD_TEST,
'shop_id' => (int)$Id,
'values' => array('date' => date('Y-m-d', strtotime($date)), 'Item_id' => (int)$ItemId),
);
しかし、curlで行うとうまくいかないようです。
curl_setopt($cp, CURLOPT_POSTFIELDS, $postdata );
values配列がない状態ならこのままでもいけるのですが、配列いれた場合どうしたらよいですか? このままだとやはり引数にできないようなので、分解して突破させました 今日の日記
たかが4万件弱のインポートに2.5秒もかかったのでカッとなって、PDOを継承してPyMySQLからexecutemanyを移植したら0.9秒に、更にいったん配列に貯め込むのでなくジェネレーターを使ったら0.7秒になった。とりあえず満足
今日の気付き
イテレーターの最初の要素にちょっと特別な処理を、残りの全部に同じ処理をするのに、最初の一つをcurrent()で取り出してnext()で進めて、それからforeachで回そうとすると、foreachが最初の要素に巻き戻そうとして、イテレーターがarrayやArrayIteratorだと最初の要素がダブって処理されるし、ジェネレーター等だと致命的エラーになる。避けるには for (;$arg = $args->current(); $args->next()) {} みたいな書き方が必要 PHPでデータを取得してTableで並べているのですが、
日毎に取得できる数は異なりますが、横3並びずつ展開していきたいです。
このとき例えばデータが5個だと最下段は2個しかないので表示が崩れます。
同じレイアウトを維持したい場合にはどのように出力していくとよいでしょうか?
<table border>
<tr>
<td>1-1</td>
<td>1-2</td>
<td>1-3</td>
</tr>
<tr>(以下繰り返し)
</tr>
</table> >>882
フロントの話はフロントで調整するのが良さそうですけど、phpで調整するのであれば、あまり箇所に空またはダミーデータを入れてやれば良いです >>882
PHPでテーブルの整合性を撮るのは難しい。
初心者にはほぼ不可能
初心者はRubyから始めるべき。
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ データが2個以下の時は空のtd追加するとか、ソース見にくくなるけど >>881 自己レス
こういうことをやりたいときのために NoRewindIterator ってクラスが用意されてることに、やっと気付いた $Url = (($_SERVER['HTTPS'] == 'on') ? 'https://': 'http://').$_SERVER['HTTP_HOST'].$_SERVER['SCRIPT_NAME'];
これでエラーにならないサーバーもありますが、エラーがでるサーバーはどう対処しておくべきなのでしょうか?
Warning: Undefined array key "HTTPS" 事前にkeyが存在しているか確認するのが王道
エラーを抑止するのが古の手法 https://www.php.net/manual/ja/reserved.variables.server.php
'HTTPS'
スクリプトが HTTPS プロトコルを通じて実行されている場合に 空でない値が設定されます。
と書いてあるのだからhttpなら何も入ってないのでは? スクラッチのPHPをHTMLに埋め込む(言い方あってるかな?)時、HTMLとPHPのインデント分けろって聴いたんだけど理由はHTMLとPHPでちゃんと区別するためってことでいいの?
あと他に記述ルールってある? > HTMLとPHPのインデント分けろって聴いたんだけど理由はHTMLとPHPでちゃんと区別するためってことでいいの?
言ったやつに聞け
> あと他に記述ルールってある?
ビューとロジックを分けて書け
テンプレートエンジンを使うのが普通 HTMLとプログラミング言語を混在させるというPHPの発想がそもそものまちがえ。
それにPHPは難解で難しい
初心者にはほぼ理解不可能
初心者はRubyを学んでRuby on Railsを習得するのが一番の近道。
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ Rubyとかいうキチガイになる言語やってなくてよかった
とつくづく思う 初心者です。教えて下さい。
PHPでSQLのWHERE句を作成中ですが、 str_replaceが思うように機能せず
WHERE句の整理ができません。
$sql = str_replace(") )", ")", $sql);
なんで? rubyでやるなら sql.gsub!("\)\)", ")")
PHPで文字列置換は難しい。
初心者にはほぼ不可能
初心者はRubyから始めるべき。
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ >>896
SQL文を動的に作るのはそもそも間違っている
PDO::prepare()を使って値はexecute()でバインドしろ
>>897
は?w
PHPの事知らんのに書き込むなよカス >>898
> SQL文を動的に作るのはそもそも間違っている
ちんばんじーの方ですか? 少なくともphpのスレにRubyの回答を書き込むのは間違っている pythonに惨敗したからってphpをターゲットにするのは節操無さすぎ なぜか日本人ってPHP好きだけど今更whileだとかsubstrなんとか書いてる場合じゃないやろ execute(値)にするのと、
bindvalueにいれてexecute()するのって違いありますか? マニュアル見れば書いてるけど
executeの引数でやる場合は全てPDO::PARAM_STRで処理されるってこと IFとFORさえ覚えれば、たいていのシステム作れるだろ システムとは基本的に現実世界の出来事を仮想世界に移したものである
つまり人間の営みの大部分はifとforを表現出来る
俺らはifとforで生きている 時を基準に
垂直に分割するとif
平行に分割するとfor >>910
おじはRubyスレに帰ってろ
Laravelスレで負けすぎてアレルギー出たのかもしれんがw プログラム初心者で、開発したはいいけどユニットテストってのをどうやればいいかわからない。PHPUnitってやつを勉強すればいいの? rubyにはTest::Unitというライブラリがある。
gem install test-unit で簡単にインストールできる
require 'test/unit'したら
Test::Unit::TestCaseを継承したクラスを作る。
testで始まるメッソドを作ってassertで結果を比べる。
PHPでユニットテストは難しい。
初心者にはほぼ不可能
初心者はRubyから学習を始めるべき。
そしてRubi on Railsを習得すればPHPは不要
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ ライブラリ便利そうだけど、今更rubyに変えられないからphpで頑張るわ Laravel使えないサーバーもまだ多いのが問題なのかも 昭和十年十二月十日に
ぼくは不完全な死体として生まれ
何十年かかゝって
完全な死体となるのである Laravel使えないならRailsも使えんだろうしなぁ
ユニットテスト云々以前の問題のような 2022/2/3
2022-02-03
スラッシュ形式保存されてる内閣府の祝日CSVですが、
桁揃えてハイフン形式になおしたいです。
どうすればいいですか? >>928
vsprintf('%d-%02d-%02d', explode('/', '2022/2/3')) >>930
vsprintfのマニュアルの戻り値の説明に
「 format に基づき、 フォーマットされた文字列の配列を返します。 」とありますが「文字列の配列」という意味がわかりません。
戻り値は文字列で配列ではないように思うのですが違うのでしょうか?
https://www.php.net/manual/ja/function.vsprintf.php#refsect1-function.vsprintf-returnvalues 内部で文字列から配列に変換してからフォーマットする
型がない言語(型推論)だから戻り値を使うまでは配列 >>931
その日本語、英語版( ttps://www.php.net/manual/en/function.vsprintf.php )原文の
> Return array values as a formatted string according to format.
から「values」に相当する部分が抜けてるような気が。抜けてなくてもなんかよく分からん表現だが
まぁ気になるんなら、戻り値が「フォーマット済みの日付文字列」「formatted date string」と明示されてる
DateTime::createFromFormat('Y/m/d', '2022/2/3')->format('Y-m-d')
を使ってみるとか Return array values as a formatted string according to format.
DeepLで翻訳したら
配列の値をformatにしたがって整形した文字列として返す。
となりました。多分これが正解だと思います。
英語版のマニュアルの見出しにも
vsprintf
(PHP 4 >= 4.1.0, PHP 5, PHP 7, PHP 8)
vsprintf — Return a formatted string
とあるのでやはり戻り値はフォーマットされた文字列でおkですよね? 「ですよね」と言われても、マニュアルに書いてある以上の情報なんて持ってないしな
てか、なんで試さないの? var_dump()してstringが返ってくるかどうか、30秒で確認できるっしょ なんでそんな誤訳(?)したんだろうね
確認お疲れさまでした
マニュアルはGitHub管理のはずなのでPR出しておくと修正されるよ このスレ、>>934から「文字列で返ることは確認済み、問題にしてるのはマニュア
ルの記述だ」と読み取らないと質問者様のお怒りを招くのか。レベル高いな >>932なんて完全なアホだし
>>933もよく分かってないだろう
知ったかぶりして回答しないことだなw PHPのドキュメントは翻訳だから間違いがあるのはしょうがない。
その点Rubyは開発者が日本人だから日本語ドキュメントも完璧。
初心者がドキュメントの正誤判断することは不可能
初心者はRubyから学習を始めるべき。
そしてRubi on Railsを習得すればPHPは不要
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
https://mevius.5ch.net/test/read.cgi/tech/1608837867/ >>940
私はphp言語の開発者です
お前はphpの使用禁止 ドット演算子、アロー演算子を作った人なので
今はコア開発者ではありませんよ てことはレジェンドじゃないですか!
Andi さん?Zeev さん?
まさかの Rasmus さん? 誰を名乗っても問題ありませんので誰でも良いですが
まあ、完全なアホというのは良くないですよ
というか、アホは完全でないからアホですよね
つまり私はある種完全性を肯定されました
ありがとうございます 知らんうちにPOSIX系関数の返り値が多次元化されてたのね。preg_matchとか。 WordPressの管理画面にログインもしていないのに
サイト更新が完了しましたメールが届きます。
これってどういう仕組みで実現してるんですか?
Cronで実行用のファイルを動作させないと無理ですよね? 別にcronじゃなくてもいい
誰かがサイトにアクセスしたらサイト更新チェックのトリガーが発動とかでもできる Cronで、何が変更されたか全体を調べて通知するよりも
変更をトリガーにして通知を送らせる方が、多分軽い >>950
PHPって同期通信だから、誰かのアクセスが遅延したりするんですか?
>>951
全体を調べなくても、バージョン情報だけ調べれば良いのでは >>952
PHPでも非同期処理できるし、遅延はほとんどなしにできるでしょ スレ違いのクソレスしか能がない御方には難しすぎるな… >>953
つまり、考え方としては
1)WordPressの公開画面に誰かがアクセスする
2)Ajaxなどで非同期処理して更新チェック
3)更新する必要がある場合は、自動更新
って仕様なんですかね?
であるならば、WordPress以外のPHPアプリでもできそうですね >>956
Ajaxなんか使わなくてもPHPのexec()だけで非同期処理できる
あとはそんな感じ
もちろん実装の一例で、それ以外の方法もあるだろう >>957
わかりました。調べてみます。ありがとうございました。 pdoとプリアドステートメントというのをやってみたのですが
$stmt = $pdo->prepare("クエリ文");
$stmt->bindValue(・・・)
$stmt->execute();
ここでDBにアクセスしていると思いますが、
行数を数える $stmt->fetchColumn()
や
foreach ($stmt->fetchAll() as $row) {
を使う時はDBにアクセスしているのでしょうか?
一旦 $result = $stmt->execute();
みたいに結果を変数に入れてから
$result->fetchColumn()
$result->fetchAll()
のような使い方をすればいいのでしょうか? PDOStatement::execute() の戻り値は成否を表すboolなので
$result = $stmt->execute();
は結果セットの取り出しとは無関係です
:execute()されるとPDOStatement:に結果セットがセットされます
fetch~は結果セットから取り出すメソッドなのでDBアクセスは伴いません
マニュアルを読んで実験してみるよ良いですよ Symfonyってもう最近使われないですか?
10年前にSymfonyで作られたWebアプリの保守の案件があるのですが >>963
ぐぐっても2006年の資料とか・・・
2019年に最新版は出ているみたいですが、新しい資料じたいがあまり無いゆえ。 wikipedia やそこから辿れる公式すら見てねぇじゃねぇか
エンジニアになりたかったらまずは公式読めるようになれ >>961
アロー演算子というのに全く慣れていなくて
$stmt->bindValue(・・・)
$stmt->execute();
->を使うと$stmtというのが上書きされていく感じでしょうか?
昔は手続き型を使っていたので
$resultに結果を入れて、あれこれやっていましたが
この -> が変数に代入することなく使えるのが不思議な感じです
もう少しマニュアル読んでみます
https://www.php.net/manual/ja/pdo.prepared-statements.php なんで.じゃダメだったのかなぁ…
中途半端にPerl構文引き継いだせいで面倒なことに… 文字列の連結に使ってるからでしょ。
文字変数と、文字列を返す関数、この2つの項の文字列としての連結と区分けが付かなくなるじゃん。
インスタンス自体も文字列評価可能なんだし。 >>967
-> はC由来で . はPerl由来か?
プログラミング言語とスクリプト言語を中途半端に交ぜたからだね
文字列連結も + のほうが分かりやすいしそうするべきだったかと アローもドットも:: も全部C++由来では。
C++自体別から引用してるだろけど、
3つか揃い踏みしたトップランクな有名言語はC++だろう。
ポインタ経由、実態経由、クラス経由で記述を分けた。
結局分けないPythonやC#みたいな言語の方が書きやすいという... >>970
お前がまるで分かってない事だけは分かった 変数型宣言がない言語で+で文字連結できちゃうとバグの温床になる だから、個々は別から引用したかもしれんが、
3つ揃い踏みしたトップランクメジャー言語はと書いてるじゃないか。 >>976
COBOLは & らしい。気持ちは分かるが今となっては糞仕様だな。
>>974
それはJSのことを言ってるのか?
ただそれはない。
数値型の変数はほぼ全部のケースで変数名で数値だと明確であり、そこはバグらない。
countやlength、num_of_xxxを文字列で扱う馬鹿はそれ以前の問題だ。 テンプレートリテラル{}使うか.による文字列結合使うかの判断がちゃんと出来ない
今の所ラクな方選んでるだけだな それでいいわ。強いて言うならエスケープしないで済む方 PHPの学習で、トランザクション勉強していますが。
おおざっぱに、「一連のクエリ処理を一つの処理と見立てて、途中失敗したら最初からなかったことにする」
機能かと思います。
で、課題として、簡単なECサイト作っています。
一般の利用者が商品を選択しカートを入れ、お金を払って買い上げるのようなものです。
テーブルは「カート」「商品情報」「利用者」「在庫情報」です。(ほんとは英字です。)
利用者が購入に失敗したら、ロールバックで購入が無かったことにします。
ここで、一連のクエリ処理というのは、「商品を選びカートに入れる」というところから始まるのでしょうか?
「商品を選びカートに入れる」という行為と、「カートにある商品を買う」という行為を
わけて、「カートにある商品を買う」について、トランザクションを設定するものでしょうか?
すいません。意味とおりますかね。。よろしくお願いします。 単に最後の購入処理で途中でエラーが発生して整合性が取れない時に
ロールバックするぐらいのイメージで良いのでは?
途中のカートに追加するような処理はそれ単体で失敗すればロールバックかなと
(この場合、カートに追加する処理に失敗したという事でカートは前のまま) カートに入れるところからトランザクション始めたら買われるまで一連の処理終われないし、途中でタイムアウトするやろw カートに入れる処理はトランザクション二する必要がない
利用者が自分の意志で取り消すケースもあるわけだし
必要なのは、利用者が決定ボタンを押して、購入完了になるプロセスくらいじゃないかな
一つしかない商品を他の利用者と競合して購入したかもしれないし
複数種類を購入した際に、一つが在庫不足になってたかもしれない
そういうときに、決定ボタンを押す直前までロールバックが必要になる トランザクションとかセッションとかは文脈で定義される範囲が変わるのでちゃんと意識して書いたほうがいい
その上で、今回はDBのトランザクションのことだとエスパーして回答すると設定される範囲は間違い
記述がないので何をトランザクション処理として設定するかは回答できないけど、「ユーザの決済処理」「在庫処理」あたりがひとまとまりになると思う
入門書で記述されるトランザクションとついでにプリペアドステートメント(プレースホルダ)処理はデータベース側の処理なので入門書から離れてデータベース側の処理をデータベースの公式を参照しながら学習すると良い みなさんありがとうございました。
良くわかりました! phpmyadmin にINT型でUNSIGNED(整数マイナスを除く)に設定したカラムがあります。
直接phpmyadmin上でこのカラムのデータに対して、SQL文でマイナスの値をUPDATEしようとすると
以下のようなアラートが返ってきます。ただし、データは0の値になります。
Warning: #1264 Out of range value for column 'test_int' at row 7
phpから、PDO接続で同じようにUPDATEしたとき、エラーとさせて入力を拒否したいのですが方法がありますでしょうか?
try-catch文で、以下のようにしたものの、ただ値が0になるだけしかなりませんでした。
良いアイデアがあれば教えてください。
$a =-100;
try {
$ps = $db->prepare("UPDATE tb2 SET test_int = :a WHERE nam = 'タヌキ'");
$ps->bindParam(":a", $a);
$ps->execute();
echo "UPDATE成功";
}
catch (RangeException $e){
echo "UPDATE失敗";
} 試してないけどMySQL側に警告じゃなくてエラーを返すモードがあるみたい
https://dev.mysql.com/doc/refman/8.0/ja/sql-mode.html
TRADITIONAL を有効にすることでエラーを返すようになるみたい 普通はバリデーションをしてSQLでエラーにならない値を設定するかなと
SQLでのエラーは想定外の事が起きた場合に限る感じ ありがとうございます。
事前チェックが良いですね。ありがとうございます。
データベースからのエラーを拾いたいのは、
トランザクションのコミットかロールバックの判断を
try-catchで補足しないといけないかと、
勝手に思っていたからです。
(多くの参考書がtry-catch文で判断していたから)
でも、処理毎にエラー文を配列に格納して、
最後の処理の後に、配列の内容の有無を確認して、
トランザクションの判断をすればいいですね。 トランザクション処理でその様なエラーを拾わせるって
まずくね?
たぶん、クライアントから受け取ったデータだと思うし、
それって単独で許容値かどうかを判断出来ると思うんだよ
Web画面経由なら、クライアント画面にエラー表示させて
再入力を促せると思うんだ
そうすればどう言うエラーか判断する必要もないよね バリデーション
問題があればここでエラーを返し下の処理はしない
try{
トランザクション開始
SQL実行
コミット
}catch(Exception e) {
ロールバック
DBでエラーが発生した事を返す
}
正常終了 入力の例外値などは、
トランザクションで判別させるようなものじゃない。
ってことですか? トランザクションの判別は、何か想定外の問題が起きた時であって、
想定されるような問題は事前になんとかしとけということかな。 トランザクションで判定しないと行けないのは、
リソースの取り合いがあるときやDB自身の障害など
DB側でしか分からないようなケースだな ありがとうございます。
ということは、トランザクションは、
try-catch文で例外判断するのが一般的なのですね。 クラスのファイル名の拡張子に .inc を使うのは
今の時代では許されてないの?
許されるなら .inc を使い続けたい 次スレ立ってた
【PHP】下らねぇ質問はここに書き込みやがれ 14
https://mevius.5ch.net/test/read.cgi/tech/1663659983/
>>998
まずはPSR-0や4を調べてもらって、その上でincにしたいと言うなら
個人の趣味開発くらいなら自由にしたら良いと思う >>999
PSR-0を読んで、そういや .incはダメって書いてねーな・・・ と思ったので聞いてみました!
1000なら許される このスレッドは1000を超えました。
新しいスレッドを立ててください。
life time: 377日 4時間 10分 1秒 5ちゃんねるの運営はプレミアム会員の皆さまに支えられています。
運営にご協力お願いいたします。
───────────────────
《プレミアム会員の主な特典》
★ 5ちゃんねる専用ブラウザからの広告除去
★ 5ちゃんねるの過去ログを取得
★ 書き込み規制の緩和
───────────────────
会員登録には個人情報は一切必要ありません。
月300円から匿名でご購入いただけます。
▼ プレミアム会員登録はこちら ▼
https://premium.5ch.net/
▼ 浪人ログインはこちら ▼
https://login.5ch.net/login.php レス数が1000を超えています。これ以上書き込みはできません。