で文字列を置き換えます3の代わりに2つの「サブURL」がありますが、動作しません。なぜですか?は、私はこのようなURLを持っているにpreg_replace
0
A
答えて
0
あなたの表現が適切に引用されていない正規表現で特別な意味を持つ文字が含まれているので、それが正しく動作しません。
、100%確実である。このようpreg_quote
を使用するには:
$url = 'http://Example.com/'
$pattern = preg_quote($url.'{word}/{word}/{word}', '/');
$pattern = str_replace($pattern, '{word}', '(\w+)');
$pattern = "/$pattern/i";
$replacement = $url.'$2/$3';
$appUrl= preg_replace($pattern, $replacement, $appUrl);
それ以外の場合は、単に物事が間違って取得するには余りにも簡単です。たとえば、すべては現在.
をExample.com
にエスケープしていないため、間違って表示されています。たとえば、次のような文字列を入力すると、これをテストできます。 http://Example!com
(!
は任意の文字を使用できます)。
さらに、二重引用符で囲まれた文字列リテラルの中に$2
などの文字列を使用しています。これは、IMHOは簡単に逃げるため、PHPではうまくありません。単なる引用して安全なものにしてください。
3
パターン内のスラッシュをエスケープするか、別のパターンデリミタを使用する必要があります。
$pattern = '/http:\/\/Example\.com\/(\w+)\/(\w+)\/(\w+)/i';
$pattern = '#http://Example\.com/(\w+)/(\w+)/(\w+)#i';
0
は次のようにスラッシュをエスケープ
:
$pattern = '/http:\/\/Example.com\/(\w+)\/(\w+)\/(\w+)/i';
$replacement="http://Example.com/$2/$3";
$appUrl= preg_replace($pattern, $replacement, $appUrl);
関連する問題
- 1. URLは、私はこのようなものでURLを持っている.htacces
- 2. 私は、このリンクを持っているPHPのにpreg_replace
- 3. 私はこのようになりますURLを持っているjqueryの
- 4. Pythonは次のように私はURLを持っている
- 5. 私はこのようなファイルを持っているリストに
- 6. は、私は、このようなコードを持っているデータフレームビュー
- 7. パンダは、私はこのようなデータフレームを持っている
- 8. は、私はこのようなテーブルを持っているSQL
- 9. Grailsは私はこのようなリストを持っている
- 10. は、私はこのようなテーブルを持っているSQL
- 11. は、私はこのようなテーブルを持っている
- 12. フラスコは、私は、このような形を持っている、
- 13. は、私はこのようなケースを持っている
- 14. は、私はこのようなHTMLフォームを持っている
- 15. は、私はこのようなモデルを持っている
- 16. は、私はこのようなセットアップを持っているナビゲーション
- 17. は、私はこのようなモデルクラスを持っている
- 18. は、「私はこのようなデータを持っている豚
- 19. は、私はこのようなクエリを持っているSQL
- 20. 私はこのようにフォーマットURL持って試合
- 21. は、どのように私はこのようなレポートモデルを持っている
- 22. は、どのように私は、このようなデータを持っている
- 23. は、どのように私はこのようなURL文字列を持っているのjavascript
- 24. 私はこのようなJSONオブジェクトを返すURL持っPHP
- 25. .htaccessファイル - 私はこのような何かに見えるURL持っURL
- 26. 私はこのようなデータを持ってDFを持っているR
- 27. 私はこのようになり、データ持っているタブロー
- 28. は、私はこのような文が持っている文
- 29. は、なぜ私は/私はこのようなコードを持っているC
- 30. のJavascriptのURLだから、現在、私はこのような私のURLを持っている
'http:'の後に 'http:\/\ /'と '.com'とevery(\ w +)の後にスラッシュをエスケープすることを忘れないでください。 – Yaniro