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

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ cfe8-+65u)
垢版 |
2018/11/28(水) 17:08:46.02ID:Nb5yTkdM0
PHPに関する質問スレです

前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 9
http://mevius.5ch.net/test/read.cgi/tech/1513760420/

次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
341デフォルトの名無しさん (オッペケ Sr79-kqL6)
垢版 |
2019/04/19(金) 13:41:03.84ID:7RHvbYhAr
Windows7はサポート外だからすてろ
2019/04/19(金) 14:42:39.28ID:KhPbBDNPd
>>340
SJISとかUTF-8などの文字コードを勉強して、UTF-8が使えるテキストエディタ使え。和解の
2019/04/19(金) 15:47:12.43ID:ih/g4VJWM
URLですが.../と打ち込んだ場合
...というファイルにアクセスするのですか?
2019/04/19(金) 16:35:39.59ID:Y4E9vn3W0
>>343
ディレクトリ名で「..」は一つ上のフォルダという意味がある。点二つね。
2019/04/19(金) 17:59:38.21ID:er92Du55M
一つ上の男はどのように書き表しますか?
2019/04/20(土) 09:38:04.02ID:EzpoiD680
ガイアが俺にもっと輝けと囁いている
2019/04/20(土) 13:44:38.61ID:EzpoiD680
>>339
Dreamweaverで修正できるぞ
2019/04/20(土) 17:06:43.02ID:nmBhveLxa
>>339
PHPなのか?
2019/04/20(土) 17:10:50.63ID:46SaaHhXd
>>344
. 今いる所
.. ひとつ上

...  二つ上?
2019/04/21(日) 00:22:00.24ID:Aeq/r6ow0
小学生のプログラム教材見たけど、
ロボを前へ3歩右へ2歩動かす命令をみたいなやつとか
PHPの教科書と同じレベルだわ
算数で足し算とか習ってるレベルの子供にほんとに理解できるのかな?
351デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
垢版 |
2019/04/21(日) 06:43:46.32ID:i48F5tCc0
>>336
オラは個人でポータルサイト作って公開してるが
PHPはサーバサイドの言語だから
サイト見たところで勉強にはならんと思うぞ
非遷移をやりたければAjax使わんといかんし
352デフォルトの名無しさん (ワッチョイ f6ad-Eh39)
垢版 |
2019/04/21(日) 06:46:56.90ID:i48F5tCc0
>>350
アングリーバードのプログラミング教材は面白かった
でも、プログラミングってよりブロックタイプのやつだから
アルゴリズムを考える作業が殆だよね

micro:bitのブロックで書いたコードをJSやPythonなどに変換できる機能は良いなと思った
2019/04/21(日) 08:13:48.42ID:Aeq/r6ow0
>>352
俺見た本はぱっと見は絵が多くて小学生用なんだが普通に
条件分岐if文、ループfor文とか説明されてて
英語も算数も絡んでくるけど、今後の小中学生が脅威にかんじたわ
小さいうちから当たり前になじんでれば抵抗ないんだろうな
2019/04/21(日) 12:58:09.77ID:g2z5hubB0
まあphpとか仕事にしてるような奴らは仕事なくなるだろな
2019/04/21(日) 19:56:01.27ID:0JlZuQqp0
>>349
...というファイル名を参照したよ
2019/04/21(日) 22:05:37.01ID:jRd0U4G2d
>>350
ロボットに正三角形を書かせて出発地に戻るとか、具体的だから小学生にも分かり易い。
Turtle LOGOの流れですね。
357デフォルトの名無しさん (ワッチョイ 9eff-nFeC)
垢版 |
2019/04/24(水) 18:35:41.45ID:AdJPrH9y0
PHPでradioにチェックマークを付けたい場合、下記は間違ってますか?
<input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK

$HEN['AAA']は確実に'ON'です。
入力フォームで入力確認画面からsubmitで最初の画面に戻すやり方です。
戻ってきてON状態にしたいのですが、なってくれません。
2019/04/24(水) 19:07:44.04ID:wb+dbNkk0
>>357
>if($HEN['AAA'] === 'OK' ){
>$HEN['AAA']は確実に'ON'です。
2019/04/24(水) 19:12:31.45ID:AdJPrH9y0
>>358
すいませんif($HEN['AAA']の内容は「OK」です。
print_rなどで変数の内容を見ても、ちゃんと入ってます。
2019/04/24(水) 19:13:17.51ID:17biHAgbd
ONとOK
2019/04/24(水) 19:13:54.31ID:gP7Kc+nL0
checkedとrequiredがつながってる可能性
2019/04/24(水) 19:15:38.78ID:gP7Kc+nL0
つーか、HTMLソース見れば一目瞭然
2019/04/24(水) 19:20:56.00ID:AdJPrH9y0
ソースをみると、
<input type="radio" name="AAA" value="OK" required>
こうなります。
OKのあとに半角2つスペースでrequired
2019/04/24(水) 19:28:05.74ID:gP7Kc+nL0
ONとOKを間違えてるか、型が違うか。
2019/04/24(水) 19:31:32.04ID:17biHAgbd
全角と半角。
2019/04/24(水) 19:56:23.89ID:wb+dbNkk0
>>363
提案
radioをcheckboxに変えてみる
=== を == に変えてみる
if($HEN['AAA'] === 'OK' ){ echo 'checked'; } を echo 'checked'; だけにしてみる

いずれかで何か変わりませんか?
どこかに間違いがあると思うけど、提示された範囲では分からないです
2019/04/24(水) 21:46:15.30ID:kFXKi6KY0
>>357
><input type="radio" name="AAA" value="OK" <?php if($HEN['AAA'] === 'OK' ){ echo 'checked'; } ?> required>OK

例えば、Ruby のERB なら、
<p>
Name: <%=h name %>
</p>

h は、<, > などの特殊文字を、HTML Escape する。
でも、君のはコンテンツじゃなく、属性だから、HTML Escape してはいけない

一旦、php 文を変数に入れて、その変数をそこに書けば?

ERB では、<% 〜 %> は、Ruby式を実行するだけで、出力しない。
<%= 〜 %> は、式を実行して、そこへ出力する

同様に、phpにも、出力する記法があるのでは?
そんな、echo などを、わざわざ使うかな?
2019/04/24(水) 21:52:45.02ID:wb+dbNkk0
見た感じでは構文的な間違いはなさそうなんだよな
ただ全体を晒しているわけではないので、間違い部分が分からない
2019/04/24(水) 22:53:46.57ID:S39z++Og0
if($HEN['AAA'] !== 'OK' ) に試しにしてみる
2019/04/25(木) 00:24:58.08ID:sHpBR2uH0
OKっていうyvalueはちゃんと入れてるのか?
入れてないならチェックつけたらonって入ると思うけど
それは大文字ではなくて小文字のonになる

$HEN['AAA']って名前の変数は定義されてるのか?
普通に考えるとそこに入るのは$_GET['AAA']もしくは$_POST['AAA']

テンプレートエンジン使ったほうがいいと思うけど
バカ正直に書くとこんな感じになるはず
<input type="radio" name="AAA" value="OK" <?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK') { echo 'checked '; } ?>required>
読みにくくなるが三項演算子を使えばもうちょいスッキリ書ける

もうちょい読みやすく書くと
<?php if (isset($_POST['AAA']) && $_POST['AAA'] === 'OK'): ?>
<input type="radio" name="AAA" value="OK" checked required>
<?php else: ?>
<input type="radio" name="AAA" value="OK" required>
<?php endif; ?>

>>367も言ってるけど
この条件文の前に$HENなんていう変数を本当に用意してるのであれば
その$HENの中身を'checked 'か''にするところまでやって
<input type="radio" name="AAA" value="OK" <?= $HEN ?>required>
にすりゃいいだけ
371デフォルトの名無しさん (ワッチョイ 232c-vaK/)
垢版 |
2019/04/26(金) 13:58:13.68ID:A/WNBxWE0
><?= $HEN ?>required

ああ!
前後に、空白が無いから、
checkedrequired みたいに、文字列がつながって、HTML の構文エラーになるのだろう!

必ず、前後に空白を入れるべし!
2019/04/29(月) 12:04:33.45ID:vct+Ltv00
phpで、画像にアクセスしてきたIPを保存することってできますか?
2019/04/29(月) 12:29:23.82ID:EyyZk+++0
ダイレクトに画像アクセスされたら分からないだろう
Webサーバーのログ見るしかない
2019/04/29(月) 12:48:02.00ID:vct+Ltv00
そういうものなんですね
ありがとうございます
2019/04/29(月) 17:43:20.49ID:loz4DS5aa
apacheでやっていることをphpでやるようにしたらできるぞ
2019/04/29(月) 22:11:30.94ID:iMBvrM8u0
画像は非公開領域に置いて、PHP経由で画像を出力するとかできたような
2019/04/29(月) 22:39:29.73ID:vct+Ltv00
ありがとうございます、もうちょっとphpを勉強してから
また考えてみます
378デフォルトの名無しさん (ワッチョイ ff61-5AMV)
垢版 |
2019/05/09(木) 00:45:39.61ID:RU31sPhL0
phpについて役立つ情報とか
http://mevius.5ch.net/test/read.cgi/tech/1557329831/l50

DWE
2019/05/13(月) 18:40:53.35ID:roML+UDma
呼んだ関数の返り値がfalse相当でなければ、その値を返す
そうでなければ、次の関数を呼んで、その値を返す
というのをスマートに書くにはどうしたらいいですか?

return func0() || func1()

と書けばいい気がしたのですが、func0の返り値が文字列の場合、うまくいきません
2019/05/13(月) 22:24:51.96ID:tr/4p/4f0
if (func0() !== false) {
return func0();
}
return func1();
2019/05/13(月) 23:37:45.04ID:xlLeel7b0
2回実行しやらんか
2019/05/13(月) 23:46:55.40ID:NT7m3BJtM
>>379
スマートにする目的はなに?
可読性?実行速度?タイプ量?
2019/05/14(火) 00:21:30.17ID:C/lwgk7za
??
2019/05/14(火) 00:52:38.99ID:+1EhYDa60
>>379
イマイチ何がしたいのかわからないが、↓は駄目なんだよね?
http://codepad.org/Pmd52Nk7

↓みたいに、falseで無い文字列の場合はその文字列を返したいの?
https://ideone.com/HjePmQ
2019/05/15(水) 05:58:37.58ID:vAqxpv060
>>379
三項演算子で
return func0() ? func0() : func1();
ただこれだとfunc0()を2回呼び出して無駄なので
return ($a = func0()) ? $a : func1();
かな

>>379のはJavaScriptで使うけどPHPじゃ使わない
2019/05/15(水) 07:21:00.71ID:WsD3jNK80
スマートってのがばく然とし過ぎてるよ。
何を叶えたくてそういう書き方をしたいのか。
それ用の構文が用意されてるか聞いてるのかな。
COALESCE みたいなのを探してるならPHP7で ??(null合体演算子)が追加されたけど、false や 0 にも適用させたいなら合わないだろうね。
if文で書くのが見やすいしメンテもしやすくてスマートなんじゃね。
2019/05/15(水) 09:10:52.73ID:TijlUNhYa
戻り値がboolじゃない時点でクソなんだがな
2019/05/15(水) 16:10:31.93ID:vAqxpv060
動的言語じゃ短絡評価の型がboolじゃないのは普通だよ
2019/05/15(水) 20:27:21.35ID:+XInXPJh0
C「せやで、intやで
2019/05/16(木) 03:25:20.50ID:neNHVSKA0
CakePHPって人気無いのか?(´・ω・`)
今、参考書読み始めたばかりなんだが
2019/05/16(木) 15:45:22.32ID:fgD0r/Q+0
成熟したFWって感じだと思う。今から学んでも良いと思うよ
2019/05/16(木) 17:28:06.18ID:neNHVSKA0
ほうほう(´・ω・`)
2019/05/25(土) 13:44:57.44ID:BtUlhHLe0
twitterのBotを作りたいと思っています
指定ワードに引っかかったらブロックするという動作を入れたいのでアプリだと対応できなさそうです
と言うか PHP でもそもそもそんな仕様で作れるのかも分からないので参考になりそうな資料があったら教えてください
2019/05/25(土) 14:07:06.16ID:ro0ZuUFGd
「Twitter API PHP」でウェブ検索。

https://qiita.com/yokoh9/items/760e432ebd39040d5a0f
困難出ましたけど。
2019/05/25(土) 20:12:23.16ID:LACToUkl0
勉強中の身であり、変数の名前に気になるところがあるのですが、
$productName
$productColorとか、単語を並べてわかりやすくする時、2単語目は1文字目は大文字なのに、
先頭の単語は大文字にならないのをよく見受けるのですがなぜでしょうか?
2019/05/26(日) 01:01:52.69ID:R35t2Hzta
テキトーでええねん
2019/05/26(日) 01:15:23.48ID:mCW+tIqA0
世の中にはいろんな宗教があって、それぞれが信じる神に従ってる
何故その宗教なのか、人によって違うrだろうけど
好きなのを選べ
2019/05/26(日) 01:17:46.53ID:H/eCV4+Ur
>>395
そういうもんだから、としか
ローワーキャメルケースでググって
2019/05/26(日) 13:54:59.26ID:QXjH/q9Q0
phpの変数の場合は先頭に$がつくから大文字開始でもいいわなと適当に無責任に思ったりする
アンダーバー使いからでした
2019/05/26(日) 19:42:15.61ID:l16JnEYu0
レスどうもです、色々見てみました。
たしかに組織の中でルールを統一しないと色々不便があると思うので、こういうのがあるのですね。
for文のどこに半角スペースを入れるか入れないかでも悩んで居るので
できるだけ「ベタ」なやり方に沿っていたほうが良いとは思うのですが、標準化というのかわかりませんが、
そういう心構えを案内しているサイトは、何でググればいいでしょうか?
2019/05/26(日) 19:44:56.69ID:kz8BVyYaa
psr
2019/05/26(日) 19:46:34.19ID:zbyp88Owd
PHP コーディング規約
2019/05/26(日) 19:55:20.42ID:4NUXcUki0
glassfishは使えますか?
また、類似のものはありますか?
2019/05/28(火) 07:44:27.33ID:qfX7VqbU0
>>401-402
ありがとうございます。
たしかに「〜しなければならない」と書かれると守らないより、守った方が色々トラブルなどにならないかもしれないので、
できるだけ遵守したいと思います。
2019/06/02(日) 05:20:27.00ID:+gCp7rkB0
ファイルの読み書きの練習でカウンターを始めたのですが、とりあえずロック無しやエラー分岐無しでも上手く動かず
var_dumpなる便利なものがあるので使ったところ、
string(3) "1 " string(3) "1 " あなたは1 人目のお客様です、 と出るようで
文字列で読んでいるため ++が効かないようです。

ただ、$count = $count = 1;とすると
string(3) "1 "
Notice: A non well formed numeric value encountered in c:\********\counter\index.php on line 7
int(2) あなたは2人目のお客様です
とファイルには1を足されて書き込めるのですが、$count++; を使って動くようにするためにはどうすればいいでしょうか。

<?php
$counter_file = "count.dat";
$counter_length = 5;
$fp = fopen($counter_file, "r+" );
$count = fgets($fp, $counter_length);
var_dump($count);
$count++;
var_dump($count);
rewind($fp);
fputs($fp, $count);
fclose($fp);
echo 'あなたは'.$count.'人目のお客様です';
?>
2019/06/02(日) 06:57:52.85ID:+gCp7rkB0
×:ただ、$count = $count = 1;とすると
○:ただ、$count = $count + 1;とすると

です、すいません。
2019/06/02(日) 11:07:27.99ID:mXZMYbpt0
$count = intval(trim(fgets($fp, $counter_length)));
2019/06/02(日) 22:38:21.40ID:8A/taE5v0
>>405
string(3) ってのは長さ 3 の文字列ということを示してるから、カウンタファイルにカウント値に続いてスペースとか改行コードがくっついてるんだろうね。
fgets した値を trim すればいいんじゃないかな。
文字列変数を数値としてそのまま計算することは可能だから、intval は必須ではない。
あと fgets や fputs じゃなく fread と fwrite を使ってはいかが。
409デフォルトの名無しさん (ワッチョイ 731a-yJVk)
垢版 |
2019/06/03(月) 00:23:29.48ID:6fgKmexV0
PHPにおける連想配列はキーが文字列の場合を指すのでしょうか?

$yasai = [1 => 'キャベツ', 'にんじん', 'レタス', 'トマト'];

これはキーが1から始まる整数ですが、
プログラマが指定しているので連想配列ですか?
2019/06/03(月) 01:48:26.16ID:AHqJ7vTG0
>>408
なんとなく使い出したatomの仕様でした。
datファイルを1バイトの文字だけ書いて上書き保存すると0A0Dの文字コードが足されていました・・・
string(3)というのが不思議だったのですが、自分で1バイトなのになぜ?と思い込みが強く気付くのが遅れてしまいました。

fread, fwriteというのがあるのですね。
検索すると色々出てきたりするのですが、どれも正しいものと思っていたのですが、
時代的に推奨されない関数などがあるようで、そのあたりの見極めが良くなりたいです。

>>407
excelの関数でたくさん入れ子になったものを見たことがあります、こんな感じでまとめられるのですね。
2019/06/03(月) 09:41:17.43ID:3s7VSFTB0
>>410
php では fputs と fwrite は全く一緒。
C なんかだと文字列長をサイズなり終端文字なりで示す必要があるので、その示し方の違いで関数が別れてる。
php の変数は文字列の長さを変数自体が知っているから、fputs と fwrite に違いを付けようがない。

fgets については、改行かファイル終端まで、または指定サイズに達するまで読み込むが、fread は改行で読み取りをやめない点が違う。
対象のファイルが改行区切りのテキストファイルを読む場合は fgets が便利に使えることも多い。
でも今回のカウンタファイルはカウント値がひとつ書いてあるだけのファイルだから fgets でも fread でも表向きの結果は一緒だけど、
それでも fgets は改行を探しながら読み取る分少し遅いことが予想される。
そもそも fgets を使う場面では、そのファイルが改行で区切られていることを暗に示しているので、今回の使用を表すコードとしては適切と言えない。
2019/06/03(月) 09:43:52.91ID:3s7VSFTB0
>>411
正 今回の仕様を表すコード
誤 今回の使用を表すコード
2019/06/03(月) 18:57:23.86ID:lAZ+x+Rt0
行というのは改行で終わるものだからね
2019/06/05(水) 02:56:36.81ID:a7gcDC7N0
遅くなってすいません。
カウンターのデータとしてあるべき姿ではありませんが、複数行に数字を書いたファイルを
fgetとfreadを使って読むと、fgetは改行付きの1行、freadはすべての数字と改行を読みましたが、
意外と後者でも1つ目の数字だけをインクリメントして書き戻しました。

最終的にはLAMP環境でDBとの読み書きを行いたいのですが、
やはりアプリケーションのログとかをディレクトリ内で追記することを考えると
ファイルの読み書きコマンドは必須ですよね。
415デフォルトの名無しさん (スプッッ Sddb-Gzfa)
垢版 |
2019/06/09(日) 12:58:24.47ID:FDYkpc7vd
オススメな本ある?
416デフォルトの名無しさん (ワッチョイ 768c-EjMK)
垢版 |
2019/06/15(土) 23:50:27.88ID:6CnMECf20
データベースに書き込みコードを作ったんだけどどうしてもカラムがカラムとして認識されなくてエラーになるんだけどなぜか教えてくれ
$sql = "INSERT INTO comments(
number, name, time, comment←ここ
) VALUES (
'', '$myname', '$time', '$comment'
)";
2019/06/15(土) 23:59:21.35ID:sjL7iEiN0
>>409
型が不定型なら連想配列なんじゃね
2019/06/16(日) 00:00:24.76ID:RqGVrKm70
>>416
desc comments か show create table comments の結果を見せて
419デフォルトの名無しさん (ワッチョイ 768c-EjMK)
垢版 |
2019/06/16(日) 00:46:03.82ID:mnCyhttK0
`number`
`name`
`time`
`comment`
2019/06/16(日) 00:53:30.95ID:QegIZpn+d
BUCK-TICK
2019/06/16(日) 00:54:21.78ID:iLpQBBTE0
エラーの内容くらい貼れよ
422デフォルトの名無しさん (ワッチョイ 768c-EjMK)
垢版 |
2019/06/16(日) 01:16:21.26ID:mnCyhttK0
>>416
解決しました、このコードの前の変数代入のスペルミスでした、お騒がせしました
2019/06/16(日) 01:35:18.28ID:nxr18ojea
sqlインジェクション
2019/06/16(日) 01:43:15.14ID:z9IiVZ7F0
自分で、SQL 文を組み立てて送信するのは、
SQLインジェクションもあり、お勧めできない!

フレームワークには、O/R マッパーが付いている

Ruby on Rails を知っているなら、CakePHP も出来る。
CakePHPは、Rails のコピーだから!

掌田津耶乃が、CakePHPの本も書いてる。
彼は、ほとんどのフレームワーク・ゲームエンジンの本も書いてる
2019/06/17(月) 04:24:41.50ID:uk/AI0sh0
in とか like とか動的な条件式を構成する程度のありふれたことをやるにもおかしなラッパやライブラリを作るハメになるから、
SQLインジェクション対策ごときで有りもののフレームワークに拘る必要なんて全く無い。
2019/06/17(月) 08:29:41.28ID:1fS1Pgsf0
プレースホルダ使えばいいじゃん
2019/06/17(月) 08:48:58.25ID:uk/AI0sh0
>>426
だからPDOで充分じゃん。
でもPDOの名前つきプレースホルダは、値を入れる連想配列に余剰な項目があるとエラーになっちゃうのがイケてないんだよな。
いくつかSQLを続けて発行しようと思っても、同じ連想配列の使い回しがやりづらい、というか実質できない。
なんでこんな余計なお世話の仕様にした。
2019/06/17(月) 09:16:38.19ID:1fS1Pgsf0
そのつもりで言ったんだけどね
2019/06/18(火) 00:39:27.92ID:90gU7PyPa
PHP7.2をインストールしたサーバから外部サイトを取得しているfile_get_contentsで
SSL routines:ssl3_get_server_certificate:certificate verify failed
というエラーが出たので
ググったところ、サーバのSSL証明書ファイルが古かったりうまく設定できていない時に出るエラーのようでした
ググった先の情報に従って、
opensslをアップデートしてから、php.iniで
openssl.cafile=/etc/ssl/certs/ca-bundle.crt
と設定したのですが現象は変わらず(phpinfoで設定の反映は確認済み)
http://curl.haxx.se/ca/cacert.pem
を取得してそれをopenssl.cafileに設定しても、やはり現象に変化なしでした
しかたなくfile_get_contentsのオプションでverify_peerとverify_peer_nameをfalseにして、
証明書のチェック自体をしないようにしたらエラーは消えましたが、
なぜ証明書ファイルを設定してもエラーになったのかが気になります
どんな原因が考えられるでしょうか?
2019/06/18(火) 01:05:53.87ID:90gU7PyPa
>>429
もしかして読み込み先のサーバに問題があるのでは?
と思ってhttps://yahoo.co.jp/をfile_get_contentsで取得してみたら、
エラーは出ませんでした
そこで読み込み先のサイトをブラウザで表示して、証明書を確認したところ、
有効期間が2019/6/14〜になっていました
つまり、最近証明書を更新したようです
file_get_contentsでは古い証明書を取得しまっている、ということだと思いますが
何故そんなことが起きるのでしょうか?
どうすれば解決できますか?
431デフォルトの名無しさん (ワッチョイ 1ab0-bbbA)
垢版 |
2019/06/18(火) 06:22:32.87ID:3nOE2mBA0
プログラム板にキチガイ降臨中!botに一晩も反応する異常さ
一般人(学校恩師)に殺害予告をしているのでスレ建て通報してください。
https://mevius.5ch.net/test/read.cgi/tech/1559872586/

142 名前:a4 ◆700L1Efzuv 投稿日:2019/06/18(火) 05:29:55 ID://qVkzO
>>141
名古屋の人な 俺ね、君の問題を大橋先生と混ぜないことにする。つまりね、
片桐孝洋のことをボコろうと思う。普通に顎の骨を折る。これくらいで警察来るか?
一般市民とかさ、普通にさ、俺らの秘密なんだけどさ、日本人なんて復活ねーから。
2019/06/18(火) 17:22:41.03ID:HA3mKCJN0
ファイルの書き出し処理で分からないことがあったので質問します

Windowsでファイル名に使えない文字がありますよね
日本語だと、全角文字に置き換えるということができますが
海外だと、どんな方法で対処してるのでしょうか?

英語というか、1バイト文字でどう回避してるのか、よく分からないです
全部 _(アンダースコア)で置き換えとか?
2019/06/24(月) 20:15:24.96ID:m1x6Lozf0
音楽ファイルなんかでよく見るけど予約文字は大体アンダースコアになってるね
アポストロフィや?は省略されてることが多い
2019/06/24(月) 20:38:24.35ID:OkN3wkON0
XML文字参照とかコードポイントとか
2019/07/03(水) 08:09:50.05ID:NH/ScEyz0
単一のphpで、1つのinput textからポストしてデータベースに接続してselectしてレコードを
input textの下に表示する、というコードを書いて動いたのは嬉しいのですが、

functionは使っていません。
いずれclassの中にfunctionを入れたいのですが、私のphp部分なら30行ぐらいのコードでもそういう
ことができるのでしょうか?

人のコードで、functionばかりあって、最後に
main();

みたいなのがありますが、それが行き着く先の形なのでしょうか。
2019/07/03(水) 08:11:47.66ID:NH/ScEyz0
補足です。
sqlインジェクションとかXSSとかの対策も知らないのでそのままではダメですが、
自分なりの堅牢なfunctionを作って、それを組み合わせるというのがphpプログラマーなのでしょうか。
2019/07/03(水) 11:15:42.58ID:XrINKmpg0
>>435
「PHP デザインパターン」で検索
2019/07/03(水) 18:55:14.56ID:NH/ScEyz0
>>437
ありとうございます。デザインパターンで検索するとちょっと内容が濃すぎました。
オンラインの学習でclassやextendを使った内容は一通りやってみたのですが、

既存のfunction無しのコードを、classやfunctionありのコードに直すのではなくて、
始めから書き直すことになりそうですね。
2019/07/03(水) 19:37:45.44ID:G8Yh9hPC0
>>438
「PHP リファクタリング」で検索
リファクタリングして、デザインパターンに寄せるのがいい設計のひとつ。

30行ぐらいのコードでも機能が3つあれば、10行ずつ3つに分けてfunctionにしてもいい。
そして、それをまとめて1つのclassにしてもいい。
試しにfunction化して動かしてみて、それが出来たら更にclass化して動かしてみればいいよ。
思ったより簡単に動くから。
2019/07/03(水) 19:50:35.07ID:NH/ScEyz0
>>439
>試しにfunction化して動かしてみて

そうですね、恐らく自分の書いているのはifとメソッドと呼ばれるものを上から書いているだけなので、
function化をやってみたいと思います。
リファクタリングの単語ありがとうございます、今ではデザインパターンよりこっちのほうが
合っていると思います。
■ このスレッドは過去ログ倉庫に格納されています