Trim函数提供了意外的值php

2022-09-23 00:00:00 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);

相关文章