PHP Esecuzione del buffer di output prima di qualsiasi contenuto


Esempio

ob_start();

$user_count = 0;
foreach( $users as $user ) {
    if( $user['access'] != 7 ) { continue; }
    ?>
    <li class="users user-<?php echo $user['id']; ?>">
        <a href="<?php echo $user['link']; ?>">
            <?php echo $user['name'] ?>
        </a>
    </li>
<?php
    $user_count++;
}
$users_html = ob_get_clean();

if( !$user_count ) {
    header('Location: /404.php');
    exit();
}
?>
<html>
<head>
    <title>Level 7 user results (<?php echo $user_count; ?>)</title>
</head>

<body>
<h2>We have a total of <?php echo $user_count; ?> users with access level 7</h2>
<ul class="user-list">
    <?php echo $users_html; ?>
</ul>
</body>
</html>

In questo esempio, supponiamo che gli $users siano una matrice multidimensionale, e lo attraversiamo per trovare tutti gli utenti con un livello di accesso 7.

Se non ci sono risultati, reindirizziamo a una pagina di errore.

Stiamo utilizzando il buffer di output qui perché stiamo attivando un reindirizzamento header() base al risultato del ciclo