Ticket #396 (closed バグ指摘: 修正済)
モバイル、画像の自動変換が動かない場合がある
| Reported by: | uchida | Owned by: | somebody |
|---|---|---|---|
| Priority: | 中 | Milestone: | EC-CUBE |
| Component: | フロント | Version: | 2.1.2(正式版) |
| Keywords: | Cc: | ||
| 修正済み: |
Description (last modified by uchida) (diff)
img タグを取り出す正規表現が不十分なため、端末に合わせた画像自動変換が効かない場合がある。(img から src の部分を取り出し、その画像に対して変更している)
1系を変更したバージョンにて見つけました。
1系だと GC_MobileImage.php の 37 行目あたり
2系だと SC_MobileImage.php の 50 行目あたり
$pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i';
を
$pattern = '/<img\s+[^<>]*src=[\'"]([^>"]+)[\'"][^<>]*\s*\/*>/i';
へ変更。
テストコード。ざっと思いつくパターンのみチェックしました。
<?php
$buffer = <<<ETEXT
1. <img src="/img/test1.jpg">
2. <img src="/img/test2.jpg"/>
3. <img src="/img/test3.jpg" />
4. <img src="/img/test4.jpg">
5. <img src="/img/test5.jpg" >
6. <img src="/img/test6.jpg" width="10" height="20">
7. <img src="/img/test7.jpg" width="10" height="20"/>
8. <img src="/img/test8.jpg" width="10" height="20" />
9. <img src="/img/test9.jpg" width="10" height="20" />
10. <img src="/img/test10.jpg" width="10" height="20" / >
11. <img style=" 0px" src="/img/test11.jpg" width="10" height="20" />
12. <img style=" 0px"
src="/img/test12.jpg" width="10" height="20"
/>
13. <img style=" 0px"
src="/img/test13.jpg" width="10" height="20"
/>
14. <a href=""><img src="/img/test14.jpg" width="10" height="20"></a>
15. <img src='/img/test15.jpg'>
ETEXT;
header("Content-type: text/plain");
echo "[original version]\n";
$pattern = '/<img\s+src=[\'"]([^>"]+)[\'"]\s*\/*>/i';
$result = preg_match_all($pattern, $buffer, $images);
echo "count: " . $result . "\n";
echo "extracted tags: " . print_r($images, true) . "\n";
///
echo "-----------------------------------------------------------\n";
echo "[fixed version]\n";
$pattern = '/<img\s+[^<>]*src=[\'"]([^>"]+)[\'"][^<>]*\s*\/*>/i';
$result = preg_match_all($pattern, $buffer, $images);
echo "count: " . $result . "\n";
echo "extracted tags: " . print_r($images, true) . "\n";
?>
Change History
Note: See
TracTickets for help on using
tickets.
