負けてたまるか。

脳トレ、プログラミング、PHP、WEB製作などのメモ

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

--.--.-- --:-- | スポンサー広告 | トラックバック(-) | コメント(-) | Edit
21~30問 PHPの特訓

(21)フォームを使って別のページに値を送る


[test.php]
<html><body>
<form action="test2.php" method="get">
<input type="text" name="word">
<input type="submit" value="検索">
</form>
</body></html>


[test2.php]
if ($_GET["word"]){
echo htmlspecialchars($_GET["word"])."で検索した結果";
} else {
echo "キーワードを入力してください";
}


(22)(21)のフォームではアドレス欄に値が表示されてしまいます。これを消すにはどうすればよいですか?


methodを「GET」ではなく「POST」、「$_GET」を「$_POST」に変更する


(23)キーワードを入力すると別のページに飛び、「戻る」キーワードもしくはキーワードが空の場合は元のページに戻す仕組みを作る



[test.php]
<?php 
session_start();

if($_SESSION["word"] == "戻る"){
echo "戻りました";

}

if(isset($_POST["word"])){
$word = $_POST["word"];
$_SESSION["word"] = $word;
header("Location: http://localhost/test2.php");
exit;
}
?>

<html>
<body>
<form action="test.php" method="post">
<input type="text" name="word">
<input type="submit" value="検索">
</form>
</body>
</html>


[test2.php]
session_start(); 

echo $_SESSION["word"]."の検索結果";

if($_SESSION["word"] == "戻る"){
header("Location: http://localhost/test.php");
}


(24)エンコードを設定する


header("content-type: text/html; charset=EUC-JP");


(25)txtファイルに文字を書き込む


$filename = "C:\\apapapache\\htdocs\\sample.txt";
//ファイル名
$string = "いちじゅうひゃくせんまんおくちょうけいがいしじょうこうかんせいさいごく";
//文字列

$handle = fopen($filename,"w");
//fopen() : ファイル開く
fwrite($handle,$string);
//fwrite() : ファイル書きこみ
fclose($handle);
//fclose() : ファイル閉じる

/* 関数
fopen(string $filename,string $mode)
fwrite(resource $handle , string $string)
fclose(resource $handle)
*/


(26)ファイルの中身を読む


$filename = "C:\\apapapache\\htdocs\\sample.txt";
//ファイル名


$handle = fopen($filename,"rb");
//ハンドル
$contents = fread($handle,filesize($filename));
//ファイル読む
fclose($handle);
//ファイル閉じる


echo $contents;


/* 関数
fread(string $handle,int $length)
…ファイルを読み込む。
(handle が指すファイルポインタから最高 length バイト読み込みます。)
Windowsの場合バイナリとテキストの形式が違うため、
fopenのモードパラメータに"b"を指定する
int filesize(string $filename)
…指定したファイルのサイズを取得。


(27)文字を次の3つにそれぞれフォーマットする。
「文字列を空白で右詰め」「整数を空白で左詰め」「整数を0で右詰め」


printf("[%10s]\n",    "abcde");
printf("[%-10d]\n", 23 );
printf("[%010d]\n", 4343 );

/* 関数
string sprintf(string $format [, mixed $args [, mixed $... ]])
…フォーマット文字列 format に基づき生成された文字列を返します。
パーセント記号 (%) の後に これらの要素が一つ以上続いたものが変換指定子。
*/


(28)以下に指定したキーワードを、まとめて置換する。また、置換した回数も表示する


指定ワード
-------------------------
「ブルドッグ」   →  「キューピー」
「カバ」       →  「ピラニア」
「雷神」      →  「八岐大蛇」
「ばいきんまん」 →  「バイキン仙人」
--------------------------------
検索文章
-----------------------------
ブルドッグのおじさん。怖い顔をしていて、怒ると大声を出すが、心は優しい。
カバの男の子。食いしん坊である。よくアンパンマンの顔を食べる。
かみなりぴかたんの父親の雷神。
ばいきんまんより先にこの星に来た仙人で魔法使い。
-------------------------------
$contents ="ブルドッグのおじさん。怖い顔をしていて、怒ると大声を出すが、心は優しい。
カバの男の子。食いしん坊である。よくアンパンマンの顔を食べる。
かみなりぴかたんの父親の雷神。
ばいきんまんより先にこの星に来た仙人で魔法使い。";

$search = array("ブルドッグ","カバ","雷神","ばいきんまん");
$replace = array("キューピー","ピラニア","八岐大蛇","バイキン仙人");

$contents = str_replace($search,$replace,$contents,$count);

echo $contents;
echo "
".$count;

/* 関数
mixed str_replace ( mixed $search , mixed $replace , mixed $subject [, int &$count ] )
//文字列を置換する。
$search … 検索ワード
$replace … 置換ワード
$subject … 検索する文章
&$count … 置換が行われた回数
*/


(29)「:」で文字列を分割する。


分割する文字列
-------------------
冠詞:副詞:前置詞:動詞:準動詞
-------------------

「方法その1」
$string = "冠詞:副詞:前置詞:動詞:準動詞";
//文字列
$pieces = explode(":",$string);
//「:」で分割

$i = 0;

while($i < count($pieces)){
echo $pieces[$i]."
";
$i++;
}

/* 関数
array explode ( string $delimiter , string $string [, int $limit=-1 ] )
//文字列の配列を返します。
$delimiter … 区切り文字
$limit   … 配列に返される要素数のリミット。
最後の要素に、 string の残りの部分が全て含まれる。
limitパラメータが負 … 最後の -limit 個の要素を除く全ての構成要素が返される。
*/


「方法その2」
$string = "冠詞:副詞:前置詞:動詞:準動詞";
//文字列
list($one[],$one[],$one[],$one[],$one[]) = explode(":",$string);

echo $one[0];
echo $one[2];

/* 関数
void list ( mixed $varname [, mixed $... ] )
//変数に値を代入
*/


(30)1行ずつURLが記述されたtxtファイルを読み込み、リンク付きURLを画面に出力する。


読み込むファイル[sample.txt]
-----------------------------------
http://plaza.rakuten.co.jp/quitada/diary/200410210000/
http://www.seo-association.com/
http://gogoru.seesaa.net/
http://www.flickr.com/photos/goggoru/
http://www.de4u.net/mt/archives/001072.html
http://yaplog.jp/matsu-you/archive/157
http://d.hatena.ne.jp/TomCat/
http://www.cre.ne.jp/writing/event/2004/goggole.html
http://ijigen.exblog.jp/804846
http://kokogiko.net/m/archives/000632.html
---------------------------------
$filename = ("C:\\apapapache\\htdocs\\sample.txt");
//ファイル
$handle = fopen($filename,"rb");
//ハンドル

$i = 0;
$link = array("a");
//配列を宣言
//理由1:宣言する方法がわからないので"a"を入れた
//理由2:while文内で宣言した場合ローカル変数になるかもしれないので

while(!feof($handle)){
//ファイルに達するまでループ

$link[$i] = fgets($handle);
//配列にそれぞれのURLを代入
echo "".$link[$i]."
";
//リンク付きでURLを表示
$i++;
}

fclose($handle);


/* 関数
string fgets ( resource $handle [, int $length ] )
//ファイルポインタから一行取得
$length … 取得するバイト数
bool feof ( resource $handle )
//ファイルポインタがファイル終端に達しているかを調べる
*/
関連記事












管理者にだけ表示

トラックバックURL↓
http://taro4.blog37.fc2.com/tb.php/214-560880d7

| ホーム |

カレンダー

09 | 2017/10 | 11
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31 - - - -

最近の記事

月別アーカイブ

タグリスト

ブログ内検索

カテゴリー

RSSフィード

リンク

ブロとも申請フォーム

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。