6

PHP を使用して、文字列内の単語を別のリンクに置き換えるにはどうすればよいですか。

Web開発という言葉を別のリンクに置き換えたい

この Web 開発会社は素晴らしいです。優れた Web 開発は次から始まります...

そのようです

このWeb 開発会社は素晴らしいです。優れたWeb 開発は次から始まります...

使用してみstr_ireplaceましたが、両方のリンクが同じサイトにつながります。

これが私のコードです

<?php

$text = 'This web development company is great. A good web development starts with...';


$replaced = str_ireplace(array('web development', 'web development'),array('<a href="http://google.com">web development</a>', '<a href="http://yahoo.com">web development</a>'), $text);

echo $replaced;
4

4 に答える 4

5

preg_replace()次のように機能を使用できると思います。

$pattern = '/(web development)(.*)(web development)/';
$replace = '<a href="http://google.com">web development</a>$2<a href="http://yahoo.com">web development</a>';
$result = preg_replace($pattern, $replace, $text);
echo $result;

希望が役立ちます!

于 2013-08-09T15:59:01.627 に答える
1

次のような正規表現で試してください:

<?php
$text = 'This web development company is great. A good web development starts with...';

$regex = "/[^>]web development[^<]/i";
$replace = array(' <a href="http://google.com">web development</a> ', 
' <a href="http://yahoo.com">web development</a> ');
$count = 1;
$replaced = preg_replace(array($regex,$regex), $replace, $text, $count);

echo $replaced;
于 2013-08-09T15:54:08.133 に答える
0

このトピックのように、そのようなことを行うことができます (preg_replace を使用):

$str = 'abc and abc'; 
$str = preg_replace('/abc/', 'google', $str, 1); 
$str = preg_replace('/abc/', 'yahoo', $str, 1);
echo $str;

表示されます:「google and yahoo」

(私はあなたの必要性を理解したと思います)

于 2013-08-09T15:51:11.887 に答える
0

でできると思いますpreg_replace

パターンに一致するサブジェクトを検索し、それらを置換で置き換えます。

limit単語が置き換えられる回数を設定できます。

limit:各サブジェクト文字列の各パターンの可能な最大置換。デフォルトは -1 (無制限) です。

したがって、最初に「Web Development」の出現回数をカウントしてテキストを作成し、次に実行する機能を実行できると思います。

$text = preg_replace("web development", "<a href='http://www.exemple.com'>web development</a>", $text, 1);

×回。

関数 preg_replace を思い出してください。

preg_replace ( mixed $pattern , mixed $replacement , mixed $subject [, int $limit = -1 [, int &$count ]] )

PHP マニュアルのリファレンスを参照してください。

于 2013-08-09T15:55:35.643 に答える