[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Убрать все, кроме цифр и слов более 3-х символов
segazav
Необходимо удалить из строки все, кроме цифр, тире, пробелов и слов более 3-х символов.
И затем заменить все пробелы на запятую с пробелом.

$stroka = preg_replace("/[^a-zA-ZА-Яа-я0-9-\s]/","",$myrow['zagolovok']); $stroka = preg_replace("/\s+/",", ",$stroka); echo $stroka;


Все нормально работает, но не могу сделать удаление слов (кроме цифр) менее 3-х символов
FatCat
$stroka = explode(" ", $stroka);
foreach($stroka as $k=>$v)if($v != "-" and strlen($v)<=3)unset($stroka[$v]);
$stroka = implode(" ", $stroka);


_____________
Бесплатному сыру в дырки не заглядывают...
Игорь_Vasinsky
$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
Цитата (Игорь_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, -


но проверить бы на нескольких вариантах строк. чёт подозрительно мне

У меня не работает huh.gif
segazav
Цитата (Игорь_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]); ?>">

Просто пустая строка unsure.gif
Игорь_Vasinsky
какую строку парсишь?

_____________
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
Цитата (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
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.