Code Bunny Code Bunny - 7 months ago 20
HTML Question

Array to an unordered list

I'm trying to map some arrays values to an unordered () list.

<?php
$files = scandir($dir);
//remove "." and ".."
print_r($files);
?>

<ul>
<?php foreach($files as $file): ?>
<li><?= $file ?></li>
<?php endforeach; ?>
</ul>


It does iterate through the array correctly as it gives bullets for
<li>
elements. However no string output is seen next to those bullets. Also when I print_r the array the values are there.

The output looks like this with the correct number of bullets but no text next to them:


.

.

.


What am I doing wrong here? Thanks in advance.

Answer

I'm not sure about this, but this might work:

<?php
  $files = scandir($dir);
  //remove "." and ".."
  print_r($files);
?>

<ul>
  <?php foreach($files as $file) { ?>
  <li><?php echo $file; ?></li>
  <?php } ?>
</ul>

That's what I would use, and if this doesn't work, it might be because your $dir variable contains nothing (has an error). One reason why your original code might not have worked, because I don't think the <? ?> tags are compatible on every server. Also, from what I know, there is no <?=$var ?> thing in php. I thought it only exists in ASP and the like.

EDIT: In answer to your question about the inferiority of curly braces, they are the commonly accepted standard in PHP. This might be different in the C/C++/C# Family, I don't know.