您好我正在尝试从其他文件名的部分获取文件名... 它会回复我的欲望,但也会显示错误 我的代码就是这样。
$fileName = 'somemovieoraudiooranyfiles.mp4';
echo __DIR__ . "/video_views/" . substr($fileName, 0,-strlen(end(explode('.', $fileName)))) . "txt";
答案 0 :(得分:2)
查看end()
的手册条目。它需要一个变量作为参考。 explode()
调用的返回不是变量,也不能被引用。
您获得了所需的结果,因为end()
做了两件事:
http://php.net/manual/en/function.end.php
阵列。此数组通过引用传递,因为它被修改 功能。这意味着你必须传递一个真正的变量,而不是一个 函数返回一个数组,因为只有实际的变量 通过引用传递。
要获取不带扩展名的文件名,请使用pathinfo()
:
echo __DIR__ . '/video_views/' . pathinfo($fileName, PATHINFO_FILENAME) . '.txt';
答案 1 :(得分:0)
在PHP中,不要同时放置这么多功能。将它们分成几步。这里以var为参考。这样写;
$parts = explode('.', $fileName);
$ext = end($parts);
$f = substr($fileName, 0,-strlen($ext));
echo DIR . "/video_views/" . $f . "txt";
使用PHP的pathinfo可以轻松完成您要做的事情 http://php.net/manual/en/function.pathinfo.php