Я утверждаю, что я не эксперт по регулярному выражению, но я пытаюсь создать код, основанный на некоторых примерах, найденных здесь. Мне нужно заменить строку <li>
на строку <li class="ingredient">
в таблице WordPress. Это изменение, однако, должно выполняться только для текста между [ingredients title = XXXX]
и [/ingredient]
.regex/php код для замены текста между двумя тегами
Я написал этот код PHP, он работает, но он удаляет замену [ingredients
и [/ ingredients]
.
Потому что, как я уже сказал, они не очень опытные в этой области, кто-нибудь может помочь мне в изменении кода, чтобы сделать то, что мне нужно?
Это мой PHP скрипт:
<?php
$connection = mysql_connect("mysql.xxxxxxxxx","xxxxx","xxxxxxxx");
$db = mysql_select_db ("xxxxxxx");
$sql = "SELECT ID,post_content FROM wp_7pchjn_posts";
$result = mysql_query($sql);
while ($row = mysql_fetch_assoc($result))
{
$id = $row['ID'];
$search= $row['post_content'];
if (strpos($search,'[ingredients') !== false) {
$text = preg_replace_callback("/\[ingredients(.*?)\[\/ingredients\]/ism", function($match) {
return str_replace("<li>", "<li class=\"ingredient\">", $match[1]);
}, $search);
$sql = "UPDATE yourtable set post_content='".$text."' where id='".$id."'";
mysql_query($sql);
}
}
mysql_close();
?>
Почему вниз голосование ?! – revo