a.html(a.php)のURLを入力するとb.html(b.php)のURLのページを表示させたいです
c.html(c.php)のURLを入力するとd.html(d.php)のURLのページを表示させたいです
遷移のページの場合分けはCSVファイルで
入力URL,表示するページのURL
a,b
c,d
defy,e
で書かれた情報を元に遷移させたいです
これは可能でしょうか
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答3件
0
考え方は3つ
- a.phpを実際につくっておいてb.phpにとばす
phpであればa.phpに
PHP
1header("Location:b.php");
を記載してあればとびます。
htmlであればmetaタグのrefreshでとばしてください
-
a.phpでb.phpをfile_get_contentsなどで読み込んで出力する
-
httpサーバーの機能を利用する
たとえば.htaccessでリライトする
RewriteRule a.php b.php
※無条件で設定をするとアクセスできないページが発生するのでよくよく運用には気をつけて下さい
投稿2017/09/25 01:53
総合スコア114843
0
ベストアンサー
CSVの1カラム目の「a, c, defy」と2カラム目の「b, d, e」が同じディレクトリに配置されているとして下記ではいかがでしょうか。
php
1//現在画面のPHPファイル名 2$current = basename($_SERVER['SCRIPT_NAME']); 3 4$fp = fopen('CSVファイルパス', 'r')); 5if ($fp === false) { 6 //CSVオープンエラー 7 exit(); 8} 9 10while (($data = fgetcsv($fp)) !== false) { 11 //現在URLパスがマッチしたら、2カラム目のパスをインクルード 12 if (! empty($data[0]) && ! empty($data[1]) && 13 strcmp($current, $data[0]) === 0 && 14 file_exists($data[1])) 15 { 16 include_once($data[1]); 17 break; 18 } 19} 20fclose($handle);
CSVのフォーマットがスラッシュから始まる相対パスのURLの場合は下記のようにできます。この場合もCSVの1カラム目と2カラムのディレクトリは同じである前提にしています。
php
1//現状のURI 2$current = $_SERVER['REQUEST_URI']; 3 4if (strpos($current, '/') === 0) { 5 $current = ($_SERVER['SERVER_PORT'] == "80" ? 'http://' : 'https://').$_SERVER['SERVER_NAME'].$current; 6} 7 8//現在画面のスラッシュから始まる相対パスURL 9$current = parse_url($current, PHP_URL_PATH); 10if ($current === false) { 11 //URIパースエラー(リクエストURIが不正など) 12 exit(); 13} 14 15$fp = fopen('CSVファイルパス', 'r')); 16if ($fp === false) { 17 //CSVオープンエラー 18 exit(); 19} 20 21while (($data = fgetcsv($fp)) !== false) { 22 //現在URLパスがマッチしたら、2カラム目のパスをインクルード 23 if (! empty($data[0]) && ! empty($data[1]) && 24 strcmp($current, $data[0]) === 0) && 25 file_exists(basename($data[1]))) 26 { 27 include_once(basename($data[1])); 28 break; 29 } 30} 31fclose($handle);
投稿2017/09/24 01:02
総合スコア1652
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
まずリクエストの全てを適当な URL に遷移させます。例えば a.html へのリクエストであるならば /index.php?q=a.html のように。
そして/index.php では、指定された元々のリクエストの URL と CSV の内容から返すべきコンテンツを生成して返してください。
投稿2017/09/23 06:29
総合スコア28660
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/09/25 02:26