Я использую regex для переноса изображений в теги <a> и изменения их путей и т. Д. Я знаю, что использование dom для этого лучше, прочитав много потоков об обертке, но im неспособно понять, как это сделать.
Это то, что я использую:
$comments = (preg_replace('@(<img.+src=[\'"]/uploads/userdirs/admin)(?:.*?/)(.+?)\.(.+?)([\'"].*?>)@i', '<a class="gallery" rel="'.$pagelink.'" href=/uploads/userdirs/'.$who.'/$2.$3>$1/mcith/mcith_$2.$3$4</a>', $comments));
Он успешно обертывает каждое изображение в теги, которые я хочу. Но только если указанная строка ($ comments) имеет правильную разметку.
<p><img src="/uploads/userdirs/admin/1160501362291.png" alt="" width="1280" height="960" /></p> <p><img src="/uploads/userdirs/admin/100_Bullets_68_1280x1024.jpg" alt="" width="1280" height="1024" /></p>
Когда он представлен таким образом, он работает. Я использую tinymce, поэтому он обертывается в <p>, когда я делаю linebreak с enter. но когда я этого не делаю, когда я просто вставляю изображения один за другим, поэтому html выглядит так:
<p><img src="/uploads/userdirs/admin/1160501362291.png" alt="" width="1280" height="960" /><img src="/uploads/userdirs/admin/100_Bullets_68_1280x1024.jpg" alt="" width="1280" height="1024" /></p>
Вместо этого они обернут эти 2 изображения в тег <a>. Создание вывода выглядит следующим образом:
<p><a class="gallery" rel="test" href="/uploads/userdirs/admin/100_Bullets_68_1280x1024.jpg"> <img src="/uploads/userdirs/admin/1160501362291.png" alt="" width="1280" height="960"> <img src="/uploads/userdirs/admin/mcith/mcith_100_Bullets_68_1280x1024.jpg" alt="" width="1280" height="1024"> </a></p>
Это неправильно. выход я хочу это:
<p><a class="gallery" rel="test2" href="/uploads/userdirs/admin/100_Bullets_68_1280x1024.jpg"><img src="/uploads/userdirs/admin/mcith/mcith_100_Bullets_68_1280x1024.jpg" alt="" width="1280" height="1024"></a></p> <p><a class="gallery" rel="test2" href="/uploads/userdirs/admin/1154686260226.jpg"><img src="/uploads/userdirs/admin/mcith/mcith_1154686260226.jpg" alt="" width="1280" height="800"></a></p>
Я не могу использовать jquery для перебора. Может ли кто-нибудь помочь мне исправить эту проблему? или, может быть, показать мне, как работать над переписыванием дома? знак равно
Цените всю помощь!