// ページ上のすべての画像アドレスを取得します
関数 getimages($str)
{
$match_str = "/((http://)+([^ rn()^$!`"'|[]{}<>]*)((.gif)|(.jpg)|(. bmp)|(.png)|(.GIF)|(.JPG)|(.PNG)|(.BMP)))/";
Preg_match_all ($match_str,$str,$out,PREG_PATTERN_ORDER);
$out を返します;
}
?>
/
, 記事の保存にはkindeditorを使用していますが、記事のロゴ画像としてN番目の画像のアドレスを取り出す必要があり、記事コード(コンテンツのhtml)がデータベース内のフィールドに保存されます。画像アドレスは別のフィールドに保存されます。上記の正規表現を使用するだけです。
説明しますと、上記のアドレスは img タグ内の src 属性の値を直接取得するためのもので、この通常のパターンを使用して php ページ上のパスにアクセスできる場合は、それを直接使用できます。 preg_match_all を使用して、最初にすべてのアドレスを配列に保存し、次にファイル名 (パス部分なし) を取得し、URL を再構成してから、画像を削除するなどのパスを処理します。
私の例:preg_match_all("/
$ext = 'gif|jpg|jpeg|bmp|png';//http://www.bKjia.c0m グリーン ソフトウェア
による複数拡張子の一致を実現するための画像サフィックスのリスト $str = '
';
結果
配列(5) {
[0]=>
配列(3) {
[0]=>
文字列(57) "src="http://www.bKjia.c0m /data/soft_img/2010091101619.jpg""
[1]=>
文字列(57) "src="http://www.hzhuti.com/sonyericsson/w715/ 2010091029938.jpg""
[2]=>
String(57) "src="http://www.bKjia.c0m /data/soft_img/2010092839019.jpg""
}
[1]=>
配列(3) {
[0]=>
文字列(3) "src"
[1]=>
文字列(3) "src"
[2]=>
文字列(3) "src"
}
[2]=>
配列(3) {
[0]=>
文字列(1) """
[1]=>
文字列(1) """
[2]=>
文字列(1) """
}
[3]=>
配列(3) {
[0]=>
文字列(51) "http://www.bKjia.c0m /data/soft_img/2010091101619.jpg"
[1]=>
文字列(51) "http://www.bKjia.c0m /data/soft_img/2010091029938.jpg"
[2]=>
文字列(51) "http://www.bKjia.c0m /data/soft_img/2010092839019.jpg"
}
[4]=>
配列(3) {
[0]=>
文字列(3) "jpg"
[1]=>
文字列(3) "jpg"
[2]=>
文字列(3) "jpg"
}
}
PHPによる画像の定期的なマッチングと画像へのリンクの追加について詳しく解説
$newstext=preg_replace(preg_replace('/(]+srcs*=s*”?([^>"s]+)”?[^>]*>)/im ', '$1', $newstext);
1.preg_replace と str_replace の違い:
str_replace は単なる文字の置換ですが、preg_replace は通常の置換です
2.$0、$1、$2などの説明:
$0 はパターン全体と一致するテキストを指します。
$1 は、最初の ( );によって参照される文字列を指します。
$2 は 2 番目の () によって参照される文字列を指します;