私はfile_get_contents
を使用して特定のファイルの内容を取得しています。今のところそれは働いています。しかし、私はそのファイルを検索して、ファイルを表示する前にすべて<a href="
を<a href="site.php?url=
に置き換えたいと思うでしょう。これどうやってするの?私はstr_replace
、またはpreg_replace
の何らかの種類を使うべきであることを知っています。しかし、私は実際に検索する方法を知らないし、私はfile_get_contents
となっているファイルのためにそれを行う。リンクパスを変更するPHP str_replace
答えて
file_get_contents
は、ファイルの内容を含む文字列を返します。
したがって、あなたが話したような任意の文字列操作関数を使用して、この文字列で作業することができます。
...$content = file_get_contents('http://www.google.com');
$new_content = str_replace('<a href="', '<a href="site.php?url=', $content);
echo $new_content;
をしかし、その属性が<a
タグの最初のものであるとき、それは唯一のhref
属性にURLを置き換えます注意:str_replaceを使用して
このような何か、おそらくだろう
正規表現を使用するとの可能性があります。はもう少しお手伝いします。しかし、恐らく完全ではないでしょう...
を使用して、DOM操作方法を使用することは別の方法である可能性があります。もう少し複雑ですが、おそらくより強力な)ソリューションです。
これら二つの質問に与えられた答えはまた、あなたが行うことを喜んでいるものに応じて、あなたを助けることができるかもしれない:
EDITコメントを見た後:
2つの文字列を置き換える場合は、2つの最初のパラメータstr_replace
に配列を渡すことができます。それと
$new_content = str_replace(
array('<a href="', 'Pages'),
array('<a href="site.php?url=', 'TEST'),
$content);
:
- '
<a href="
' '<a href="site.php?url=
' - と '
Pages
は' 'TEST
'
に置き換えられてしまいますによって置き換えされ、例えば、マニュアルを引用する:
検索と置換が配列の場合、 str_replace()は、配列 から値を受け取り、それらを使用して の検索を行い、件名に置き換えます。 の代わりに検索よりも値が小さい場合は、 置換値の残りの部分に空文字列 が使用されます。検索が の配列で、replaceが文字列の場合、 この置換文字列は、検索のすべての値 に使用されます。
あなたが「<a href="
」のすべてのインスタンスを置き換えたい場合は、あなたのウェブサイト上でリモートドキュメントを使用しますが、そのリンクを維持したい場合は、まあ、それはstr_replace
が
$text = file_get_contents('some_file');
$text = str_replace('<a href="', '<a href="site.php?url=', $text);
また、新しいhrefのURLをurlencode()する必要があります。そうしないと、おそらく他の問題が発生します。 –
:-)デフォルトで何をするかですそのまま文書、優れたベースURIを宣言するBASE
elementを使用します。
<base href="http://example.com/path/to/remote/document">
$new_content = preg_replace('!(<a\s*[^>]*)href="([^"]+)"!','\1 href="site.php?url=\2"', $content);
私は、これはトリックを行うべきだと思う。
- リンクのhrefは、どこにあるかにかかわらず、
- となります。 < HREFの作品= ".."、<スタイル= "" のhref = "..."
biskoにより送信されたコードが、囲む程度に関係なく」、同様に "HREFでオア・ナッシング
$text = '<a href="http://www.europanet.com.br">Europanet</a> <a target="_blank" href=\'http://www.webjump.com.br\'>Webjump</a>
<a id="link" href=http://www.euforia.com.br target="_top">Euforia</a>';
$text = preg_replace('|(<a\s*[^>]*href=[\'"]?)|','\1site.php?url=', $text);
です。素晴らしいですが、imgタグでも同じことをやってみましょうか? preg_replaceにaとhrefを入れてください。そしてimg-tagsとhref-tagsを使って、すべてのことをやってみましょう! –
- 1. PHP str_replace変数の問題
- 2. preg_replace変更プロキシを使用するためのimgとリンクパス
- 3. PHP strpos()とstr_replace()
- 4. php str_replace質問
- 5. PHP str_replaceエラー
- 6. PHPマルチバイトstr_replace?
- 7. PHP preg_replace/preg_match対PHP str_replace
- 8. PHPのstr_replace問題
- 9. 複数のPHP str_replace
- 10. str_replace of session variables php
- 11. str_replace &:&をPHPの
- 12. 空白を無視str_replace PHP
- 13. jQueryを使って特定のコンテナのリンクパスを変更する方法
- 14. str_replace .TPL変数?
- 15. PHPのstr_replaceの性能
- 16. str_replaceでphp clean doubleダッシュ
- 17. php str_replace関数の問題
- 18. PHP str_replace特殊文字
- 19. 私のPHPスクリプトでstr_replaceを使った変なグリッチ
- 20. リンクパスを定義する方法
- 21. str_replaceを使ったPHPの条件
- 22. PHP str_replaceを出力バッファに2回
- 23. extern変数のリンクパスを見つける方法
- 24. PHPのUTF-16文字とstr_replace
- 25. PHPの交換しないstr_replace「AND AND」
- 26. PHPのSTR_REPLACEは、二重引用符
- 27. CMake Pkg-Configライブラリのリンクパス
- 28. リンクパスからGlass Mapping Populate List
- 29. がstr_replace
- 30. PHP:同じstr_replace内の2つのアイテムを交換する
もう1つ質問があります。これは途中で私を助けた非常に良い答えでしたが、 2つの置換えをしたいのであれば、どうすればいいでしょうか?一度に2回交換。 –
私はいくつかの情報で私の答えを編集しています。 –