从数据库中分割出一串文件名

时间:2013-10-14 23:29:13

标签: php mysql

我有一个名为products的MySQL表,其中包含一列(images

此列中有许多文件名由[],分隔

像:

[image-1.jpg],[image-2.jpg],[image-4.jpg],[image-5.jpg]

依旧......

我希望能够提取图像文件名,使它们看起来像:

image-1.jpg
image-2.jpg
image-3.jpg
image-4.jpg
image-5.jpg

这是我目前的PHP:

<?php
$images = explode(',',$project['images']);

        foreach($images as $image)
        {
            $display_image = substr($image, 1, -1);
            ?>
            <tr>
                <td><img src="/img/project-gallery/<?php echo $display_image; ?>" width="160px" /><br />
                <input type="checkbox" name="current_images<?php echo $project["sequence"]; ?>" id="current_images<?php echo $project["sequence"]; ?>" value="image_id_checkbox_<?php echo $project["sequence"]; ?>" /></td>
            </tr>
            <?php
        }
        ?>

所以我在每个图像下都有一个复选框,我希望能够从数据库中的images列中删除所选的[filename.extn],

例如,如果我检查image-1.jpg复选框,我希望图像列最终像:

image-2.jpg
image-3.jpg
image-4.jpg
image-5.jpg

2 个答案:

答案 0 :(得分:0)

preg_split - 用正则表达式拆分字符串 这样做......

$images = preg_split("/[\[\],]+/", $project['images']);

答案 1 :(得分:0)

试试这个:

<?php
        $string = '[image-1.jpg],[image-2.jpg],[image-3.jpg],[image-4.jpg],[image-5.jpg]';
        $str_arr = explode(',', $string);

        foreach($str_arr as $key => $value)
        {
            $value = trim($value, '[]');
            echo $value."<br />";
        }
        ?>

-

谢谢....