Автор Тема: Улучшить функцию  (Прочитано 5003 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Улучшить функцию
« : 22 Марта 2006, 23:54:25 »
Есть ereg, но он ищет только 1 совпадение строки. Я придумал функцию, которая ищет все совпадения.
Посмотрите, может быть сможете улучшить

// функция на основе ereg, которая бы искала в строке все схождения подстроки

function eregAll($pattern,$string,$array=false){
	
$regs=array();
	
if (
$array==false){
	
	
if (
ereg($pattern,$string)){
	
	
	
return 
1;
	
	
} else {
	
	
	
return 
0;
	
	
}
	
} else {
	
	
while (
ereg($pattern,$string,$reg)){
	
	
	
if (!
in_array($reg[0],$regs)) $regs[]=$reg[0];
	
	
	
$string=substr($string,strpos($string,$reg[0])+strlen($reg[0]));
	
	
}
	
	
return 
$regs;
	
}
}

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Улучшить функцию
« Ответ #1 : 23 Марта 2006, 08:17:19 »
WTF...
[p]preg_match_all[/p]

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
Улучшить функцию
« Ответ #2 : 23 Марта 2006, 09:21:02 »
andymc
однако виласипед))))
Пространные размышления об ИТ и все что вокруг

Оффлайн andymc

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 400
  • +1/-0
  • 0
    • Просмотр профиля
Улучшить функцию
« Ответ #3 : 23 Марта 2006, 16:58:37 »
Использую php 4, и об этой функции, как и о многих других не знал....
Теперь наверное буду учить php 5....
спасибо за подсказку.

Впрочем, если у кого-нить есть интереснные функции по регулярам, то выкладывайте - будет полезно всем.

Оффлайн hanslinger

  • H2Oer
  • Ветеран
  • *****
  • Сообщений: 1148
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.orava.ru
Улучшить функцию
« Ответ #4 : 23 Марта 2006, 17:09:40 »
Цитировать

preg_match_all
(PHP 3 >= 3.0.9, PHP 4, PHP 5)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28