我有类似这样的字符串
$title1 = 'Bleeding Steel Full Movie HD 720P Free';
在这个字符串中,Full之前的任何内容都是电影标题,我试图将这个字符串分成两个部分' Bleeding Steel'和#39; Full Movie HD 720P Free'我如何能够提前实现这一目标
答案 0 :(得分:3)
您可以使用正则表达式:
<?php
$value = 'Bleeding Steel Full Movie HD 720P Free';
preg_match('/\sFull\sMovie/', $value, $match, PREG_OFFSET_CAPTURE);
$offset = !empty($match) ? $match[0][1] : strlen($value);
$value = [
'title' => substr($value, 0, $offset),
'junk' => substr($value, $offset)
];
print_r($value);
<强>结果:强>
Array
(
[title] => Bleeding Steel
[junk] => Full Movie HD 720P Free
)
答案 1 :(得分:1)
有多个答案,例如1个选项:
trim(substr($title1,0,15));
trim(substr($title1,15));
它保护字符串的固定和可变部分。
编辑:
使用preg_match:
<?php
$title1 = 'Bleeding Steel Full Movie HD 720P Free';
preg_match('/(.*)Full Movie/',$title1,$output);
echo $output[1];
答案 2 :(得分:0)
我这个简单的例子我更喜欢爆炸而不是正则表达式。根据文档更快,使用起来更简单:
如果您不需要正则表达式的强大功能,您可以选择 更快(尽管更简单)的替代方案,如explode()或str_split()。
http://php.net/manual/en/function.preg-split.php
$title = 'Bleeding Steel Full Movie HD 720P Free';
$delimiter = "Full Movie";
$parts = explode("Full Movie", $title);
# Output: Bleeding Steel - Full Movie HD 720P Free
printf("%s - %s %s", trim($parts[0]), $delimiter, trim($parts[1]));