PHP基础二
首先由于我将继续学习PHP,所以我将在这里输出。
从表单接收处理
从表单输入接收①
<form action="submit.php" method="get">
        <label for="my_name">お名前:</label>
        <input
          type="text"
          id="my_name"
          name="my_name"
          maxlength="255"
          value=""
        />
        <input type="submit" value="送信" />
      </form>
<pre>
お名前:<?php
 print(htmlspecialchars($_REQUEST['my_name']/*ここはname属性に揃える*/,ENT_QUOTES));
?>
</pre>
从表单输入接收①
<form action="submit.php" method="get">
        <label for="my_name">お名前:</label>
        <input
          type="text"
          id="my_name"
          name="my_name"
          maxlength="255"
          value=""
        />
        <input type="submit" value="送信" />
      </form>
<pre>
お名前:<?php
 print(htmlspecialchars($_REQUEST['my_name']/*ここはname属性に揃える*/,ENT_QUOTES));
?>
</pre>
<form action="submit.php" method="get">
        <label for="my_name">お名前:</label>
        <input
          type="text"
          id="my_name"
          name="my_name"
          maxlength="255"
          value=""
        />
        <input type="submit" value="送信" />
      </form>
<pre>
お名前:<?php
 print(htmlspecialchars($_REQUEST['my_name']/*ここはname属性に揃える*/,ENT_QUOTES));
?>
</pre>
请参考:https://www.php.net/manual/ja/reserved.variables.request.php 关于第二个参数,请查看此处。
htmlspecialchars的作用是在输入恶意程序时,防止其在表单中得以反映。
如果是单选按钮,复选框,下拉按钮的情况首先我们来看一下单选按钮。
<form action="submit.php" method="post">
    #ラジオボタン
    <p>性別:
        <input type="radio" name="gender" value="男性"> 男性
        /
        <input type="radio" name="gender" value="女性"> 女性
    </p>
    <input type="submit" value="送信する">
</form>
<form action="submit.php" method="post">
    #ラジオボタン
    <p>性別:
        <input type="radio" name="gender" value="男性"> 男性
        /
        <input type="radio" name="gender" value="女性"> 女性
    </p>
    <input type="submit" value="送信する">
</form>
实际上,接收方式与上述的模式相同。
<pre>
  #ラジオボタンの情報を受け取る
    <?php print(htmlspecialchars($_POST['gender'], ENT_QUOTES)); ?>
</pre>
可以选择多个复选框或下拉按钮
如果有多个选择的可能性,需要在name属性中加上方括号。
<form action="submit.php" method="post">
    <p>ご予約希望日</p>
    <p>
        <input type="checkbox" name="reserve[]" value="1/1"> 1月1日<br>
        <input type="checkbox" name="reserve[]" value="1/2"> 1月2日<br>
        <input type="checkbox" name="reserve[]" value="1/3"> 1月3日<br>
    </p>
    <input type="submit" value="送信する">
<form action="submit.php" method="post">
    <p>ご予約希望日</p>
    <p>
        <input type="checkbox" name="reserve[]" value="1/1"> 1月1日<br>
        <input type="checkbox" name="reserve[]" value="1/2"> 1月2日<br>
        <input type="checkbox" name="reserve[]" value="1/3"> 1月3日<br>
    </p>
    <input type="submit" value="送信する">
在php中,我们使用foreach循环来展开多个信息。
<pre>
    <?php
    foreach ($_POST['reserve'] as $reserve) {
        print(htmlspecialchars($reserve, ENT_QUOTES) . ' ');
    }
    ?>
</pre>
在下拉菜单上也可以进行类似的描述。
将全角数字转换为半角数字
<pre>
    <?php
    $age = '20';
    $age = mb_convert_kana($age, 'n', 'UTF-8');
    if (is_numeric($age)) {
        print($age . '歳');
    } else {
        print('※ 年齢が数字ではありません');
    }
    ?>
</pre>
<pre>
    <?php
    $age = '20';
    $age = mb_convert_kana($age, 'n', 'UTF-8');
    if (is_numeric($age)) {
        print($age . '歳');
    } else {
        print('※ 年齢が数字ではありません');
    }
    ?>
</pre>
使用 is_numeric($age) 来检查接收到的信息是否为数字。
使用 mb_convert_kana,执行各种转换。本次将全角数字转换为半角数字。有关 mb_convert_kana 的详细信息,请参考以下内容。
参考网站:https://www.php.net/manual/ja/function.mb-convert-kana.php
检查红色表示的邮政编码。
使用 preg_match 方法进行正则匹配。
关于正则表达式部分省略不提。
<pre>
    <?php
    $zip = 'abcabc123-4567';
    $zip = mb_convert_kana($zip, 'a', 'UTF-8');#半角へ変換
    if (preg_match("/\A\d{3}[-]\d{4}\z/", $zip)) {
        print('郵便番号:〒' . $zip);
    } else {
        print('※ 郵便番号を 123-4567の形式でご記入ください');
    }
    ?>
</pre>
跳转到另一页header() 用于发送原始的 HTTP 头。
它有多种用法,但本次是用于在跳转到另一个页面时的处理。
<?php
header('Location: https://h2o-space.com');
exit();
<pre>
    <?php
    $zip = 'abcabc123-4567';
    $zip = mb_convert_kana($zip, 'a', 'UTF-8');#半角へ変換
    if (preg_match("/\A\d{3}[-]\d{4}\z/", $zip)) {
        print('郵便番号:〒' . $zip);
    } else {
        print('※ 郵便番号を 123-4567の形式でご記入ください');
    }
    ?>
</pre>
它有多种用法,但本次是用于在跳转到另一个页面时的处理。
<?php
header('Location: https://h2o-space.com');
exit();
在Location指令中,要求跳转到另一个页面,并随后提示了跳转目标。
剩余算法的应用我們將使用剩餘算法來撰寫一個能夠在文字後面添加顏色的程式。
<table>
    <?php
    for ($i=1; $i<=100; $i++) {
        if ($i % 2) {
            print('<tr style="background-color: #ccc">');
        } else {
            print('<tr>');
        }
        print('<td>' . $i . '行目</td>');
        print('</tr>');
    }
    ?>
</table>
<table>
    <?php
    for ($i=1; $i<=100; $i++) {
        if ($i % 2) {
            print('<tr style="background-color: #ccc">');
        } else {
            print('<tr>');
        }
        print('<td>' . $i . '行目</td>');
        print('</tr>');
    }
    ?>
</table>
对于这个程序来说,基本上很普通。但是我个人发现,如果不使用print命令的话,
将值保存到Cookie中Cookie(饼干)是用于临时保存访问网页用户信息的机制,或者指该数据本身。要保存值到这个Cookie中,可以使用setcookie函数。
第一个参数是键,第二个参数是值,第三个参数是保存期限。
在本例中,保存期限被设置为从当前时间到14天后。
<?php
$value = '変数に保存した値です';
setcookie('save_message', 'Cookieに保存した値です', time() + 60 * 60 * 24 * 14);
?>
<?php
$value = '変数に保存した値です';
setcookie('save_message', 'Cookieに保存した値です', time() + 60 * 60 * 24 * 14);
?>
顺便提一下,可以这样获取Cookie的值:
<pre>
    変数の値:<?php print($value); ?>  #この部分は表示されない、あくまでこのページでのvalueとして再定義しないといけない
    Cookieの値:<?php print($_COOKIE['save_message']); ?> #前ページから保存されたものがこちらでも表示される
</pre>
将值保存到会话中
我会在以下的网页上保存会话。
<?php
session_start();
$_SESSION['session_message']="sessionに値を保存しました"
?>
<?php
session_start();
$_SESSION['session_message']="sessionに値を保存しました"
?>
然后,我将在这里显示记忆的值。
<?php
 print($_SESSION['sesison_message']); #sessionに値を保存しましたが表示される
?>
与Cookie不同,当关闭浏览器时,保存在session中的信息会被删除。
顺便提一下,session会在服务器端存储,而Cookie会在浏览器端存储。