ここから本文です

「入力された文字列を改行しながら保存」 「行番号を指定するとその行の文字列を...

php********さん

2019/3/1901:06:26

「入力された文字列を改行しながら保存」
「行番号を指定するとその行の文字列を変数に入力」
を書いて貰って一部いじったのですが、

<?php

$txt = filter_input(INPUT_POST, 'txt');
$num = filter_input(INPUT_POST, 'num');
// テキスト処理
if ((isset($txt))) {
file_put_contents('log.txt', $txt . PHP_EOL, FILE_APPEND);
}
$data = file('log.txt');
// 指定行の表示
if (isset($num)) {
$msg = sprintf('%d行目:%s', $num, htmlspecialchars($data[$num-1], ENT_QUOTES));
}
?>
<!-- 入力 -->
<form action="" method="post">
<input type="text" name="txt">
<input type="submit">
</form>
<!-- 指定行表示 -->
<form action="" method="post">
<input type="number" name="num" value="1" min="1" max="<?= count($data); ?>">
<input type="submit">
</form>

これはどうでしょうか、まだ実行していませんが、
入力したものをtxtに入力、かつ、入力した行番号を表示、できるんでしょうか、
2つフォームがいるような。

補足一応無理やり削ると

<?php
$txt = filter_input(INPUT_POST, 'txt');
$num = filter_input(INPUT_POST, 'num');
// テキスト処理
file_put_contents('log.txt', $txt . PHP_EOL, FILE_APPEND);
$data = file('log.txt');
<!-- 入力 -->
<form action="" method="post">
<input type="text" name="txt">
<input type="submit">
</form>
<!-- 指定行表示 -->
<form action="" method="post">
<input type="number" name="num" value="1" min="1" max="<?= count($data); ?>">
<input type="submit">
</form>

こんなふうになるんですがこれでもいけるんですかね。

閲覧数:
29
回答数:
1
お礼:
25枚

違反報告

ベストアンサーに選ばれた回答

プロフィール画像

カテゴリマスター

shi********さん

2019/3/1908:19:46

>まだ実行していませんが、

実行してみてください。そして自分が思ったとおりの動作をするかどうかを確認して、思ったとおりに動かなければその原因を探ってください。

どうしても原因がわからなければ、再度質問していただければと思います。


というか「行番号を指定するとその行の文字列を変数に入力」という仕様なのに「入力した行番号を表示、できるんでしょうか」と言われても・・・

#echoなどで変数の表示をしなければ表示はできませんよ。としか



>2つフォームがいるような。

form要素は2つありますよね?

  • shi********さん

    2019/3/1909:46:02

    なお

    >入力された文字列を改行しながら保存

    ということなら「何も入力されていない」ときは保存しないのが妥当な処理です。なので最低でも

    if (isset($txt)) {

    ではなく

    if (!empty($txt)) {

    であるべきだと思います。

    さんざん議論しましたが、たとえ百歩譲って空白文字だけのデータを「入力された」とみなすとしても、空文字列は未入力として扱うべき。

  • その他の返信(4件)を表示

返信を取り消しますが
よろしいですか?

  • 取り消す
  • キャンセル

この回答は投票によってベストアンサーに選ばれました!

あわせて知りたい

この質問につけられたタグ

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる