-4

首先感谢尝试帮助我!

我需要从此路径目录中提取字符串“videos”:

/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php

如何着手解决这个问题?

4

5 回答 5

3

我不认为那里需要正则表达式。

一种方法是使用basename()+strstr()函数:

<?php    
$path = '/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php';

echo strstr(basename($path), '.', true);
?>

显示:

videos

另一种方法是使用pathinfo

<?php
$path = '/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php';

echo pathinfo($path, PATHINFO_FILENAME);
?>

显示:

videos
于 2013-09-24T18:48:33.950 回答
1

问题的标题清楚地表明他想要一个正则表达式解决方案。

所以你正在寻找的正则表达式是:

/(\w+)\.php$/
于 2013-09-24T19:35:37.710 回答
1

如果您知道扩展名将始终为.php

http://php.net/manual/en/function.basename.php

$path = "/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php";
basename($path, ".php"); // returns "videos.php"

或者,如果您不知道扩展名:

http://www.php.net/manual/en/function.pathinfo.php

$path = "/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php";
$pathinfo = pathinfo($path);
$pathinfo['filename']; // equals "videos"
于 2013-09-24T18:48:22.517 回答
0

我建议使用JPATHrathing 而不是定义完整路径,因为它使用 Joomla 编码标准:

$path = JPATH_ROOT . "/administrator/components/com_videos/videos.php";
basename($path, ".php");
于 2013-09-24T19:37:37.680 回答
0

好吧,因为这不是一个 php 问题,而是一个 sublimetext 问题,它实际上是一个 python 问题:

import os
path = "/D/Servers/Domain/www/domain.com/administrator/components/com_videos/videos.php"
os.path.splitext(os.path.basename(path))[0] # outpus "videos"
于 2013-09-24T19:34:01.840 回答