Regex для ГЕНЕРАЦИИ миниатюр!?!?! (но это является сумасшедшим!)

Таким образом, вот моя ситуация и решение, которое я предложил для решения проблемы. Я создал приложение, которое включает TinyMCE, чтобы позволить пользователям создавать содержимое HTML для публикации. Пользователь может включать изображения в их разметку и перетащить/изменить размер те изображения, влияющие на заключительные атрибуты Ширины/Высоты в теге img. Это - все великое, пользователи могут включать изображения и изменить размер/переместить их к их желаемому появлению. Но одна большая проблема состоит в том, что я теперь отправляю (возможно) много увеличенного изображения клиенту, только чтобы иметь браузер изменяют размер изображения в требуемые атрибуты Ширины/Высоты. Вся эта пропускная способность и потерянное время загрузки....

Таким образом, мое решение состоит в том, чтобы предварительно обработать мое пользовательское содержание разметки, сканируя все теги img и анализируя атрибуты Height/Width/Src. Затем установите тег SRC каждого img на запрос phpThumb с проанализированной Высотой/Шириной, переданной в URL миниатюр. Это создаст мое уменьшенное изображение размера (оптимизирующий пропускную способность за счет ЦП и кэширующийся). Что Вы думаете об этом решении? Я видел другие сообщения, где люди использовали mod_rewrite, чтобы сделать что-то подобное, но я хочу влиять на содержание на сервисе страницы и не управлять запросами изображения, поскольку они получаются..... Какие-либо мысли об этом дизайне?

Я нуждаюсь в некоторой помощи с мелкими деталями, поскольку моим regex навыкам нужна некоторая работа, но я очень короток вовремя и обещание скоро оплатить мой долг технических знаний. Для создания regex's легче я могу быть уверен в некоторых вещах. Только теги img, для которых нужна эта обработка, будут иметь существующую ширину = "" высота = "" атрибуты (с двойными кавычками и понизят текст в корпусе, но я предполагаю, что соответствие нечувствительному к регистру тексту было бы лучше, если TinyMCE изменяется),

Так regex для соответствия только необходимым тегам img, и возможно еще три regex's для извлечения src, ширины и высоты?

Спасибо все.

6
задан Mike Dinescu 28 April 2010 в 17:05
поделиться

3 ответа

Я думаю, что использование регулярных выражений для этого - плохая идея, и вам лучше разобрать его, используя что-то вроде PHP Simple HTML DOM Parser , то вы можете сделать что-то вроде:

// Load HTML from a string
$html->load($your_posted_content);

// Find all images 
foreach($html->find('img') as $element) 
       echo $element->src . '<br>';
3
ответ дан 17 December 2019 в 07:01
поделиться

Попробуйте следующее:

(? I) \ S + (?> Src = "([^"] *) "| width = "([^"] *) "| height =" ([^ "] *)" | \ w + = "[^"] * ")) +

Это будет соответствовать любому тегу изображения, и если Атрибуты src , width и height присутствуют, их значения будут храниться в группах 1, 2 и 3 соответственно. Но для не требуется наличия каких-либо из этих атрибутов, поэтому перед обработкой вы захотите убедиться, что все три группы содержат значения.

1
ответ дан 17 December 2019 в 07:01
поделиться

Вообще говоря, RegEx не подходит для синтаксического анализа HTML .. Но в вашем случае вы можете обойтись без него, если вы ограничиваете область действия очень узкой (т.е. ищете только ] width = ".." и height = ".." атрибуты .. или что-то в этом роде).

Лучшим решением может быть передача содержимого из TinyMCE асинхронно, за сценой, и обработка его на стороне сервера с помощью подходящего парсера HTML / XML, а затем обновление содержимого редактора, как только это будет сделано.

0
ответ дан 17 December 2019 в 07:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: