Pz-LinkCard - Version 1.1.1

Version Description

  • Fixed: Fixed to had failed parsing of meta tags.

  • metaThanks @misoji_13

Download this release

Release Info

Developer poporon
Plugin Icon 128x128 Pz-LinkCard
Version 1.1.1
Comparing to
See all releases

Code changes from version 1.1.0 to 1.1.1

Files changed (2) hide show
  1. pz-linkcard.php +4 -28
  2. readme.txt +6 -1
pz-linkcard.php CHANGED
@@ -3,7 +3,7 @@
3
  Plugin Name: Pz-LinkCard
4
  Plugin URI: http://poporon.poponet.jp/pz-linkcard
5
  Description: リンクをカード形式で表示します。
6
- Version: 1.1.0
7
  Author: poporon
8
  Author URI: http://poporon.poponet.jp
9
  License: GPLv2 or later
@@ -94,7 +94,7 @@ class Pz_LinkCard {
94
  'nofollow' => null,
95
  'plugin-link' => null,
96
  'plugin-name' => 'Pz-LinkCard',
97
- 'plugin-version' => '1.1.0',
98
  'plugin-url' => 'http://poporon.poponet.jp/pz-linkcard',
99
  'pz-hbc-options' => null,
100
  'debug-time' => null
@@ -846,7 +846,7 @@ class Pz_LinkCard {
846
 
847
  function pz_GetMeta($html, $tags = null) {
848
  // TITLEタグ
849
- if (preg_match('/<\s*title\s*.*>\s*(.*)\s*<\s*\/title\s*>/si', $html, $m)) {
850
  $tags['title'] = esc_html($m[1]);
851
  }
852
 
@@ -857,33 +857,9 @@ class Pz_LinkCard {
857
 
858
  // metaタグ パース
859
  $match = null;
860
- preg_match_all('/\s*meta\s*name\s*=\s*([^>\/]*)\s+content\s*=\s*([^>\/]*)\s*\/?>/si', $html, $match);
861
  if (isset($match) && is_array($match) && count($match) == 3) {
862
  for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
863
- $match[1][$i] = trim(trim($match[1][$i]), '\'\"' );
864
- $match[2][$i] = trim(trim($match[2][$i]), '\'\"' );
865
- $tags[$match[1][$i]] = esc_html($match[2][$i]);
866
- }
867
- }
868
-
869
- // OGPパース
870
- $match = null;
871
- preg_match_all('/\s*meta\s*property\s*=\s*([^>\/]*)\s+content\s*=\s*([^>\/]*)\s*\/?>/si', $html, $match);
872
- if (isset($match) && is_array($match) && count($match) == 3) {
873
- for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
874
- $match[1][$i] = trim(trim($match[1][$i]), '\'\"' );
875
- $match[2][$i] = trim(trim($match[2][$i]), '\'\"' );
876
- $tags[$match[1][$i]] = esc_html($match[2][$i]);
877
- }
878
- }
879
-
880
- // OGPパース(順序逆パターン)
881
- $match = null;
882
- preg_match_all('/\s*meta\s*content\s*=\s*([^>\/]*)\s+property\s*=\s*([^>\/]*)\s*\/?>/si', $html, $match);
883
- if (isset($match) && is_array($match) && count($match) == 3) {
884
- for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
885
- $match[1][$i] = trim(trim($match[1][$i]), '\'\"' );
886
- $match[2][$i] = trim(trim($match[2][$i]), '\'\"' );
887
  $tags[$match[1][$i]] = esc_html($match[2][$i]);
888
  }
889
  }
3
  Plugin Name: Pz-LinkCard
4
  Plugin URI: http://poporon.poponet.jp/pz-linkcard
5
  Description: リンクをカード形式で表示します。
6
+ Version: 1.1.1
7
  Author: poporon
8
  Author URI: http://poporon.poponet.jp
9
  License: GPLv2 or later
94
  'nofollow' => null,
95
  'plugin-link' => null,
96
  'plugin-name' => 'Pz-LinkCard',
97
+ 'plugin-version' => '1.1.1',
98
  'plugin-url' => 'http://poporon.poponet.jp/pz-linkcard',
99
  'pz-hbc-options' => null,
100
  'debug-time' => null
846
 
847
  function pz_GetMeta($html, $tags = null) {
848
  // TITLEタグ
849
+ if (preg_match('/<\s*title\s*[^>]*>\s*(.*)\s*<\s*\/title\s*[^>]*>/si', $html, $m)) {
850
  $tags['title'] = esc_html($m[1]);
851
  }
852
 
857
 
858
  // metaタグ パース
859
  $match = null;
860
+ preg_match_all('/<\s*meta\s(?=[^>]*?\b(?:name|property)\s*=\s*(?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'|([^"\'>]*?)(?=\s*\/?\s*>|\s\w+\s*=)))[^>]*?\bcontent\s*=\s*(?|"\s*([^"]*?)\s*"|\'\s*([^\']*?)\s*\'|([^"\'>]*?)(?=\s*\/?\s*>|\s\w+\s*=))[^>]*>/is', $html, $match);
861
  if (isset($match) && is_array($match) && count($match) == 3) {
862
  for ($i=0, $to_i=count($match[1]); $i < $to_i; $i++) {
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
863
  $tags[$match[1][$i]] = esc_html($match[2][$i]);
864
  }
865
  }
readme.txt CHANGED
@@ -160,12 +160,17 @@ WordPressピンバックは記事中にリンクを直接記述しないと飛
160
 
161
  == Changelog ==
162
 
 
 
 
 
 
163
  = 1.1.0 =
164
  * Modefied: Since November 20, 2015 , it does not use the Twitter API.
165
  * Added: It can be selected "Other than mobile" and "All client" in the setting of "Open new window/tab".
166
 
167
  * 2015年11月20日までのTwitter非公式API廃止に伴い、同日以降取得しないように修正。
168
- * 「新しいウィンドウで開く」をチェックボックスからリストに変更し、「モバイル以外(のみ新しいウィンドウで開く)」を追加。(Thanks 三十路!)
169
 
170
  = 1.0.3 =
171
  * キャッシュ保存時にキーが正しく設定されないことがあったのを修正。
160
 
161
  == Changelog ==
162
 
163
+ = 1.1.1 =
164
+ * Fixed: Fixed to had failed parsing of meta tags.
165
+
166
+ * metaタグの解析に失敗していたのを修正。(Thanks @misoji_13)
167
+
168
  = 1.1.0 =
169
  * Modefied: Since November 20, 2015 , it does not use the Twitter API.
170
  * Added: It can be selected "Other than mobile" and "All client" in the setting of "Open new window/tab".
171
 
172
  * 2015年11月20日までのTwitter非公式API廃止に伴い、同日以降取得しないように修正。
173
+ * 「新しいウィンドウで開く」をチェックボックスからリストに変更し、「モバイル以外(のみ新しいウィンドウで開く)」を追加。(Thanks @misoji_13)
174
 
175
  = 1.0.3 =
176
  * キャッシュ保存時にキーが正しく設定されないことがあったのを修正。