Недавно я был занят некоторыми PHP-фреймворками - кстати, совершенно не по теме.
Во всяком случае, у меня есть конкретные файлы html / template, которые я хотел бы проанализировать с C ++ (не спрашивайте меня, почему, просто потому, что я хочу написать это на C ++). Кроме того, это могло бы быть первой полезной вещью, которую я когда-либо написал на C ++.
В любом случае, чтобы вернуться к проблеме, представьте, что у меня есть файл, подобный следующему:
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Actions</th>
</tr>
{foreach from="$pages => $page"}
<tr>
<td>{$page.Id()}</td>
<td>{$page.Title()}</td>
<td><a href="page/edit/{$page.Id()}/">Edit</a> | <a href="page/delete/{$page.Id()}/">Delete</a></td>
</tr>
{foreachelse}
<tr>
<td colspan="3">There are no pages to be displayed</td>
</tr>
{/foreach}
</table>
И вывод должен быть:
<table>
<tr>
<th>ID</th>
<th>Title</th>
<th>Actions</th>
</tr>
<?php if(count($pages) > 0): ?>
<?php foreach($pages as $page): ?>
<tr>
<td><?php echo $page->getId(); ?></td>
<td><?php echo $page->getTitle(); ?></td>
<td><a href="page/edit/<?php echo $page->getId(); ?>/">Edit</a> | <a href="page/delete/<?php echo $page->getId(); ?>/">Delete</a></td>
</tr>
<?php endforeach; ?>
<?php else: ?>
<tr>
<td colspan="3">There are no pages to be displayed</td>
</tr>
<?php endif; ?>
</table>
Почему я это делаю, вам может быть не совсем понятно, но это остается проблемой, применимой где-то еще в любом случае.
Во всяком случае, требуются некоторые прямые и обратные поиски и модификации в выходных файлах. Как правильно подойти к этой проблеме?