【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/03/27(日) 09:37:32.03ID:2Abk94v90
>>470
そうですね・・・
全然うまく使いこなせなくて、変なことやっていましたが
やはりそちらをちゃんと勉強すべきだと思いました
ありがとうございます、目が覚めました!
2022/03/27(日) 11:19:54.18ID:px6SVueC0
var_dumpに戻り値ないのになぜreturnしたいのか
2022/03/27(日) 11:50:38.48ID:2Abk94v90
>>472
すいません!
returnがそもそも間違ってただけでした、お騒がせしました
return消したら全部解決しました。すいませんでした。
2022/03/27(日) 12:13:35.23ID:o0+t6QgP0
いいってことよ
475デフォルトの名無しさん (アウアウウー Sacd-bb9c)
垢版 |
2022/03/27(日) 17:56:14.40ID:TscJEPL7a
データベースを使わずに無理やり返信機能を作ろうとしてるんですが、やっぱりまずいでしょうか?

なんでもデータベースを使うのは嫌なんですが、使わないとクラッカーの攻撃の的になって迷惑をかけると書いてあったんですが
デフォルトのやり方に沿ってデータベースを使わないと駄目なんでしょうか?
2022/03/27(日) 23:50:25.02ID:TRkpHzjA0
>>461
それ違うくない?
やりたいのは or return 的なものであって
2022/03/28(月) 01:20:54.04ID:ee0nwmF40
>>475
別にファイルなどに保存(大昔の掲示板のデータなどはそうやってた)でもいいのだけど
ファイルだとアクセスが競合すると意図しない結果になる可能性があるのでロックしたりやら何気に面倒なので
今ではちょっとしたデータでもDBに保存するのが普通になっているだけ
Sqliteとかでも導入した方が良いかと思うしLinuxならmysqlとか簡単に入れられるし何故DBを避けるのか?
SQLが全く分からないようなレベルだとしたら、ファイルでやるのも難しいのでは?
2022/03/28(月) 07:44:22.82ID:bggr0gZp0
ブラウザは内部的に、Sqlite を使っている

そういうアプリは無数にある
2022/03/28(月) 08:40:30.91ID:e+R9J1ENr
DB使えない縛りとか地獄だろw
2022/03/28(月) 09:24:21.21ID:Z3wXEIoi0
ファイルシステムは広義のデータベース
積極的に使おう
2022/03/28(月) 13:15:04.75ID:65kZIKhN0
クライアントから送られてくるCSVを処理してCSVで返す仕事をしています
482デフォルトの名無しさん (アウアウウー Sacd-bb9c)
垢版 |
2022/03/28(月) 16:39:58.25ID:KVxU4Wgwa
>>477
DBが嫌なのは実装が面倒だからですね
返信ボタンとCSVファイルだと管理が楽だと思うので
2022/03/28(月) 17:32:41.80ID:aTlav5QD0
やりたい事がそれで完結するなら、
それで良いんじゃないか?
2022/03/28(月) 19:09:14.66ID:AcTRGxgL0
それでいいんならいいんじゃね
ワイだったら後からの苦労が死ぬほどつらそうで嫌だ
2022/03/29(火) 10:39:38.02ID:5ZnN2+IRM
xdebugって本番環境に入れても良いの?
リモートipアドレスでデバッグ環境が有効になるから問題無い?
2022/03/29(火) 10:43:32.61ID:75Mdmk0b0
ふつうはいれないよー
2022/03/29(火) 11:10:00.92ID:5ZnN2+IRM
入れたらダメなのね
ちなみに本番環境に入れたらとんでもない事態っておこるものなの?
想像力が欠如していてどうなってしまうかわからないです
2022/03/29(火) 11:23:48.03ID:3wCJ+Lll0
仮に脆弱性があった場合、
通常本番に入れるべきではないとされるものを開発側の理由で入れてた責任を取れるならいいんじゃね
ipスプーフィングされちゃいましたとかもあるし、普通セキュリティリスクは極力避けるものだと思うよ
2022/03/29(火) 11:31:07.52ID:N66wcHnK0
その本番環境がなんだか分からないが
一般論として、本番に穴が空く可能性は極力排除
2022/03/29(火) 16:57:15.91ID:snERMp370
同じphpファイルにある、フォームからデータをPOSTで受け取り、
データベースにデータを登録したあと、ブラウザリロードすると重複してしまうという事象。

一つは、header関数で、自分自身のファイルへロケーション設定させる方法。

https://www.php.net/manual/ja/functions.returning-values.php

あとトークンを使う方法。

https://techacademy.jp/magazine/41842

どっち使っても問題ないですか?
どっち使っても同じなら、簡単なロケーション設定で対応したいと思いますが、ご意見ありますか?
2022/03/29(火) 17:45:14.13ID:g2SW/NK60
>>485
xdebugはかなり重いしport9000とかを開けないといけないので
どっちにしてもあり得ない

>>490
上のURLは間違っているし、下にサンプルコードまであるのだから下の方法で良いのでは?
セッション使わずにやることも可能ではあるけど、ユーザーを認識した処理をするなら
どっちにしてもセッションは必須なので
2022/03/30(水) 06:52:25.55ID:YVzwLlXSM
xdebugの件ありがとうございました
サーバ移行先に少し機能を付け加えたものが動かない部分があるので、
本番運用するまでに限りxdebugを有効にするのはやっても良いでしょうか?
2022/03/30(水) 08:11:04.90ID:5+ozggRTa
関係者に了承もらって勝手にやれよ。終わったら無効にしとけよ
494デフォルトの名無しさん (ワッチョイ 5e10-5yPK)
垢版 |
2022/03/30(水) 11:12:36.66ID:m5cOXdIB0
これから3年ぐらいの運用を見越して開発する場合、PHP8が必須ですかね?
普段はLaravelで開発しているのですが、8か9かで悩んでいます。
なぜ悩むかと言うと、PHP7系の情報量が多いからです。
未だにPHP5を使えるようにしているレンサバもあるし、
PHP7でも大丈夫ではないか?と思う反面、セキュリティも気になります。

目的は個人サイト用ですが、仕事でこれから開発する人は
どのバージョンを選択するか教えて下さい。
2022/03/30(水) 11:23:44.28ID:pW4vMWner
個人なら好きなの使えばいい
どうせ世の中ゴミだらけのphpだし
セキュリティなんてバージョンだけでどうにかなるようなものではない
2022/03/30(水) 11:44:32.48ID:SZ4iQ/We0
>>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; }
2022/03/30(水) 11:48:58.08ID:ghU4o1Ed0
あまり知識なさそうな人なら、情報量が多いバージョン使うのが良いのでは?
ご自身もそう考えていそうだし、背中押してあげようか?
2022/03/30(水) 11:50:31.65ID:SZ4iQ/We0
phpMyAdmin も、ブラウザでデータベースを見れて便利だから、

本番へ入れる香具師も多いけど、脆弱性を狙われる
2022/03/30(水) 13:54:06.58ID:bMF+K+xO0
webサイトの攻撃を見れる立場だと、phpmyadmin狙ったクエリが多いことに気付けるよねw
あれは最初ビビったw
2022/03/30(水) 23:14:02.09ID:1ooXHKRQ0
オライリーの本にでてたのだけど。サンプルが間違ってるのかな?

次の$dinnerの値がfalseなのに、if条件がtrueになるのは何故?

if($dinner == 'Braised Scallops') {
print "Yum! I love seafood.";
}
2022/03/30(水) 23:21:03.84ID:1ooXHKRQ0
ちなみに以下なら、if条件はfalseになる。

if($dinner === 'Braised Scallops') {
print "Yum! I love seafood.";
}

リテラルと「false」で「==」の比較をするとtrueが返ってくるの??
2022/03/31(木) 04:42:22.69ID:8HckyYNU0
その上のコードが無いと判断出来んわ
2022/03/31(木) 04:48:46.10ID:oh99lNSH0
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;
2022/03/31(木) 04:49:36.14ID:oh99lNSH0
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.";
}
505デフォルトの名無しさん (ワッチョイ 9202-tbOq)
垢版 |
2022/03/31(木) 04:59:01.80ID:oh99lNSH0
オライリーの「はじめてのphp」から。
の一部のコードを参考に、フォームからの入力で条件を確認しています。

3つ目のフォームが空の場合、$dinnerはfalseになるのですが。
($dinner == 'Braised Scallops')の場合、trueになるのです。

これまで、==で比較することなかったので、その結果に違和感があるところです。
2022/03/31(木) 06:30:54.35ID:PtLOqfk30
>>505
$dinnerはfalseじゃなくて0じゃね?

https://www.php.net/manual/ja/migration80.incompatible.php
8系で処理結果が変わってる
2022/03/31(木) 09:00:16.12ID:oh99lNSH0
0はfalseではないのですか、、。
調べてみます。ありがとうございます。
2022/03/31(木) 09:03:42.28ID:/ZasjnC50
こんなの気にしながらコード書きたくないからstrcmp系一択だわ
2022/03/31(木) 09:25:52.15ID:oh99lNSH0
ちなみに、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
510デフォルトの名無しさん (ワッチョイ 9202-tbOq)
垢版 |
2022/03/31(木) 09:32:05.79ID:oh99lNSH0
確かに 0 と false では挙動が違いますね。
すごくもやっとします。
511500 (ワッチョイ 9202-tbOq)
垢版 |
2022/03/31(木) 10:03:03.45ID:oh99lNSH0
自己解決しました。
https://so-zou.jp/web-app/tech/programming/php/grammar/operator/comparison.htm

==で比較するとき、
整数0 と 文字列'PHP' で true
整数1 と 文字列'PHP' で false

のようです。気味わるいですが、そうみたいです。
2022/03/31(木) 10:37:56.08ID:PtLOqfk30
>>511
それじゃ解決しないよ
教科書との違いは、数値形式の文字列のキャストの話
https://www.php.net/manual/ja/language.types.numeric-strings.php

あと参考にするのは適当なブログじゃなくて、公式見たほうがいい
2022/03/31(木) 11:19:04.53ID:oh99lNSH0
ありがとうございます。
でも、そうなのかなあ。
==の比較の場合、数値0 と false は結果が異なる。
っていうだけの話のような。。
2022/03/31(木) 11:56:54.49ID:PtLOqfk30
君の最初の疑問は
if(0=='php')
の挙動が本と実機で異なるってことなんで、まずそこから理解するといいよ

で、この比較は
https://www.php.net/manual/ja/language.operators.comparison.php
の「さまざまな型の比較」にあるように
> 文字列やリソースを数値に変換し、算術演算を行います

この数値変換が8以降で挙動が変わったってのが回答

ちなみに参考にしたブログは 0=='php' が TRUE なので、現行のphp Active Support バージョンにおいては間違った情報を垂れ流していることになる
2022/03/31(木) 12:05:50.04ID:PtLOqfk30
> の挙動が本と実機で異なるってことなんで、まずそこから理解するといいよ

ん?違うのか?

単純に
if(0=='php')
が TRUE になるのが気持ち悪いってことなんかな?

それなら、8系で修正されて直感と揃ったぞってことだね
2022/03/31(木) 13:27:33.73ID:3F1JJOSM0
>>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 にする
} );
} );
2022/03/31(木) 14:28:47.55ID:oh99lNSH0
>>515

>if(0=='php')が TRUE になるのが気持ち悪いってことなんかな?
そうです。そうです。

Javascriptだと。
if(0 == 'php'){
document.write("this is true");
}else{
document.write("this is false");
}
//"this is false"が表示されるのが普通なので。

もやっとしてましたが、ver8では改善されているのですね。

詳しい説明ありがとうございました。
2022/03/31(木) 15:05:21.39ID:3F1JJOSM0
JavaScript では、== は使わない方がよい。
常に厳密等価演算子、=== を使うべき

型違いは危険だから、TypeScript が出来た

こういうバグは、全部テストできないから厄介
2022/03/31(木) 16:35:59.57ID:oh99lNSH0
>>518
>JavaScript では、== は使わない方がよい。
>常に厳密等価演算子、=== を使うべき

これはPHPには当てはまらないのですか?
もっともなんとなくphpでも、比較するときは===を使ってますけど。
520デフォルトの名無しさん (オッペケ Sr79-LzaM)
垢版 |
2022/03/31(木) 19:11:06.94ID:FlN4IEP5r
タイトルのみ
<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個ずつにする方法を教えてください、どうしてもわかりません。
521デフォルトの名無しさん (オッペケ Sr79-LzaM)
垢版 |
2022/03/31(木) 19:13:16.58ID:FlN4IEP5r
$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>"; // 画像と画像の右にタイトル
}}
2022/03/31(木) 21:19:45.99ID:pB1E+d/ld
PHP8からの「文字列と数値の比較」は、この公式ページがわかりやすい
https://www.php.net/manual/ja/migration80.incompatible.php

(厳密でないやり方で)数値と非数値文字列を比較する場合、 数値を文字列にキャストし、文字列と比較するようになりました。
数値と数値形式の文字列の比較は、以前と同じ振る舞いをします。
注意すべきなのは、これによって、 0 == "not-a-number" が false と見なされるようになったことです。
2022/03/31(木) 21:32:14.98ID:pB1E+d/ld
つまり、PHP7では、
(厳密でないやり方で)数値と非数値文字列を比較する場合、文字列を数値にキャストし、数値と比較していた。
これによって、 0 == "not-a-number" が ture と見なされていた。

0 == "not-a-number"
この式は、次のようにキャストされて比較される
PHP7・・・0 == 0・・・true
PHP8・・・"0" == "not-a-number" ・・・false
2022/03/31(木) 22:10:53.99ID:oh99lNSH0
ありがとうございます。
なるほど。今7系のPHPで勉強してるけど。

$a =1 + "2";
echo $a;

これが 3
になるってのも、もやっとしてたんだけど
そこにつながるのですね。
2022/04/01(金) 15:25:22.67ID:PU7Zi1lY0
>>520

>>521
に、ul が無いから、ブラウザが自動的に補完したのでは?
2022/04/02(土) 13:04:19.39ID:PPKYa6900
さすがにブラウザが勝手にhtmlコードを追加することないですよ。
そのコードが本当に出力されているのなら、Javascriptなんかで<ul>を生成されているんじゃないかな。
2022/04/02(土) 13:29:55.60ID:jQt44mz00
>さすがにブラウザが勝手にhtmlコードを追加することないですよ。
あるよ
2022/04/02(土) 13:39:07.49ID:PPKYa6900
えー。そうなんだ。資料ありますか?
2022/04/02(土) 13:49:24.47ID:jQt44mz00
>>528
chromeのコンソールで今やってみたけど
ul、liの開始タグだけ入力しても、ブラウザが終了タグを補完してからhtmlを描画する
https://i.imgur.com/RQ5uRzX.png
https://i.imgur.com/vbsdbFi.png
2022/04/02(土) 13:50:59.62ID:jQt44mz00
ただ>>525はないかな
ブラウザからすると、liの親がulかolか判断できない
2022/04/02(土) 14:06:20.88ID:PPKYa6900
開発者モードで書き込み中の不備のタグを補完するのは、
単にエディタの補完機能と同じじゃん。
もともとソースコード問題があっても、ブラウザは生成するソースを変更しないよ。
ブラウザがやってるのは、描画時に問題がないように解釈するだけ。

Document変えるのはJSとかでしょ。
先のは、生成されたソースことなんだろうから。
2022/04/02(土) 14:10:51.58ID:PPKYa6900
<li>の親に<ul>を挿入するよう、JSでやってるんでしょ。
なんで、JSの問題じゃね。phpとはすれ違い。
2022/04/02(土) 14:18:14.05ID:jQt44mz00
>>531
開発者モードじゃなくても補完するよ?
2022/04/02(土) 14:23:41.80ID:mq5L2U9M0
ちゃんと文脈読もう
ブラウザが勝手にhtmlコードを追加する事はあるよ
>>530の言うように525のような補完方法はないけど

その前に下記の意味が分からんのだけど
>上記のように出力しているのですが、ul を1個ずつにする方法を教えてください、どうしてもわかりません。
2022/04/02(土) 14:27:08.54ID:PPKYa6900
補完とはどういう意味かなあ。
確かに、問題のコードは常にブラウザ内で補完しているよ。
でも、ソースコードを書き換えない。
これでわかる?
536デフォルトの名無しさん (ワッチョイ 2302-wq0K)
垢版 |
2022/04/02(土) 14:29:10.47ID:PPKYa6900
どんな補完しているかは、ユーザー側でわかりっこない。
2022/04/02(土) 14:36:53.06ID:PPKYa6900
>>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>
2022/04/02(土) 14:39:43.31ID:jQt44mz00
>>537
最初からその回答してれば終わってたんやで
2022/04/02(土) 14:45:02.92ID:PPKYa6900
質問がグダグダ過ぎて、みんな回答する気が失せてんだよなあ。
2022/04/05(火) 06:32:43.73ID:77EaesJ40
まだRSSやってんの?(笑)何年かけてんだか
2022/04/05(火) 18:53:21.93ID:U10U/iFz0
そもそもまともにHTMLすら書けないのにPHPが書ける訳無いよね・・・
これだけ質問しても出来ないという事は才能無いだろうし
金払って優秀な人に教えてもらうとかしないと自力では無理でしょw
542デフォルトの名無しさん (テテンテンテン MM4b-velb)
垢版 |
2022/04/06(水) 19:21:09.25ID:BW6ioY7bM
公式サイトの日本語って何か難しくない?
Qiitaとかで調べてからじゃないと公式の言ってることがわからんことがある
2022/04/06(水) 20:47:40.87ID:S2xbnSM+0
好きに編集してええんやで
544デフォルトの名無しさん (アウアウウー Sabb-1SDO)
垢版 |
2022/04/12(火) 15:20:12.66ID:jPYvn4Oea
DB処理の格納接続表示を3つまとめたのですが重すぎてタイムアップになります
これを3つ分けて書いた場合負担は軽減されますでしょうか?
またファイルは分けた方が良いでしょうか?
2022/04/12(火) 15:48:23.13ID:GEf97Th6r
情報少なすぎて何もわからん
2022/04/12(火) 15:52:29.64ID:n8vU4oo30
SQLに問題があると、エスパーしてみる
547デフォルトの名無しさん (アウアウウー Sabb-1SDO)
垢版 |
2022/04/12(火) 16:05:43.12ID:xX3JuDfra
通常のサイトでレンタルサーバーを使う場合データベースを10個も動かすことはできるんでしょうか?
2022/04/12(火) 16:29:34.39ID:MEiPlXkOr
なんでサーバー仕様のことをサーバー会社に質問しないでphpスレで聞くんだ
2022/04/12(火) 17:01:17.51ID:gsOGD0UL0
重すぎるかどうかは、実行計画を見ないと分からない。
実行計画に、full scan・総当たりがあったら遅くなる。
総当たりは計算量(N)、つまりレコード数に比例する

インデックスを使えば、計算量(log N)になる

レンタルサーバーは他人のアプリの影響を受けるから、
他人が重い処理をすると、ずっと待たされる

それでタイムアウトしたのかも
550デフォルトの名無しさん (ワッチョイ 8e84-Qpjg)
垢版 |
2022/04/12(火) 23:51:19.23ID:KdVn/I690
質問です
現在私は掲示板をやっていて
formの送信があったらphpからdatに書き込みをしてphpがdatのデータを取得する形式なんですが
5chみたいに、formでリンクが送信されたときに自動でリンクを貼るにはどうすればいいのでしょうか?
551デフォルトの名無しさん (ワッチョイ df01-L4Li)
垢版 |
2022/04/13(水) 00:44:12.60ID:UabNWL5R0
phpでは不可能ですね
rubyを使うのが良いでしょう
2022/04/13(水) 00:52:48.21ID:P5y02Tze0
単に文字列の中のURLをpreg_match_all()などで抽出し
抽出されたURLにをaタグを付けて置換すれば良いだけでは?
この程度の事が分からないのに掲示板なんて作れたなw
2022/04/13(水) 01:03:02.02ID:XcJ4K+Jv0
まず日本語を勉強したほうがいいな
2022/04/13(水) 01:37:37.68ID:bM/4ubN60
こういうウソを平気でつくのがルビ使い
2022/04/13(水) 14:55:12.18ID:pdxuGyHLa
作った掲示板にスクリプト書き込んだら普通に動作しそうwwww
2022/04/14(木) 13:16:01.95ID:PA9Dmt8i0
サニタイズという言葉を知らないとかあり得そうだ・・・
2022/04/14(木) 13:19:19.15ID:o2CC6j1g0
サニタイズ警察が来るぞ!
2022/04/14(木) 14:23:53.52ID:lHkgcQQs0
日本でサニタイズっていう人いるんだ・・・
2022/04/16(土) 00:48:07.79ID:sRIRVoIE0
めっちゃハマったネタ置いとく
誰かの為になれば・・・

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まででは動いていたのかが謎
2022/04/16(土) 06:57:39.53ID:oSqpgZsi0
>>559
8.1 ではなくて 8 ですか?
8.1 に関しては、CP932/SJIS/EUC-JP あたりのことを tweet してた人がいた気がします
理解不能だったので読み飛ばしたんですけど、かなり深い闇だった気が
2022/04/16(土) 07:07:02.12ID:sRIRVoIE0
>>559
ああ、ごめんなさい
8.0ではなくて8.1系です(8.1.4と8.1.5)
ツイッターは探索圏外でした
探してみます
2022/04/16(土) 07:07:51.42ID:sRIRVoIE0
自分にレスしてどうすんだw
561は>>560さんにです
2022/04/16(土) 07:24:31.82ID:sRIRVoIE0
>>560
ttps://twitter.com/sji_ch/status/1512542333782622209
このツリーですかね?
メインはCP932とSJIS(-WIN)の関係みたいですけど

8.0系だったら問題なかったのかな?
まぁ、解決したから8.1でいいんですけど、やっぱり7.4以前(8.0も?)でOKだったのが謎
https://twitter.com/5chan_nel (5ch newer account)
2022/04/16(土) 07:52:37.37ID:oSqpgZsi0
>>563
そのツリーだけではなくて、その前後も含めてですね
ただ、今読み返してみると、>>559 とは別の内容かもしれないです

エイリアス復活の話なので、むしろ SJIS-win を使用している場合に問題が出るケースを示唆してましたね^^;
2022/04/16(土) 19:04:30.64ID:Ynxy6YP50
大昔は文字コードの事を考慮しなきゃ行けない時代があったけど
今はUTF8前提でそれ以外のコードは完全に無視みたいになって
文字コードの話題が懐かしく感じるわw
Perlで掲示板を作ることが主流だった時はjcode.plみたいな変換ライブラリを通して
SJISなりEUCで保存する事をやってたな
2022/04/16(土) 19:20:43.53ID:pYTE49690
latin1死ね
2022/04/17(日) 18:14:40.11ID:6NqJ12LK0
phpは、グローバル変数を素で関数内で扱えないのね。
javascript的に書いていたらハマった。。
568デフォルトの名無しさん (ワッチョイ a760-tijK)
垢版 |
2022/04/27(水) 19:12:14.32ID:t2/42GRu0
3,4年ぶりにphpを書いてるんですが、
そもそもそんなにやってるわけではないですが。

'わたしは'.$tango.'です。'
といつも.で繋いでいたのですが、
'わたしは{$tango}です。'

でも行けるんですね。
何か違いが出てくるのでしょうか?
2022/04/27(水) 19:15:37.66ID:oc6HC0Dq0
どっちが見やすいかで考えればわかるやろ
2022/04/27(水) 20:26:40.94ID:GOrWBmWe0
>>568
後者の方が書きやすい読みやすいから基本的に後者でいい
ちなみに
${foo}
という書き方もあるけど、これはエラーの元になるので使うな
https://www.php.net/manual/ja/language.types.string.php
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

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