使用 PHP 将每个 HTML 标签拆分为新行
split each HTML tag into new line using PHP
我要将每个 HTML 标签拆分成一个新行。
这是我的来源:
<p><a href="http://www.example.com">Example Link</a></p>
<div class="text-center"><a href="http://www.example2.com">Example2 Link</a></div>
我会这样:
<p>
<a href="http://www.example.com">Example Link</a>
</p>
<div class="text-center">
<a href="http://www.example2.com">Example2 Link</a>
</div>
或者像这样:
<p>
<a href="http://www.example.com">
Example Link
</a>
</p>
<div class="text-center">
<a href="http://www.example2.com">
Example2 Link
</a>
</div>
这就是我所做的:
$myfile = fopen("html.txt", "r");
for ($i = 0; $i < 1; $i++) {
$line = fgets($myfile);
var_dump(preg_split('/(>)/', $line, 0, PREG_SPLIT_DELIM_CAPTURE));
}
这是将每个“>”放在单独的行(数组成员)中的输出。
array(9) {
[0]=>
string(2) "<p"
[1]=>
string(1) ">"
[2]=>
string(32) "<a href="http://www.example.com""
[3]=>
string(1) ">"
[4]=>
string(15) "Example Link</a"
[5]=>
string(1) ">"
[6]=>
string(3) "</p"
[7]=>
string(1) ">"
[8]=>
string(2) "
"
}
您可以使用 str_replace() 函数将 > / <
替换为 > / <
和换行符,而不是使用正则表达式并将您的源拆分为数组。参见 PHP documentation
这应该可以正常工作:
$formatted = str_replace([">", "<"], [">\n", "\n<"], $x);
我要将每个 HTML 标签拆分成一个新行。 这是我的来源:
<p><a href="http://www.example.com">Example Link</a></p>
<div class="text-center"><a href="http://www.example2.com">Example2 Link</a></div>
我会这样:
<p>
<a href="http://www.example.com">Example Link</a>
</p>
<div class="text-center">
<a href="http://www.example2.com">Example2 Link</a>
</div>
或者像这样:
<p>
<a href="http://www.example.com">
Example Link
</a>
</p>
<div class="text-center">
<a href="http://www.example2.com">
Example2 Link
</a>
</div>
这就是我所做的:
$myfile = fopen("html.txt", "r");
for ($i = 0; $i < 1; $i++) {
$line = fgets($myfile);
var_dump(preg_split('/(>)/', $line, 0, PREG_SPLIT_DELIM_CAPTURE));
}
这是将每个“>”放在单独的行(数组成员)中的输出。
array(9) {
[0]=>
string(2) "<p"
[1]=>
string(1) ">"
[2]=>
string(32) "<a href="http://www.example.com""
[3]=>
string(1) ">"
[4]=>
string(15) "Example Link</a"
[5]=>
string(1) ">"
[6]=>
string(3) "</p"
[7]=>
string(1) ">"
[8]=>
string(2) "
"
}
您可以使用 str_replace() 函数将 > / <
替换为 > / <
和换行符,而不是使用正则表达式并将您的源拆分为数组。参见 PHP documentation
这应该可以正常工作:
$formatted = str_replace([">", "<"], [">\n", "\n<"], $x);