0

私は数時間見回しましたが、私が見つけた例は、私が必要なものを論理的に思いつくことができる場所に私を押し付けませんでした.私のオタクのコーダー兄弟が助けてくれます。

問題:

1) 非常に具体的な URL をマークアップに置き換えたいのですが、id を変数として使用します (以下の例を参照)。

preg_replace2) テキスト パーサーがあり、自分のドメインへのリンクのみを許可したい (現在は実装されていません)。他のリンクは削除されます (現在、一部の strpos/strip_tags アクションで実装されています)。ただし、リンクを許可するために使用したい私のドメインに。

疑似例 (URL の一部を変数として使用):

$markup = '[[-$0-]]';
$domain = 'mydomain.com';
$comment = 'This is my link example for http://mydomain.com/plan/43434 and Ii am confused';
$comment = preg_replace('&\bhttp://' . $mydomain . '/plan/(\d+)/"', $markup, $comment);
echo $comment:

望ましい出力:

This is my link example for [[-43434-]] and I am confused

次に、このコードが実行された後、自分のドメインのリンクを除くすべてのリンクを削除します。これをどうやってやってのけるかはまったくわかりませんが、愛を使うことができます.

4

1 に答える 1

0

説明

この正規表現は次のようになります。

  • URLを見つけて、マークアップされたテキストに置き換えます
  • http://mydomain.com/planサンプルテキストに示されているように、URLがで始まると想定しています

正規表現:((?:(?!http:\/\/mydomain\.com\/plan\/).)*)http:\/\/mydomain\.com\/plan\/(\S*)

と置換する:$1[[-$2-]]

ここに画像の説明を入力

サンプルテキスト

This http://mydomain.com/plan/12345 is my link example for http://mydomain.com/plan/43434 and I am confused

コード

<?php
$sourcestring="your source string";
echo preg_replace('/((?:(?!http:\/\/mydomain\.com\/plan\/).)*)http:\/\/mydomain.com\/plan\/(\S*)/mx','$1[[-$2-]]',$sourcestring);
?>

置換後のソース文字列

This [[-12345-]] is my link example for [[-43434-]] and I am confused
于 2013-07-13T14:33:37.177 に答える