代码之家  ›  专栏  ›  技术社区  ›  jessica mele

使用php进行多步骤字符串拆分

  •  1
  • jessica mele  · 技术社区  · 7 年前

    我有一个Wordpress站点,我正在为一个客户端构建,一个自定义的帖子类型字段将允许用户输入一个链接,然后输入链接文本,格式如下图所示,称为参考资料。 enter image description here

    这些信息需要作为 <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(参考资料)时,显示为: www.mylink1。com,链接副本1

    www.mylink2。com,链接副本2

    根据我现在实现的代码,结果是 enter image description here

    我如何才能让它只返回href的链接和每个锚定标记的锚定文本的链接副本部分?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Andreas    7 年前

    我想这样就行了。
    我先像你们一样在新的线路上爆炸,然后我开始每一条线路。
    当我画线时,我用逗号把线分解。
    现在我有一个数组,第一项是链接,第二项是文本。

    $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>";
    }
    

    https://3v4l.org/9DEoo

    我看到你的link2在文本中有一个空格。
    当你回音时,你可以用修剪去除它。

    Echo  "<li><a href='" . trim($linktext[0]) . "'>" . trim($linktext[1]) . "</a></li>\n";
    


    https://3v4l.org/6RkW3