我已经采取了以下输入
$file = 'D:/php/testapp/ta_bles.json';
$table = trim(end(explode("/", $file)), '.json');
但不是将ta_bles
作为输出,而是提供ta_ble
任何人都可以帮助我发生的事情
但是当我使用以下逻辑时,它给出了预期的结果
$table = str_replace('.json', '', end(explode("/", $file)));
答案 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。