【问题标题】:Delimited Filename Parsed into Table Row Data分隔文件名解析为表行数据
【发布时间】:2012-11-26 20:04:51
【问题描述】:

我正在尝试将可变宽度、竖线 (|) 分隔的文件名转换为表格数据。

例如

var1|var2|var3|var4|var5.pdf

变成

<table border="2" bordercolor="#ffffff" width="100%" cellpadding="10" cellspacing="10">
    <tr>
        <td>$var1</td>
        <td>$var2</td>
        <td>$var3</td>
        <td>$var4</td>
        <td>$var5</td>
    </tr>
</table>

我已经掌握了一切,在var1 之后,但无法弄清楚如何解析剩余的变量。 这是我扔毛巾并决定在这里发帖的地方:

$var1 = substr($file_name, 0, strpos($file_name, '|'));

想法?

提前谢谢你!

【问题讨论】:

    标签: php filenames delimited


    【解决方案1】:

    也许您可以使用explode() 将所有字段放入一个数组中,如下所示:

    PHP

    <?php
    $data = "var1|var2|var3|var4|var5.pdf";
    $fields = explode("|", $data);
    var_dump($fields);
    ?>
    

    输出

    array(5) { [0]=> string(4) "var1" [1]=> string(4) "var2" [2]=> string(4) "var3" [3]=> string(4) "var4" [4]=> string(8) "var5.pdf" } 
    

    【讨论】:

      【解决方案2】:

      如果您希望将每个值放在单独的变量中,您可以将list()explode() 结合使用,如下所示:

      list($var1,$var2,$var3,$var4,$var5) = explode('|', $filename);
      

      【讨论】:

        【解决方案3】:

        我建议您将文件名分解为一个数组,而不是为每个文件创建变量,但我已经给出了如何实现这一点的示例代码。希望我正确回答了您的问题。

        <?php
            $string = 'var1|var2|var3|var4|var5.pdf';
            // Trim the string of dangling pipes to make sure we don't get empty array elements.
            $string = trim($string, '|');
            // Split the filenames into an array. Much more managable that way.
            $filenames = explode('|', $string);
            // Define an empty array to put our variables in.
            $variables = array();
            // Because the array we made is not associative we can iterate through with a for loop.
            for($i = 0; $i < count($filenames); $i++) {
                // Make our variable names start from one; much more human-friendly. Add them to an array to extract later.
                $var_name = 'var' . ($i + 1);
                $variables[$var_name] = $filenames[$i];
            }
            // Extract the values of the array and place them into variables named after the array keys.
            extract($variables, EXTR_OVERWRITE);
        

        这将创建以下变量(连同它们的值)。

        $var1 = 'var1';
        $var2 = 'var2';
        $var3 = 'var3';
        $var4 = 'var4';
        $var5 = 'var5.pdf';
        

        【讨论】:

          【解决方案4】:

          您正在寻找explode() 函数。

          $parts_arr = explode('|', $filename);
          var_dump($parts_arr);
          

          此外,管道在我能想到的几乎所有 shell 中都是特殊字符,我强烈建议不要在文件名中使用它们。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多