Unë jam duke u përpjekur të pastroj disa të dhëna të prishura të karaktereve speciale (duke lejuar disa), por disa ende i kalojnë. Kam gjetur një fragment regex më herët, por nuk heq disa karaktere, si yjet.
$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)) . '...';
}
}
}
Pjesa e parë përpiqet të pastrojë çdo gjë në tekstin e papërpunuar që nuk është shenja pikësimi ose alfa numerike normale. Pastaj, e ndaj titullin në një grup dhe kërkoj një hapësirë. Ajo që dua të bëj është të krijoj një titull që të jetë së paku 15 karaktere dhe të shkurtohet në një hapësirë (duke lënë fjalë të tëra të paprekura) pa u ndalur në një karakter pikësimi. Kjo është pjesa me të cilën kam probleme.
Disa tituj ende dalin si *****************
ose ** HOW TO MAKE $$$$$$ BLOGGING **
, kur titulli i parë nuk duhet të ketë as *
, dhe seksioni duhet të jetë HOW TO MAKE...
, për shembull.