Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему не работает функция? / 1 сообщений из 1, страница 1 из 1
06.03.2018, 15:22
    #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
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Почему не работает функция? / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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