Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 从字符串中检索2个子字符串_Php_String_Substring - Fatal编程技术网

Php 从字符串中检索2个子字符串

Php 从字符串中检索2个子字符串,php,string,substring,Php,String,Substring,我尝试过substr和split,但我不知道如何解析这些数据 $string = 'aDetails.push(new Array("XADP10520", "XADP10520 - ec Example Title"));'; //$label = 'XADP10520'; //$title = 'Example Title'; 不确定您想做什么,但类似的方法应该可以: <?php $string = 'aDetails.push(new Array("XADP10520", "X

我尝试过substr和split,但我不知道如何解析这些数据

$string = 'aDetails.push(new Array("XADP10520", "XADP10520 - ec Example Title"));';

//$label = 'XADP10520';

//$title = 'Example Title';

不确定您想做什么,但类似的方法应该可以:

<?php
$string = 'aDetails.push(new Array("XADP10520", "XADP10520 - ec Example Title"));';
$tmps   = explode('"', $string);   //NOT SPLIT.. DEPRECATED
$label  = $tmps[1];
$title  = str_replace($label.' - ec ','',$tmps[3]);
?>

您可以使用基本正则表达式通过
preg\u match()

下面是一个例子:

$string = 'aDetails.push(new Array("XADP10520", "XADP10520 - ec Example Title"));';

preg_match('/\("(?<label>.+)", "\1 - ec (?<title>.+)"\)/i', $string, $parts);

$label = $parts['label'];
$title = $parts['title'];

echo $label; // XADP10520
echo $title; // Example Title
$string='aDetails.push(新数组(“XADP10520”,“XADP10520-ec示例标题”);
预匹配('/\(“(?+)”,“\1-ec(?)“\)/i',$string,$parts);
$label=$parts['label'];
$title=$parts['title'];
echo$label;//XADP10520
echo$title;//示例标题

请注意,我假设两个键相同,并且要删除
-ec
部分。

那么为什么
$title
只等于
示例标题
,而不是示例中的完整字符串
XADP10520-ec示例标题
?您想做什么?这看起来像是试图在php中解析javascript,这毫无意义。@JonathanKuhn可能是因为
XADP10520
是标签,不应该是标题的一部分。然后以
-
开头的标题可能会很奇怪。@LoganMurphy,但显然在JS中(字符串似乎是)它是标题的一部分。如果不是,那么
-ec
呢?