次のような文字列ですべての href と src を抽出しようとしています。
$content = "
At vero eos et accusamus et iusto odio dignissimos ducimus qui blanditiis praesentium
voluptatum deleniti Image: <img src = 'http://example.com/check-3.png' /> Link: <a href ='http://example.com/test.xls'>test.xls</a>";
基本的に私がやりたいことは、example.com を別のドメイン名 (test.com など) に変更し、hrefs と srcs からすべてのファイル名を抽出することです。単純な str_replace でドメイン名の置換を行うことができましたが、今は href と src を抽出しようとして立ち往生しています。
これが私が使ってみたものです:
$regex = "/src=[\"' ]?([^\"' >]+)[\"' ]?[^>]*>.*?href=[\"' ]?([^\"' >]+)[\"' ]?[^>]*>/i";
これは、src (または href) と = (eg ) の間にスペースがない場合は機能するようですが、スペースがある場合 (eg ) は機能しません。スペース文字を追加しようとしましたが、preg の一致に失敗します。単純な HTML dom のような重いライブラリを使用したくありません。また、適切な HTML ドキュメントではないため、機能しないと思います。ckeditor から出てくる文字列です。