代码之家  ›  专栏  ›  技术社区  ›  BlueDogRanch

如何使用php从换行符分隔的字符串生成一组HTML列表项?

  •  0
  • BlueDogRanch  · 技术社区  · 3 年前

    如何使用php从换行符分隔的字符串生成一组HTML列表项?

    // authentication not shown
    $range = 'Sheet3!AD2:Z';
    $response = $service->spreadsheets_values->get($spreadsheetId, $range);
    $values = $response->getValues();
    
    foreach($values as $val) {
    $valuespan = "<span class=\"record\">".implode($val)."</span>";
    echo $valuespan;
    }
    

    要获取Google工作表中所有行的HTML输出,请使用span标记进行包装,如下所示:

    <span class="record">Customer 1 \n
    Exercise Physiologist \n
    PT, DPT, COMT \n
    Class Name \n
    South Physical Therapy \n
    City 1 \n
    AR \n
    </span>
    
    
    <span class="record">Customer 2 \n
    Exercise Physiologist \n
    PT \n
    Class Name \n
    Central Therapy \n
    City 2 \n
    AL \n
    </span>
    

    ...在图纸的最后一行上。

    我需要能够使用分隔符\n添加标记,因为数据中有逗号,所以我不能使用逗号;我不能在工作表中添加任何其他分隔符。

    所以我需要的是这个特定的标记;我需要每一位顾客都进来 <h1> <li></li> 标签,如下所示:

    <span class="record">
    <h1>Customer 1</h1>
    <ul>
    <li>Exercise Physiologist</li>
    <li>PT, DPT, COMT</li>
    <li>Class Name</li>
    <li>South Physical Therapy</li>
    <li>City 1</li>
    <li>AR</li>
    </ul>
    </span>
    

    <李></李> 那一项。

    Generate a set of HTML list items from a comma separated list? PHP 但是我得到了错误 explode(): Argument #2 ($string) must be of type string, array given.

    如何分解/内爆以输出所需的html?

    或者还有其他更有用的php函数吗?

    1 回复  |  直到 3 年前
        1
  •  1
  •   George Sun    3 年前

    因为您的单元格值使用 \n 作为分隔符,首先使用 explode 函数将单元格值从字符串分解为数组。然后,将此数组中要添加的第一项作为标头。

    implode 函数可用于分隔符。可以使用 array_slice 作用如果希望数组项显示为无序列表,可以使用 "</li><li>" str_replace 替换的所有实例 "<li></li>"

    foreach($values as $val) {
        $valuearray = explode("\n", implode($val)); // explode string into array
        $valuespan = "<span class=\"record\">";
        $valuespan = $valuespan . "<h1>" . $valuearray[0] . "</h1>"; // add heading
        $valuespan = $valuespan . "<ul><li>" . implode("</li><li>", array_slice($valuearray, 1)) . "</li></ul></span>"; // add remaining array as list items
        $valuespan = str_replace("<li></li>", "", $valuespan); // remove empty list items
        echo $valuespan;
    }