Gacha Posted April 6, 2004 Report Share Posted April 6, 2004 Atceros, vai man liekas, ka pirms laika uzduros uz php f-cijas, ar kuru var skaitiit textā vārdus. Un parādīt no teksta piemēram tikai pirmos 100 vārdus. Mekleju, bet nevaru atrast vai kads nez kā to sauca? Link to comment Share on other sites More sharing options...
bubu Posted April 7, 2004 Report Share Posted April 7, 2004 ja pienjem, ka vaardus atdala ar atastarpeem, tad elementari var ar explore, implde un array_slice to visu izdariit Link to comment Share on other sites More sharing options...
Gacha Posted April 7, 2004 Author Report Share Posted April 7, 2004 nu bet vai tad nebija kāda f-cija, kas to dara? Link to comment Share on other sites More sharing options...
Kaklz Posted April 7, 2004 Report Share Posted April 7, 2004 nu bet vai tad nebija kāda f-cija, kas to dara? bija taada countWords() kaadreiz: function countWords($text){ $wordCount = 0; $elements = explode(' ', $text); foreach ($elements as $word){ if (!empty($word)){ $wordCount++ } } return $wordCount; } :P Link to comment Share on other sites More sharing options...
Roze Posted April 7, 2004 Report Share Posted April 7, 2004 Why dont you use the mighty manual? http://lv.php.net/str_word_count Link to comment Share on other sites More sharing options...
Gacha Posted April 7, 2004 Author Report Share Posted April 7, 2004 Nu to jau es petiju, bet tas atgriezh masiivu. Domaju vai nav taada, kas darbojas apmeram taa, kaa substr bet ar vaardiem. Bet ja nav tad bus jaizmanto tas pats str_word_count Link to comment Share on other sites More sharing options...
des Posted April 8, 2004 Report Share Posted April 8, 2004 Nu kaut vai var modificeet shito pashu: function CountWords($text,$count=1){ $wordCount = 0; $outText = ''; $elements = explode(' ', $text); foreach ($elements as $word){ if (!empty($word)){ $wordCount++; if ($wordCount<=$count) { $outText.=$word.' '; } } } return array('count'=>$wordCount;'text'=>$outText); } testeejis neesmu, bet vajadzeetu straadaat... Link to comment Share on other sites More sharing options...
Lokomotive Posted April 8, 2004 Report Share Posted April 8, 2004 (edited) A kāpēc tev šī iespēja ir izdevīga tieši tādā formā? Pirmā doma (kāpēc tev vajag tos 100 vārdus) bija, ka gribi lapā publicēt tikai mazu daļiņu texta un pielikt ">>lasīt tālāk". Ja tā, tad piemēram tie 100 vārdi apraus teikumu pusratā (galīgi nesakarīgi sanāk). Varbūt ir izdevīgāk ņemt piemēram pirmos 3 teikumus.. To varētu panākt izveidojo masīvu ar explode('.', $teksts); es tikai tagad škrubinu galvu, jo nezinu kā lai dabū, ka tikai pirmos 3 teikumus..(es pats vēl tikai mācos) ;) Edited April 8, 2004 by Lokomotive Link to comment Share on other sites More sharing options...
hu_ha Posted April 9, 2004 Report Share Posted April 9, 2004 nu ja tu uztaisi $mas=explode('.',$text); tad pirmos triis "teikumus" tu vari ieguut $str=$mas[0].$mas[1],$mas[2]; bet sheit der padomaat par universaalismu, proti, ja tev pirmajaa teikumaa ir: "Tas notika 1991. gadaa..." tad sheit rodas jau jauns teikums :) taapat jaaparedz daudzpunktes etc. Taa kaa ar tiem teikumiem un citaam valodas iipatniibaam nav nemaz tik viegli ciiniities. shkjiet labaak to organizeet veidojot kaut kaadu atziimi, piem "|" vai veel kaadu simboju, ko reti izmanto un tad liidz tam arii tekstu raadiit... Link to comment Share on other sites More sharing options...
Gacha Posted April 9, 2004 Author Report Share Posted April 9, 2004 Nu doma man ir taisīt tā, ka aiz ievada liek ### un tad parejais, bet pašlaik man jau ir pietiekami ziņas, kur nav tie ### un tapēc vajag lai vismaz viņš pataisa īsāku textu. @hu_ha a kas būs, ja nav tie 3 teikumi? php neizmetīs errorus? Šis vispārarī būtu labs veids <_< Link to comment Share on other sites More sharing options...
hu_ha Posted April 9, 2004 Report Share Posted April 9, 2004 es nez vai buus warning vai notice, bet vienmeer jau var uztaisiit skriptu kas to visu paarbauda: $mas=explode('.',$text); $i=0; foreach($mas as $m) { $str.=$m; $i++; if ($i>=3) break; } echo $str; nepaarbaudiiju, bet nu ideja taada... Link to comment Share on other sites More sharing options...
bubu Posted April 9, 2004 Report Share Posted April 9, 2004 vai nav labaak apmeeram kautkaa shaadi: $mas=explode('.',$text); for($i=0;$i<max(count($mas,3));$i++) { $str.=$mas[$i]; } echo $str; Link to comment Share on other sites More sharing options...
hu_ha Posted April 9, 2004 Report Share Posted April 9, 2004 $mas=explode('.',$text); for($i=0;$i<max(count($mas,3));$i++) { $str.=$mas[$i]; } echo $str; nu tur manupraat ir iekavas nepareizi, bet nu varu kljuudiities. un ir taada lieta, ka nav labi cilkaa katru reizi skaitiit masiiva apjomu vai kaada stringa darumu. tas protams neattiecas uz maziem masiiviem, bet ja tas teksts buus 3000 teikumus garsh, tad katru reizi jaaskaita viss masiivs un jaatrod maksimaalais elements starp 3 un masiiva apjomu. tad jau labaak: $mas=explode('.',$text); $max=max(count($mas),3); for($i=0;$i<$max;$i++) { $str.=$mas[$i]; } echo $str; Link to comment Share on other sites More sharing options...
bubu Posted April 10, 2004 Report Share Posted April 10, 2004 a kur probleemas ar iekavaam, to nesapratu. bet pareizi vien ir, php tak cikla iteraacijaa katreiz paareekjina to nosaciijumu. biju piemirsis. pareizaak vien ir tas peedeejais koda gabals. Link to comment Share on other sites More sharing options...
hu_ha Posted April 10, 2004 Report Share Posted April 10, 2004 a kur probleemas ar iekavaam, to nesapratu. max(count($mas,3)) != max(count($mas),3) siikums.. :) Link to comment Share on other sites More sharing options...
Recommended Posts