PHP(Hypertext Preprocessor)

サイトマップホーム

PHP(Hypertext Preprocessor) はWebページ作成のために用いられるプログラミング言語の一種です。この言語は動的Webページを作るときJavascriptで出来ない機能を簡単に実現することができます。
ここではちょっと便利なJavascriptと連携した簡単な使い方のサンプルを掲載します。
また、現在のサーバーのPHP環境設定(php.ini)はここから確認出来ます。

メールメールの送信

ファイルの操作ファイル/ディレクトリの表示ファイルの書き込みファイルの読込ファイルの作成ファイルの削除ファイルのアップロード

パラメータの渡し方PHPにURLパラメータで渡すHTMLからsubmitでPHPに渡すPHPからJavascriptに渡すJavascriptからPHPに渡しJavascriptに戻す

その他HTMLの表示

メールの送信

メールの送信サンプルの実行 戻る

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>SendMail(Form)</title>
</head>
<body>
<h1>SendMail(Form)</h1>
<form name="form" action="mailsend_form.php" method="post">
<input name="from" size="80" value="alarm@alarm.com" type="hidden"><br>
送信先:<input name="to"      size="50" value="nnnnnnn@dddddd.com"><br>
題名_:<input name="subject" size="50" value="PHPおしらせ"><br>
本文_:<input name="message" size="50" value="こんにちは。"><br>
<input type="button" value="メール送信" onclick="form.submit()">
</form>
</body>
</html>

PHPソース

<?php
mb_language("Japanese");
mb_internal_encoding("UTF-8");
$message = $_POST["message"];
if (!mb_send_mail($_POST["to"], $_POST["subject"], $message, "From: " . $_POST["from"])) {
  exit("メールの送信に失敗しました。");}
exit("メールの送信が完了しました。");
?>

ファイルの操作

ファイル/ディレクトリの表示サンプルの実行 戻る

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>ファイル/ディレクトリ表示</title>
</head>
<body>
<div id="out"></div>
<script type="text/javascript">
var a = "<?php              //aの値をPHPで求める。
$res_dir = opendir( '.' );  //カレントディレクトリの設定
$fls = "" ;
while( $file_name = readdir( $res_dir ) ){         //ファイル/ディレクトリの検索
  if($file_name !== '.' && $file_name !== '..'){   //・・・ファイル名を除外する
    $fls.= $file_name;                             //ファイル名の設定
    $fls.= "<br>" ;                                   //区切文字の挿入
  }
}
closedir( $res_dir );   //クローズ
echo "{$fls}"  ;        //取得した情報を渡す
?> " ;
  out.innerHTML = "ファイル/ディレクトリ名<br>" + a ; 
</script>
</body>
</html>

ファイルの書き込みサンプルの実行 戻る

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>ファイルの書き込み</title>
</head>
<body>
<?php
  $fp = fopen("txt/write.txt", "w");
  fwrite($fp, "=======fwrite=====");
  fclose($fp);
?>
<script type="text/javascript">
window.alert ("	fwriteで書き込み完了") ; 
</script>
<?php 
  file_put_contents("txt/put.txt","=======file_put_contents====="); 
?>
<script type="text/javascript">
  window.alert ("file_put_contentsで書き込み完了") ; 
</script>
<p>処理完了しました。ブラウザの「戻る」で戻してください。</P>
</body>
</html>

ファイルの読み込みサンプルの実行 戻る

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>ファイルの読込</title>
</head>
<body>
<div id="msg"></div>
<script type="text/javascript">
  var a = "<?php
  $fp = fopen("txt/write.txt", "r");
  while ($line = fgets($fp)) { echo "$line" ; }
  fclose($fp);
?> " ;
  window.alert("fgetsで読込>>" + a) ;
</script>
<script type="text/javascript">
  window.alert("file_get_contentsで読込>><?php echo file_get_contents("txt/put.txt"); ?> " ) ;
</script>
<p>処理完了しました。ブラウザの「戻る」で戻してください。</P>
</body>
</html>

ファイルの作成サンプルの実行 戻る

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>ファイルの作成</title>
</head>
<body>
<div id="msg"></div>
<script type="text/javascript">
msg.innerHTML = "<?PHP
  $fname = 'txt/addfile.txt';  //作成するファイル
  if( !file_exists($fname) ){  //ファイルの存在チェック
    touch( $fname );           //ファイル作成
    chmod( $fname, 0666 );     // ファイルのパーティションの変更
    echo('ファイル作成完了。ファイル名は【'.$fname.'】です。');
  }else{
    echo('ファイルが存在しています。ファイル名は【'.$fname.'】です。');
  }
?>" ;
</script>
</body>
</html>

ファイルの削除サンプルの実行 戻る

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>ファイルの削除</title>
</head>
<body>
<div id="msg"></div>
<script type="text/javascript">
msg.innerHTML = "<?PHP
  $fname = 'txt/addfile.txt';   //削除するファイル
  if( !file_exists($fname) ){   //ファイルの存在チェック
    echo('ファイルが存在しません。ファイル名は【'.$fname.'】です。');
  }else{
    unlink($fname);
    echo('ファイルを削除しました。ファイル名は【'.$fname.'】です。');
  }
?>" ;
</script>
</body>
</html>

ファイルのアップロードサンプルの実行 戻る

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>ファイルアップロード</title>
</head>
<body>
<form action="upload.php" method="post" enctype="multipart/form-data">ファイル:
  <input type="file" name="upfile" size="50" /><br /><br />
  <input type="submit" value="アップロード" />
</form>
</body>
</html>

PHPソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>ファイルアップロード</title>
</head>
<body>
<p><?php
if (is_uploaded_file($_FILES["upfile"]["tmp_name"])) {
  // アップロードファイルの移動
  if (move_uploaded_file($_FILES["upfile"]["tmp_name"], "files/" . $_FILES["upfile"]["name"])) {
    // パーミッションの設定
    chmod("files/" . $_FILES["upfile"]["name"], 0644);
    echo $_FILES["upfile"]["name"] . "をアップロードしました。";
  } else { echo "ファイルをアップロードできません。"; }
} else { echo "ファイルが選択されていません。";}
?></p>
</body>
</html>

パラメータの渡し方

PHPにURLパラメータで渡すサンプルの実行 戻る

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>javascript⇒php</title>
</head>
<body>
<p>パラメータの引き渡し</p>
<p><a href="http://tomari.org/main/php/jsptophp1.php?param1=1234&param2=abcd&param3=8823">
http://tomari.org/main/php/jsptophp1.php?param1=1234&amp;param2=abcd&amp;param3=8823</a></p>
</body>
</html>

PHPソース

<?php
  $param1 = $_REQUEST["param1"];
  $param2 = $_REQUEST["param2"];
  $param3 = $_REQUEST["param3"];
  echo "param1 = {$param1},"  ;
  echo "param2 = {$param2},";
  echo "param3 = {$param3}" ;
?>

HTMLからsubmitでPHPに渡すサンプルの実行 戻る

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>パラメータの渡し</title>
</head>
<body>
<h1>jsp⇒php</h1>
<form name="form" action="jsptophps.php" method="post">
param1:<input name="param1" size="80" value="0123456789"><br>
param2:<input name="param2" size="80" value="abcdefghij"><br>
<input type="submit" value="サブミットする">
//サブミットボタンで実行しないで、自動サブミットする場合はJavascriptで「form.submit();」を実行する。
</form>
</body>
</html>

PHPソース

<?php
  $param1 = $_REQUEST["param1"];
  $param2 = $_REQUEST["param2"];
  echo "param1 = {$param1},"  ;
  echo "param2 = {$param2},";
?>

PHPからJavascriptに渡すサンプルの実行 戻る

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>php⇒javascript</title>
</head>
<body>
取得結果 1
<p id="out1"></p>
取得結果 2
<p id="out2"></p>
<script>
<?php
  $param1 = 12345;
  $param2 = 'abcde';
  echo "a = '{$param1}' ;";
  echo "b = '{$param2}' ;";
?>
</script>
<script>
//その1
  out1.innerHTML ="param1=" + a + "<br>param2=" + b ;
//その2
  out2.innerHTML ="param1=" + <?php echo $param1 ; ?> + "<br>param2=" + "<?php echo $param2 ; ?>" ;
</script>
</body>
</html>

JavascriptからPHPに渡しJavascriptに戻す(その1)サンプルの実行 戻る

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>jsp⇒php⇒javascript</title>
</head>
<body>
取得結果
<p id="out1"></p>
<script>
  xhr = new XMLHttpRequest();
  //openの第三引数は非同期(true)で行うと言う指定
  xhr.open("GET","jsptophptojsp2.php?param1=12345",true); 
  xhr.responseType = "text"; //結果をテキスト形式で取得
  xhr.addEventListener('load', function(event){
    a = xhr.response ; //->本来のメインの出力
    b = event.target.response ; //->イベントにも入る
    out1.innerHTML = a + "<br>" + b ;
  });
  xhr.send(null);
</script>
</body>
</html>

PHPソース

<?php
  echo 'param1='.$_GET['param1'] ;
?>

JavascriptからPHPに渡しJavascriptに戻す(その2)サンプルの実行 戻る

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>jsp⇒php⇒javascript</title>
</head>
<body>
取得結果
<p id="out1"></p>
<script>
  xhr = new XMLHttpRequest();
  xhr.open('POST', 'jsptophptojsp3.php', true);
  xhr.responseType = 'json'; //JSON形式で取得
  xhr.addEventListener('load', function(event) {
    a = xhr.response.name1 ;
    b = xhr.response.name2 ;
    out1.innerHTML = "param1=" + a + "<br>param2=" + b ; 
  });
  fd = new FormData();
    fd.append("param1","12345");
    fd.append("param2","abcdef");
    xhr.send(fd);
</script>
</body>
</html>

PHPソース

<?php

$array = array();
$array["name1"] = $_POST['param1'] ;
$array["name2"] = $_POST['param2'] ;

echo json_encode($array);
?>

その他

HTMLの表示サンプルの実行 戻る

HTMLの特殊な意味(役割)を持っている文字(特殊文字)をただの文字(見た目は記号)として表示します。
他の使い方として悪意あるユーザデータ入力の無害化(安全性を高める)も可能です。

特殊文字(参考)

特殊文字 文字実体参照 名前、呼び方
" &quot; ダブルクォート
' &apos; アポストロフィ
& &amp; アンパサンド
< &lt; 小なり
> &gt; 大なり
/ &frasl; スラッシュ
&nbsp; スペース(空白)

Javascriptソース

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="content-language" content="ja">
<meta charset="UTF-8">
<title>HTMLの表示</title>
</head>
<body>
<pre><code>
<?php 
  $tmp = file_get_contents('htmldsp.php') ;   //HTMLコンテンツを読み込む
  $tmp = htmlspecialchars($tmp,ENT_QUOTES) ;  //HTML特殊文字を変換する。 
  echo $tmp ;                                 //表示する。
?>
</code></pre>
</body>
</html>

サイトマップホーム