PDA

View Full Version : Sử dụng regex để xóa tiêu đề bài viết wordpress ?



Micheal7
30-05-2013, 14:15
Mỗi bài viết của mình có dạng : In x .... (x là một số có giá trị từ 1 đến 1000)

Ví dụ:

In 10 xin chao ----> xóa "In 10"
In 100 xin chao cac ban ---------> xóa "In 100"

Vậy làm thế nào để xóa chuỗi In x vậy các bạn ? Mình đã thử trên phpmyadmin nhưng mà không được ? Các bạn giúp mình nhé !

Mình tìm hiểu thì biết là dùng hàm preg_replace của php gì đó. Nhưng mà mình chẳng biết code gì cả nên hy vọng các bạn giúp mình ! Cảm ơn các bạn nhiều !

su47
30-05-2013, 14:40
UPDATE wp_post SET title = X_REG_REPLACE ( `title` , '/^In 1(0*)0$/', '' );

Micheal7
30-05-2013, 14:59
Cảm ơn bạn !

Nhưng mà nó thông báo


#1305 - FUNCTION micheal7_db1.X_REG_REPLACE does not exist

thanchetkenjin
30-05-2013, 15:08
SELECT title from .... WHERE ...
$result = ...
foreach... hoặc while...
$str_replace = preg_match("/IN \[0-9]{1,4}+)@i",$row, $str);
$row = preg_replace($str[0], '', $row);
UPDATE title ....

Micheal7
30-05-2013, 15:36
SELECT title from .... WHERE ...
$result = ...
foreach... hoặc while...
$str_replace = preg_match("/IN \[0-9]{1,4}+)@i",$row, $str);
$row = preg_replace($str[0], '', $row);
UPDATE title ....

Cảm ơn bạn ! Nhưng mình vẫn chưa hiểu lắm ! Bạn có thể ghi chi tiết hơn được không ?

thanchetkenjin
30-05-2013, 18:19
Lấy title từ database,
từng kết quả được gán cho $row
sử dụng preg_match để tìm trong $row có IN *** ko
có thể sử dụng điều kiên if($str[0]) hoặc if($str[0]!==NULL) để xem có kết quả trả về ko
sử dụng str_replace để replace cái In *** = ''
Update lại database

tips4all
30-05-2013, 19:07
$result = preg_replace('/in \d+/ism','',$title);

good luck!

Micheal7
30-05-2013, 22:39
SELECT wp_posts.post_title FROM wp_posts Where wp_posts.post_status = 'publish'
$result = preg_replace('/In \d+ /','',$title);
UPDATE wp_post SET post_content = $result

Mình code như này nhưng nó báo lỗi

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '$result = preg_replace('/In \d+ /','',$title)' at line 2

Các bạn giúp mình với nhé !

joctvn
30-05-2013, 23:35
nếu Site của bạn ko quá nặng thì bạn có thể Export cái bảng wp_post gì gì đó ra rồi dùng Notepat( một số cái mình viết chính xác tên tiếng anh đc hi) mà replace cũng đc, ctrl + H :D

Micheal7
01-06-2013, 22:38
nếu Site của bạn ko quá nặng thì bạn có thể Export cái bảng wp_post gì gì đó ra rồi dùng Notepat( một số cái mình viết chính xác tên tiếng anh đc hi) mà replace cũng đc, ctrl + H :D

Dữ liệu mình vừa nặng lại vừa nhiều website. Làm như thế này cũng hơi vất :D