どうすれば変換できますか
ereg_replace(".*\.(.*)$","\\1",$imgfile);
に
preg_replace... ?
?
私はそれで問題を抱えていますか?
ereg パターンを preg に移植するには、主に 4 つのことを知っておく必要があります。
区切り記号(/) を追加します。'pattern' => '/pattern/'
パターンの一部である場合は区切り文字をエスケープ'patt/ern' =>
'/patt\/ern/'
します。次の方法でプログラムで実現します。
$ereg_pattern = '<div>.+</div>';
$preg_pattern = '/' .addcslashes($ereg_pattern, '/') . '/';
eregi (大文字と小文字を区別しないマッチング):'pattern' => '/pattern/i'
したがって、大文字と小文字を区別しない eregi 関数を使用している場合は、新しいパターン ('/pattern/') の末尾に 'i' を追加するだけです。
ASCII 値: ereg では、パターンで数値を使用すると、文字の ASCII を参照していると見なされます。ただし、preg では数値は ASCII 値として扱われません。そのため、パターンの ereg 式に ASCII 値が含まれている場合 (改行、タブなど)、それを 16 進数に変換し、前に \x を付けます。
Example: 9(tab) becomes \x9 or alternatively use \t.
これが役立つことを願っています。
preg_replace("/.*\.(.*)$/", "\\1", "foo.jpg")
/
PHPで区切り文字が必要な理由がわかりません。Perl、JSなどがそれらを持っている唯一の理由は、PHPが許可していない正規表現リテラルを許可していることです。
この場合、式の先頭と末尾に任意の文字を追加し、伝統的に「/」文字を追加しますpreg_replace('/.*\.(.*)$/',"\\1",$imgfile);
。正規表現はあまり良くありません。
正規表現は遅いので、これを使用してください。$extension=substr($imgName,strrpos($imgName,'.'));