Php仅当字符串包含';时才分解字符串';


Php explode string only if the string contains '.'

我有这个爆炸(带列表):

$dm = "blablabla.ff";
list($d, $l) = explode('.', $dm, 2);

现在,我希望只有当字符串包含.时,爆炸才会剪切字符串因为如果字符串不包含.,列表将返回错误,错误如下:Undefined offset: 1

我怎么能走这么短的路?

$dm = "blablabla.ff";
if(strpos($dm,".") !== false){
    list($d, $l) = explode('.', $dm, 2);
}

如果分解$dm = "blablabla.ff";,则会得到两个数组。一个是d美元,一个是l美元。

$d = 'blablabla';
$l = 'ff';

如果分解$dm = "blablablaff";,则得到一个数组。一个是d美元,没有一个是l美元。

$d = 'blablablaff';
$l = null;

现在,如果您没有数组来填充列表($l),它将出错。

你可以试试这个:

    <?php
        $dm     = "blablabla.ff";
        $d      = null;
        $l      = null;
        if( stristr($dm, ".")){
            list($d, $l) = explode('.', $dm, 2);
        }       
        var_dump($d, $l);