PHP中自动将单词转换为链接

PHP中自动将单词转换为链接,php,preg-replace,href,Php,Preg Replace,Href,我想写一个简单的代码,转换特殊的单词到特殊的链接(维基插件),如果它不是一个链接 例如,假设我们有一个文本“你好吗?!”和 我们想将转换为,但是如果我们有或你好不变。因为这是一个链接 我怎么能用PHP做呢?!用preg\u替换?!怎么做 谢谢。很简单 <?php $string = "Hello! How <a href=\"#\">are</a> you?!"; $stringTwo = "Hello! how are you?!"; function tur

我想写一个简单的代码,转换特殊的单词到特殊的链接(维基插件),如果它不是一个链接

例如,假设我们有一个文本
“你好吗?!”

我们想将
转换为
,但是如果我们有
你好不变。因为这是一个链接

我怎么能用PHP做呢?!用
preg\u替换
?!怎么做

谢谢。

很简单

<?php

$string = "Hello! How <a href=\"#\">are</a> you?!";
$stringTwo = "Hello! how are you?!";

function turnTheWordIntoALink($string, $word, $link) {
    if(isLink($string)) {
        return $string;   
    } else {
        $string = str_replace($word, "<a href=\"" . $link . "\">" . $word . "</a>", $string);
        return $string;
    }
}

function isLink($string) {
    return preg_match("/(<a href=\".\">)/", $string);
}

echo turnTheWordIntoALink($string, 'are', 'http://google.com');
echo turnTheWordIntoALink($stringTwo, 'are', 'http://google.com');

此代码是关于:如果某个短语中有某个URL,它将转换为链接

$word='你好,谷歌网站,祝你玩得愉快';
$prg=“/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/”;
if(preg_匹配($prg,$word,$url))
{
echo preg_替换($prg,“,$word);
}
其他的
{
回声$字;
}

为了更好地澄清问题:

我有一个HTML代码,其中有一些标记。我想在其中的一些词,转换成一些链接。但如果是另一个链接,则不会转换。请参阅下面的高级示例,了解我们希望链接到google的特殊单词

此文本。
你好你好吗?!
?!

应转换为:

此文本。
你好你怎么样?!
?!

注意第一个
改变了,但是第二个
没有改变,因为它在另一个
示例文本中
。 “你好!这是
。 “你好!文本
。 “是一个示例文本。”; $from=“is”; $to=''; 回波数据; $data=explode($from,$data); 回声“

”; echo$数据[0]; $diff=0;
对于($i=1;$iI)请看输入错误。
请看:谢谢,这是正确的。@Suchit:目标不同。如果不是链接(链接可能不同),我们希望将单词更改为链接。请看我的答案,希望它能完美地为您服务。但是有一个问题,假设
你好吗?!
。对于这种情况,不起作用。请注意,替换为“单词”但是转换成HTML代码。@shozdeh你是什么意思?见第三个答案。Thanks@shozdeh也许你可以自己尝试一下,因为90%的任务已经为你完成了。你不妨选择一个最适合你的答案。
$stringThree = "Hello! how <a href=\"#\">are you?!";

function turnTheWordIntoALink($string, $word, $link) {
    if(isLink($string)) {
        return $string;   
    } else {
        $string = str_replace($word, "<a href=\"" . $link . "\">" . $word . "</a>", $string);
        return $string;
    }
}

function isLink($string) {
    return preg_match("/(<a href=\".\">)+(.)+(<\/a>)/", $string);
}

echo turnTheWordIntoALink($stringThree, 'are', 'http://google.com') . "\n";
$word = 'hello how are you google.com, wish you good time';
$prg = "/[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?/";
    if(preg_match($prg, $word, $url))
    {
        echo preg_replace($prg, "<a href=http://$url[0]>{$url[0]}</a>", $word);
    }
    else
    {
        echo $word;
    }
    $data = 'Hello! This is a sample text.          <br/>'.
    'Hello! This <a href="#1">is</a> a sample text.   <br/>'.
    'Hello! This <a href="#2">is a sample text.</a>   <br/>'.
    'Hello! <a href="#3">This is a sample</a> text.   <br/>'.
    '<a href="#4">Hello! This</a> is a sample text.';

    $from = " is ";
    $to   = '<a href="http://www.google.com" > '.$from.' </a>';

    echo $data;
    $data =  explode($from, $data);
    echo "<br><br>";

    echo $data[0];
    $diff = 0;
    for($i=1; $i<count($data); $i++){
        $n = substr_count($data[$i-1], '<a ') + substr_count($data[$i-1], '<A ');
        $m = substr_count($data[$i-1], '</a>') + substr_count($data[$i-1], '</A>'); 

        $diff += $n-$m;
        if($diff==0)
            echo $to.$data[$i];
        else
            echo $from.$data[$i];
    }