我在mysql表中有一個字段Product_description
,它有html標籤。我想用除去br
以外的html標籤更新此字段。我知道我可以用strip_tag
來做到這一點,但我不明白如何完成這個表格數據。如何從mysql數據中刪除除了<br>之外的html標記?
1
A
回答
5
要刪除所有標籤,但<br>
從文本,你的確可以使用strip_tags:
$var = strip_tags($html, '<br>');
看到一個例子here。
從文檔:
您可以使用可選的第二個參數來指定哪些不應該被剝奪的標籤。
要從持續的數據(並不意味着多次運行)刪除它們,你可以創建一個沉重的運行腳本使用一次,並更新值。像這樣的:(您可能需要使用trim太)
$con = new mysqli('localhost', 'username', 'password', 'database_name');
$stmt = $con->query('SELECT * FROM table_name');
while($row = $stmt->fetch_assoc()){
$stmt2 = $con->prepare('UPDATE table_name set Product_description = ? WHERE Product_id = ?');
$tmp = strip_tags($row['Product_description'], '<br>');
$stmt2->bind_param("si", $tmp, $row['Product_id']);
$stmt2->execute();
}
該腳本會爲你只運行一次,所以它的(可以說)確定如果它的速度慢...
1
爲只是一個標籤,你可以做到這一點查詢
UPDATE `TABLE` SET column1 = REPLACE(column1, '<br>', '');
或使功能帶所有的HTML標籤,如本例中
CREATE FUNCTION `strip_tags`($str text) RETURNS text
BEGIN
DECLARE $start, $end INT DEFAULT 1;
LOOP
SET $start = LOCATE("<", $str, $start);
IF (!$start) THEN RETURN $str; END IF;
SET $end = LOCATE(">", $str, $start);
IF (!$end) THEN SET $end = $start; END IF;
SET $str = INSERT($str, $start, $end - $start + 1, "");
END LOOP;
END;
該功能發現from
1
創建功能使用下面的代碼:
DROP FUNCTION IF EXISTS fnStripTags;
DELIMITER |
CREATE FUNCTION fnStripTags(Dirty varchar(4000))
RETURNS varchar(4000)
DETERMINISTIC
BEGIN
DECLARE iStart, iEnd, iLength int;
WHILE Locate('<', Dirty) > 0 And Locate('>', Dirty, Locate('<', Dirty)) > 0 DO
BEGIN
SET iStart = Locate('<', Dirty), iEnd = Locate('>', Dirty, Locate('<', Dirty));
SET iLength = (iEnd - iStart) + 1;
IF iLength > 0 THEN
BEGIN
SET Dirty = Insert(Dirty, iStart, iLength, '');
END;
END IF;
END;
END WHILE;
RETURN Dirty;
END;
|
DELIMITER ;
,並執行以下查詢:
SELECT fnStripTags('this <html>is <b>a test</b>, nothing more</html>');
+0
這不會解決用戶發出的'br'標籤問題 –
相關問題
- 1. 從asp.net中刪除除<a>之外的html標記
- 2. 如何刪除除了每個標籤之外的文本以外的HTML標記?
- 3. 從文本中刪除除<br>以外的所有HTML標記?
- 4. PHP - 從字符串中刪除HTML標籤除了<img>
- 5. PhantomJS從html快照中刪除腳本標記,除了「json + ld」
- 6. 清除除了所選標記之外的所有標記
- 7. 去除除錨定標記之外的所有HTML標記
- 8. 刪除除標記外的所有html標記
- 9. 從MySQL數據庫中刪除記錄
- 10. 在MySql中刪除除了一個之外的所有表格
- 11. 從xml中刪除<xmp>標記
- 12. jquery從<img>標記中刪除'/'?
- 13. 如何從sql表中刪除除重複記錄之外的重複記錄?
- 14. 如何從數據庫記錄中刪除¶(pilcrow)標記
- 15. 從MYSQL中刪除數據
- 16. 從Google地圖中刪除HTML標記
- 17. 從html中刪除if和endif標記
- 18. 從字符串中刪除html標記
- 19. 從字符串中刪除html標記
- 20. 從文本中刪除ahref標記mysql
- 21. 如何刪除數據庫之間的MySQL記錄
- 22. 如何從HTML表中刪除記錄?
- 23. 如何使用AJAX刪除HTML行並從MySQL數據庫中刪除條目?
- 24. 如何從SSIS中的目標數據庫中刪除記錄
- 25. 如何從android中的sqlite數據庫中刪除html標籤?
- 26. 如何從標籤中刪除數據
- 27. 如何使用mongodb從html文檔中刪除html標記
- 28. 從MySQL中刪除外鍵
- 29. 刪除<br />標記
- 30. 如何從表中刪除所有內容,除了MySQL中的1項外?
您可以使用PHP'用strip_tags($文本, '
')' –
是的,但表中有15000個產品說明,我想更新它們呢? – webbed