需要使用PHP从主字符串中提取字符串

时间:2014-08-25 05:03:55

标签: php html extract

我的主要字符串看起来像这样

<div class="large-12 columns">
text 1
</div>
<div class="large-12 columns">
text 2
</div>
<div class="large-12 columns">
text 3
</div>
<div class="large-12 columns">
text 4
</div>
<div class="large-12 columns">
text 5
</div>

这里我想在标记<div class="large-12 columns"></div>

之间提取字符串

我已经有了在两个字符串之间提取内容的功能,但它只获取了第一个标记(文本1)

在上面的主字符串中,我给出了5个文本,但真正的字符串可能包含1到30个。

之前有人这样做过,因为我是PHP的新手。

我用来提取字符串的代码。

function get_string_between($string, $start, $end){
$string = " ".$string;
 $ini = strpos($string,$start);
 if ($ini == 0) return "";
 $ini += strlen($start);     
 $len = strpos($string,$end,$ini) - $ini;
 return substr($string,$ini,$len);
}

3 个答案:

答案 0 :(得分:2)

试试这个:已修改

 <?php
$str='<div class="large-12 columns">
text 1
</div>
<div class="large-12 columns">
text 2
</div>
<div class="large-12 columns">
text 3
</div>
<div class="large-12 columns">
text 4
</div>
<div class="large-12 columns">
text 5
</div>';
$str1=str_replace('<div class="large-12 columns">','',$str);
$arr=str_replace('</div>',',',$str1);
$arr1=explode(',',$arr);
$values=array();
foreach ($arr1 as $key=>$value){
    if(isset($value) && $value!=''){
    $values[] = $value;
    }
}
print_r($values);

答案 1 :(得分:0)

PHP版本......

<?php 
$str='<div class="large-12 columns">
text 1
</div>
<div class="large-12 columns">
text 2
</div>
<div class="large-12 columns">
text 3
</div>
<div class="large-12 columns">
text 4
</div>
<div class="large-12 columns">
text 5
</div>';
$arr2 = str_replace('</div>', ',', $str);
$arr = explode(',', $str);
foreach ($arr as &$value){
    $value = strip_tags($value);
}
print_r($arr);
?>

答案 2 :(得分:-2)

jQuery很容易做到这一点。 .text()函数使用类“.large-12”提取存储在div中的信息,并将它们放在一个名为info的变量中。由于我不知道你将如何处理它们,我使用相同的.text()函数将它们放在一个div中,并使用id extract_divs jsfiddle

<html>
<head>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>

<script>
$(document).ready(function(){
    var info = $(".large-12").text();
    $("#extracted_divs").text(info);
});
</script>
</head>
<body>

<div class="large-12 columns">
text 1
</div>
<div class="large-12 columns">
text 2
</div>
<div class="large-12 columns">
text 3
</div>
<div class="large-12 columns">
text 4
</div>
<div class="large-12 columns">
text 5
</div>

<div id="extracted_divs">
</div>

</body>
</html>