powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему не работает функция?
1 сообщений из 1, страница 1 из 1
Почему не работает функция?
    #39611277
Alibek B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне нужен аналог функции PHP html_entity_decode() в MySQL.
Сделал так:
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
CREATE FUNCTION `html_entity_decode`(
	`HTML` VARCHAR(255)
)
RETURNS VARCHAR(255)
LANGUAGE SQL
DETERMINISTIC
CONTAINS SQL
SQL SECURITY DEFINER
COMMENT 'PHP html_entity_decode()'
BEGIN
DECLARE STR VARCHAR(255);
DECLARE ENT VARCHAR(2000);
DECLARE V VARCHAR(20);
DECLARE I INT;
DECLARE I0 INT;
DECLARE E INT;
SET ENT = '&quot;" &apos;\' &amp;& &lt;< &gt;> ...';
SET STR = HTML;
SET I0 = 1;
LOOP1: WHILE I0 > CHAR_LENGTH(STR) DO
	SET I = LOCATE('&', STR, I0);
	IF (I = 0) THEN
		SET I0 = CHAR_LENGTH(STR) + 1;
		ITERATE LOOP1;
	END IF;
	SET E = LOCATE(';', STR, I+1);
	IF (E = 0) THEN
		SET I0 = CHAR_LENGTH(STR) + 1;
		ITERATE LOOP1;
	END IF;
	SET V = SUBSTR(STR, I, E-I+1);
	SET I = LOCATE(V, ENT);
	IF (I > 0) THEN
		SET STR = CONCAT(MID(STR, 1, I-1), MID(ENT, I+CHAR_LENGTH(V),1), MID(STR, E+1));
		SET E = I;
	END IF;
	SET I0 = E + 1;
	RETURN V;
END WHILE;
RETURN STR;
END


Но почему-то функция не работает (не заменяет сущности на текст).
DETERMINISTIC я пробовал убирать, ничего не меняется.
...
Рейтинг: 0 / 0
1 сообщений из 1, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему не работает функция?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]