Trim函数提供了意外的值php

人气:111 发布:2023-01-03 标签: 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)));

推荐答案

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

您可以将这样的操作与以下操作进行比较:

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

若要只获取"tables",您应该使用pathinfo(),而不是尝试滚动您自己的:

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

18