Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
<;之间的PHP链接文本;br>;_Php_String - Fatal编程技术网

<;之间的PHP链接文本;br>;

<;之间的PHP链接文本;br>;,php,string,Php,String,我不想成为一个帮助吸血鬼,我只是想知道一个大致的方向,或者需要使用哪些技术来实现这一点 我有一个字符串,类似这样: joke<br>kid<br>forreal<br>me <a href="http://www.dumbsearch.com/chat/user.php?q=joke">joke</a><br> <a href="http://www.dumbsearch.com/chat/user.php?q=ki

我不想成为一个帮助吸血鬼,我只是想知道一个大致的方向,或者需要使用哪些技术来实现这一点

我有一个字符串,类似这样:

joke<br>kid<br>forreal<br>me
<a href="http://www.dumbsearch.com/chat/user.php?q=joke">joke</a><br>
<a href="http://www.dumbsearch.com/chat/user.php?q=kid">kid</a><br>
<a href="http://www.dumbsearch.com/chat/user.php?q=forreal">forreal</a><br>
<a href="http://www.dumbsearch.com/chat/user.php?q=me">me</a><br>
笑话
孩子
真的
我怎样才能把它变成这样:

joke<br>kid<br>forreal<br>me
<a href="http://www.dumbsearch.com/chat/user.php?q=joke">joke</a><br>
<a href="http://www.dumbsearch.com/chat/user.php?q=kid">kid</a><br>
<a href="http://www.dumbsearch.com/chat/user.php?q=forreal">forreal</a><br>
<a href="http://www.dumbsearch.com/chat/user.php?q=me">me</a><br>





PHP有两个内置的DOM解析器:和。根据我的经验,后者更适合阅读和简单操作,而前者更适合更复杂的操作

似乎您希望使用
DOMDocument
查找字符串中的文本节点,并将它们包装或替换为相应的锚


可能是的一个选项,但它不是PHP本机的。

您正在寻找的是

$string=“…”;
//在每个“
”上拆分字符串 $users=explode(“
”,$string); //通过用户循环,添加锚 对于($i=0,$count=count($users);$i<$count;$i++) { 回声'; //将“
”添加到除最后一个用户之外的每个用户 如果($i<($count-1)) 回声“
”; }
您可以通过使用

分隔字符串来实现这一点

这将为您提供一个数组,您需要遍历它并根据需要生成html文本

如果您尝试编写代码会更好,那么我们将提供更多帮助:)

如果你不能写信,也许我们可以帮忙

代码编辑

$string = "joke<br>kid<br>forreal<br>me";

$tags = explode("<br>", $string);

$new = array(); 

foreach($tags as $tag)
{
    $new[] = '<a href="http://www.dumbsearch.com/chat/user.php?q=' . $tag . '">'  . $tag . '</a>';

}

echo implode("<br>", $new);
$string=“笑话
孩子
为了真实的
我”; $tags=explode(“
”,$string); $new=array(); foreach($tags作为$tag) { $new[]=''; } 回声内爆(“
”,$new);
StackOverflow不是这个问题的合适位置。我们不会为您编写代码。你需要自己编写代码,如果你不确定为什么有些东西不能按预期工作,那么在发布代码时解释一下你期望它做什么,以及它实际在做什么,包括所有错误消息。请看。向我们展示您尝试过的内容,然后我们可以推动您搜索和替换文本,这就是您想要使用的内容。我不知道要尝试什么,我正在尝试被指向正确的方向。我没有必要要求代码,
我只是要求一个大致的方向,或者需要使用哪些技术才能做到这一点。
使用jquery
wrap()
method但这实际上不是一个字符串解析是的,我尝试了这个,使用数组和explode,但问题是它以一个额外的“
”结束,输出时原始字符串中没有。谢谢,这对我来说绝对有效。:)@user2049022第一次也是最后一次我试图回答一些问题,但没有先测试它。最后应该是好的。我注意到问题是
相互矛盾,所以我解决了这个问题。:)@谢谢您编辑您的答案,您的答案对我真的很有帮助。:)所以
for
是一个复杂的循环,而
foreach
数组的基本循环,对吗?:)是的,我试过使用数组和explode,但问题是它以一个额外的“
”结尾,当它输出时原始字符串中没有这个“
”,我不理解你100%的意思,你能给我一个例子吗?使用
内爆()
将字符串与它们之间的“
”放回一起,你不会得到一个额外的。@barmar这怎么办???我先要原始的字符串,然后把它分解,对吗?所以它将是一个数组,然后我将
foreach
添加链接,对,每个链接用

分隔。然后,我会得到另一个

。我不知道如何使用内爆来解决这个问题。@user2049022如果您将每个键的每个HTML字符串放入数组中,然后将该数组传递给内爆,并添加了
,那么您将没有最后一个