【PHP】下らねぇ質問はここに書き込みやがれ 13

■ このスレッドは過去ログ倉庫に格納されています
2021/09/09(木) 09:38:43.41ID:eDlF7Xc4M
!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
2022/01/12(水) 13:45:04.64ID:GPFkW/uI0
>>230
どうもです。phpにしときます。
wordpressも使うし。
2022/01/12(水) 19:05:17.95ID:cgAm36ON0
>>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も滅ぼしたがってるけどね。
233デフォルトの名無しさん (テテンテンテン MM4f-zw7+)
垢版 |
2022/01/12(水) 19:45:02.13ID:HUvSYeLkM
PHPで何のフレームワーク使われてるか見分ける方法ありますか?
レンタルサーバーからソースは全部ローカルに移したんだけどどこ見ればいいのかわからない。そもそも使ってないかもしれない
2022/01/12(水) 19:47:58.08ID:CS5942FP0
index.php見れば判別できると思うぞ
2022/01/12(水) 19:56:02.65ID:oNseMJta0
個人的にはjs滅べと思ってる
236デフォルトの名無しさん (テテンテンテン MM4f-zw7+)
垢版 |
2022/01/12(水) 19:57:51.52ID:HUvSYeLkM
>>234
ありがと
見たけど特にそれらしきもの無かった。

30画面以上はあってDB接続とかしてるけどフレームワーク使わないってよくあるもの?
2022/01/12(水) 20:14:21.25ID:CS5942FP0
WordPressとか30ページ以上あってもフレームワークじゃないでしょ?
古いシステムでもフレームワーク使用してないのはそれなりに見かける
2022/01/12(水) 21:04:32.11ID:cgAm36ON0
>>235
JSは現状滅ぶ兆候すらない。
対抗馬もいないし、PHPerですらJSを書くしかない。
シェアは上がる可能性しかなく、実際にそうなってる。

PHPもまあ滅ぶ兆候はないが。
滅ぶかどうかは結局使う人が居るか≒新規参入者があるかであり、
PHPは一番簡単な所=新規参入者が多いところを占拠してるからこの点は盤石。
ただし改善はされてるが遅いし方向は間違ってるしで、今後とも他言語と比べて糞であり続ける。
そして新規参入者≒レベルが低いので、実際このスレもそうだし、
未来永劫PHPは糞でPHPerが馬鹿にされ続けるのもほぼ確定してる。けど滅ばない。

言語を開発する奴は通常はプログラミング大好きで「良い言語」を目ざし、「馬鹿向け」言語は目指さない。
この点、プログラミング嫌いを公言するラスマスが開発したので唯一性を保ってる。
ただし昨今のプログラミング教育義務化で「小学生でも出来る!」も目ざし始めたから多少は変わるかも。
とはいえ、PHPが滅ぶとしたら
・PHPより簡単な環境等の出現
・義務教育化で過半数が最初からJSで問題ない程度にプログラミング出来るようになる
のどちらかが必要で、どっちもないと俺は思うけど。
2022/01/12(水) 22:57:22.75ID:jcrcQ2pk0
JS難しいよな
2022/01/13(木) 00:06:23.13ID:Ia/gMc7B0
>>208
に書いた

日本のウェブ開発の将来は、ほぼKENTAが決めている

Ruby on Rails の有料サロンは、日本6位の3千人。
(1位は、数万人のキングコング西野)

Laravel のシェアは少しあるけど、KENTAがPHP は一生やる必要がないと言ったので、
PHP自体が一気にオワコンになってしまったw
Scala を滅ぼしたのも、KENTA

PHP はウェブサービスの言語だから、Railsに勝てないと、シェアが取れない。
Python, Julia には、AI・機械学習という新たな分野があるけど

Zozo は、Laravelだけど、
プロユースのウェブサービスでは基本、Rails以外のフレームワークのシェアがない
2022/01/13(木) 00:19:09.74ID:tGvK+xu50
>>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
2022/01/13(木) 00:45:52.90ID:tGvK+xu50
見てたらPHP.netみたいな目次もあったわ。
https://qiita.com/kotarella1110/items/064904b3269098938be8
文法的にはここを読めば済むから、
これで駄目ならプログラミング自体が出来ておらず、その場合はどの言語でも難易度は同じ。
2022/01/13(木) 00:46:50.55ID:tGvK+xu50
ごめんリンク間違った。PHP.netみたいなMDNの目次は以下。
https://developer.mozilla.org/ja/docs/Web/JavaScript/Guide
244デフォルトの名無しさん (ワッチョイ 5fb3-6Qs4)
垢版 |
2022/01/13(木) 01:05:10.31ID:M4+X8mJO0
フレームワーク等は使用せずに、外部ファイルのHTMLテンプレを読み込んでテンプレの変数を展開した上で出力するPHPプログラムを作っています

テンプレートに記載されている変数をPHP側で展開する良い方法はありますでしょうか?

テンプレをfile_get_contentsで読み込んでstr_replaceで変数を値に置換する事でひとまず対応できたのですが、何かもっと良い方法が無いかと思い質問させて頂きました
2022/01/13(木) 01:26:49.07ID:CtFruw0j0
extract()
ob_start(), ob_get_clean()
preg_replace_callback()

自作のテンプレエンジンだと、大体これらの関数を使う
246デフォルトの名無しさん (ワッチョイ 5fb3-6Qs4)
垢版 |
2022/01/13(木) 02:29:26.77ID:M4+X8mJO0
レス有難うございます!
それらの関数について調べてみます!
2022/01/13(木) 07:47:34.46ID:YXAuRPN9M
>>238
>ただし改善はされてるが遅いし方向は間違ってるしで、今後とも他言語と比べて糞であり続ける。

「遅い」というのをPHPの実行速度のことを言ってるならPHP8はかなり速いぞ
2022/01/13(木) 08:23:34.52ID:tGvK+xu50
>>247
遅いのは「進化」のことだよ。
他言語よりも進化速度が遅いから、他言語には永遠に追いつけず、差も広がり続ける。
だから絶対値はマシになるけど、比較的糞なままなのも確定してる。

つか、
> そもそもpythonよりphpのほうが3倍高速 (>>230)
これってマジ?聞いた事無いけど。(Pythonと大して変わらんと聞いている)
2022/01/13(木) 09:09:36.65ID:dMrpZs5dr
>>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
2022/01/13(木) 10:16:57.97ID:3y+qilua0
めっちゃ進化してて笑うw
2022/01/13(木) 13:09:36.04ID:9fpCP2+O0
php8はもっと速度あげてましたよね。
2022/01/13(木) 13:23:15.09ID:M4+X8mJO0
>>245
教えて頂いた関数を調べました
テンプレ側でphpタグ内でechoすればいくらでも取り扱い方はあるんですね

元々インフラエンジニアでsmartyを使ったサイトの保守をやる事になりPHPを勉強し始めたので、何も考えずテンプレ側で中括弧で囲んだものを変数展開する実装をしようとしていましたw

ありがとうございました!
2022/01/13(木) 14:20:01.60ID:tGvK+xu50
>>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)の速さは特筆すべきだよ。
2022/01/13(木) 14:24:29.40ID:oIjbYCPRM
速さなんかでは言語は選ばれない
インフラ側をスケールすれば解決する
結局は人材確保が容易い言語が選ばれる
そういった意味ではPHPの地位を脅かす可能性のある言語は現状ではPythonよりjsになると思う
2022/01/13(木) 14:28:10.91ID:i4pedxF50
クライアントサイドのjsが比較対象になる理由が分かりません
2022/01/13(木) 17:51:03.92ID:aFi3jMHu0
node.js知らないのか・・・

まぁ、日本ではnode.js使ってるという話はあんまり聞かないなぁ
PHPで実装した方が使える人を集めるのも楽だしね
expressなどで一度はやってみたいけど
これもvueやらreactやってないと多分キツいのではないかと思う
2022/01/13(木) 18:10:14.50ID:tGvK+xu50
>>254
スケールにも限界があるからNode/Go/Rustに移行するわけだろ。
そしてPythonも十分人数はいるよ。PHPも多いけど。
https://www.youtube.com/watch?v=Og847HVwRSI

ただしPythonをWebで使う理由は「Python以外やりたくない」だけで、
それでもどのみちJSは外せないので普通ならJSを勉強するか最初からNodeで行く事になる。
だから、PythonによってPHPが滅ぼされるって事にはならないだろうね。
2022/01/13(木) 23:12:01.90ID:Ia/gMc7B0
Django を選択する香具師は、適材適所じゃない

企業の目的は、安い速いうまい。
だからウェブサービスでは、Ruby on Rails で良い。

Python に、こだわる必要はない。
AI・機械学習なら、Python, Julia を使えば良いけど

Ruby の女神・池澤あやかは、
Ruby biz Grand prix 2020 の大賞を取っているけど、

他の言語で開発しようとしても、人材が確保できなかったので、
結局、Railsで作る事になったと言っていた
2022/01/13(木) 23:34:11.70ID:6Sqpg55i0
WEBスクレイピングしたら逮捕されるって本当ですか?
260デフォルトの名無しさん (テテンテンテン MM4f-zw7+)
垢版 |
2022/01/14(金) 15:31:15.16ID:9ZtlNqLhM
jQueryのajaxでPHPの処理呼んでmb_send_mailでメール送信してるんだけど、セキュリティ的に問題あったりします?
PHPMailerとか使わないとだめかしら
261デフォルトの名無しさん (オッペケ Srd1-9WIe)
垢版 |
2022/01/15(土) 20:41:18.61ID:6jv0Mmn0r
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のループ終了
262デフォルトの名無しさん (オッペケ Srd1-9WIe)
垢版 |
2022/01/15(土) 20:49:59.27ID:6jv0Mmn0r
解体して表示だけ取得だけ全部試しました。
それなのにinsert into?が原因で格納に失敗します。
データベースの名前カラムすべて見直しました。
何が原因でしょうか?
2022/01/15(土) 23:21:51.40ID:iJzr35B10
コンソールに、データベースのエラーメッセージが出ていないの?
そのエラーメッセージで検索すれば?

例えば、Ruby on Rails では、

SQLite のコンソールを使わなくても、
Rails console から、直接データベースを更新して、内容をチェックできる
2022/01/15(土) 23:43:25.35ID:oXGiUqfh0
>>262

$desW ってどこかで設定しているの?
2022/01/16(日) 01:35:25.89ID:YYF6c/OO0
https://www.sejuku.net/blog/24522

ubuntuで使っててここじゃないページでSQLのエラー表示の方法
みかけたけどどこか忘れた
266デフォルトの名無しさん (オッペケ Srd1-9WIe)
垢版 |
2022/01/16(日) 02:01:59.05ID:VgKPIk3gr
RSSを格納するときにエラーが出ていたので格納したところ、Base table or view not found: 1146 Tableと表示されておりました。
どうやら、モデル名.テーブル名に格納するようになっておりこのモデル名が邪魔なようです。どのように解決すればよいでしょうか?
lavelでの解決法しか出てこなくて困っております。
267デフォルトの名無しさん (オッペケ Srd1-9WIe)
垢版 |
2022/01/16(日) 02:05:46.19ID:VgKPIk3gr
>>264
$desWは設定し忘れておりました。すみません。
格納がことごとく失敗してそこばかり修正していたので冷静に全体まで目が通ってないかもしれません…
268デフォルトの名無しさん (オッペケ Srd1-9WIe)
垢版 |
2022/01/16(日) 22:20:14.83ID:PpUhmIHar
データベース名が複数存在しておりconfig.phpに記載されているdbnameと異なるものを新規で作成したためエラーが起こっておりました。デフォルトのデータベースにテーブルを作成したところ成功いたしました。
コードを修正するあまりデータベースの基本操作の理解をおろそかにしておりました。誠に申し訳ありません。
269デフォルトの名無しさん (テテンテンテン MM66-E6lP)
垢版 |
2022/01/17(月) 12:28:27.68ID:Swoj17EWM
PHP初心者です。
index.phpにrequireでDBからデータ取得する共通処理を呼び出して表示をしていますが、キャッシュのせいかデータを更新しても古いデータが表示されてしまいます。

index.phpにheader(“Cache-Control: no-store•••のキャッシュ無効化を書いたら正しいデータが表示されるようにはなりましたが、imageとかcss等もキャッシュされないとサイトが重くなるのでは?と思っています
どうするのがいいでしょうか?
2022/01/17(月) 13:52:32.24ID:rdgDbl6jC
>>269
普通はそんなキャッシュされないんだけどね
ブラウザの履歴全部消して、追加したheader()も削除して、index.phpを開いた時のリクエストヘッダとレスポンスヘッダさらせば、原因がわかるかもね
271デフォルトの名無しさん (テテンテンテン MM66-E6lP)
垢版 |
2022/01/17(月) 18:49:25.24ID:tufIE2pHM
>>270
ありがとうございます
レンタルサーバのキャッシュの設定ぽかったです
header(‘Cache-Control: no cashe’)で回避することにしました
2022/01/17(月) 22:01:17.94ID:0Oj5SST40
for文の入れ子が理解できません
コードを見て、どういう結果が出るのかっていうのはわかるんですが、意図通りの結果を出す為に1からどうコードを書けばいいのかがわからないんです..
以下を表示するためのfor文について、コードの組み立て方を教えてもらえないでしょうか
***1
**121
*12321
1234321
2022/01/17(月) 22:10:02.57ID:Fwtfafsq0
*は出力していないけど、
for ($i = 1; $i < 5; $i++) {
for ($j = 1; $j < $i; $j++) {
echo $j;
}

for (; $j > 0; $j--) {

echo $j;

}
echo PHP_EOL;

}
2022/01/17(月) 22:11:09.00ID:Fwtfafsq0
変な改行入ったなw
https://paiza.io/projects/sYqpYSLp4sGFciORCbbekA
に置いておいたよ
2022/01/17(月) 22:25:20.22ID:lSQgpR630
*をリピートで出力。数字を出力。改行。以上
for ($i = 1; $i < 5; $i++) {echo str_repeat("*", 4-$i) . ((10**$i - 1)/9)**2 . PHP_EOL;}
2022/01/17(月) 23:06:53.64ID:fRpijKvH0
上から何行目かを表す変数を、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 となる
2022/01/17(月) 23:30:06.87ID:0Oj5SST40
>>272です。
皆様ありがとうございます。
いただいた回答をじっくり見て自分でも再度考えてみます。
278デフォルトの名無しさん (テテンテンテン MM66-E6lP)
垢版 |
2022/01/18(火) 16:39:24.93ID:5gBRec40M
html形式のメール送る時ってマルチパートメールにします?
書き方調べるとサイトによって違うし今どきhtmlメールだけでもいいかなとか思えてきた
2022/01/19(水) 01:25:50.88ID:Lpp/4I5F0
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>

@変数名は、クラスから作られたインスタンス変数です
280デフォルトの名無しさん (ワッチョイ 25bb-afNC)
垢版 |
2022/01/19(水) 06:50:43.65ID:onZesMbl0
質問失礼します
現在フォームを作成しているのですが、
送信ボタンを押されていない時に送信してください!という文字を表示し、ボタンを押されたら送信完了しました!という文字を表示したいです
どうすればできるでしょうか?
2022/01/19(水) 06:53:07.17ID:nCt3m1whM
すごく難しい質問だけど理屈が分かれば簡単
つまり、
送信ボタンを押されていない時に送信してください!という文字を表示し、ボタンを押されたら送信完了しました!という文字を表示すれば完成するよ
2022/01/19(水) 07:43:57.10ID:Lpp/4I5F0
Ruby on Rails では、何かアクションをして、ページ遷移してから、
メッセージを表示する機能を、flash メッセージと言う

内部的には、表示するメッセージをセッションに保存しておいて、
ページ遷移したらメッセージを表示してから、
メッセージをセッションから削除する
2022/01/19(水) 07:49:31.24ID:ZJAQAUyc0
フロントとバックの役割の違いを学習すると良いよ
284デフォルトの名無しさん (テテンテンテン MM66-E6lP)
垢版 |
2022/01/19(水) 12:53:43.34ID:A7aVAia1M
>>280
JavaScriptじゃない?
PHPでできるんか?
2022/01/19(水) 18:51:53.64ID:wphqLZhf0
flockでLOCK_EXを指定してロックした場合、別プロセスで同じファイルに対してアクセスした場合には
ロック解除されるまで具体的にはfopenで待たされているという認識で合っていますか?
2022/01/19(水) 19:25:55.66ID:cQDRi9yq0
いいえ
fopenではなくflockを呼んだ時に待たされます
2022/01/19(水) 19:43:52.83ID:5WpsoH/V0
fopenはできるけど、flockで待たされる?
2022/01/19(水) 19:46:19.25ID:wphqLZhf0
>>286
ありがとうございます
2022/01/19(水) 19:54:11.09ID:wphqLZhf0
もう一つすみません

flockで待たされている間、何らかの問題でロックされたままになってしまった場合はどうなるのでしょう?
max_execution_timeに引っかかりページエラーとなり、その後ロックも解除されるのでしょうか?
2022/01/19(水) 21:00:37.31ID:cQDRi9yq0
異常終了であってもスクリプトが終了した時に開きっぱなしだったファイルは閉じられるでロックも解除される
2022/01/19(水) 21:20:49.67ID:jnXkF28v0
>>280
最初から「押してください」と表示しといて、post先のphpで「あざっす」と表示すれば良いのでは?
2022/01/19(水) 21:32:57.38ID:CzEeZKw2M
押した時ではなく
応答で変わるでは
意図が違うかも
2022/01/19(水) 21:39:31.21ID:wphqLZhf0
>>290
とてもすっきりしました
ありがとうございました!
2022/01/19(水) 23:25:13.14ID:Lpp/4I5F0
>>280
Ruby on Rails のダブルクリックによる二重投稿の防止では、

送信するボタンを押すと、送信中...と表示が変わって、押せなくなる。
f は、form オブジェクト

<%= f.submit "送信する", class: "btn", data: { disable_with: "送信中..." } %>

こういうフレームワークを使っていないと、5ch みたいに二重投稿される
295デフォルトの名無しさん (ワッチョイ 25bb-afNC)
垢版 |
2022/01/19(水) 23:43:48.83ID:onZesMbl0
>>291
すいません、その最初から押してくださいの表示はどんなコードを入力すればできますか?
今やってるコードでは送信しても送信前の文字が残ってしまいまして
296デフォルトの名無しさん (オッペケ Srd1-9WIe)
垢版 |
2022/01/20(木) 00:29:38.02ID:g6LgEdNbr
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>');}
297デフォルトの名無しさん (オッペケ Srd1-9WIe)
垢版 |
2022/01/20(木) 00:31:20.96ID:g6LgEdNbr
何回も修正しているんですが仕組みがわからずコードをどう修正すればいいのかわかりません。
2022/01/20(木) 03:25:15.52ID:XNVR9Tv/0
>>295
echo '送信してください';
echo '<form>';
// ここにフォームの内容
echo '</form>';

送信しても送信前の表示が残るってことはpostでページ変遷させてないんですかね
あなたのコードをここに貼ったほうがいいかもです
2022/01/20(木) 11:09:14.59ID:ytX0ouJz0
>>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 %>
2022/01/20(木) 11:51:25.64ID:h53hxt8ta
RSSをDBに入れる質問してるやつって>>299の自演じゃね?
2022/01/20(木) 12:12:59.62ID:hwIlnS+y0
普通POSTすればサーバーで処理をして返すから、それを表示するだけで良いはず
302デフォルトの名無しさん (ワッチョイ a105-76Y4)
垢版 |
2022/01/20(木) 12:26:30.63ID:OzrcBeNw0
この案件を紹介されましたが客観的に見てどうでしょうか?
プロの方から見て魅力的ですか?

▼業務内容
・新規事業(オンライン展示会サービス)の開発業務で以下の対応をお願いします
 - Laravel / Vue.jsを使ったオンライン展示会のプラットフォームの開発業務
 - オンライン展示会の主催(自社プラットフォームを使用)

▼必須条件
・LaravelとVue.jsを使用した開発実務経験 (3年以上)

▼歓迎条件
・PHP、JavaScript、SQL、AWSを使用した開発実務経験
・新規事業の立ち上げ経験

▼稼働
・正社員前提採用
・平日日中の週2日〜(週5日歓迎)
・1日8時間程度
・土日祝稼働可

▼報酬
・時給:2,000円〜4,000円
・正社員の場合380万円〜750万円/年
2022/01/20(木) 12:50:24.70ID:iGctfi7/0
>>299
PHPでもフレームワークにはORMはだいたい付いてる
2022/01/20(木) 13:16:24.10ID:ytX0ouJz0
>>296
>printf('<li class="sitelink"><a href="%s">%s</a></li>', $link, $title);

こういうように、HTML タグを、文字列から作っているけど、
HTMLエスケープされるのか?

<, > など、HTMLで特別に解釈される文字が入っても大丈夫なのか?

Ruby のERB では、
<%= user.name %>
みたいに、<%= 〜 %> で、HTMLエスケープされるから安全だけど
2022/01/20(木) 13:20:18.98ID:n362EkH20
RSSを纏めて出力するために何故DBを敢えて使うのかが謎なんだが
2022/01/21(金) 00:57:00.67ID:5sHkqJHa0
PHPのスレなのにRubyの話している奴はガイジだからスルーしましょうw
2022/01/21(金) 01:42:23.24ID:BIgyxUmz0
php5からphp7へ書き換えているのですが、
メールアドレスを抽出する部分をeregiからpreg_matchに変更して/ /iを足したところ
falseが返ってくるようになりましたが、どのように修正すればいいのでしょうか?
preg_matchとは違うものを使うのでしょうか?

https://paiza.io/projects/SopBb8b8jFfJrz4SBr8rHw
2022/01/21(金) 02:30:37.52ID:0GO4QNef0
>>307
/をエスケープしてない所があるよ
2022/01/21(金) 03:24:11.30ID:BIgyxUmz0
eregからpreg_matchに変えるとエスケープしないといけないのですね
記号がこれだけあるとどれに加えて良いか難しいです・・
310デフォルトの名無しさん (アウアウウー Sa05-c7oX)
垢版 |
2022/01/21(金) 04:25:36.95ID:e6LRKhfGa
>>305
何でか考えたんですがコンテンツが重複するからですね
ページごとに固定で配置した場合記事が被ります
311デフォルトの名無しさん (アウアウウー Sa05-c7oX)
垢版 |
2022/01/21(金) 04:29:17.18ID:e6LRKhfGa
index.phpにRSSを固定で置いた場合、1ページ目と2ページ目に同じのが表示されてしまっては意味がないです
312デフォルトの名無しさん (アウアウウー Sa05-c7oX)
垢版 |
2022/01/21(金) 04:34:59.34ID:e6LRKhfGa
もう1点聞きたいんですがRSSをデータベースに入れた場合コンテンツの重複を確認する事は不可能ですよね?
クローラーでタイトルもURLも全部取っ替えられるので、最大100件格納するシステムにしてテーブルにあったら出力しないようにするのが良いのか、表示する時に重複は除外するのか

DBに保存せずにページが変わっても重複を避ける方法がありましたら教えてください48時間以上戦っていて限界がきてます
313デフォルトの名無しさん (ワッチョイ 25bb-afNC)
垢版 |
2022/01/21(金) 05:00:41.72ID:cfJjBebz0
>>298
なんとかできました
ありがとうございました
2022/01/21(金) 23:30:23.73ID:2Ya+eSMz0
コンテンツの重複とは、何の項目で判断するの?
普通は、URL とかだけど

また、データを何日で捨てるの?
何日間、同じデータを使うの?

例えば1日なら毎日、1週間に1回なら1週間毎に、
すべての古いデータを削除して、
すべての新しいデータを挿入していく

挿入していく処理中で、
URLなどの項目を、unique にしておけば、重複インサートできない

他には、同一のURLだけど、ファイルの内容だけが異なるのを判断したいのなら、
ファイルの内容から、MD5 みたいなハッシュ値を計算して、
それを保存しておいて比べるとかも出来るけど、

まあ、すべてのデータを削除して、
毎回、空の状態から始める方が分かりやすい・バグりにくい
315デフォルトの名無しさん (アウアウウー Sa05-c7oX)
垢版 |
2022/01/22(土) 10:28:39.25ID:egmIt+L8a
RSSの切り替えは基本的に相手側に合わせる事になると思います
基本は1日で切り替えていくつもりですが
uniqueで切り替えることを検討してみます
重複で保存しない、表示しない
データの保存は全部で10ページ分の360コンテンツを考えており、自分が調べた限りでは重複を避けるにはセレクトでテーブルとカラムを指定して値が入っているか確かめる方法を見つけました。
数についてはプライマリーキーを元に再現する方法を見つけました。
2022/01/22(土) 11:33:05.19ID:irAlkeCUr
独り言が多いスレだな
317デフォルトの名無しさん (アウアウウー Sa4b-6LEA)
垢版 |
2022/01/22(土) 19:21:08.39ID:7F9VA/j6a
もう1点お聞きしたいのですが、insert intoでデータベースにRSSを格納した場合、RSSの更新で勝手に中身が切り替わるのでしょうか?キャッシュされない限り保存できるのでしょうか?
2022/01/23(日) 20:08:45.79ID:Q+XuC88b0
自分でupdateしない限り中身が変わる事などあり得ないのだがw
そもそもプライマリキーが何か知らないけど、updateしないでinsertし続けるのなら
自分でソートでもしないと最新は取れないし、どっちにしても勝手に中身が変わる事などあり得ないw
2022/01/23(日) 20:10:57.00ID:1eJFWKb80
猫かもしれない
2022/01/24(月) 13:17:19.62ID:jdPj866/C
>>302
> ・時給:2,000円〜4,000円
時給3000円以上になるなら、まぁまぁ
2000円とかありえん
2022/01/24(月) 18:36:15.32ID:JhqaNvzk0
>>302
おめー、紹介側の立場だな
2022/01/25(火) 14:49:21.32ID:+dJU8UfpM
90以上のWordPressのテーマとプラグインにウェブサイトへの
不正アクセスを可能にするバックドアが仕込まれていた
2022/01/28(金) 08:54:16.97ID:uohbmMVoa
きちんと理解できて無いんだがプレースホルダーというのはpdoを使った場合にのみ使えるの?
2022/01/28(金) 08:57:05.85ID:L4Fef8wK0
>>323
ちがう
本質はRDB側の仕組み
2022/01/28(金) 10:04:37.83ID:uohbmMVoa
あらまpdoを使った時のsqlインジェクション対策に使う :hoge のことを指すと思ってたわ
mysqliでプリペアドステートメント使ってみて、その時「?」をsql文に入れてbindしてexecuteしたけど、この「?」はプレースホルダーとは言わないの?
326デフォルトの名無しさん (ワッチョイ b501-62kq)
垢版 |
2022/01/28(金) 19:21:16.33ID:bgRIttae0
>>302
それ実質年収380万でしょ どこの田舎?
東京だと舐めてるとしか思えない条件だけど、島根や秋田とかならありなのかな?
2022/01/28(金) 20:22:25.35ID:dRbZojn90
なせ島根や秋田なのか?地元なの?
2022/01/28(金) 21:37:44.69ID:YC2vdad30
東京でもそんな舐めた底辺案件普通にあるイメージ
329デフォルトの名無しさん (ワッチョイ b501-62kq)
垢版 |
2022/01/28(金) 23:17:35.01ID:h0Az4Q2l0
>>327
(立地や人口的に)平均賃金がかなり低そうなイメージがあるからだが?
2022/01/29(土) 05:52:58.32ID:S/AYuT160
[Rails] whereメソッドの「?」(プレースホルダ)
https://zenn.dev/yusuke_docha/articles/f04fb2cbd22508

Ruby on Rails でも、SQL injection を防ぐために、placeholder を使う

published.where('published_at < ?', 変数)
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況