【发布时间】:2012-10-28 23:21:38
【问题描述】:
我有一个通过 DOMDocument 加载的 html 文件,我在其中做一些 DOM 操作,输出带有 saveHTML 的 html。
问题是输入标签后面的空格被去掉了,这里是HTML
<!DOCTYPE html>
<html lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title></title>
<link rel="stylesheet" type="text/css" href="/style.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>
<script>
window.jQuery || document.write(unescape('%3cscript src="/script/jquery.min.js"%3e%3c/script%3e'));
</script>
</head>
<body>
<div>
<div>
<form method="post" action="/register/">
<label>First name: <input type="text" name="firstname"></label>
<label>Last name: <input type="text" name="lastname"></label>
<label>Date of birth: <input type="date" name="dateofbirth"></label>
<label>Address: <input type="text" name="address"></label>
<label>Phone number: <input type="text" name="phonenumber"></label>
<label>Sex: <input type="text" name="sex"></label>
<label>Email address: <input type="email" name="email"></label>
<label>Account password: <input type="password" name="password"></label>
<input id="register-button" type="submit" value="Register">
<input type="reset" value="Reset">
<input type="button" value="Cancel">
</form>
</div>
</div>
</body>
</html>
PHP
$template_file = $_SERVER['DOCUMENT_ROOT']."/application/template/template.html";
$doc = new DOMDocument('1.0', 'utf-8');
$doc->loadHTMLFile($template_file);
/* dom manipulation, importing and appending nodes from other documents etc */
echo $doc->saveHTML();
它在我尝试过的其他标签(<br>、<hr>)之后删除了空格,<head> 中的标签除外。
我尝试将formatOutput 设置为true,但这只保留了结束标记前的空格。
有没有办法让 DOMDocument 在我的<input>s 之后保留空格?
【问题讨论】:
-
将空格转换为
&nbsp;或&#160;。不间断的空间不会折叠。 -
@JeremyJStarcher 它没有折叠并被移除,我也在寻找不涉及更改标记的解决方案。
标签: php html domdocument