• ベストアンサー

php正規表現 相対パス→絶対パス

下記のようにhtml内の相対パスの箇所を、 全て絶対パスに置換えるにはどう記述したらよいでしょうか? ご伝授いただけたら幸いです。 <a href="/test/jp/danny.pdf" target="_blank"> <img src="/cmn/img/text.gif">   ↓↓   ↓↓ <a href="http://testsaite.co.jp/test/jp/dammy.pdf" target="_blank"> <img src="http://testsaite.co.jp/cmn/img/text.gif">

  • PHP
  • 回答数2
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

$data=file_get_contents(URL); preg_replace ('/(=\"\/)+?/mi','=\"http:\/\/testsaite\.co\.jp\/',$data); echo $data;

その他の回答 (1)

  • okmotokun
  • ベストアンサー率59% (92/155)
回答No.2

あのー <a href="/test/jp/danny.pdf" target="_blank"> <img src="/cmn/img/text.gif"> は「絶対パス」ですよ。 「/」で始まるものは相対パスではありません。 「相対パス」は「.」1個か2個に/、または ディレクトリ名かファイル名で始まるものです。

関連するQ&A

  • PHP正規表現の難題・preg_replaceでイメージタグをリンクタグに…

    PHPのpreg_replaceを使用して、 imgタグをaタグに置換するプログラムで躓いています。 全てのパターン$hogeで適用される正規表現をかけません。 (※現在パターン1のみ出来ない状況で困っています) 間違い箇所ありましたらご教授下さい。 ■パターン1 $hoge = '<img src="http://test.jp/test.gif" class="test" style="border:none;" />'; ■パターン2 $hoge = '<img src="http://test.jp/test.gif">'; ■パターン3 $hoge = '<img width="100" src="http://test.jp/test.gif">'; preg_replace('/\<img(.*)src=\"?(http[\-_\.\!\~\*\'\(\)a-z0-9\;\/\?\:@&=\+\$\,\%\#]+(jpg|jpeg|gif|png|bmp))\"(.*)\>/i',"<a href='\\2'>link</a>",$hoge); どうぞよろしくお願い致します。

    • ベストアンサー
    • PHP
  • <A href= と<IMG srcの使い分け

    <A href= と<IMG srcの使い分けについて伺いたいのですが 一応は以下のようになっていると思っておりますが、 基準がどこにあるのでしょうか? <A href=の対象について <A href="mailto:○○○○○○">   アドレス <A href="○○○○○○.html">  URL等 <A href="image.pdf" target="_blank">  PDF等を開かせる <IMG src=の対象について <IMG src="○○○.gif"等の様に、画像の拡張子になっている。

    • ベストアンサー
    • HTML
  • 勝手にタグが改変されてしまいます。

    初心者レベルでお許しください。 ブログにタグを貼ろうとしていますが、 <a href="~><img src="~></a><br><br><a href="~><img src="~></a><img src="~/gif.gif"> という構文をソースで入力し、 普通のモードに変えると、何故か勝手に改変されタグも変わってしまいます。 (~の部分はIDやホームページなどがかかれています。) <a target="_blank" href="http~></a><br /> <br /> <a target="_blank" href~></a><img alt="" src="http~> これが勝手に改変されないようにするにはどうしたらよろしいのでしょうか? 宜しくお願いいたします。

  • 正規表現の否定先読みについて

    <a href="http://example.com/aaaa/hogehoge1.jpg" target="_blank"><img src="http://example.com/aaaa/hogehoge1.jpg" width="100" alt="huge1"></a><br />hogehoge<br /><a href="http://example.com/bbbb/hogehoge2.jpg" target="_blank"> <img src="http://example.com/bbbb/hogehoge2.jpg" alt="huge2"></a> こういうHTMLがあるとします。改行はなく1行です。 このHTMLから正規表現で 『width="100"がついていない<img>タグ』 のsrc=""までを抜き出して置換したいのです。 期待する結果は <img src="http://example.com/hage/hogehoge2.jpg" です。 そこで /<img src="http:\/\/.*?.jpg"\s(?!width)/ というパターンを試しましたが、.*?の最短一致が思った通りにいかず <img src="http://example.com/aaaa/hogehoge1.jpg" width="100" alt="huge1"></a><br />hogehoge<br /><a href="http://example.com/bbbb/hogehoge2.jpg" と、1つ目の<img>が入ってしまい、2つ目の<a>タグまで抜き出されてしまいます。 これをうまくwidth="\d+"と入っていない<img>タグのみに適用させる方法はないでしょうか? どなたかよろしくおねがいいたします。

    • ベストアンサー
    • PHP
  • 絶対パスと相対パスはどちらがいい?

    htmlで自サイト内のリンクをつける場合、絶対パスと相対パスはどちらを使った方がいいのでしょうか? すべてのファイルが同じディレクトリにあるとして、 <a href="test.html">test</a> と <a href="http://example.com/test.html">test</a> では、SEOの効果が違ったりしますか? 教えて下さい。よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • WORD2000でHP作成。広告の貼り付け方

    word2000でHP作成してますが広告の貼り付け方を教えてください。 例えば、下に記載してるものなど・・・。 <A href="http://www.5050jp.com/index.html?ShoukaiID=あなたのID" target="_blank"><IMG src="http://www.5050jp.com/img/banner_5050_01.gif" border="0"></A>

  • 複数のランダム表示について

    現在、外部のjsを読み込み、 ランダムではなく下記の方法で 4バナー表示をしております。 【index.html】 <script type="text/javascript" src="js/banner.js"></script> 【banner.js】 document.write("<ul class=\"banner\">"); document.write("<li><a href=\"http://1.jp/\" target=\"_blank\"><img src=\"http://1.jp/img/1画像.jpg\" alt=\"1\" width=\"200\" height=\"80\" /></a><br />1テキスト</li>"); document.write("<li><a href=\"http://2.jp/\" target=\"_blank\"><img src=\"http://2.jp/img/2画像.jpg\" alt=\"2\" width=\"200\" height=\"80\" /></a><br />2テキスト</li>"); document.write("<li><a href=\"http://3.jp/\" target=\"_blank\"><img src=\"http://3.jp/img/3画像.jpg\" alt=\"3\" width=\"200\" height=\"80\" /></a><br />3テキスト</li>"); document.write("<li><a href=\"http://4.jp/\" target=\"_blank\"><img src=\"http://4.jp/img/4画像.jpg\" alt=\"4\" width=\"200\" height=\"80\" /></a><br />4テキスト</li>"); document.write("</ul>"); 【ブラウザ】 1画像.jpg 1テキスト -------- 2画像.jpg 2テキスト -------- 3画像.jpg 3テキスト -------- 4画像.jpg 4テキスト 教えて頂きたいのは、下記のように ランダム表示で4つのバナーを表示させたいのですが どうしたらいいか分かりません。 【ブラウザ】 4画像.jpg 4テキスト -------- 2画像.jpg 2テキスト -------- 1画像.jpg 1テキスト -------- 3画像.jpg 3テキスト 詳しい方おりましたらお教え頂けないでしょうか? よろしくお願いします。

  • <img src="相対パス">の絶対パスへの変換

    htmlで、 <img src="相対パス">が指定されている場合、絶対パスに一括変換する方法はありますか? すなわち <base href="~"> のようなことは出来ないでしょうか?

  • mod_rewriteの相対パス

    いつもお世話になっております。 mod_rewrite を使ってパスの書き換えを行いたいと思っております。 以前にも mod_rewrite について質問させていただいたのですが 違う方法で解決できました。 画像ファイル等のRewriteRule を教えていただきたく質問させていただきます。 例えば・・・ http://domain.jp/a.php?id=111 を http://domain.jp/a/id/111 に書き換えた場合、階層が深くなるため画像が表示されなくなります。 a.php の中には以下のような画像ファイルの記述があります。 <img src="./img/aaa.jpg"> <img src="./img/bbb.gif"> できれば、RewriteRule を使って画像ファイルのパスを書き換えたいと 思っております。 どのようなルールを書けばよろしいでしょうか。 それとも絶対パスじゃないと無理なのでしょうか。 ご教授お願いいたします。 よろしくお願いいたします。 <環境> PHP:4.3.2 Apache:2.0.40 (Red Hat Linux)

  • TEXTSSの正規表現について

    こんばんは。 TEXTSSを使って複数のページを修正したいと思っています。 しかしページの構成は同じでもtitleとaltの中身が各ページで全て異なります。 そこで正規表現を使って修正しようと思ったのですがTEXTSSの正規表現を用いた変換について悩んでます。 変換したいのは下記のようなものです。 置換前 <a href="index.html" title="〇">開発ページ</a> <img src="main.gif" alt="●"> 置換後 <!-- <a href="index.html" title="〇">開発ページ</a> <img src="main.gif" alt="●"> --> ※〇、●はページによって異なるのでここのテキストは維持したい ※入れたいのは<!--と-->のコメントアウトタグ どのようにして直したらいいのでしょうか? ご存知の方いらっしゃいましたらご教授の程よろしくお願い致します。

専門家に質問してみよう