0

タグ内にない説明からすべてのURLを削除するにはどうすればよいですか。また、すべてのimg urlを保持するには?

たとえば、結果は次のようになります。

前の説明:

this is my description www.url.com and other stuff. 
i have a picture <img src="www.url.com"> and other desc stuf..
sample text goes here and here..

後の説明は次のようになります。

this is my description and other stuff. 
i have a picture <img src="www.url.com"> and other desc stuf..
sample text goes here and here..

どうもありがとうございます。

4

3 に答える 3

1
$string = 'this is my description www.url.com and url.com and http://www.url.com other stuff. 
i have a picture <img src="www.url.com"> and other desc stuf..
sample text goes here and here..';

echo preg_replace('/[^\"](http(s?):\/\/)?(www)?\.?([A-Za-z0-9\-]){2,25}\.(com|net|org)[^\"]/', ' ', $string);

出力:

this is my description and and other stuff. 
i have a picture <img src="www.url.com"> and other desc stuf..
sample text goes here and here..

これがあなたが探しているものかどうかわかりません。

可能なすべての URL に一致するわけではありませんが、開始できる場所です。

于 2012-09-05T11:57:18.280 に答える
0
$words = explode(' ', $description);
foreach ($words as $k => $v)
    if (filter_var($v, FILTER_VALIDATE_URL) || preg_match("/([a-z0-9\.]+)\.([a-z0-9][a-z0-9]+)/i", $v))
        unset($words[$k]);
$description = implode(' ', $words);

このソリューションは、整形式の URL とドメインを削除しますが、単語がwhereis.itのようなドメインなのか、 will.i.amのような単純な単語なのか (imho) がわからないため、おおよその解決策です。

于 2012-09-05T11:48:50.137 に答える
0

うーん、これは非常に難しいので、他のオプションを試してみてください。URL にはさまざまな形や形式があり、あらゆる種類の URL に対して 100% 信頼できる正規表現を作成するのは非常に困難です。

最初に、URL の 100% に一致する必要があるか、それとも x% で十分であり、誤検知が問題ないかを選択する必要があります。

次に、すべての単語をドットに一致させ、それを parse_url で実行し、それで良い結果が得られた場合は、テキストから削除します。

于 2012-09-05T11:51:44.503 に答える