从php中的[“test”]中提取值测试

时间:2017-03-23 12:37:53

标签: laravel laravel-5

我知道标题并没有很好地描述问题。我正在使用laravel 5.4。我想知道的是当我从数据库中打印文件时如何删除[“”]。

从我的数据库中的示例我有一个名为file的列,在该列中我有一个名为[“book.pdf”]的项目。

我想要删除[“”]以便我只有book.pdf

3 个答案:

答案 0 :(得分:1)

您可以创建一个访问者,每次调用file列时都会删除['']

1 - 转到您的模型

2 - 创建一个访问者:

class FooBar extends Model
{
    /**
     * Format the name to remove ['']
     *
     * @param  string  $value
     * @return string
     */
    public function getFileAttribute($value)
    {
         if (preg_match('/\["([^"]+)"\]/', $value, $m) ) {
              return $m[1];   
         } 
         else {

         //return the original value
         return $value;

         }
    }
}

现在在您看来,您只需致电:

{{ $foo->file }}

并自动格式化输出。

答案 1 :(得分:0)

    $str  = '["book.pdf"]';

//forward slashes are the start and end delimeters
//third parameter is the array we want to fill with matches
if (preg_match('/"([^"]+)"/', $str, $m)) {
    print $m[1];   
} else {
   //preg_match returns the number of matches found, 
   //so if here didn't match pattern
}

答案 2 :(得分:0)

如果它始终是相同的字符串[""],我只会使用substr($string, 2, -2)删除字符。