С Новым годом! Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 32

Нахождение изображений средствами php

23.03.2016, 22:16. Показов 576. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.

В выводимом контенте есть изображения. Необходимо в тегах изображения немного поменять "style", но не получается найти все картинки средствами php.

картинка выводится:
HTML5
1
<img alt="" src="/upload/images/img1.jpg" style="width: 1149px; height: 767px;" />
попытка найти все теги изображения:
PHP
1
2
3
4
5
6
7
8
9
// $str - выводимый контент
$ret=0;
$strlength = iconv_strlen($str, 'UTF-8');   // общее количество символов
for ($i=0; $i<$strlength; $i++) {               // прогоним весь текст
    if ($str[$i].$str[$i+1].$str[$i+2].$str[$i+3]=="<img") {
         $ret++;
    }
}
echo  ret;
Всего 4 картинки, ответ скрипта 2, не могу понять почему, может сможете подсказать? Или предложить иной способ нахождения и изменения стиля картинки?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
23.03.2016, 22:16
Ответы с готовыми решениями:

Вывод изображений средствами PHP
Возникла надобность вывести изображения в нечто похожее на галерею исходя из чего нашел и подстроил следующий код: $archive =...

Динамическое создание изображений средствами PHP
к примеру есть динамический баннер создаваемый на php . но есть сервисы которые закачивают к себе на свой хостинг баннере и потом и потом...

Редактор изображений - php+javascript или php+javaapplet
Требуется редактор изображений, в котором посетитель мог бы сделать уменьшенную копию картинки. Миникартинки у меня размером 100х133,...

9
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
23.03.2016, 22:23
Цитата Сообщение от kapa57 Посмотреть сообщение
Всего 4 картинки, ответ скрипта 2, не могу понять почему, может сможете подсказать?
Не можем - мы же не видим html-код в котором Вы ищите '<img'. Может быть там где то IMG вместо img, может еще чего. Кстати у Вас там ret вместо $ret.
Цитата Сообщение от kapa57 Посмотреть сообщение
Или предложить иной способ нахождения и изменения стиля картинки?
1. strlen() strpos() substr()
2. Регулярные выражения
3. DOMDocument & SimpleXML
0
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 32
23.03.2016, 22:40  [ТС]
Цитата Сообщение от pav1uxa Посмотреть сообщение
Не можем - мы же не видим html-код в котором Вы ищите '<img'. Может быть там где то IMG вместо img, может еще чего. Кстати у Вас там ret вместо $ret.
Вижу небольшую помарку, но не знаю как отредактировать сообщение.

Вот кусок кода:
HTML5
1
2
3
4
5
...кедровыми орешками. Кстати, свежесорванные и сваренные кедровые шишки &ndash; любимое лакомство детворы. Они устраивают игры-соревнования, основанные на ловкости и умении сбить шишки с дерева. Часть ребятишек увлеченно занимается рыбалкой. Но не с лодок, а с берега.<br />
&nbsp;<br />
<img alt="" src="upload/images/img2.jpg" style="width: 1149px; height: 767px;" /><br />
<br />
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Детей здесь очень любят. Родители боготворят своих чад, опекают их постоянно, но учат всему, что умеют сами. Маленьким позволяют дела...
Все теги "img" в нижнем регистре.
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
23.03.2016, 22:47
kapa57,
PHP
1
2
3
4
5
6
7
8
$ret=0;
$strlength = strlen($str);   // общее количество символов
for ($i=0; $i<$strlength-3; $i++) {               // прогоним весь текст
    if ($str[$i].$str[$i+1].$str[$i+2].$str[$i+3]=="<img") {
         $ret++;
    }
}
echo  $ret;
1
0 / 0 / 0
Регистрация: 10.10.2014
Сообщений: 32
23.03.2016, 22:55  [ТС]
Уже 4 находит. Видимо все дело в кодировке в изначальном коде?

Цитата Сообщение от kapa57 Посмотреть сообщение
$strlength = iconv_strlen($str, 'UTF-8'); * // общее количество символов
Спасибо)
0
1943 / 1768 / 825
Регистрация: 23.01.2014
Сообщений: 6,230
23.03.2016, 23:05
Цитата Сообщение от kapa57 Посмотреть сообщение
Видимо все дело в кодировке в изначальном коде?
Ну да. Можно оставить и Ваш вариант, но тогда
PHP
1
$str[$i].$str[$i+1].$str[$i+2].$str[$i+3]
заменить на
PHP
1
mb_substr($str, $i, 4, "UTF-8")
Потому что длину строки Вы высчитываете с учетом кодировки, а обращаетесь к кусочкам строки без учета кодировки. В следствии того, что некоторые символы (русские буквы например) занимают больше 1 байта, вы проходили не всю строку.
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
24.03.2016, 00:21
Почему регулярку не используете??
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
24.03.2016, 02:32
Цитата Сообщение от 53ifbb Посмотреть сообщение
Почему регулярку не используете??
Используем
PHP
1
2
3
4
5
6
$a ="<img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' /> dwdwdwfwefewf
<img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' />
wf <img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' /> wfwefwefwefwe f <img <img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' />
";
    preg_match_all("~(?<=<)img~",$a,$m);
    echo count($m[0]);
0
55 / 55 / 21
Регистрация: 01.03.2016
Сообщений: 594
24.03.2016, 07:15
Azdeman, находит 5 картинок, в коде 3 всего
еще сплю, может не хорошо работать
PHP
1
preg_match_all("/<img.+src\s+\=\s+\'(.+)\'.+\>/si",$a,$m);
0
Фрилансер
Эксперт PythonЭксперт JSЭксперт PHP
 Аватар для Azdeman
1871 / 1362 / 604
Регистрация: 12.01.2011
Сообщений: 5,470
24.03.2016, 09:41
Цитата Сообщение от 53ifbb Посмотреть сообщение
в коде 3 всего
вы уверены?
PHP
1
2
3
4
5
6
$a ="<img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' /> .//1
<img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' />//2
<img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' /> //3
<img //4
<img alt='' src='/upload/images/img1.jpg' style='width: 1149px; height: 767px;' />5//
";
Добавлено через 3 минуты
Цитата Сообщение от 53ifbb Посмотреть сообщение
preg_match_all("/<img.+src\s+\=\s+\'(.+)\'.+\>/si",$a,$m);
Я регулярку написал на быструю руку но, она ищет норм.. 4 img с ошибкой но думаю у ТС такого не будет
Цитата Сообщение от Azdeman Посмотреть сообщение
<img //4
P.S.У вас регулярка не совсем верная.
src\s+\=\s+
например в этой части
после src пробела может и не быть а вы обязываете что будет хотябы 1 пробел
src='img/img'
вот так не пройдет в вашей регулярке.
src\s*\=\s*
а вот так пройдет.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
24.03.2016, 09:41
Помогаю со студенческими работами здесь

Файл с кодом php средствами php
Товарищи! Есть задача при помощи php кода (например, файл 1.php) создавать файл с php кодом и записывать его на сервер (например, 2.php)....

Средствами PHP и с использованием ООП php создать реализацию следующего интерфейса:
interface ArrayHelperInterface extends IteratorAggregate, ArrayAccess, Countable { /** * @param...

Обрезка, поворот изображений средствами Oracle
Здравствуйте! Подскажите, пожалуйста, как осуществить обрезку и поворот изображений в Oracle. Само приложение написано на Jave,...

Построение графических изображений средствами BGI-графики.
Построить динамическое графическое изображение: ползущий питон. Prolog 2.0 Помоги плиз,я в этом ничего не понимаю, но очень...

Нахождение суммы средствами sql
есть запрос нахождения суммы по полю SELECT SUM(column_name) FROM table_name как переменной i присвоить найденное значение суммы?


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути
Programma_Boinc 01.01.2026
Учёным и волонтёрам проекта «Einstein@home» удалось обнаружить четыре гамма-лучевых пульсара в джете Млечного Пути Сочетание глобально распределённой вычислительной мощности и инновационных. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru