Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: уссловие в php
Форумы портала PHP.SU » » Вопросы новичков » уссловие в php

Страниц (2): [1] 2 »
 

1. reslear - 23 Октября, 2011 - 20:02:08 - перейти к сообщению
Привет! как удалить цифру:



в тексте:



должно получиться:



или

PHP:
скопировать код в буфер обмена
  1. 11      4|45|67|34


должно получиться:

PHP:
скопировать код в буфер обмена
  1. 11      45|67|34


либо:

PHP:
скопировать код в буфер обмена
  1. 11      3|48|67|4


должно получиться:

PHP:
скопировать код в буфер обмена
  1. 11      3|48|67
2. DeepVarvar - 23 Октября, 2011 - 20:07:24 - перейти к сообщению
str_replace("|4|","|",$text);
3. LIME - 23 Октября, 2011 - 20:14:16 - перейти к сообщению
неа...а если в начале/конце?
PHP:
скопировать код в буфер обмена
  1. preg_replace('#(^|\|)'.$fds.'(\||$)#','|',$text);
  2. trim($text,'|');
4. reslear - 23 Октября, 2011 - 20:18:22 - перейти к сообщению
ошибка синтаксиса пишет, в данном случе строка 1
5. LIME - 23 Октября, 2011 - 20:21:13 - перейти к сообщению
я исправлял
6. reslear - 23 Октября, 2011 - 20:24:51 - перейти к сообщению
ах да спасибо, не работает только в случае если 43|
7. LIME - 23 Октября, 2011 - 20:59:27 - перейти к сообщению
тогда так
PHP:
скопировать код в буфер обмена
  1. $text=preg_replace('#((?<=11      )|\|)'.$fds.'(\||$)#',"$1",$text);
  2. $text=trim($text,'|');
  3. echo $text;
8. reslear - 23 Октября, 2011 - 21:09:50 - перейти к сообщению
LIME, тоже не хочет изменять, а вот остальные норм заменяет
9. LIME - 23 Октября, 2011 - 21:18:00 - перейти к сообщению
reslear проверьте внимательно кол-во пробелов после 11
у меня меняет
10. reslear - 23 Октября, 2011 - 21:20:33 - перейти к сообщению
LIME, там не пробелы там таб, у меня так работает:

PHP:
скопировать код в буфер обмена
  1. $text = "1       43|564|143";
  2. $fds = '43';
  3. $text = str_replace(array($fds."|","|".$fds."|","|".$fds),array("","|",""),$text);
  4. $text = trim($text,'|');
  5. echo $text;
11. Champion - 23 Октября, 2011 - 21:28:07 - перейти к сообщению
reslear, проверьте свое 43 на таких данных: "3|2|2143|4356|4" )
(Добавление)
может такое подойдет?
preg_replace('#(?<!\d)'.$fds.'(?!\d)#','|',$text);
12. reslear - 23 Октября, 2011 - 21:30:14 - перейти к сообщению
Champion, Радость
что ж сделать та?
13. LIME - 23 Октября, 2011 - 21:31:00 - перейти к сообщению
попроще
PHP:
скопировать код в буфер обмена
  1. $text=preg_replace("#(\t|\|)$fds(\||$)#","$1",$text);
  2. $text=trim($text,'|');
  3. echo $text;
14. reslear - 23 Октября, 2011 - 21:34:02 - перейти к сообщению
Champion не прокатило
LIME таб пропадает а так работает!
(Добавление)
хотя подождите, пох на таб я же разбиваю list на две переменные давайте просто для текста сделаем без


сугубо для текста:
PHP:
скопировать код в буфер обмена
  1. 43|3|2|2143|4356|4
15. LIME - 23 Октября, 2011 - 21:36:59 - перейти к сообщению
нихрена не пропадает еперный театр посмотрите в исходник это же браузер )))
(Добавление)
reslear пишет:
давайте просто для текста сделаем без
щас ударю Получай молотком

 

Powered by ExBB FM 1.0 RC1