我试图在字符串中的两个子字符串之间获取子字符串。使用此代码
我只获得第一个子字符串。你能说我怎样才能获得所有子字符串?
由于 Sateesh 使用代码:
<?php
function get_string_between($string, $start, $end){
$string = " ".$string;
$ini = strpos($string,$start);
$ini += strlen($start);
$len = strpos($string,$end,$ini) - $ini;
return substr($string,$ini,$len);
}
$fullstring = "[tag]php[/tag] [tag]java[/tag] ";
$count = substr_count($fullstring, '[tag]');
for($i=0; $i<$count;$i++){
$parsed = get_string_between($fullstring, "[tag]", "[/tag]");
echo "LineItems[$i]:".$parsed."<br>";
}
?>
答案 0 :(得分:0)
$matches = array();
preg_match('#\[tag\]([^\[]+)\[/tag\]#', "[tag]php[/tag] [tag]java[/tag] ", $matches)
$matches == array("[tag]php[/tag] [tag]java[/tag] ", 'php','java');
array_shift($matches);
$matches == array('php','java');
沿着这些方向做点什么,尝试将其纳入你的功能
答案 1 :(得分:0)
这应该使用正则表达式来执行您正在寻找的内容。请注意,如果您有多个[tag]
嵌套在彼此之内,它将无效。
<?
$fullstring = "[tag]php[/tag] [tag]java[/tag]";
$matches = array();
preg_match_all('@\[tag\](.*?)\[/tag\]@', $fullstring, $matches);
foreach ($matches[1] as $match) {
// Do whatever you need to do with the matches here.
echo "$match<br/>";
}