Я пытаюсь очистить некоторые ненужные данные от специальных символов (позволяя нескольким), но некоторые все еще проходят.Ранее я обнаружил фрагмент регулярного выражения, но не удаляет некоторые символы, например звездочки.
$clean_body = $raw_text;
$clean_title = preg_replace("/[^!&\/A-Za-z0-9_ ]/","", $clean_body);
$clean_title = substr($clean_title, 0, 64);
$clean_body = nl2br($clean_body);
if ($nid) {
$node = node_load($nid);
unset($node->field_category);
} else {
$node = new stdClass();
$node->type = 'article';
node_object_prepare($node);
}
$split_title = str_split($clean_title);
foreach ($split_title as $key => $character) {
if ($key > 15) {
if ($character == ' ' && !preg_match("/[^!&\/,.-]/", $split_title[$key - 1])) {
$node->title = html_entity_decode(substr(strip_tags($clean_title), 0, $key - 1)) . '...';
}
}
}
Первая часть пытается очистить текст в необработанном тексте от обычной пунктуации или буквенно-цифровых символов.Затем я делю заголовок на массив и ищу пробел.То, что я хочу сделать, это создать заголовок длиной не менее 15 символов, который усекается в пробеле (оставляя целые слова без изменений), не останавливаясь на знаке препинания.Это часть, с которой у меня возникают проблемы.
Некоторые названия все еще выходят как *****************
или ** HOW TO MAKE $$$$$$ BLOGGING **
, когда первый заголовок не должен даже иметь *
, а раздел должен быть HOW TO MAKE...
, например.