我有一个从我的数据库作为字符串返回的 php 值,比如
"this, that, another, another"
而且我正在尝试围绕每个字符串包装一个单独的链接,但我似乎无法让它工作。我尝试了一个 for 循环,但因为它只是一串信息,而不是一组实际上不起作用的信息。有没有办法在我的字符串中的每个值周围包装一个唯一的链接?
我有一个从我的数据库作为字符串返回的 php 值,比如
"this, that, another, another"
而且我正在尝试围绕每个字符串包装一个单独的链接,但我似乎无法让它工作。我尝试了一个 for 循环,但因为它只是一串信息,而不是一组实际上不起作用的信息。有没有办法在我的字符串中的每个值周围包装一个唯一的链接?
我看到的最简单的方法是使用 PHP 的explode()
函数。随着您开始越来越多地使用 PHP,您会发现它会变得非常有用,因此请查看它的文档页面。它允许您将字符串拆分为给定特定分隔符的数组。在你的情况下,这将是,
. 所以要拆分字符串:
$string = 'this, that, another, another 2';
$parts = explode(', ', $string);
然后使用 foreach (再次检查文档)遍历每个部分并将它们变成一个链接:
foreach($parts as $part) {
echo '<a href="#">' . $part . "</a>\n";
}
但是,您可以使用for
循环来执行此操作。字符串可以像数组一样被访问,因此您可以实现解析器模式来解析字符串、提取部分并创建链接。
// Initialize some vars that we'll need
$str = "this, that, another, another";
$output = ""; // final output
$buffer = ""; // buffer to hold current part
// Iterate over each character
for($i = 0; $i < strlen($str); $i++) {
// If the character is our separator
if($str[$i] === ',') {
// We've reached the end of this part, so add it to our output
$output .= '<a href="#">' . trim($buffer) . "</a>\n";
// clear it so we can start storing the next part
$buffer = "";
// and skip to the next character
continue;
}
// Otherwise, add the character to the buffer for the current part
$buffer .= $str[$i];
}
echo $output;
(键盘演示)
首先分解字符串以获取数组中的单个单词。然后将超链接添加到单词并最终将它们内爆。
$string = "this, that, another, another";
$words = explode(",", $string);
$words[0] = <a href="#">$words[0]</a>
$words[1] = <a href="#">$words[1]</a>
..
$string = implode(",", $words);
您还可以使用for
循环来分配遵循如下模式的超链接:
for ($i=0; $i<count($words); $i++) {
//assign URL for each word as its name or index
}
更好的方法是这样做
$string = "this, that, another, another";
$ex_string = explode(",",$string);
foreach($ex_string AS $item)
{
echo "<a href='#'>".$item."</a><br />";
}