问题描述
我接受了以下输入
$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);