PHP精简文本(包括html标记)
之所以得到“(“and”)”是因为某些“行”将有多个值 我正在寻找一个简单的方法来做到这一点PHP精简文本(包括html标记),php,Php,之所以得到“(“and”)”是因为某些“行”将有多个值 我正在寻找一个简单的方法来做到这一点 $str='1〕 <row> <date>2016-05-30</date> <name>name</name> <animal>cat</animal> </row> >>>(2016-05-20)>(名称)>(cat)>(2016-05-20)>(名称)>(cat)>(2016-
$str='1〕
<row>
<date>2016-05-30</date>
<name>name</name>
<animal>cat</animal>
</row>
>>>(2016-05-20)>(名称)>(cat)>(2016-05-20)>(名称)>(cat)>(2016-05-20)>(名称)>(cat)字符串(37)”(2016-05-20)>(名称)>(cat)
[1] =>字符串(37)”(2016-05-20)>(名称)>(类别)
[2] =>字符串(37)”(2016-05-20)>(名称)>(类别)
}
[1]=>
阵列(3){
[0]=>字符串(10)“2016-05-20”
[1] =>字符串(10)“2016-05-20”
[2] =>字符串(10)“2016-05-20”
}
[2]=>
阵列(3){
[0]=>字符串(4)“名称”
[1] =>字符串(4)“名称”
[2] =>字符串(4)“名称”
}
[3]=>
阵列(3){
[0]=>字符串(3)“cat”
[1] =>字符串(3)“cat”
[2] =>字符串(3)“cat”
}
}
但这是HTML上的正则表达式,可能会导致问题。如果使用strip_tags()会更安全,但在我的测试字符串上,它并没有像所有字符串都集中在一行中那样工作良好。他们不应该这样做。
我建议你先试试脱衣舞。这可能是我的测试字符串上的换行错误 编辑:对不起,我忘记了你想要的结果:
$str='1〕
>>>(2016-05-20)>(姓名)>(猫)>(2016-05-20)>(姓名)>(猫)>(2016-05-20)>(姓名)>(猫)试试这个:-
$str = '<document page-count="3">
<page number="1">
<table id="p1" data-page="1" data-table="1">>>>(2016-05-20)<<< >>>(name)<<< >>>(cat)<<< </table>
</page>
<page number="2">
<table id="p2" data-page="1" data-table="1">>>>(2016-05-20)<<< >>>(name)<<< >>>(cat)<<< </table>
</page>
<page number="3">
<table id="p3" data-page="1" data-table="1">>>>(2016-05-20)<<< >>>(name)<<< >>>(cat)<<< </table>
</page>';
preg_match_all("/\((\d{4}-\d{2}-\d{2})\).*\((\w+)\).*\((\w+)\)/",$str,$match);
//preg_match_all("/\((\d{4}-\d{2}-\d{2})\).*\((\w+)\).*\((\w+)\)/",strip_tags($str),$match);
$newstr= "";
for($i=0;$i<=count($match[0])-1;$i++){
$newstr .= "<row>
<date>" . $match[1][$i] ."</date>
<name>" . $match[2][$i] ."</name>
<animal>".$match[3][$i] ."</animal>
</row>
";
}
echo $newstr;
要符合您的要求,请添加以下代码:-
$str = '';
foreach($res as $v){
$str .= '<row>';
$str .= "<date>{$v[0]}</date>";
$str .= "<name>{$v[1]}</name>";
$str .= "<animal>{$v[2]}</animal>";
$str .= '</row>';
}
echo $str;
$str='';
foreach($res作为$v){
$str.='';
$str.=“{$v[0]}”;
$str.=“{$v[1]}”;
$str.=“{$v[2]}”;
$str.='';
}
echo$str;
输出:-
<row>
<date>2016-05-20</date>
<name>name</name>
<animal>cat1</animal>
</row>
<row>
<date>2016-05-21</date>
<name>name1</name>
<animal>cat2</animal>
</row>
<row>
<date>2016-05-22</date>
<name>name2</name>
<animal>cat3</animal>
</row>
2016-05-20
名称
第一类
2016-05-21
名称1
第二类
2016-05-22
姓名2
第三类
@mezt这方面运气好吗?这些答案中有没有有用的,或者你需要更多的帮助?
$str = '<document page-count="3">
<page number="1">
<table id="p1" data-page="1" data-table="1">>>>(2016-05-20)<<< >>>(name)<<< >>>(cat)<<< </table>
</page>
<page number="2">
<table id="p2" data-page="1" data-table="1">>>>(2016-05-20)<<< >>>(name)<<< >>>(cat)<<< </table>
</page>
<page number="3">
<table id="p3" data-page="1" data-table="1">>>>(2016-05-20)<<< >>>(name)<<< >>>(cat)<<< </table>
</page>';
preg_match_all("/\((\d{4}-\d{2}-\d{2})\).*\((\w+)\).*\((\w+)\)/",$str,$match);
//preg_match_all("/\((\d{4}-\d{2}-\d{2})\).*\((\w+)\).*\((\w+)\)/",strip_tags($str),$match);
$newstr= "";
for($i=0;$i<=count($match[0])-1;$i++){
$newstr .= "<row>
<date>" . $match[1][$i] ."</date>
<name>" . $match[2][$i] ."</name>
<animal>".$match[3][$i] ."</animal>
</row>
";
}
echo $newstr;
$str = '<document page-count="3">
<page number="1">
<table id="p1" data-page="1" data-table="1">>>>(2016-05-20)<<< >>>(name)<<< >>>(cat1)<<< </table>
</page>
<page number="2">
<table id="p2" data-page="1" data-table="1">>>>(2016-05-21)<<< >>>(name1)<<< >>>(cat2)<<< </table>
</page>
<page number="3">
<table id="p3" data-page="1" data-table="1">>>>(2016-05-22)<<< >>>(name2)<<< >>>(cat3)<<< </table>
</page>';
preg_match_all('/>>>\((.*?)\)<<</', $str, $matches);
$res = array_chunk($matches[1], 3);
echo '<pre>'; print_r($res);
Array
(
[0] => Array
(
[0] => 2016-05-20
[1] => name
[2] => cat1
)
[1] => Array
(
[0] => 2016-05-21
[1] => name1
[2] => cat2
)
[2] => Array
(
[0] => 2016-05-22
[1] => name2
[2] => cat3
)
)
$str = '';
foreach($res as $v){
$str .= '<row>';
$str .= "<date>{$v[0]}</date>";
$str .= "<name>{$v[1]}</name>";
$str .= "<animal>{$v[2]}</animal>";
$str .= '</row>';
}
echo $str;
<row>
<date>2016-05-20</date>
<name>name</name>
<animal>cat1</animal>
</row>
<row>
<date>2016-05-21</date>
<name>name1</name>
<animal>cat2</animal>
</row>
<row>
<date>2016-05-22</date>
<name>name2</name>
<animal>cat3</animal>
</row>