Ticket #396 (new バグ指摘) — at Version 1
モバイル、画像の自動変換が動かない場合がある
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"; ?>
Note: See
TracTickets for help on using
tickets.