我想在<之间拆分文字。李>和< / 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>
请帮帮我。感谢
答案 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>';
}
}
}