хотел почистить в ней нежелательные символы используя коды аск-ов
str_replace('0x2A','',$str);и понеслась
НО нежелательных символов оказалось больше чем желаемых и я решил наоборот оставить только желаемые. как это лучше сделать?
пробовал сначала перебором символов в массиве
for($i=0;$i<$length;$i++)результат меня не обрадовал - вместо нежелаемых символов ячейки заполнились пустыми значениями, а мне нужно чтоб их вообще не было, как еслиб не бывало вовсе :)
{
if(ord($str[$i]) != 10 && ord($str[$i]) <46 && ord($str[$i]) > 57)
str[$i] = '';
}
пробовал unset($str[$i]) - тоже не помогло.
перекапываю стринговые функции но идеального для себя решения пока так и не нашел....
в общем спасайте кто может!!!
Спустя 34 минуты, 45 секунд (22.12.2011 - 20:41) Игорь_Vasinsky написал(а):
Цитата |
есть строка. в ней много пробелов |
ну и str_replace(' ', '', $string);
Спустя 8 минут, 29 секунд (22.12.2011 - 20:50) Guest написал(а):
Цитата (Игорь_Vasinsky @ 22.12.2011 - 17:41) | ||
ну и str_replace(' ', '', $string); |
если совсем коротко....
мне нужно оставить в строке
- от 0x2F - до 0x39 (цифры и /)
- 0xA (новая строка)
Спустя 14 минут, 49 секунд (22.12.2011 - 21:05) killer8080 написал(а):
используй регулярки, так в строке останутся только маленькие латинские буквы и цифры.
$str = preg_replace('#[^a-z\d]#', '', $str);
Спустя 9 минут, 48 секунд (22.12.2011 - 21:14) killer8080 написал(а):
Цитата (Guest @ 22.12.2011 - 19:50) |
мне нужно оставить в строке от 0x2F - до 0x39 (цифры и /) 0xA (новая строка) |
$str = preg_replace('#[^/\n\d]#', '', $str);
Спустя 6 минут, 59 секунд (22.12.2011 - 21:21) Guest написал(а):
Цитата (killer8080 @ 22.12.2011 - 18:05) |
используй регулярки, так в строке останутся только маленькие латинские буквы и цифры.$str = preg_replace('#[^a-z\d]#', '', $str); |
проверил так
$str = preg_replace('#[^0-9\n\/]#', '', $str);то что надо.
осталась одна проблема - надо либо удалить пустые строки либо любое количество \n идущих подряд преобразовать в один \n
Спустя 1 минута, 40 секунд (22.12.2011 - 21:23) Игорь_Vasinsky написал(а):
кстати да
а я не до пёр


Спустя 4 минуты, 36 секунд (22.12.2011 - 21:28) killer8080 написал(а):
Цитата (Guest @ 22.12.2011 - 20:21) |
либо любое количество \n идущих подряд преобразовать в один \n |
$str = preg_replace('#[^/\n\d]#', '', $str);
$str = preg_replace('#\n{2,}#', '\n', $str);
Спустя 10 минут, 8 секунд (22.12.2011 - 21:38) Guest написал(а):
поправочка
кабы их обьединить
$str = preg_replace('#[^/\n\d]#', '', $str);иначе сливается в одну строку
$str = preg_replace('#\n{2,}#', '\n', $str);
кабы их обьединить
Спустя 3 минуты, 29 секунд (22.12.2011 - 21:41) killer8080 написал(а):
Цитата (Guest @ 22.12.2011 - 20:38) |
поправочка $str = preg_replace('#[^/\n\d]#', '', $str); $str = preg_replace('#\n{2,}#', '\n', $str); |
Где поправочка?
Спустя 1 минута, 38 секунд (22.12.2011 - 21:43) Игорь_Vasinsky написал(а):
функция прекрасно работает с массивами
Спустя 2 минуты, 26 секунд (22.12.2011 - 21:45) killer8080 написал(а):
Цитата (Guest @ 22.12.2011 - 20:38) |
иначе сливается в одну строку |
может пробелы нужно оставить?
Спустя 21 минута, 19 секунд (22.12.2011 - 22:07) Guest написал(а):
работает с массивами прекрасно и не сливается всё в порядке.
изначально я беру страницу и проделываю над ней следующее
изначально я беру страницу и проделываю над ней следующее
$content = stristr($page_content, "<td width=\"17\">");я в начале думал обойтись без регулярок но тут скорее с самого начала надо парсить одной регуляркой
$k = strpos($content, "<a");
$content = substr($content, 0, $k);
$content = strip_tags($content);
$content = preg_replace('#[^/\n\d]#', '', $content);
$content = preg_replace('#\n{2,}#', ' ', $content);
$content = ltrim($content);
$arr = explode(' ', $content);
Спустя 11 минут, 38 секунд (22.12.2011 - 22:18) killer8080 написал(а):
Цитата (Guest @ 22.12.2011 - 21:07) |
тут скорее с самого начала надо парсить одной регуляркой |
Именно
