うーん..私はそれを機能させることができないことを意味します...だからここに私がしたことです..
$url = 'http://test/test/9244349';
$test = preg_match('#\d*#', $url, $matches);
配列(サイズ= 1)0=>文字列''(長さ= 0)
「9244349」をキャッチしたいのですが、なぜ動かないのかわかりません。
うーん..私はそれを機能させることができないことを意味します...だからここに私がしたことです..
$url = 'http://test/test/9244349';
$test = preg_match('#\d*#', $url, $matches);
配列(サイズ= 1)0=>文字列''(長さ= 0)
「9244349」をキャッチしたいのですが、なぜ動かないのかわかりません。
に置き換え*てみてください+。数字を一致させたい場合は、一致するパターンに意味がありません。ゼロの数字もありますか?
preg_match('/\d+/','http://test/test/9244349',$matches);
echo $matches[0];//output:9244349
正規表現エンジンをプレイしてみましょう:
\d*任意の桁数を意味します。ゼロを含む。h。h一致しません\d。\d。したがって、一致する前の空の文字列。 hしたがって、他の投稿で述べられているように、をに変更し*て+、少なくとも1桁を強制的に一致させてください。そうすれば、残りの数字が続きます。
を使用することもできますpreg_match_all()が、その場合、2つの数字以外の位置ごとに1つずつ、多くの空の一致が得られます。
に変更*する+と機能します
これはベース名です
echo basename($url);