問題タブ [pathinfo]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - ASP.NET MVC: PathInfo 制限?
ASP.NET 2.0 の制限の 1 つは、PathInfo が 255 文字に制限されていたことです。その制限は ASP.NET MVC URL の問題ですか、それとも ASP.NET MVC ルーティング URL には何らかの長さ制限がありますか?
php - http://localhost/index.php/articles/edit/1/my-first-article のような URL は、.htaccess なしでどのように機能しますか?
私はこれを取得しません:
http://localhost/index.php/articles/edit/1/my-first-article
この URL は、 Kohana フレームワークのドキュメントに例として記載されています。インストールのファイルを調べてみましたが、それとは関係のない自分のもの以外に .htaccess はありません。
では、index.php が呼び出されたのに、パラメータとして、URL に追加されたディレクトリのように見えるのはどうしてでしょうか? それは「本物」に見えません。
それとも、ネイティブの PHP/Apache/HTTP が実際にどのように機能するのでしょうか? 私が理解しているように、/ は常に「ねえ、ディレクトリ!」と言っています。私にはまったく意味がありません...どうしてそれが可能ですか?それとも、私が見たり見つけたりできない.htaccessがどこかにありますか?
apache - クリーン URL の mod_rewrite または path_info
私は常に mod_rewrite を使用してきれいな URL を作成してきましたが、最近まで他のオプションがあることを知りませんでした。数週間前、ここにいる誰かが、 apache を使用してもまったく同じ効果が得られると指摘しましたPATH_INFO
。今考えてみると、これはほとんどの PHP フレームワークが行っていることであり、必要に応じて mod_rewrite に純粋に依存しindex.php
て URL からブートストラップを削除していると思います。
すべてがいくつかの質問につながります。
- 次のようなクリーンで柔軟な URL 構造を作成するためのより良い方法はどれ
/page/var/foo/bar/2
ですか? - 2 つの方法の相対的な長所と短所は何ですか?
- リソース使用量などの点で、どちらの方法が優れていますか?
ありがとう。
php - PATH_INFO を取得するポータブルで安全な方法
(便利な)変数を受け取るポータブルな方法を探しています。$_SERVER['PATH_INFO']
しばらく読んだ後、PATH_INFO
CGI/1.1 に由来することが判明し、すべての構成に常に存在するとは限りません。
その変数を取得するための最良の(主にセキュリティ上の)方法は何ですか-手動で抽出することは別として(セキュリティ上の懸念)。
php - PHPのPATH_INFOとは正確には何ですか?
すべての外部URLは「module/action?key1=param1」のようになります。カスタマイズはできませんが、高速です。違いは、最初はPHPのGETを使用し、2番目はPATH_INFOを使用することです。
私はPATH_INFO
何度か見たことがありますが、それが正確に何であるかはまだわかりません。それは何をするためのものか?
php - PHPパス情報の問題
このスニペットがあり、ディレクトリに 3 つの画像と 3 つのフォルダーがあります。画像は問題なくエコーされますが、各フォルダーに対してこのエラーも表示されます。
注意: 未定義のインデックス: 119 行目の D:\Data\Websites\wamp\www\StephsSite\PHP\manage.php の拡張子
私がやりたいのは、拡張子のないファイル(フォルダー)が見つかった場合に静止画像を表示することです。どうすればこれを達成できますか?
php - /index.php/seo_path のような URI の信頼性
ときどき (特に mod_rewrite が利用できない場合)、次のパス スキームが使用されることに気付きました。
これは、少なくとも Apache では機能しているようで、index.php
が呼び出され、 を/clean_url_here
介してその部分を照会できます$_SERVER['PATH_INFO']
。PHPは、この機能を宣伝しています。また、たとえば、CodeIgniterフレームワークは、この手法を URL のデフォルトとして使用します。
質問:この手法の信頼性は? Apache が呼び出さずindex.php
にパスを解決しようとする状況はありますか? lighttpd、nginx、IIS、AOLServer はどうですか?
ServerFault の質問ですか? PHPコード内でこの機能を使用することにもっと関係があると思います。そこでここで質問します。
補遺: VolkerK によって示唆されているように、この質問に対する合理的な拡張は次のとおり$_SERVER['PATH_INFO']
です。
php - pathinfoとfnmatch
ここでpathinfoに対するfnmatchの速度に関して小さな議論がありました:ファイルがphpであるかどうかをチェックする方法は?
私は完全に確信していなかったので、2つの機能のベンチマークを行うことにしました。
動的パスと静的パスを使用すると、pathinfoの方が高速であることがわかりました。
私のベンチマークロジックと結論は有効ですか?
編集:cmdからmacphpを使用する
PHP 5.3.0(cli)(ビルド:2009年7月20日13:56:33)Copyright(c)1997-2009 PHP Group Zend Engine v2.3.0、Copyright(c)1998-2009 Zend Technologies
動的パスpathinfo3.2973630428314fnmatch 3.4520659446716 x1.05
静的パスpathinfo0.86487698554993fnmatch 1.0420439243317 x1.2
cmdからのmacxamppphp
PHP 5.3.1(cli)(ビルド:2010年2月27日12:41:51)Copyright(c)1997-2009 PHP Group Zend Engine v2.3.0、Copyright(c)1998-2009 Zend Technologies
動的パスpathinfo3.63922715187fnmatch 4.99041700363 x1.37
静的パスpathinfo1.03110480309fnmatch 2.38929820061 x2.32
私のマシンで100,000回の反復を数秒で表した結果のサンプルを含めます。
コード:
iis - ColdFusionでcgi.PATH_INFOを使用してURLでUnicodeを使用する際の問題
私のColdFusion(IIS 6のMX7)サイトには、検索語をURLに追加する検索機能がありますhttp://www.example.com/search.cfm/searchterm
。
私が遭遇している問題は、これが多言語サイトであるため、検索語が別の言語である可能性があることです。たとえば、次القاهرة
のような検索URLにつながる可能性があります。http://www.example.com/search.cfm/القاهرة
問題は、URLから検索語を取得するようになったときです。私はcgi.PATH_INFO
検索ページと検索語のパスを取得し、これから検索語を抽出するために使用しています。/search.cfm/searchterm
ただし、検索でUnicode文字が使用されている場合、それらは疑問符に変換されます/search.cfm/??????
。
これらは、ブラウザがUnicode文字をフォーマットできない、または出力時に壊れているのではなく、実際の疑問符として表示されます。
ColdFusionがURLでUnicodeをサポートしているかどうか、またはこれを解決して完全なURLを何らかの方法で取得する方法についての情報が見つかりません。誰かアイデアはありますか?
乾杯、
トム
編集:さらなる調査により、この問題はColdFusionではなくIISに関連している可能性があると私は信じていますが、私の元のクエリはまだ有効です。
さらに編集
その結果、問題はかなり深刻になっているように見えますGetPageContext().GetRequest().GetRequestUrl().ToString()
。http://www.example.com/search.cfm/searchterm/?????
php - /123 と /?123 の違いは何ですか?
一部のサイト (古いhttp://careers.stackoverflow.com 1.0 を含む) には、次のようなクエリ文字列があることに気付きました。
http://somewebapp.example/?123
と比較して:
http://somewebapp.example/123
またhttp://somewebapp.example/id/123
開発者が 2 番目と 3 番目の例ではなく、最初の例を使用して Web アプリの URL を実装することを選択する理由は何ですか?
おまけとして、最初の例を PHP で実装するにはどうすればよいでしょうか。それ123
がデータベース テーブルのある行の主キーであるとします。(URL から取得する方法を知る必要があるだけです123
。データベースに の主キーを照会する方法は既に知っています123
。)
編集 [5/28]:おっと、後者の 2 つの URL が何であるか、それらがどのように機能し、どのように実装するかを知っていることをみんなに知らせるのを忘れていました。リマインダーをありがとう、とにかく偶然に明らかにされたいくつかの無関係な誤解があったと思います!