将此字符串:“ab1_cd2_ef3.php”转换为3个变量:“ab1”," cd2"和“ef3”?

时间:2013-06-20 10:29:20

标签: php string

我有一个包含三个值的文件名,这些值用下划线分隔。

文件名的示例可以是:

/ab1_cd2_ef3.php

现在,我想要做的是捕获文件名中保存的值并将它们转换为局部变量,所以我可以:

$var1 = 'ab1';
$var2 = 'cd2';
$var3 = 'ef3';

基本上是这样的:

$filename = basename(__FILE__, ".php");

miracleFunction($fileName);

var_dump($miracleFunctionVars);
// Be be maybe an array like
$miracleFunctionVar[1] = 'ab1';
$miracleFunctionVar[2] = 'cd2';
$miracleFunctionVar[3] = 'ef3';

2 个答案:

答案 0 :(得分:4)

这应该做的工作:

$filename      = basename(__FILE__, ".php"); //"ab1_cd2_ef3" basename removes ext
$splitfilename = explode('_', $filename);

导致:

$splitfilename[0] = "ab1";
$splitfilename[1] = "cd2";
$splitfilename[2] = "ef3";

explode通过分隔符将字符串拆分为数组。

这些函数的PHP文档:

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

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

答案 1 :(得分:2)

$file = __FILE__;
$arr = split("_",$file);
$arr[$arr.length-1] = split(".",$arr[$arr.length-1]);
$arr[$arr.length-1] = $arr[$arr.length-1][0];

没有测试..我正在努力..

我通常做的是用“_”分开; 然后我将“ef3.php”拆分为[0] =“ef3”[1] =“php”; 所以我用ef3替换ef3.php