Re: [Linux-programlama] php:string icinde arama[belki regex]

---------

New Message Reply About this list Date view Thread view Subject view Author view Attachment view

From: OKAN ARI (okanari@aridersanesi.com)
Date: Thu 07 Apr 2005 - 12:50:23 EEST


tesekkur ederim, kodu denemeyecegim elinize sağlık...

OKAN

----- Original Message -----
From: "Serdar KÖYLÜ" <serdarkoylu@fisek.com.tr>
To: <linux-programlama@liste.linux.org.tr>
Sent: Thursday, April 07, 2005 12:14 PM
Subject: Re: [Linux-programlama] php:string icinde arama[belki regex]

> Selamlar..
>
> Büyük ihtimalle,
>
> strpos(string, pattern);
>
> Daha hızlı olacaktır. Bu durumda,
> $text = "deneme baskadenemebu,birdenemedaha,dahadeneme!notry";
> $pattern = "deneme";
> $last = 0;
> $pos = strpos($text, $pattern, $last);
> $accept = "ABCÇDEFGĞHIİJKLMNOÖPRSTUÜWVXYZ"; // Küçük harfleri ekleyin..
>
> while ($pos !== False) {
> $start_pos = 0;
> . for($i = $pos; $i > 0; $i -= 1) {
> . $chr = substr($text, $i, 1);
> . if (strstr($accept, $chr) === False) {
> . $start_pos = $i;
> . break;
> . }
> . }
> . $stop_pos = strlen($text);
> . for($i = $pos; $i < strlen($text); $i += 1) {
> . $chr = substr($text, $i, 1);
> . if (strstr($accept, $chr) === False) {
> . $stop_pos = $i;
> . break;
> . }
> . }
> . $word = substr($text, $start_pos, $stop_pos - $start_pos);
> . $warray[$wlen] = $word;
> . $wlen += 1;
> . $pos = strpos($text, $pattern, $last);
> }
>
> gibi bir kodla bu sorun çözülebilir (yukarıdaki kodu denemedim, ezbere
> yazdım biraz) sanıyorum. REGEX vs. yöntemlerinden daha hızlı olması
> mümkündür. Bir sorun, strstr($accept, $chr) olayı olabilir. Ben,
> isalpha() nın veya isupper()/islower()'in PHP karşılığı var mı
> bilmiyorum, bir bakmak lazım.. Eğer varsa bu hem hız hem de daha
> garantili yoldan kelimeyi çıkarmayı sağlayacaktır. BU yöntemle her dil
> için kelime çıkarımı bu tür kodla sağlanamaz..
>
> > bu durumda kelimeler ; - . , ! gibi ifadelerle ayrilmis ise ne olacak?
Sorun
> > olur... Regex ile bir cozum sanirim uygun.. Yardiminiz icin tesekkur
ederim
>
> Saygı ve sevgiler..
>
> _______________________________________________
> Linux-programlama mailing list
> Linux-programlama@liste.linux.org.tr
> http://liste.linux.org.tr/mailman/listinfo/linux-programlama

_______________________________________________
Linux-programlama mailing list
Linux-programlama@liste.linux.org.tr
http://liste.linux.org.tr/mailman/listinfo/linux-programlama


New Message Reply About this list Date view Thread view Subject view Author view Attachment view

---------

Bu arsiv hypermail 2.1.2 tarafindan uretilmistir.