- 締切済み
path_infoのよる静的出力に関して。
こんにちは、 どうすれば、よいか困っております。 $a = "aaa.php?id=$b_id"; 現在上記の状態を、下記のように 出力したいのですが、 ttp://www.aaa/aaa.php?id=1 ↓ ttp://www.aaa/aaa-1.htm modrewriteだとうまくいかないので、 path_infoを使うと出来るみたいですが、どうすればよいでしょうか?
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- satoh
- ベストアンサー率77% (17/22)
ソースがどのようなものかわかりませんが、 ウェブページでの反応でしたら、 if( $_REQUEST["id"] && preg_match( "/(^[^?]+)\\.([^\\.]+)/", $_SERVER["SCRIPT_NAME"], $matches ) ){ // if文が成功した場合、 // $matches[1]にはURLの拡張子の前まで // $matches[2]には拡張子が入っています。 print $matches[1]."-".$_REQUEST["id"].".htm"; } else { print "not match\n"; } ということでしょうか。 ※$_REQUESTはPOSTを無視するなら$_GETにしてください。 もし違うようでしたら、もうちょっと実際の例に近い形で質問していただければ、回答もしやすくなるかと思います。 P.S. 自動リンクを防ぐためだけのttpはわたしはすっごく嫌いです(笑)。ま、いいですけど。
- satoh
- ベストアンサー率77% (17/22)
# なぜttp://なのかはわかりませんが…。 実際にGETが発生した状態か、文字列だけの話かがわかりませんので、文字列だけの話として(例の形式以外は存在しないとして)、 if( preg_match( "/(.+)\\.[^\\?]+\\?id=(\\d+)/", $a, $matches ) ){ $result = "ttp://" . $matches[ 1 ] . "-" . $matches[ 2 ] . ".htm"; print "$result\n"; } else { print "not match\n"; } でいかがでしょうか。 # pathinfo()は拡張子を分けてくれないので使えないと思います。
補足
satoh 様有難う御座いました。 上記方法で動的ページへのリンクは 静的に出力する事は、出来ましたが、 動的ページは、IDナンバーを取得して、 自動的に情報を表示しているようですが、 アドレスを出力する際にどうすればよいか、 ソースを見ても分からず、現在悩んでおります・・・ P.S hをはずしたのは、自動リンクをふせぐためです。
お礼
回答有難う御座いました。 もう少し考えてみます。