With MAMP (using PHP 5.3.5 and APC 3.1.7) passing an array with multiple regex strings as $search arg always yields an empty APCIterator. Whereas passing a single string regex works. (Note: I only tried cache type 'user'.)
Workaround: Concatenated all regexes to single one with alternation. Example:
<?php
$results = new APCIterator('user', '/^('.implode('|', $patterns).')');
?>
APCIterator::__construct
(PECL apc >= 3.1.1)
APCIterator::__construct — Construit un objet d'itération APCIterator
Description
$cache
[, mixed $search = null
[, int $format
[, int $chunk_size = 100
[, int $list
]]]] )Construit un objet APCIterator.
Liste de paramètres
-
cache -
Le type de cache, user ou file.
-
search -
Une expression rationnelle PCRE pour établir la correspondance avec les clés APC. Peut être une string pour une expression rationnelle simple, ou un array d'expressions rationnelles. Optionnellement, vous pouvez passer
NULLpour sauter la recherche. -
format -
Le format désiré, configuré à partir d'une ou plusieurs constantes APC_ITER_*.
-
chunk_size -
La taille du segment. Doit être une valeur supérieure à 0. La valeur par défaut est 100.
-
list -
Le type de liste. Passez
APC_LIST_ACTIVEouAPC_LIST_DELETED.
Valeurs de retour
Un objet APCIterator en cas de succès,
ou NULL si échec.
Exemples
Exemple #1 Exemple avec APCIterator::__construct()
<?php
foreach (new APCIterator('user', '/^counter\./') as $counter) {
echo "$counter[key]: $counter[value]\n";
apc_dec($counter['key'], $counter['value']);
}
?>
Voir aussi
- apc_exists() - Vérifie si une clé APC existe
- apc_cache_info() - Récupère les informations du cache dans l'entrepôt APC
new APCIterator('file'); only lists the files loaded within the current process-scope. It is thus not possible to check if a given file already resides in the op-code cache.
(PHP5.3.6 APC3.1.9)
Iterating (and specifically using current()) does not expunge cache entries for which $ttl has passed, you need to use apc_fetch to get rid of stale entries.
