如何生成HTML文件取决于数组长度php
我有一个XML文件。
<books>
<book x="1" y="2">
<name x="5" y="12">Java</name>
<author x="8" y="16">Rao</author>
</book>
<book x="12" y="20">
<name x="5" y="12">Php</name>
<author x="5" y="12">Naidu</author>
</book>
<book x="19" y="29">
<name x="25" y="22">Xml</name>
<author x="25" y="12">Gowda</author>
</book>
</books>
我已经使用php将其转换为数组。
我有标准的html文件,即模板。
<body>
<div id="books" style="float:right; position:absolute; left: 199px; top: 245px;">
<div id="book" style="float:right; position:absolute; left: 199px; top: 245px;">
<div id="name" style="float:right; position:absolute; left: 199px; top: 245px;"></div>
<div id="author" style="float:right; position:absolute; left: 199px; top: 245px;"></div>
</div>
</div>
</body>
基于数组legth,我需要在div中生成那些带有动态值的html文件,这些动态值存在于数组中。 在这里,我需要生成3个html文件(因为我有3个书元素)。如何通过使用数组生成html文件。
数组看起来像这样:
Array
(
[book] => Array
(
[0] => Array
(
[name] => Java
[author] => Rao
[@attributes] => Array
(
[x] => 1
[y] => 2
)
)
[1] => Array
(
[name] => Php
[author] => Naidu
[@attributes] => Array
(
[x] => 12
[y] => 20
)
)
[2] => Array
(
[name] => Xml
[author] => Gowda
[@attributes] => Array
(
[x] => 19
[y] => 29
)
)
)
)
答案 0 :(得分:0)
我希望能够将XML解析为数组的人也可以这样做,但无论如何你都去了:
<body>
<div id="books" style="float:right; position:absolute; left: 199px; top: 245px;">
<?php foreach($books as $book) : ?>
<div id="book" style="float:right; position:absolute; left: <?php echo $book['@attributes']['x']; ?>px; top: <?php echo $book['@attributes']['y']; ?>px;">
<div id="name" style="float:right; position:absolute; left: 199px; top: 245px;"><?php echo $book['name']; ?></div>
<div id="author" style="float:right; position:absolute; left: 199px; top: 245px;"><?php echo $book['author']; ?></div>
</div>
<?php endforeach; ?>
</div>
</body>
ED | IT 我添加了本书的x / y属性,我相信你可以自己完成剩下的工作
答案 1 :(得分:0)
在您的html模板中,使用分隔符,例如real-template:
<body>
<div id="books" style="float:right; position:absolute; left: 199px; top: 245px;">
<div id="book" style="float:right; position:absolute; left: 199px; top: 245px;">
<div id="name" style="float:right; position:absolute; left: 199px; top: 245px;">{name}</div>
<div id="author" style="float:right; position:absolute; left: 199px; top: 245px;">{author}</div>
</div>
</div>
</body>
在PHP端,使用regexp替换模板中的数据:
$html_template = file_get_contents('/path/to/your/html/template');
foreach($books['book'] as $i => $book) {
$file_name = "html_page_for_book_{$i}";
$html_file = fopen($file_name,'w');
$html_data = preg_replace(array('/{author}/','/{name}/'),array($book['author'],$book['name']),$html_template);
fwrite($html_file,$html_data);
fclose($html_file);
}