首页 > 解决方案 > PHP - 提取两个单词之间的字符串作为数组的一部分

问题描述

我正在尝试获取位于单词“Free”和“LESSON”之间的一串单词,当我有一个由一个文本块组成的字符串以及一个“Free”和“LESSON”实例时,它工作得很好。我面临的挑战是当一个字符串中有多个换行符分隔的文本块时如何实现这一点?

<?php

$value = '
Sam Mutimer
3m 8s
Social Media credit
Free
How to find your social media audience
LESSON
How to find your social media audience

Sam Mutimer
3m 20s
Social Media credit
Free
Defining your social media personality
LESSON
Defining your social media personality

Sam Mutimer
2m 5s
Social Media credit
Free
Dealing with complaints on social media
LESSON
Dealing with complaints on social media';

$value = strstr($value, "Free", true); //gets all text from needle on
$value = strstr($value, "LESSON", true); //gets all text before needle
echo $value;

?>

我最好的猜测是将字符串放入一个数组中,但是如何根据换行符将现有字符串分成多个子字符串?

感谢任何帮助,谢谢。

标签: phparraysforeach

解决方案


您可以使用正则表达式:

preg_match_all("|Free(.*?)Lesson|si", $value, $out);
var_dump($out[1]);

推荐阅读