Bunkertor 7 Posted September 5, 2007 Report Share Posted September 5, 2007 Sveiki! Reku aizkeeros atkal aiz viena sava garadarba. Saakumaa ideja bija vienkaarsha - paraadiit tikai teksta pirmo teikumu. Veelaak sagribeejaas pameeginaat, vai var tekstu sagriezt gabalos un starp tiem gabaliem likt kaut ko no citas operas - sludinajumu, bildes utt. <?php $parts="Blah blah blah blah. Doh doh doh doh."; //viss teksts - originaalaa tas protams buus izsaukums no db $firstpart = substr($parts, 0, 14); //teksta dalja pirms paartraukuma $secondpart = substr($parts, 14, 30); //otraa teksta dalja $endchar = substr($parts, 14, 14); //peedeejais charakters, ko izvest pirmajaa daljaa if ($endchar !="."){ //ja peedeejais charakters nav punkc while($endchar !="."){ //kameer neesam tikushi liidz punktam, tekstu paartraukt nevajag $i=1; //plusojam vienu charakteru klaat $position=14+$i; //jaunais peedeejais charakters $firstpart1 = substr($parts, 0, $position); //izlabotaa pirmaa dalja, kas nu beidzas ar punktu } } echo $firstpart1; //izvedam pirmo teksta dalju uz ekraana echo "<br><b>advertisement comes here</b><br>"; //sludinaajuma kods naaks te $secondpart = substr($parts, $position, 30); //otraa tekta dalja - viss, kas palicis aiz pirmaas daljas peedeejaa charaktera echo $secondpart; //teksta nobeigums ?> rezultaataa nekas nesanaak - balta laba. :( Buusu pateiciigs par ieteikumiem un konstruktiivu kritiku! Link to comment Share on other sites More sharing options...
andrisp Posted September 5, 2007 Report Share Posted September 5, 2007 Īpaši negribas iedziļināties, bet jēdzīgāk nebūtu vienkārši kaut kā šādi ? <?php $text = "Blah blah blah blah. Doh doh doh doh."; $parts = explode('.', $text); foreach($parts as $part) { echo trim($part); echo "\nsludeklja teksts\n"; } ?> Link to comment Share on other sites More sharing options...
Bunkertor 7 Posted September 5, 2007 Author Report Share Posted September 5, 2007 (edited) Īpaši negribas iedziļināties, bet jēdzīgāk nebūtu vienkārši kaut kā šādi ? Paldies par ieteikumu. Es it kaa domu uzkjeru, bet taa kaa tas skripts Tev ir tagad uzrakstits, vinsh vienkaarshi novaaktu tekstaa visus punktus un sabaaztu sludinaajumus katra punkta vietaa. Bez tam, ja es vinju tagad paarrakstiitu taa, lai vinsh punktu njem kaa delimiter, vinsh jau spridzinaas to tekstu pa punktiem. Un ko tad, ja man tanii tekstaa ir piemeeram 30 teikumi. Taapeec es kaut kaa meeginu, lai katraa tekstaa tas sludinaajums atrastos vienaa un tajaa pashaa vietaa - piemeeram peec piektaa teikuma - taa ap 700-to charakteri. Edited September 5, 2007 by Bunkertor 7 Link to comment Share on other sites More sharing options...
xPtv45z Posted September 5, 2007 Report Share Posted September 5, 2007 Es taisītu tad kaut kā tā. Mazliet pārveidojot andrisp kodu: <?php $charCount = 300; $block = 1; $bannerChars = 0; $text = "Blah blah blah blah. Doh doh doh doh."; $parts = explode('.', $text); $newText = ''; foreach($parts as $part) { $newText.= !$newText ? trim($part) : '. '.trim($part); if(strlen($newText)>$block*$charCount+$bannerChars){ $newText.=$sludinajums[$block]; $bannerChars+= strlen($sludinajums[$block]); $block++; } } echo $newText; ?> Link to comment Share on other sites More sharing options...
andrisp Posted September 5, 2007 Report Share Posted September 5, 2007 http://paste.php.lv/6018 Link to comment Share on other sites More sharing options...
Grey_Wolf Posted September 5, 2007 Report Share Posted September 5, 2007 Bunkertor 7 --> tev ir vismaz 2 ljoti rupjas kljuudas 1. while($endchar !=".") nekad neizpildiisies --> muuziigais cikls jo nav noraadiits kur ciklaa mainaas $endchar .... 2. arii ljoti buutiska : $endchar = substr($parts, 14, 14); //peedeejais charakters, ko izvest pirmajaa daljaa nekad !!!!! nebuus vienaada ar (.) ...... Jo: string substr ( string string, int start [, int length] ) !!!! ---- at taa visumaa doma ir diezgan pareiza ..... P.S. Un luudzu ja liec kodu neliec taadu blakji --> tam domaatas atstarpes un atkapes..... Link to comment Share on other sites More sharing options...
Bunkertor 7 Posted September 5, 2007 Author Report Share Posted September 5, 2007 andrisp, xPtv45z, Grey_Wolf - paldies. Taa teikt "naglai uz galvas"! string substr ( string string, int start [, int length] ) !!!! njaa, taisniiba - es nez kaada dulluma peec nebiju piefikseejis, ka tas otrs cipars ir length :D Nu labi, bet piemeeram, ja es uztaisu $endchar($parts, 14, 1); tas taa vai taa neko nemaina. jo nav noraadiits kur ciklaa mainaas $endchar .... te es tieshaam esmu mazliet saputrojies. Taga es redzu, ka Tev taisniiba - tas WHILE nenobeidzaas ne ar kaadu darbiibu, vnk. iet uz rinki un neko nedara. Es pareizi sapratu? Vai es to kaut kaa vareetu atrisinaat ar ENDWHILE? Atvainojos par dumiem jautaajumiem! Link to comment Share on other sites More sharing options...
Grey_Wolf Posted September 6, 2007 Report Share Posted September 6, 2007 nu jaa ... ieliec lai to simbolu, lai lasa ciklaa un parbauda kamer ir (.) ... un njem vinju tomer kaa 1 (vienu simbolu) nevis 14 ;) Link to comment Share on other sites More sharing options...
Bunkertor 7 Posted September 6, 2007 Author Report Share Posted September 6, 2007 nu jaa ... ieliec lai to simbolu, lai lasa ciklaa un parbauda kamer ir (.) ... un njem vinju tomer kaa 1 (vienu simbolu) nevis 14 ;) ok. es te tagad it kaa treneejos. Meeginaaju novienkaarshot, bet sanaak no seerijas "es te uzrakstiiju skriptinju, paliidziet saprast, ko vinsh dara" outputaa man sanaak "juhuu ." Kapee vinsh to juhuu liek outputaa, ja endchar nav punkts. Sorry... es tikko vienu manuaali izbokstereeju, bet nu pagaidaam laikam labumaa neiet. Kaut kaads beernudaarzs! <?php $parts="Blah blah blah blah. Doh doh doh doh."; $endchar = substr($parts, 12, 1); if ($endchar=".") echo "juhuu"; else do { $position=12; $i=1; $endchar = substr($parts, ($position+$i), 1); } while ($endchar !="."); echo "<br>"; echo $endchar; ?> Link to comment Share on other sites More sharing options...
dmitriy Posted September 6, 2007 Report Share Posted September 6, 2007 ka es sapratu tu meklē pēdējo punktu sava teksta, paskaties šito te: http://lv.php.net/manual/en/function.strrpos.php, tev te bus last position Link to comment Share on other sites More sharing options...
xPtv45z Posted September 7, 2007 Report Share Posted September 7, 2007 Visdrīzāk jau tāpēc, ka šī nav salīdzināšana. if ($endchar=".") Link to comment Share on other sites More sharing options...
Bunkertor 7 Posted September 7, 2007 Author Report Share Posted September 7, 2007 ka es sapratu tu meklē pēdējo punktu sava teksta Genijs, dmitriy! Tas bija tieshi tas, ko vajag. Patiesiibaa gan izveeleejos STRPOS, sanaak iisaaks kods. <?php $parts="Blah blah blah blah. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh. Doh doh doh doh."; $fullstop = strpos($parts,".",82); $divider = $fullstop+1; $firstpart = substr($parts, 0, $divider); $secondpart = substr($parts, $divider, 300); echo $firstpart; echo "<br>"; echo "<b>Advertisement</b>"; echo "<br>"; echo $secondpart; ?> Reku! Tagad viss darbojas, paldies! šī nav salīdzināšana. :( Man laikam iisti nepieleca. Njaa, tas noteikti velk uz veel viena manuaalja lasiishanu :) Buus jaameegina tikt ar to veco kodu arii galaa, tomeer interesanti... Link to comment Share on other sites More sharing options...
Val Posted September 7, 2007 Report Share Posted September 7, 2007 if ($kautkas=="blablabla") { //salīdzināšana ar divām jautājuma zīmēm }; Link to comment Share on other sites More sharing options...
bubu Posted September 7, 2007 Report Share Posted September 7, 2007 Vispār jau = sauc par vienādības zīmi, nevis jautājuma zīmi. Link to comment Share on other sites More sharing options...
Val Posted September 7, 2007 Report Share Posted September 7, 2007 nolohojos :D Link to comment Share on other sites More sharing options...
Recommended Posts