Afficher occurrences d'un preg_match_all

Résolu
YameFAZE Messages postés 201 Date d'inscription   Statut Membre Dernière intervention   -  
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour,

Je cherche à afficher les occurrences d'un
preg_match_all
mais je n'y arrive pas. Il s'agit d'un
pattern
qui recherche des caractères spéciaux dans un champs de formulaire.

<?php
preg_match_all('#^-|-$|[-]+[-]+|\.+|,+|;+|:+|[\']+[\']+|"+|\!+|\?+|«+|»+|<+|>+|\{+|\}+|\[+|\]+|\(+|\)+|/+|\|+|\\\+|_+|=+|\++|\#+|£+|\$+|&+|§+|%+|@+|¤+|\*+|[0-9]+| +#', $_POST['registration_firstName'], $chars);
$i_while = 1;
$i = 0;
while ($i_while <= count($chars)) {
	echo $chars[$i].'<br />';
	$i_while++;
	$i++;
}
?>


Il m'affiche un
Array to string conversion
.

J'ai aussi essayé avec un
foreach
, ça fonctionne à moitié, il ne m'affiche que la première occurrence trouvée.

<?php
foreach ($chars as $chars) {
	echo $chars[$i].'<br />';
	$i++;
}
?>


Configuration: Windows / Firefox 72.0

3 réponses

jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Bonjour

Commence par faire un var_dump($chars);

Et montre-nous le résultat obtenu..
1
YameFAZE Messages postés 201 Date d'inscription   Statut Membre Dernière intervention  
 
Voilà :
array (size=1)
  0 => 
    array (size=3)
      0 => string '*' (length=1)
      1 => string '_' (length=1)
      2 => string '$' (length=1)
0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752
 
Comme tu peux le voir c'est un array d'array

foreach ($chars as $c) {
	print_r( $c);
}

0
jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention   4 752 > jordane45 Messages postés 38486 Date d'inscription   Statut Modérateur Dernière intervention  
 
foreach ($chars as $c) {
foreach( $c as $x){
  echo $x . '<br>';
}
 
}
0
YameFAZE Messages postés 201 Date d'inscription   Statut Membre Dernière intervention  
 
J'ai trouvé tout seul. Grâce à ton
var_dump
. En fait
$chars
est un tableau à double dimension. En faisant simplement
echo $chars[0].' ';
ça fonctionne. Merci pour ton aide. Je marque en résolut.
0