PHPを使用しHTMLのファイル名をソースに書き込みたいと

思っているのですがどのようにすれば良いのか分からずにいます。


例えば

ファイル名が 01.html~99.html まであるとして
今のページ数をHTMLの中に書き込みたいと思っています。
(01.htmlの場合は1ページ目ですといった感じにしたいと思っています。)


また01.htmlのソースの中に画像を参照している部分があり001.htmlの場合
01.jpgを参照しているのですがその部分もファイル名からPHPを使用し
自動的に抽出し組み込む方法も探しています。


どなたかPHPでどうすれば出来るかご存知の方いましたら宜しく
お願いいたします<(_ _)>

回答の条件
  • 1人50回まで
  • 登録:2007/01/10 16:36:42
  • 終了:2007/01/10 19:02:26

ベストアンサー

id:GEN111 No.2

GEN111回答回数472ベストアンサー獲得回数582007/01/10 18:02:22

ポイント100pt

 ちょっと状況が分かりにくいのですが、PHPコードはそれぞれ 01.html~99.html の中に記述するのでしょうか?

 自身のファイル名は __FILE__ や $_SERVER['PHP_SELF'] で得られるので次のようなコードではどうでしょうか。

preg_match("/([0-9]+).html$/i", __FILE__, $match) ;
echo (int)$match[1]."ページ目です。" ;
$imgfile = "$match[1].jpg" ;
id:nrglife

ご回答下さりありがとう御座います!

説明が足りずにすみません、実際に実行するのは001.phpです。

001.php~099.phpの中に記述したいと思っています<(_ _)>

2007/01/10 18:38:04

その他の回答(2件)

id:Sampo No.1

Sampo回答回数556ベストアンサー獲得回数1042007/01/10 17:46:41

ポイント55pt

.htmlファイルでもPHPスクリプトの実行を許可し、HTMLの中に、PHPを使ってページ番号を出力するスクリプトを埋め込んでおきたいと言うことですね?


現在実行中のファイルの名前は、$_SERVER["SCRIPT_NAME"]で取得できます。"/<ディレクトリ名>/00.html"のような形で格納されています。

01.html~99.htmlのようなファイル名だったら、basename()関数でファイル名だけ取り出し、0を加算すればすぐに整数値に変換できます。

また、01.jpgのように二桁にそろえて出力したいときはsprintf()関数で整形すればよいでしょう。

具体的には

<!-- ページの先頭 -->

<?php

$page = 0+ basename( $_SERVER["SCRIPT_NAME"] );

?>

<HTML…

 ・

 ・

 ・

これは<?= $page?>ページです。

<img src="<?= sprintf("%02d",$pgae) ?>.jpg">

 ・

 ・

という風な記述になります。

id:nrglife

ご回答下さりありがとうございます!

とても参考になりました<(_ _)>


説明が足りずにすみません、実際に実行するのは001.phpです。

アドバイスを頂いたように記述してみましたら


無事にページ数の所得は出来るようになったのですが。

画像の表示が001.phpの中に

<img src="<?= sprintf("%02d",$pgae) ?>.jpg">


と記述したのですが画像が表示されずソースを

確認したところ何故か <img src="00.jpg"> 

となります。


試しに002.phpもアップして確認したのですが

ソースを確認したところ同様に<img src="00.jpg">

となっていました。


お手数をお掛けして申し訳御座いませんが

原因が分かりましたら宜しくお願いいたします<(_ _)>

2007/01/10 18:33:44
id:GEN111 No.2

GEN111回答回数472ベストアンサー獲得回数582007/01/10 18:02:22ここでベストアンサー

ポイント100pt

 ちょっと状況が分かりにくいのですが、PHPコードはそれぞれ 01.html~99.html の中に記述するのでしょうか?

 自身のファイル名は __FILE__ や $_SERVER['PHP_SELF'] で得られるので次のようなコードではどうでしょうか。

preg_match("/([0-9]+).html$/i", __FILE__, $match) ;
echo (int)$match[1]."ページ目です。" ;
$imgfile = "$match[1].jpg" ;
id:nrglife

ご回答下さりありがとう御座います!

説明が足りずにすみません、実際に実行するのは001.phpです。

001.php~099.phpの中に記述したいと思っています<(_ _)>

2007/01/10 18:38:04
id:GEN111 No.3

GEN111回答回数472ベストアンサー獲得回数582007/01/10 18:47:43

$p「ga」e

になってるからではないでしょうか。

id:nrglife

>$p「ga」e

>になってるからではないでしょうか。


phpソース内では以下のように記述をしています。




追記:

有難う御座います!!

$match[1].jpgで実行したところ無事に実行できました^^

本当に有難う御座いました<(_ _)>!!

<img src="<?= sprintf("%02d",$pgae) ?>.jpg">


宜しくお願いいたします<(_ _)>

2007/01/10 19:01:30

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません