質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

Q&A

解決済

3回答

3993閲覧

【PHP正規表現】特定文字だけ削除したい

obon_t

総合スコア52

WordPress

WordPressは、PHPで開発されているオープンソースのブログソフトウェアです。データベース管理システムにはMySQLを用いています。フリーのブログソフトウェアの中では最も人気が高く、PHPとHTMLを使って簡単にテンプレートをカスタマイズすることができます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

正規表現

正規表現とは特定の文字列によるパターンマッチングを行う際に用いられる宣言型プログラミングです。

0グッド

0クリップ

投稿2016/03/14 09:56

お世話になります。初心的な質問でも申し訳ないのですがpreg_replaceを使って
htmlのclassの中身を「wp-image-xxx」だけ残したいです。

php

1$html = preg_replace( '/class=[\'"]([^\'"]+)[\'"]/i', 'class=""', $html );

現在は上記のようなコードとなっており、実行するとclassの中がが消えてしまっています。

html

1<img src="xxx" alt="xxx" class="alignnone size-thumbnail wp-image-xxx" />

html

1<img src="xxx" alt="xxx" class="wp-image-xxx" />

のようにするには正規表現部分をどのようにしたらよいでしょうか?
http://www.nxworld.net/wordpress/wp-remove-image-attribute.html
コードは↑のサイトを参考にしています。

ちなみに、alignnone size-thumbnailの部分は固定ではないのでどのようなclassがの場合でも
対応できるようにして頂けるとありがたいです。(wp-image-xxxは毎回classの最後にきます)
実行後wp-image-xxxだけ残っていれば大丈夫です。

よろしくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

ベストアンサー

$html = preg_replace( '/class=[\'"].*(wp-image-.+).*[\'"]/i', 'class="$1"', $html );

眠くて頭が…

投稿2016/03/14 10:55

退会済みユーザー

退会済みユーザー

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

obon_t

2016/03/14 11:30

うまくいきました。ありがとうございます。
guest

0

class='"wp-image-xxx([^'"]*)['"]

class="wp-image-xxx"
に変換、のようにしてみては?

投稿2016/03/14 10:31

tkturbo

総合スコア5572

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

obon_t

2016/03/14 11:30

ありがとうございます
guest

0

xxxは、数字かとおもいますので、それを前提にして、稚拙ですが。

php

1 $html = '<img src="URL" alt="おると" class="alignnone size-thumbnail wp-image-130" />'; 2 3preg_match('/wp-image-[0-9]+/', $html, $wp_img); 4preg_match('/src="(.*?)"/', $html, $src); 5preg_match('/alt="(.*?)"/', $html, $alt); 6 7echo '<img src="'.$src[1].'" alt="'.$alt[1].'" class="'.$wp_img[0].'">';

投稿2016/03/14 10:29

amaranthine

総合スコア501

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

obon_t

2016/03/14 11:30

ありがとうございます
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問