2016-05-12 11 views
0
$handle = fopen("mytext.txt", "r"); 

echo fread($handle,filesize("mytext.txt")); 
echo preg_match("/[0-9]/","",$handle); 

fclose($handle); 

テキストファイルを開いて、テキストに何桁の桁があるかを調べたいとします。私はpreg_matchを使用しようとしましたが、これは正しい方法ではないと思います。PHPファイルの処理hw

+0

サンプルコードが切り捨てられているようですが、書式を編集して完全なリストが含まれるように投稿を編集できますか – Michael

答えて

0

preg_match()はリソースのハンドルを受け入れます。どちらが間違っているか:

$handle = fopen("mytext.txt", "r"); 

$content = fread($handle,filesize("mytext.txt")); 
$noDigit = preg_match("/[0-9]/","",$content); 

fclose($handle); 
0

preg_match_all()を使用してください。 preg_match()は最初の結果にのみ一致します。

また、正規表現は1つの数値を探しています。 1つ以上の数字のすべてのインスタンス(例:一致1、20、および3580243)を一致させるには、\d+を使用する必要があります。

$subject = "String with numbers 4 8 15 16 23 42"; 
$matches = array(); 
preg_match_all('\d+', $subject, $matches); 

次に、それらをカウントするには、$一致の一致をループしてカウンタ変数を増やします。

編集:fopen、fread、fcloseの代わりにfile_get_contents()を使用すると、おそらくより良い結果が得られます。