trim函数给出了意想不到的值php

时间:2014-04-15 05:31:44

标签: php trim

我已经采取了以下输入

$file  = 'D:/php/testapp/ta_bles.json';
$table = trim(end(explode("/", $file)), '.json');

但不是将ta_bles作为输出,而是提供ta_ble 任何人都可以帮助我发生的事情

但是当我使用以下逻辑时,它给出了预期的结果

$table = str_replace('.json', '', end(explode("/", $file)));

2 个答案:

答案 0 :(得分:3)

它不能按预期工作的原因是因为trim()(和相关函数)的第二个参数被用作字符集;因此,在"json.json"的极端示例中,您将最终得到一个空字符串,因为它会分别修剪每个字符。

您可以将此类操作与此进行比较:

preg_replace('/^[.json]+|[.json]+$/', '', $str);

要获得"tables",您应该使用pathinfo()而不是尝试自己动手:

$table = pathinfo('d:/php/testapp/tables.json', PATHINFO_FILENAME);

答案 1 :(得分:0)

您可以使用rtrim()删除最后一个.json字符串。

$file  = "D:/php/testapp/table.json";
$table = rtrim( $file,'.json');
echo $table;

输出:D:/php/testapp/table
然后你可以爆炸并获得表格。

但它不是从目录中获取文件名的有效方法。您应该使用pathinfo()获取文件名作为Jack Mentioned。

Demo