こんにちは、プログラミング初心者です。href=" とその後にテキストを追加する php 正規表現の書き方がわかりません。
<a class="aaa" href="/some/file.html">
のように見えるように
<a class="aaa" href="http://www.example.com/some/file.html">
リンクを「aaa」クラスに一致させる必要があります。
誰でも私を助けることができますか?
こんにちは、プログラミング初心者です。href=" とその後にテキストを追加する php 正規表現の書き方がわかりません。
<a class="aaa" href="/some/file.html">
のように見えるように
<a class="aaa" href="http://www.example.com/some/file.html">
リンクを「aaa」クラスに一致させる必要があります。
誰でも私を助けることができますか?
このようなタスクには DOM パーサーを使用する必要があります。たとえば、これはあなたの人生を本当に楽にします。
$html = new simple_html_dom();
$html->load($input);
foreach($html->find('a[class=aaa]') as $link)
$link->href = "http://www.example.com".$link->href;
$result = $html->save();
find
DOM をうまくクエリできます。パラメーターはtagtype[attributeName=attributeValue]
、角括弧がオプションのフィルターである場所です。次に、この関数が見つけたすべてのリンクを繰り返し処理し、href
属性にドメインを追加します。
何らかの理由でサードパーティのライブラリを使用できない場合、PHP には組み込みのDOM モジュールが付属しています。コードはそれほど短くて洗練されたものではありませんが、堅牢な正規表現を作成しようとするよりもはるかに望ましい方法です。
あなたはこのようにすることができます:
$string = '<a class="aaa" href="/some/file.html">';
$pattern = '~class="aaa" href="(.*)"~isU';
preg_match($pattern, $string, $matches);
$string = str_replace($matches[1],"http://www.example.com".$matches[1],$string);
echo $string;
class="aaa" に一致するように編集されていますが、そのようなことを頻繁に行う場合は m.buettners の方法もお勧めします。