我想从另一个字符串中提取一个字符串,但我唯一能看到的是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(黑色)'
答案 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。