如何从另一个字符串php中提取字符串

时间:2016-03-02 02:42:34

标签: php string substr

我想从另一个字符串中提取一个字符串,但我唯一能看到的是substr(),当我的字符串长度不同时,它会使用整数。

看一下这个字符串,我有一堆这些我想要提取和回应附加内容只有它们存在。我怎么能用PHP做到这一点。谢谢你们。

$string = 'Apple iPhone 6 Plus (Refurbished 16GB Silver) on EE Regular 2GB (24 Month(s) contract) with UNLIMITED mins; UNLIMITED texts; 2000MB of 4G data. £37.49 a month. Extras: Sennheiser CX 2.00i (Black)';

function freegifts($string) {
   if (strpos($string, 'Extras:') !== false {

        extract extras...

   }
}

所以此刻的功能只是检查单词' Extras:'存在,在这种情况下,我只想回应Sennheiser CX 2.00i(黑色)'

3 个答案:

答案 0 :(得分:2)

正则表达式是一个好主意,另一种选择是普通的爆炸:

$string = 'Apple iPhone 6 Plus (Refurbished 16GB Silver) on EE Regular 2GB (24 Month(s) contract) with UNLIMITED mins; UNLIMITED texts; 2000MB of 4G data. £37.49 a month. Extras: Sennheiser CX 2.00i (Black)';

    $x=explode('Extras:',$string);

    if(!empty($x[1])){
    echo    $x[1];
    }

输出" Sennheiser CX 2.00i(黑色)"

答案 1 :(得分:0)

试试这个:

if (preg_match("(?<=Extras:).*", $string, $matches)) {
    print_r($matches);
} else {
    echo "A match was not found.";
}

答案 2 :(得分:0)

$string = 'Apple iPhone 6 Plus (Refurbished 16GB Silver) on EE Regular 2GB (24 Month(s) contract) with UNLIMITED mins; UNLIMITED texts; 2000MB of 4G data. £37.49 a month. Extras: Sennheiser CX 2.00i (Black)';

// 'Extras:' is 7 chars
$extras = substr($string, strpos($string, 'Extras:') + 7);

echo $extras;

OUTPUT: Sennheiser CX 2.00i (Black)
有可能。这是一种更简单的方法,但是如果你总是在寻找'Extras'之后的内容,它会起作用:'strpos()返回一个int。