◎正当な理由による書き込みの削除について: 生島英之 とみられる方へ:【PHP】下らねぇ質問はここに書き込みやがれ 13 YouTube動画>3本 ->画像>6枚
動画、画像抽出 ||
この掲示板へ
類似スレ
掲示板一覧 人気スレ 動画人気順
このスレへの固定リンク: http://5chb.net/r/tech/1631147923/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
!extend::vvvvv:1000:512
★スレ立て時 ↑ が3行以上になるようコピペ
PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 12
http://2chb.net/r/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分おきにアクセスすることになります
頭のおかしい人に以下のようなことを言われました
>>基本、スクレイピングは営業妨害との戦い。
>>どの本にも、そう書いてある。
>>スクレイピングを推奨する本はない
具体的な書籍名を教えてください
>>5 ch は、マルチポスト禁止!
>>同じ質問を、複数のスレや外部のサイトに書いてはいけない
どこでそんなルールが決まっているのでしょうか?
スクレイピングはクローリングでない マルチポストは返信の作業を勘案した返答をもらえる確率の問題
>>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 アスペってのは医学的にはサリーとアン課題が解けない奴の事で、
プログラミング的に言えば、相手と自分の情報状態を別々にインスタンス化して管理出来ない奴、
つまりお前の事だよ。
統失はパターンは色々あるけど、ありもしないものが見える奴とかだね。
つかもういいかね?もう生産性まるでないだろこの会話。
>>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匹目
http://2chb.net/r/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
VIDEO Web系エンジニアを目指す人のためのプログラミング学習ロードマップ、2021/2
VIDEO 今までは、女の子が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のパフォーマンスを向上させます。
>>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も多いけど。
VIDEO ただし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を描画する
ただ
>>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 https://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万以上の数値に変えてほしいのですが、どなたかやってくませんか?
自分ではできないので
何卒宜しくお願い致します
[email protected] 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を使うらしいんだけど、書き方よく分からない
まず書籍なり動画学習なり先にやってこいよ 実装聞くって完全にお任せコースだろが
有償でやるなら、きちんとしたサイトがあるだろう 知り合いのつてたよって、企業に依頼する方法もあるだろう 匿名掲示板の、互いに正体不明の相手と金をやり取りって 釣りとしか受け取られない
>>757 まずアプリ作る以前にそのHTMLだけを書いてみたら?
見栄えはどうでも良いとしてね
それが出来たらLaravelであればviewファイルを取りあえずHTMLのそのままコピーで置く
それだけだと見るだけなら動くのではないかな?
formのactionにsubmitを押した後の処理の先を設定したりcsrfトークンをhiddenに設定したりなど
色々しないとその先は動かないけど
>>757 Laravelはバージョンがたくさんあって分かりづらいけど、
アップデートはそんなに大変じゃないから、
とりあえず本屋行って、わかりやすい本買ってきたら?
俺は6の本買って、MVCやフォーム操作をひと通り学んだ後、
8の開発に取り組んだけど、わりと簡単に移行できたよ。
白紙の状態だと難しいから、本のサンプルを作ってみれば良い
お金が無ければ図書館で借りるといいよ 無ければリクエストすれば買ってもらえる 違う言語だけど2冊買ってもらったよ
全く書けないってPHPの基礎がないんだろ まずは基礎を勉強せい
どこにでも一定数いるけど 相手に時間に使わせても一向に平気な人間って居る 暇なひとだから教えてくれてるとか 自分に都合の良い解釈ばかりして 相手から搾取することしか考えていない 関わるだけ時間と手間の無駄
そりゃ友達には気を使うけど、会社の人間とかお前らなんて搾取さえ出来れば用無しだからな 俺が神でお前らは無償労働してくれる下僕。これからも俺の質問に無償で答えてくれよぉーんw
ただで答えてもらう代わりに罵詈雑言も多々受ける win winということで
はい。よろしくたくさん罵っていただければありがたいです
はい。たくさん罵っていただければありがたいですって
なんか2回も書き込みミスって恥ずかしいからもうこのスレ見ません
× やさしいから × ひまだから ○ 搾取される体質だから
× やさしいから × ひまだから × 搾取される体質だから ○ ハゲだから
+ JavaScript の質問用スレッド vol.124 +
http://2chb.net/r/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
http://2chb.net/r/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
http://2chb.net/r/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
http://2chb.net/r/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
http://2chb.net/r/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
http://2chb.net/r/tech/1608837867/ Rubyとかいうキチガイになる言語やってなくてよかった とつくづく思う
初心者です。教えて下さい。 PHPでSQLのWHERE句を作成中ですが、 str_replaceが思うように機能せず WHERE句の整理ができません。 $sql = str_replace(") )", ")", $sql); なんで?
rubyでやるなら sql.gsub!("\)\)", ")")
PHPで文字列置換は難しい。
初心者にはほぼ不可能
初心者はRubyから始めるべき。
こっちのスレで質問すれば親切な達人プログラマーがどんな質問にも懇切丁寧に答えてくれる。
↓
Ruby 初心者スレッド Part 67
http://2chb.net/r/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
http://2chb.net/r/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 その日本語、英語版(
https://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
http://2chb.net/r/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
http://2chb.net/r/tech/1663659983/ >>998 まずはPSR-0や4を調べてもらって、その上でincにしたいと言うなら
個人の趣味開発くらいなら自由にしたら良いと思う
>>999 PSR-0を読んで、そういや .incはダメって書いてねーな・・・ と思ったので聞いてみました!
1000なら許される
-curl lud20241203182036caこのスレへの固定リンク: http://5chb.net/r/tech/1631147923/ ヒント: 5chスレのurlに http ://xxxx.5chb .net/xxxx のようにb を入れるだけでここでスレ保存、閲覧できます。TOPへ TOPへ
全掲示板一覧 この掲示板へ 人気スレ |
Youtube 動画
>50
>100
>200
>300
>500
>1000枚
新着画像 ↓「【PHP】下らねぇ質問はここに書き込みやがれ 13 YouTube動画>3本 ->画像>6枚 」 を見た人も見ています:・【PHP】下らねぇ質問はここに書き込みやがれ 11 ・【PHP】下らねぇ質問はここに書き込みやがれ 10 ・【PHP】下らねぇ質問はここに書き込みやがれ 14 ・【PHP】下らねぇ質問はここに書き込みやがれ 15 ・【PHP】下らねぇ質問はここに書き込みやがれ 12 ・【PHP】下らねぇ質問はここに書き込みやがれ 3 ・【PHP】下らねぇ質問はここに書き込みやがれ 8 ・【MTG】くだらねぇ質問はここに書け!part177 [無断転載禁止] ・くだらねえ質問はここに書き込め! Part 215 ・くだらねえ質問はここに書き込め! Part 214 ・くだらねえ質問はここに書き込め! Part 212 ・くだらねえ質問はここに書き込め! Part 217 ・くだらねえ質問はここに書き込め! Part 242 ・くだらねえ質問はここに書き込め! Part 237 ・くだらねえ質問はここに書き込め! Part 234 ・くだらねえ質問はここに書き込め!Part 227 [無断転載禁止] ・〒くだらねぇ質問はここでしろ【質問スレ】 159 ・〒くだらねぇ質問はここでしろ【お客さま専用】163 ・〒くだらねぇ質問はここでしろ【質問スレ】 161 ・生物学専門家への質問はここに書き込めPart43 ・〒くだらねぇ質問はここでしろ【お客さま専用】162 ・生物学専門家への質問はここに書き込めPart42 ・〒くだらね〜質問はここでしろ【お客さま専用】153 ・【トンスル】 真・懐メロ洋楽に関するくだらねえ質問はここで訊け! TWENTY 1 【アスペンゲルガー】 ・〒くだらね〜質問はここでしろ【お客様専用】157 ・〒くだらね〜質問はここでしろ【お客様専用】154 ・〒くだらね〜質問はここでしろ【お客様専用】156 ・〒くだらね〜質問はここでしろ【お客さま専用】152 ・〒くだらね〜質問はここでしろ【お客さま専用】151 ・スレ立てるまでもない質問はここに書け ・くだらない質問はここに書け!Vol.35 ・くだらない質問はここに書け!Vol.34 ・どうしてもマルチしたい質問はここに書け○チ ・■ちょっとした物理の質問はここに書いてね258■ ・くだらない質問はここに書け!@バーゲン板 ・■ちょっとした物理の質問はここに書いてね180■ ・■ちょっとした物理の質問はここに書いてね222■ ・毎日ここに0:19に書き込みする基地外(・∀・) ・■ちょっとした物理の質問はここに書いてね256■ ・■ちょっとした物理の質問はここに書いてね255■ ・■ちょっとした物理の質問はここに書いてね257■ ・■ちょっとした物理の質問はここに書いてね250■ ・■ちょっとした物理の質問はここに書いてね253■ ・■ちょっとした物理の質問はここに書いてね220■ ・■ちょっとした物理の質問はここに書いてね225■ ・■ちょっとした物理の質問はここに書いてね221■ ・■ちょっとした物理の質問はここに書いてね218■ ・■ちょっとした物理の質問はここに書いてね224■ ・■ちょっとした物理の質問はここに書いてね233■ ・■ちょっとした物理の質問はここに書いてね227■ ・■ちょっとした物理の質問はここに書いてね200■ ・■ちょっとした物理の質問はここに書いてね236■ ・■ちょっとした物理の質問はここに書いてね234■ ・■ちょっとした物理の質問はここに書いてね240■ ・■ちょっとした物理の質問はここに書いてね235■ ・■ちょっとした物理の質問はここに書いてね239■ ・■ちょっとした物理の質問はここに書いてね232■ ・■ちょっとした物理の質問はここに書いてね196■ [無断転載禁止] ・おまえらがサムライさんを誤解してるようなのにここに書き込みたい ・■ちょっとした物理の質問はここに書いてね206■ [無断転載禁止] ・■ちょっとした物理の質問はここに書いてね202■ [無断転載禁止] ・■ちょっとした物理の質問はここに書いてね204■ [無断転載禁止] ・■ちょっとした物理の質問はここに書いてね215■ [無断転載禁止]
05:50:40 up 3 days, 16:14, 0 users, load average: 11.30, 10.16, 10.03
in 0.028923988342285 sec
@0.028923988342285@0b7 on 121519