使用PHP GetBetween

时间:2015-05-12 02:33:20

标签: php html dom

我想在<之间拆分文字。李>和< / li> 标记内容并显示到textarea。

我的数据库值以下列格式保存

<ul>
  <li>Test1</li>
  <li>Test2</li>
  <li>Test3</li>
  <li>Test3</li>
</ul>

我想在&lt;之间获取每个值li>和&lt; / li&gt; 并显示在textarea中。 (最多只有4个文本区域。)

<?php
$sql="SELECT * FROM product_name";
$result=mysql_query($sql) or die(mysql_error());        
$row = mysql_fetch_array($result);

function GetBetween($value1="",$value2="",$dbvalue){
$temp1 = strpos($pool,$value1)+strlen($value1);
$result = substr($dbvalue,$temp1,strlen($dbvalue));
$dd=strpos($result,$value2);
if($dd == 0){
$dd = strlen($result);
}

return substr($result,0,$dd);
?>  


<textarea  name="description1">
<?php echo GetBetween("<li>","</li>",$row['description']);?>
</textarea>

<textarea  name="description2"></textarea>
<textarea  name="description3"></textarea>
<textarea  name="description4"></textarea>

在我的第一个Textarea数据库中取值。但我不知道如何在每个Textares中显示2,3和4的每个值。

我期待以下输出:

<textarea  name="description1">Test1</textarea>
<textarea  name="description2">Test2</textarea>
<textarea  name="description3">Test3</textarea>
<textarea  name="description4">Test4</textarea>

请帮帮我。感谢

2 个答案:

答案 0 :(得分:1)

这是一个简单的示例,可以帮助您入门:

<?php

$html = <<<HTML
<ul>
  <li>Test1</li>
  <li>Test2</li>
  <li>Test3</li>
  <li>Test3</li>
</ul>
HTML;

$doc = new DOMDocument;
$doc->loadHTML($html);

$id = 1;
// find all <li> elements
foreach ($doc->getElementsByTagName('li') as $element) {
    // then print <textarea> elements
    printf('<textarea name="description%d">%s</textarea>',
        $id++,
        htmlspecialchars($element->nodeValue)
    );
}

答案 1 :(得分:0)

我建议一个例子:

<?php
$str = "<ul>
  <li>Test1</li>
  <li>Test2</li>
  <li>Test3</li>
  <li>Test3</li>
</ul>";

preg_match_all('/<li ?.*>(.*)<\/li>/',$str,$matches);

if(!empty($matches[1])){
   foreach($matches[1] as $key=>$text){
      echo '<textarea  name="description'.($key+1).'">'.$text.'</textarea>';
   }
}
}