使用 php 进行多步字符串拆分
multi step string split using php
我有一个正在为客户构建的 Wordpress 站点,一个自定义 post 类型字段将允许用户输入 link,然后输入 link 的文本如下图所示的格式,称为资源。
这些信息需要作为 <li>
在锚标记中输出。我是 php 的新手,这是我目前所掌握的代码
<ul>
<?php
$rawcontent = get_field("resources");
$rawcontent = preg_replace("!</?p[^>]*>!", "", $rawcontent);
$all_links = preg_split("/(\n)/", $rawcontent);
$firstpart = array_pop(explode(',', $rawcontent));
foreach($all_links as $link) {
if(!trim($link)) continue;
echo "<li><a href='$link'>$firstpart</a></li>";
}
?>
</ul>
当我在我的任何代码执行之前打印 $rawcontent (resources) 时,apperas 如下:
www.mylink1.com,link 复制 1
www.mylink2.com,link复制2
www.mylink3.com,link复制3
使用我现在实现的代码,结果如下
我怎样才能return 仅将 href 的 link 和每个锚标记的锚文本的 link 复制部分?
我想这样就可以了。
我首先像你一样在新行上爆炸,然后我 foreach 行。
当我 foreach 行时,我在逗号上引爆了行。
现在我有一个数组,其中 link 作为第一项,文本作为第二项。
$str = "www.mylink1.com,link copy 1
www.mylink2.com, link copy 2
www.mylink3.com,link copy 3";
$lines = explode(PHP_EOL, $str);
Foreach($lines as $line){
$linktext = explode(",", $line);
Echo "<li><a href='$linktext[0]'>$linktext[1]</a></li>";
}
我看到你的 link2 在文本中有一个 space。
您可以在回显时使用 trim 删除它。
Echo "<li><a href='" . trim($linktext[0]) . "'>" . trim($linktext[1]) . "</a></li>\n";
我在 link 和文本上都添加了 trim,有它会很好。以防万一...
https://3v4l.org/6RkW3
我有一个正在为客户构建的 Wordpress 站点,一个自定义 post 类型字段将允许用户输入 link,然后输入 link 的文本如下图所示的格式,称为资源。
这些信息需要作为 <li>
在锚标记中输出。我是 php 的新手,这是我目前所掌握的代码
<ul>
<?php
$rawcontent = get_field("resources");
$rawcontent = preg_replace("!</?p[^>]*>!", "", $rawcontent);
$all_links = preg_split("/(\n)/", $rawcontent);
$firstpart = array_pop(explode(',', $rawcontent));
foreach($all_links as $link) {
if(!trim($link)) continue;
echo "<li><a href='$link'>$firstpart</a></li>";
}
?>
</ul>
当我在我的任何代码执行之前打印 $rawcontent (resources) 时,apperas 如下: www.mylink1.com,link 复制 1
www.mylink2.com,link复制2
www.mylink3.com,link复制3
使用我现在实现的代码,结果如下
我怎样才能return 仅将 href 的 link 和每个锚标记的锚文本的 link 复制部分?
我想这样就可以了。
我首先像你一样在新行上爆炸,然后我 foreach 行。
当我 foreach 行时,我在逗号上引爆了行。
现在我有一个数组,其中 link 作为第一项,文本作为第二项。
$str = "www.mylink1.com,link copy 1
www.mylink2.com, link copy 2
www.mylink3.com,link copy 3";
$lines = explode(PHP_EOL, $str);
Foreach($lines as $line){
$linktext = explode(",", $line);
Echo "<li><a href='$linktext[0]'>$linktext[1]</a></li>";
}
我看到你的 link2 在文本中有一个 space。
您可以在回显时使用 trim 删除它。
Echo "<li><a href='" . trim($linktext[0]) . "'>" . trim($linktext[1]) . "</a></li>\n";
我在 link 和文本上都添加了 trim,有它会很好。以防万一...
https://3v4l.org/6RkW3