我是php的新手 也许这个问题之前已被问过,但我不知道具体要搜索什么 无论如何这是问题
如果我有一个像
这样的字符串 $adam = "this is a very long long string in here and has a lot of words";
我想在这个字符串里面搜索第一次出现的单词“long” 和“这里”这个词
然后用中间的所有内容选择它们,并将其存储在新的字符串
中所以结果应该是
$new_string = "long long string in here"
顺便说一下我不知道字符串和内容的长度,我所知道的就是它有这个词 “长” 和“这里”这个词,我想要它们之间的话......
答案 0 :(得分:1)
使用这些功能:
找到'long'和'word'的位置,并使用substr
剪切字符串。
答案 1 :(得分:1)
简单strpos
,substr
,strlen
即可实现
您的代码可能如下所示
$adam = "this is a very long long string in here and has a lot of words";
$word1="long";
$word2="here";
$first = strpos($adam, $word1);
$second = strpos($adam, $word2);
if ($first < $second) {
$result = substr($adam, $first, $second + strlen($word2) - $first);
}
echo $result;
答案 2 :(得分:0)
这是您的脚本,可以进行复制粘贴;)
$begin=stripos($adam,"long"); //find the 1st position of the word "long"
$end=strripos($adam,"here")+4; //find the last position of the word "here" + 4 caraters of "here"
$length=$end-$begin;
$your_string=substr($adam,$begin,$length);
答案 3 :(得分:0)
这是使用正则表达式执行此操作的方法:
$string = "this is a very long long string in here and has a lot of words";
$first = "long";
$last = "here";
$matches = array();
preg_match('%'.preg_quote($first).'.+'.preg_quote($last).'%', $string, $matches);
print $matches[0];