$handle = fopen("mytext.txt", "r");
echo fread($handle,filesize("mytext.txt"));
echo preg_match("/[0-9]/","",$handle);
fclose($handle);
Я хочу открыть текстовый файл и узнать, сколько цифр в тексте. Я пытался использовать preg_match
но я думаю, что это не правильный способ сделать это.
preg_match () принимает дескриптор для ресурсов. Что неверно:
$handle = fopen("mytext.txt", "r");
$content = fread($handle,filesize("mytext.txt"));
$noDigit = preg_match("/[0-9]/","",$content);
fclose($handle);
Вы должны использовать preg_match_all (). preg_match () будет соответствовать только первому результату.
Кроме того, ваше регулярное выражение ищет одно числовое значение. Вы должны использовать \d+
чтобы соответствовать всем экземплярам одного или нескольких чисел (то есть соответствует 1, 20 и 3580243).
$subject = "String with numbers 4 8 15 16 23 42";
$matches = array();
preg_match_all('\d+', $subject, $matches);
Затем, чтобы подсчитать их, вы можете просто просмотреть соответствия в $ match и увеличить переменную счетчика.
РЕДАКТИРОВАТЬ: Кроме того, вы, вероятно, получите лучшие результаты с file_get_contents () вместо использования fopen, fread, fclose.