Таким образом, вот моя ситуация и решение, которое я предложил для решения проблемы. Я создал приложение, которое включает TinyMCE, чтобы позволить пользователям создавать содержимое HTML для публикации. Пользователь может включать изображения в их разметку и перетащить/изменить размер те изображения, влияющие на заключительные атрибуты Ширины/Высоты в теге img. Это - все великое, пользователи могут включать изображения и изменить размер/переместить их к их желаемому появлению. Но одна большая проблема состоит в том, что я теперь отправляю (возможно) много увеличенного изображения клиенту, только чтобы иметь браузер изменяют размер изображения в требуемые атрибуты Ширины/Высоты. Вся эта пропускная способность и потерянное время загрузки....
Таким образом, мое решение состоит в том, чтобы предварительно обработать мое пользовательское содержание разметки, сканируя все теги img и анализируя атрибуты Height/Width/Src. Затем установите тег SRC каждого img на запрос phpThumb с проанализированной Высотой/Шириной, переданной в URL миниатюр. Это создаст мое уменьшенное изображение размера (оптимизирующий пропускную способность за счет ЦП и кэширующийся). Что Вы думаете об этом решении? Я видел другие сообщения, где люди использовали mod_rewrite, чтобы сделать что-то подобное, но я хочу влиять на содержание на сервисе страницы и не управлять запросами изображения, поскольку они получаются..... Какие-либо мысли об этом дизайне?
Я нуждаюсь в некоторой помощи с мелкими деталями, поскольку моим regex навыкам нужна некоторая работа, но я очень короток вовремя и обещание скоро оплатить мой долг технических знаний. Для создания regex's легче я могу быть уверен в некоторых вещах. Только теги img, для которых нужна эта обработка, будут иметь существующую ширину = "" высота = "" атрибуты (с двойными кавычками и понизят текст в корпусе, но я предполагаю, что соответствие нечувствительному к регистру тексту было бы лучше, если TinyMCE изменяется),
Так regex для соответствия только необходимым тегам img, и возможно еще три regex's для извлечения src, ширины и высоты?
Спасибо все.
Я думаю, что использование регулярных выражений для этого - плохая идея, и вам лучше разобрать его, используя что-то вроде 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>';
Попробуйте следующее:
(? I) \ S + (?> Src = "([^"] *) "| width = "([^"] *) "| height =" ([^ "] *)" | \ w + = "[^"] * ")) +
Это будет соответствовать любому тегу изображения, и если Атрибуты src
, width
и height
присутствуют, их значения будут храниться в группах 1, 2 и 3 соответственно. Но для не требуется наличия каких-либо из этих атрибутов, поэтому перед обработкой вы захотите убедиться, что все три группы содержат значения.
Вообще говоря, RegEx не подходит для синтаксического анализа HTML .. Но в вашем случае вы можете обойтись без него, если вы ограничиваете область действия очень узкой (т.е. ищете только ] width = ".."
и height = ".."
атрибуты .. или что-то в этом роде).
Лучшим решением может быть передача содержимого из TinyMCE асинхронно, за сценой, и обработка его на стороне сервера с помощью подходящего парсера HTML / XML, а затем обновление содержимого редактора, как только это будет сделано.