如何在<div> </div>处拆分字符串

时间:2014-06-17 10:51:05

标签: php html

我已经在mysql表中存储了一些字符串,这种形式(在单列中) -

<div id='ques'>Question 1 is written here</div>
<div id='opt1'>Text of option 1</div>
<div id='opt2'>Text of option 2</div>
<div id='opt3'>Text of option 3</div>
<div id='opt4'>Text of option 4</div>
<div id='opt5'>Text of option 5</div>
<div id='opt6'>Text of option 6</div>

由于某些原因,我不能为这些div使用单独的列(存储),上面写的所有演示代码都在表的单列(或单元格是正确的)中。所以,div本身就是单个巨大字符串的一部分。因此字符串就像,

$question_set="<div id='ques'>Question 1 is written here</div><div id='opt1'>Text of option 1</div><div id='opt2'>Text of option 2</div><div id='opt3'>Text of option 3</div><div id='opt4'>Text of option 4</div><div id='opt5'>Text of option 5</div><div id='opt6'>Text of option 6</div>"

我想要的是在每个div处拆分文本,并将其innerHtml值存储在其计数器php变量中,例如,

$question="Question 1 is written here";
$option1="Text of option 1";

依旧......

修改 - 1 有些人想要,如果我做了研究,这就是我能做到最好的事情 -

list($question, $option1, $option2, $option3, $option4, $option5, $option6) = split('</div>', $question_set);
echo $question;
echo "<br>";
echo $option1;

同样, -

也取得了类似的结果
list($question, $option1, $option2, $option3, $option4, $option5, $option6) = explode('</div>', $question_set);

依旧......

注意 - 我之前没有发布过很多原因,其中最重要的原因是如果你的名字/个人资料我是人类医生,甚至不是编程的学生。我之前想要偏离我的讨论,因为不仅上面提到的方法对我有用,在某种程度上给我一些其他问题,而且我的wamp服务器说“已弃用:函数split()已被弃用” 无论如何 谢谢。的问候,

3 个答案:

答案 0 :(得分:2)

<强> Demo   在jquery中使用 map 来检索数组中的值

var collect = $("div").map(function () {
        return $(this).text();
}).get();

//console.log(collect[0]);
//console.log(collect[1]);
//console.log(collect[2]);.............

// **$.each()**

//$.each(collect,function(i,val){
      //console.log(i+ "  "+ val);
    //});

将数组或对象中的所有项目转换为新的项目数组。

答案 1 :(得分:0)

我认为你可以用正则表达式做到这一点:  使用preg_replace,您可以无需重新设置两个div标签,这样您只需保留问题

找到div中的内容的正则表达式就像

^(<div id=\'[a-z0-9]+\'>)([^<>]+)(</div>)

然后你用下面的模式重新设置:$2,它只会让事情发生错误...我没有对它进行测试但它应该可以工作 请注意,您必须为每一行应用此项。

答案 2 :(得分:0)

一个php解决方案,其中问题存储在$question中,其他选项存储在$opts数组中。

$question_set="<div id='ques'>Question 1 is written here</div><div id='opt1'>Text of option 1</div><div id='opt2'>Text of option 2</div><div id='opt3'>Text of option 3</div><div id='opt4'>Text of option 4</div><div id='opt5'>Text of option 5</div><div id='opt6'>Text of option 6</div>";
$q_pattern = "#<div id='ques'>([a-zA-Z0-9 _?-]{0,})<\/div>#";
$o_pattern = "#<div id='opt[0-9]{0,}'>([a-zA-Z0-9 _?-]{0,})<\/div>#";
preg_match($q_pattern, $question_set, $q_match);
preg_match_all($o_pattern, $question_set, $o_match);
$question = $q_match[1];
for ($i=0; $i < count($o_match[1]); $i++) { 
    $opts[] = $o_match[1][$i];
}
print_r($opts);
print_r($question);

结果:

Array
(
    [0] => Text of option 1
    [1] => Text of option 2
    [2] => Text of option 3
    [3] => Text of option 4
    [4] => Text of option 5
    [5] => Text of option 6
)