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];
}