0

次のような URL がある場合:

http://www.example.com/400x200

ユーザーがphpを使用してそのURLにアクセスしたときに400x200をエコーするページを作成することは可能ですか?

パスをエコーする方法は知っていますが、これは簡単です ( ltrim($_SERVER['PATH_INFO'], '/')) が、ページを動的に作成する方法がわかりません。

どんな助けでも大歓迎です、事前に感謝します

4

5 に答える 5

1

URL の書き換えについては、Apache Rewrites を参照してください。

http://httpd.apache.org/docs/2.0/misc/rewriteguide.html

于 2012-06-19T09:48:33.337 に答える
1

ページを動的に作成するとはどういう意味かわかりませんが、 of を使用するmod_rewriteことが必要だと思います。

あなたの.htaccessファイルでは、URL を PHP スクリプトで区別できるものに書き換えるいくつかのルールを作成する必要があります。

http://www.example.com/400x200

取得するため

http://www.example.com/index.php?param=400x200

そして、あなたはあなたのindex.phpスクリプトで行うことができますecho $_GET['param'];...

PHP についての Google 何かmod_rewrite: http://www.google.com/#q=PHP+mod_rewrite

于 2012-06-19T09:51:42.297 に答える
1

リクエスト URI ( /400x200) は、サーバーのスーパーグローバル: に格納されます$_SERVER["REQUEST_URI"]

それを取得し、それに応じて URI をルーティングする必要があります。最も単純なシナリオ: index.php に次のコードを配置します。

$uri = trim($_SERVER["REQUEST_URI"],"/");

if (preg_match("/\d+x\d/")) {
    list($width,$height) = explode("x",$uri);
    // some logic with the above vars, e.g. include a view script
}

これが行うことは、URI の形式が であるかどうかを確認し{number}x{number}、両方の数値を抽出して変数$widthおよびに格納することです$height。その後、変数で好きなことを行うことができます。

リクエストが常にこのコードを含むファイルを指すようにするには、.htaccess を編集して次のように記述します。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]
RewriteRule ^.*$ index.php [NC,L]

(誰かが尋ねた場合に備えて、.htaccess コードはデフォルトの Zend Framework プロジェクトからコピーされます)。

于 2012-06-19T09:56:31.153 に答える
1

Apache を使用していると仮定すると、これはURL 書き換えと呼ばれるものを使用して実行できます。.htaccessドキュメント ルートにというファイルを作成し、これを追加します。

# Turn URL rewriting on
RewriteEngine on
Options +FollowSymlinks

# Rewrite rule
RewriteRule ^(\d+x\d+)/?$ index.php?dimensions=$1 [L]

最初の 2 行で書き換えエンジンをオンにし、3 行目でRewriteRule. 最初の部分^(\d+x\d+)/?$は、ドメインの後の URL の部分が照合される正規表現です。

2 番目の部分index.php?dimensions=$1は、書き換え先の URI です。クライアントはこれを認識しませんが、PHP は認識します。

URL を使用するとprint_r($_GET)、次のようになります。index.phphttp://localhost/400x300

Array ( [dimensions] => 400x300 )

これは$_GET、PHP の標準的なスーパーグローバル配列からのもので、通常どおり使用できます。URL 書き換えでは、URL はそのままブラウザーに残されますが、クエリ文字列を使用して PHP で使用できる URL に変換できます。


スクリプトを使いやすくするために、式を分割して X 値と Y 値を個別に取得できます。

RewriteRule ^(\d+)x(\d+)/?$ index.php?x=$1&y=$2 [L]

次のような配列が得られます。

Array ( [x] => 400, [y] => 300 )
于 2012-06-19T09:52:47.100 に答える
0

のようなGET変数にします

http://www.example.com?size=400x200 

次に、文字列を取得できます

$size = $_GET['size'];

私がお勧めするのは、分割または爆発()に基づいて値を取得することです

$lw = $size.explode('x',$size);
$length = $lw[0];
$width = $lw[1];
//Manipulate the values accordingly like
echo $length.'x'.$width;
于 2012-06-19T09:51:19.233 に答える