转动此字符串:“;ab1_cd2_ef3.php”;分为三个变量:“;ab1”&引用;cd2“;和“;ef3”;?

转动此字符串:“;ab1_cd2_ef3.php”;分为三个变量:“;ab1”&引用;cd2“;和“;ef3”;?,php,string,Php,String,我有一个包含三个值的文件名,这些值用下划线分隔 文件名的示例可以是: /ab1\u cd2\u ef3.php 现在,我想做的是捕获文件名中的值并将其转换为局部变量,这样我就可以: $var1 = 'ab1'; $var2 = 'cd2'; $var3 = 'ef3'; 因此,本质上: $filename = basename(__FILE__, ".php"); miracleFunction($fileName); var_dump($miracleFunctionVars); //

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

文件名的示例可以是:

/ab1\u cd2\u 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';
没有测试。。我正在做这件事

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

这应该可以完成以下工作:

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

$splitfilename[0] = "ab1";
$splitfilename[1] = "cd2";
$splitfilename[2] = "ef3";
explode
通过分隔符将字符串拆分为数组

这些函数的PHP文档:


list($var1,$var2,$var3)=分解('''u',pathinfo($mystring,pathinfo'u FILENAME))@MarkBaker这是一个非常有用的方法,非常感谢!分裂。一开始,你的答案是一个至少适用于PHP4的解决方案。Pathinfo的
Pathinfo\u FILENAME
常量是在5.2中添加的,所以,很荣幸。比我的答案更好。使用它…=]你好,谢谢你的回复!但是,
$filename
将输出为
ab1\u cd2\u ef3
,并排除
.php
。因此,要修改您的答案,它将是:
$splitfilename=explode(“\uu”,“$filename”)。这正是我想要的,非常感谢!啊,我很高兴能帮上忙,我会给出我的答案。
$splitfilename[0] = "ab1";
$splitfilename[1] = "cd2";
$splitfilename[2] = "ef3";