可能基於以下問題:Best way to strip html tags from a string in sql server?從MySQL數據庫列中的數據中剝離HTML
想到我是一個noob。我有一個數據在其中的領域。我需要從這個列中去掉html,並且我知道有一個PHP函數可以實現這個功能。我該如何在我的SQL數據庫中執行此操作?
我爲查詢輸入了什麼內容?從表格中選擇我的專欄(我稱之爲專業領域)......然後呢?
可能基於以下問題:Best way to strip html tags from a string in sql server?從MySQL數據庫列中的數據中剝離HTML
想到我是一個noob。我有一個數據在其中的領域。我需要從這個列中去掉html,並且我知道有一個PHP函數可以實現這個功能。我該如何在我的SQL數據庫中執行此操作?
我爲查詢輸入了什麼內容?從表格中選擇我的專欄(我稱之爲專業領域)......然後呢?
使用strip_tag()
功能
// assuming that you're using MySQL
$result = mysqli_query("SELECT column FROM table");
while ($row = mysqli_fetch_array($result)) {
echo strip_tags($row['column']) . '<br />';
}
,或者使用preg_replace()
功能和這個簡單的正則表達式<[^>]*>
echo preg_replace('/<[^>]*>/', '', $row['column']);
Recomended方法:strip_tags()
功能在這種情況下。它有兩個論點;第一個是文本本身,第二個包含allowed tags
;因此,舉例來說,如果你想保持<a>
和清潔一切您只需使用它像這樣:
strip_tags($text, '<a>');
我不是MS SQL用戶,但正如我所看到的您發佈的鏈接。它在那裏解釋。您只需通過粘貼該代碼即可創建一個功能。
//Function From the Link Given in Question
CREATE FUNCTION [dbo].[udf_StripHTML]
(@HTMLText VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
DECLARE @Start INT
DECLARE @End INT
DECLARE @Length INT
SET @Start = CHARINDEX('<',@HTMLText)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
WHILE @Start > 0
AND @End > 0
AND @Length > 0
BEGIN
SET @HTMLText = STUFF(@HTMLText,@Start,@Length,'')
SET @Start = CHARINDEX('<',@HTMLText)
SET @End = CHARINDEX('>',@HTMLText,CHARINDEX('<',@HTMLText))
SET @Length = (@End - @Start) + 1
END
RETURN LTRIM(RTRIM(@HTMLText))
END
GO
我想你可以使用上面的函數使用這樣的查詢。
select * from table where dbo.udf_StripHTML(Content1) like ‘%Hello%’
即時通訊不知道上述查詢,但我認爲它會是這樣的。然而,上面的函數定義,只是嘗試在查詢中使用,可能會解決您的問題。
謝謝,但粘貼在哪裏? – ObiWanKobi 2014-08-29 12:36:52
@ObiWanKobi在你的代碼中的某處..它在查詢之上,因爲如果你去使用你尚未定義的函數,你將會有一段糟糕的時間。 – 2014-08-29 12:38:45
您可以選擇從某種類型的ID一起最好的表中的列。然後清理它們,然後更新它們,這是id派上用場的地方。所以你會知道你正在更新正確的行。 – Rimble 2014-08-29 12:17:22
將事物放入數據庫之前,去除HTML會更容易嗎? – 2014-08-29 12:18:42
我假設你沒有使用SQL-Server,因爲那個問題解釋瞭如何在那裏完成。你使用的是什麼DBMS? – Barmar 2014-08-29 12:20:16