使用条件PHP将字符串分成两部分

时间:2018-02-08 14:26:31

标签: php loops foreach

我有类似这样的字符串

$title1 = 'Bleeding Steel Full Movie HD 720P Free';

在这个字符串中,Full之前的任何内容都是电影标题,我试图将这个字符串分成两个部分' Bleeding Steel'和#39; Full Movie HD 720P Free'我如何能够提前实现这一目标

3 个答案:

答案 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);

https://3v4l.org/ICt9c

<强>结果:

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]));