Как поймать изображения с пустыми размерами?

Я создал Плагин WordPress что вставляет width а также height атрибуты для всех изображений, например:

<img src="https://placehold.it/100x50">
- to -
<img src="https://placehold.it/100x50" width="100" height="50">

Тем не менее, когда есть изображения, которые имеют пустые размеры (для обоих width а также height), мой код не ловит его, например:

<img src="https://placehold.it/100x50" width="" height="">

Однако, когда есть только одно пустое измерение, мой плагин ловит его. Следующие два примера будут работать:

<img src="https://placehold.it/100x50" width="">
<img src="https://placehold.it/100x50" height="">

Вот исходный код. По строке 43 (#), это логика, которую я использую, чтобы определить, отсутствует ли изображение width/height:

if ( ! in_array( 'width', $img[1] ) || ! in_array( 'height', $img[1] ) ) {

Я пробовал следующую обновленную логику, но она не работает:

if ( # Images with no width/height
! in_array( 'width', $img[1] ) || ! in_array( 'height', $img[1] ) ||
# Images with blank width/height
( in_array( 'width', $img[1] ) && in_array( '""', $img[1] ) ) || ( in_array( 'height', $img[1] ) && in_array( '""', $img[1] ) )
) {

Я в правильном районе? Что я делаю не так в своей логике?

1

Решение

Не было бы width="" часть <img ... width=""> результат в строках width а также "" как элементы для $img? Что является совпадением, и непустым в этом, так что ! in_array вероятно, здесь не так.

Ваш код был бы выполнен, если бы вообще не было атрибутов width / height.

Просто проверьте конкретные значения соответствия для всех ширин и высот, и реагируйте так же, как в вашем коде, если он оценивается как строка ""

edit: Ваша обновленная логика предполагала, что две захваченные группы представляют собой одну строку, но это не так. Так что вместо in_array( 'width=""', $img[1] ) вам нужно (in_array( 'width', $img[1] ) and in_array( '""', $img[1] ))плюс то же самое по высоте соответственно.

0

Другие решения

Я ищу значение в 1 Индекс, где я должен был посмотреть в 2 индекс, который содержит значения:

if ( # Images with no width/height
! in_array( 'width', $img[1] ) || ! in_array( 'height', $img[1] ) ||
# Images with blank width/height
( in_array( 'width', $img[1] ) && in_array( '""', $img[2] ) ) || ( in_array( 'height', $img[1] ) && in_array( '""', $img[2] ) )
) {
0

По вопросам рекламы [email protected]