<?php echo $field;?>
この$fieldの中にはhtmlソースが入っています。
そして、echo する前に、そのhtmlソースにあるURLのうちhttp://で始まっているものをすべて、
ドキュメントルートからの絶対パスに置換したいのですが、
どのように書けばいいでしょうか?
例)
http://localhost/foo/bar.jpg → /foo/bar.jpg
以上、よろしくお願い申し上げます。
No.3ベストアンサー
- 回答日時:
htmlソースだと、タグに埋め込まれているかもしれないのですね
後ろに何がきたらurlの終わりか考えておく必要があるかも
<?PHP
$field=<<<eof
test
test<a href="http://localhost/foo/bar.jpg">http://localhost/f …
test<a href='http://localhost/foo/bar.jpg'>http://localhost/f …
testhttp://localhost/hoge/fuga.html
testhttp://localhost/hoge/fuga.html http://localhost/hoge/fuga.html http://localhost/hoge/fuga.html test
test
eof;
print "<pre>";
print htmlspecialchars($field);
print "<hr>";
$pattern="/(http:.+?(?=['\"<\s]|$))/";
$field=preg_replace_callback($pattern,function ($matches){
return parse_url($matches[1])["path"];
},$field);
print htmlspecialchars($field);
print "</pre>";
No.2
- 回答日時:
失礼しましたhtmlソースの置換でしたね
こんな感じでどうでしょう?
「http:」から始まってスペースか行末までの文字列を変換
<?PHP
$str=<<<eof
test
http://localhost/foo/bar.jpg
test
http://localhost/hoge/fuga.html
http://localhost/hoge/fuga.html test
testhttp://localhost/hoge/fuga.html http://localhost/hoge/fuga.html http://localhost/hoge/fuga.html test
test
eof;
print "<pre>";
print $str;
print "<hr>";
$pattern="/http:.+?(?=\s|$)/";
$str=preg_replace_callback($pattern,function ($matches){
return parse_url($matches[0])["path"];
},$str);
print $str;
print "</pre>";
?>
No.1
- 回答日時:
urlが正しい文法で書かれているのであればparse_url()でよろしいかと
<?PHP
$str="http://localhost/foo/bar.jpg";
print parse_url($str)["path"];
?>
ちなみに
<?PHP
$str="http://localhost/foo/bar.jpg";
$parseurl=parse_url($str);
print_r($parseurl);
?>
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# Makefileのechoの展開について 2 2022/07/26 07:35
- その他(プログラミング・Web制作) zshの例外処理 1 2022/06/02 16:36
- HTML・CSS CSSが効かずどのように指定すれば良いか分からないのでアドバイスお願い致します 2 2023/06/07 12:25
- PHP htmlで複数の個数入力欄を表示させるには 1 2022/09/20 03:11
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- PHP PHP MySql ページング 2 2022/09/20 06:38
- JavaScript clear機能を失わずにファイルアップロード機能を作成したい 3 2023/06/10 16:12
- PHP PHPでユーザー情報を入力して簡易ログイン機能をつくってみたのですが 1 2023/05/29 08:51
- PHP 入力した部分を表示させたまま(保持)するにはどうすれば良いでしょうか? 1 2023/01/25 11:14
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
csobjというタグについて
-
正規表現でHTMLタグの属性まで...
-
reuterの記事をbeautiful.soup....
-
HTML・特定のタグの使用可能か...
-
objective-cでのHTMLタグ表示に...
-
VBAのコマンドボタンの文字列の...
-
テキストファイルから改行コー...
-
C++で空Enterの入力を判...
-
LaTeX: captionの中で改行した...
-
VC++ マルチバイト文字とUniCod...
-
JAVA System.out.println の ...
-
fgetsとsscanf
-
エスケープ文字の復帰(¥r)と...
-
VBAでCSVをExcelに取り込む時に...
-
VB.net テキストボックス半角文...
-
VB6でブラウザのページソースを...
-
C++のctime関数復帰値の改行
-
正規表現での英字+ハイフンの...
-
エクセルのCOUNTIFが正しくカウ...
-
【Tex】\\verbatiminputについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
reuterの記事をbeautiful.soup....
-
JSFタグのfタグとは
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
phpの正規表現でstyle="●●"を削...
-
Nvuで作成したhtmlをコピペして...
-
正規表現で指定範囲すべて除去...
-
正規表現でタグの置換をしたい...
-
Strutsでリンクを動的に生成したい
-
自分でタグ打ちして作ったペー...
-
php正規表現 相対パス→絶対パス
-
ASP.NET(C#)とhtmlの#include
-
PHPの正規表現でHTMLタグの内容...
-
csobjというタグについて
-
VBSでのhtmlタグ要素名の置換
-
htmlタグ間の特定文字置換
-
URLの連続アクセス
-
HTMLファイルの書き換え
-
htmlspecialchars関数を使いな...
-
javascriptの正規表現でhtmlか...
おすすめ情報
localhostの部分はいろいろなFQDNを想定しています
ありがとうございます。元がURLならそれでいけそうですね。
ただ、元がHTMLソースなので、ご回答をどう活かしていいのかわかりません。
どうご回答とHTMLソースをつなげればいいのでしょうか?