PHP preg_match() でハマり道
実際にはそんなにハマってはいないのですが。。。
- パス名内の文字を抽出する場合は、/ を | などに書き換える。
- パターンにマッチした文字を抽出する場合、() だけでなく、その中に [] を入れる。
ということを覚えておくと、書くときに楽になれそう。
1 2 3 4 5 6 |
$users = []; foreach ( $lines as $line ) { if (preg_match( '|/home/([^\/]+)/|' , $line , $matches )) { if (!in_array( $matches [1], $users )) $users [] = $matches [1]; } } |