segazav
7.05.2015 - 15:33
Необходимо удалить из строки все, кроме цифр, тире, пробелов и слов более 3-х символов.
И затем заменить все пробелы на запятую с пробелом.
$stroka = preg_replace("/[^a-zA-ZА-Яа-я0-9-\s]/","",$myrow['zagolovok']); $stroka = preg_replace("/\s+/",", ",$stroka); echo $stroka;
Все нормально работает, но не могу сделать удаление слов (кроме цифр) менее 3-х символов
$stroka = explode(" ", $stroka);
foreach($stroka as $k=>$v)if($v != "-" and strlen($v)<=3)unset($stroka[$v]);
$stroka = implode(" ", $stroka);
_____________
Бесплатному сыру в дырки не заглядывают...
Игорь_Vasinsky
7.05.2015 - 16:23
$str = 'You can 2 test your 31 PHP code here 12 on many php-versions.';
preg_match_all("#(\d+|(?<!\w)\w{3}(?!\w)|\-)#ius", $str, $m);
echo implode(", ", $m[0]);
Цитата |
You, can, 2, 31, PHP, 12, php, - |
но проверить бы на нескольких вариантах строк. чёт подозрительно мне
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
segazav
7.05.2015 - 16:35
Цитата (Игорь_Vasinsky @ 7.05.2015 - 12:23) |
$str = 'You can 2 test your 31 PHP code here 12 on many php-versions.'; preg_match_all("#(\d+|(?<!\w)\w{3}(?!\w)|\-)#ius", $str, $m);
echo implode(", ", $m[0]);
Цитата | You, can, 2, 31, PHP, 12, php, - |
но проверить бы на нескольких вариантах строк. чёт подозрительно мне
|
<meta name="keywords" content="<?php $stroka = $myrow['zagolovok']; preg_match_all("#(\d+|(?<!\w)\w{3}(?!\w)|\-)#ius", $stroka, $keywords); echo implode(",", $keywords[0]); ?>">
Просто пустая строка
Игорь_Vasinsky
7.05.2015 - 16:41
какую строку парсишь?
_____________
HTML, CSS (Bootstrap), JS(JQuery, ExtJS), PHP, MySQL, MSSql, Posgres, (TSql, BI OLAP, MDX), Mongo, Git, SVN, CodeIgnater, Symfony, Yii 2, JiRA, Redmine, Bitbucket, Composer, Rabbit MQ, Amazon (SQS, S3, Transcribe), Docker
segazav
7.05.2015 - 16:42
Цитата (FatCat @ 7.05.2015 - 12:19) |
$stroka = explode(" ", $stroka); foreach($stroka as $k=>$v)if($v != "-" and strlen($v)<=3)unset($stroka[$v]); $stroka = implode(" ", $stroka); |
$stroka = preg_replace("/[^a-zA-ZА-Яа-я0-9-\s]{3,}/","",$myrow['zagolovok']); $stroka = preg_replace("/\s+/"," ",$stroka); $stroka = explode(" ", $stroka); foreach($stroka as $k=>$v)if($v != "-" and strlen($v)<=3) unset($stroka[$v]); $stroka = implode(", ", $stroka); echo $stroka;
Если строка: Аккумуляторная батарея IKUSI BT24K, BT06K, BT12
Результат: Аккумуляторная, батарея, IKUSI, BT24K,, BT06K,, BT12