Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> поиск и добавление альтов 
:(
    Опции темы
z-END
Дата 27.2.2007, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Пользуюсь WYSIWYG редактором SPAW первой версией.. а он засранец выдает не валидный код.. вообщем все по мелочи за ним подправил, но осталась одна проблема.. при добавлении картинки, если не написать описание, то он не добавляет к нему alt="" а это не есть гуд...
я написал небольшую ф-цию, которая добавляет их, но что-то мне подсказывает, что есть вариант гораздо проще.. (например регэкспом который я совсем незнаюsmile )
Код

function AddAlt ($html, $alt="<!--#TITLE#-->"){
    $go = true;
    $start = 0;
    $inc = strlen ($alt) + 2;
    $time_start = time();
    while ($go) {
          $low = strtolower ($html);
          if (strpos ($low, "<img", $start) === false) {
                $go=false;
                continue;
            }
          $start = strpos ($low, "<img", $start);
          $end = strpos ($low, ">", $start);
          $tag = substr ($low, $start, $end - $start);
          if (strpos ($tag, 'alt=') === false) {
                $html = substr ($html, 0, $end)."alt='".$alt."'".substr ($html,$end);                
          }
         $start = $end + $inc; 
        if ((time()-$time_start)>5) $go=false;
    }
return $html;
}

есть мысли?


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
mishaSL
Дата 27.2.2007, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Участник Клуба
Сообщений: 1046
Регистрация: 10.1.2007
Где: Санкт-Петербург

Репутация: 9
Всего: 54



Как вариант:
Код

<?php
$str = 'Текст текст <img src=""> <img src="" alt=""> 
<img src=""> текст';
print preg_replace('/(<img[^<>alt]*)>/i', '$1 alt="">', $str);
?>



--------------------
Лучший способ научиться программированию - это посмотреть как это делают другие...
PM MAIL   Вверх
z-END
Дата 27.2.2007, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Код
$str = '<P><IMG src="/site-imgs/top_logo.jpg"></P>';

ниработает smile


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
PARROT
Дата 27.2.2007, 18:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Экс. модератор
Сообщений: 2339
Регистрация: 5.1.2005
Где: Спб-ЦарьГрад

Репутация: нет
Всего: 50



Код

$str = preg_replace("/img src=\"[^\"]+\"/", "\\0 alt=\"\"", $str);



--------------------
Безумный утешается прошедшим, слабоумный - будущим, умный - настоящим!
PM MAIL   Вверх
z-END
Дата 27.2.2007, 18:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



ничиво не понимаюsmile
Код

$str = '<P><IMG src="/site-imgs/top_logo.jpg"></P>';
$str = preg_replace("/img src=\"[^\"]+\"/", "\\0 alt=\"\"", $str);
die( htmlspecialchars ($str));

результат:
Цитата
<P><IMG src="/site-imgs/top_logo.jpg"></P>



--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
IZ@TOP
Дата 27.2.2007, 18:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 2
Всего: 73



Неужели сложно, в конце регулярки добавить модификатор "i"?


--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
z-END
Дата 27.2.2007, 18:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(IZ@TOP @  27.2.2007,  19:20 Найти цитируемый пост)
Неужели сложно, в конце регулярки добавить модификатор "i"?

знал бы давно добавилsmile

Код
$str = '<P><IMG src="/site-imgs/top_logo.jpg"><img src="/site-imgs/top_logo.jpg"alt=\'\'></P>';
$str = preg_replace("/img src=\"[^\"]+\"/i", "\\0  alt=\"<!--#TITLE--#>\"", $str);    
die( htmlspecialchars ($str));
 
тут лишний альт вылез... вообщем пришел я к тому что буду своей ф-цией пользоватьсяsmile


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
IZ@TOP
Дата 27.2.2007, 18:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Панда-бир!
****


Профиль
Группа: Участник
Сообщений: 4795
Регистрация: 3.2.2003
Где: Бамбуковый лес

Репутация: 2
Всего: 73



Нет, ну если у тебя есть и с альтами и без (если исключительно без), тогда просто тег меняй и все будет хорошо:

Код

$str = preg_replace("/(<img src=\"[^\"]+\"\/?)>/i", "\\1  alt=\"<!--#TITLE--#>\" />", $str);



--------------------
Один из розовых плюшевых-всадников апокалипсиса... очень злой...

Семь кругов ада для новых элементов языка
Мои разрозненные мысли
PM MAIL WWW ICQ Skype GTalk   Вверх
Mal Hack
Дата 27.2.2007, 20:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Мудрый...
****


Профиль
Группа: Участник Клуба
Сообщений: 9926
Регистрация: 15.2.2004

Репутация: 16
Всего: 261



z-END, готов поспорить, что надо просто неайти кусок кода добавления картинки и та две строчки дописать.
PM ICQ   Вверх
S.A.P.
Дата 27.2.2007, 21:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Оффтоп:

z-END, если мне не изменят память, то с точки зрения XHTML тег img без атрибута alt как раз таки и является невалидным!
PM MAIL   Вверх
z-END
Дата 28.2.2007, 12:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прафесар™
****


Профиль
Группа: Комодератор
Сообщений: 3014
Регистрация: 13.3.2003
Где: Венья, Пиетари

Репутация: нет
Всего: 102



Цитата(S.A.P. @  27.2.2007,  22:29 Найти цитируемый пост)
z-END, если мне не изменят память, то с точки зрения XHTML тег img без атрибута alt как раз таки и является невалидным!

дык мы и боремсо за валидностьsmile
Цитата(Mal Hack @  27.2.2007,  21:14 Найти цитируемый пост)
z-END, готов поспорить, что надо просто неайти кусок кода добавления картинки и та две строчки дописать

Ы! где ж ты раньше был?! smile наверно это самый правильный вариантsmile


--------------------
Каждый чилавек пасвоему праф...а памоему НЕТ! 

PM WWW ICQ   Вверх
S.A.P.
Дата 28.2.2007, 22:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2664
Регистрация: 11.6.2004

Репутация: нет
Всего: 71



Цитата(z-END @  28.2.2007,  12:58 Найти цитируемый пост)
дык мы и боремсо за валидность

да, что - то я не выспался вчера.

вот это работает.
Код

$str = '<P><IMG src="/site-imgs/top_logo.jpg"></P>';
function img_alt_fix ($t)
{
    return $t[1].(strpos($t[1], 'alt="') === FALSE ? ' alt=""' : '').'>';
}
echo preg_replace_callback('#(<img [^>]*)>#mi', 'img_alt_fix', $str);

PS. сегодня я выспался.

А с Mal Hack я согласен, лучше жабаскрипт растачивать.

Это сообщение отредактировал(а) S.A.P. - 28.2.2007, 22:53
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0580 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.