Jump to content
php.lv forumi

teksta bloka formateeshana


Grey_Wolf

Recommended Posts

hmm ir shaada probleema...

dots:

$strings='tekstc.....';

vajag sho tekstu parveidot taa lai tas iekljautos dotajos izmeeros-

simboli X rindas (piem 40 simboli 20) rindas...

probleema rodas ieks taa ka.

tekstc var buut arii shaads

a

b

...

n

---

vai arii n rinda milziigi gara

protams sakumaa tekstc ir apstraadaats ar preg_replace()

un viss liekais zivaaktc

-----

tikpat labi tas texc var buut kaa 1 milziiga simbolu virtne kuras garums ~ ar 40*20....

nu jaa tekstc protams jaadala pa atstarpeem un ja vaards ir garaaks par atljauto simbolu skaitu tad tiek

izmestc errors(shiss vaards ir par garu)

Kaadas idejas?

Edited by Grey_Wolf
Link to comment
Share on other sites

hmnc--> tas tad skaidrs bet man vajag lai tekstc (naak no usera puses)

iekljautos blokaa kura izmeri ir defineeti simbolu skaits * rindu skaits...

teiksim rindas garums max=40 un rindu skats 20

noformateetais tekstc nedrikst paarsniegt shos lielumus.....

pasham pagaidaam ir doma sakumaa sadaliit pa rindaam

un tad parskaitiit cik ir /n....

kaadas vel idejas?

varbuut kaadam ir kas gatavs?

Link to comment
Share on other sites

gatavs šaubos vai būs... bet nu vispār pastāsti ideju. es pilnīgi nesaprotu, ko lietotājs var darīt ar 40*20 char lauku.. precīzāk - ko var ievadīt un pietam valīdi!

saprastu, ja tev vajadzētu viņu apgraizīt.. :)

 

tikko ienāca prātā doma - netaisi gadījumā aprēķinus ar matricām? :)

Link to comment
Share on other sites

cit: netaisi gadījumā aprēķinus ar matricām? :) /cit:

nee ;)

ta probza ir pavisam banaala...

$textc naak no usera puses

vinsh janoformatee pirms saglabaasanas ieksx DB

jo izvades lauks ir 40*20 max

nav svariigi vai viss aizpildiit vai tikai dazji vardi ..

 

resp. ir HTML tabulas shuna kas atveeleeta tekstam... nu luuk sajaa laukumaa (neparkaapjot robezas) shis tekstc tad arii jaateelo.... ar platumu buutu vienkaarshi ljaut lai brauzeris patc parnes jaunaa rinda... bet tad var aiziet skjeersam max atljautais rindu skaits (kas ir buutiski)

Nu jaa protams ir jau arii ierobezjots simbolu skaits, bet ne par to ir shis staasts

P.S. njaa var teikt ka vajag apgiezt pa noteiktiem izmeeriem...

Edited by Grey_Wolf
Link to comment
Share on other sites

nu tad iemesls uztaisīt div :)

bet nu bāc.. tu NEKĀDĪGI nevari ierobežot teksta izskatu ierobežojot simbolu skaitu rindā, ja vien tev nav kāds fiksētais fonts (par ko es šaubos)

elementārs piemērs.. skaties cik aizņem vienāds skaits burtu 'm' un burtu 'i':

mmmmmmmmmm

iiiiiiiii

 

huh?!

 

tā kā nez kādas tev tur perversijas vajag, bet ja nepieciešams ierobežot tekstu kkādā noteiktā laukā iekš html tad overflow:hidden būs praktiski vienīgais variants.

no galvas neatceros, bet moš overflow iekš <td> arī strādā, un pat ja nestrādā, kas vainas: <table><tr><td style="width:40px;height:20px;"><div style="width:40px;height:20px;overflow:hidden;">text</div></td></tr></table>

Link to comment
Share on other sites

Nu vot šitais laikam dara ko tev vajag:

<?
$strLength = 40;
$rows = 20;
$formatedText = '';
$inputText = str_replace(array("\r","\n"),array('',' '),$inputText);

if(strlen($inputText) >$strLength*$rows) die("Garš teksts!");

$words = explode(' ',$inputText);

for($i = 0; $i < $rows; $i++) {
   $str = '';
   if(!count($words)) break;	
   while(1) {
   			  if(!count($words)) break; 
   			  if((strlen($str) + strlen($words[0]) + 1) > $strLength) {
   			   				   $formatedText.= $str.'<br>';
   			   				   break;
   			   }
   			   $str.= ' '.array_shift($words);
   }	
}
echo $formatedText;
?>

2 hmnc

> "skaties cik aizņem vienāds skaits burtu 'm' un burtu 'i'"

 

Tak "text-align:justify" var palīdzēt šai lietā...

Edited by john.brown
Link to comment
Share on other sites

paldies par paliidzeeshanu :)

john.brown--> tas nav par 100% ko vajadzeeja, bet talakai problemas risinaashanai Ljoti noderiigs :)

neskapeec neiedomaajos par explode() :(

principaa... tas tavs skripts tikai mazliet japgreido :)

japieliek velviens cikls un paaris paarbaudes un tad vss buus OK.

P.S. kad bus gatavs un notesteets iemetiishu sheit pat... varbuut vel kaadam noder.....

Link to comment
Share on other sites

nevar taa, kad useris ieraksta tekstu, izvaacam visus \n \r, nu lai teksts buutu vienaa rindaa, un tad saskaitam cik ir simboli tajaa 40*20 respektiivi sanaak ka 40*20=800 simboli

function stringLimit($string, $length = 50, $ellipsis = '...') {
  return strlen($fragment = substr($string, 0, $length + 1 - strlen($ellipsis))) < strlen($string) + 1 ?
   preg_replace('/\s*\S*$/', '', $fragment) . $ellipsis : $string;
}
echo stringLimit($string,800,'');

manupraat sanaaks tas ko tev vaig .... jo ja tev ir fcija ka vaardi nevar buut gari, tad browseris pats sametiis pa rindinjaam ... :)

http://imo.popular.lv/testi/3.php

Edited by Klez
Link to comment
Share on other sites

Klez--> 99% gadijumu tas dereetu :)

bet man vajag zinaat cik gala rez sanaaks rindinju...

resp: tekstc var buut arii shaads

----

1

2

3

4

es

sodien

seit biju

bla bla bal dddddddddddddddddddddddddddd bla

-------------

respektiivi ta jebkaads.....

un vajag lai vinsh arii taads izvadaas neparkaapjot dotos izmeerus.......

(ja neielien tad pazinjo userim)

iznjemums ir parnest jaunaa rinda - ja rindu max nav parsniegts

ja useris ir uztaisijis \n tad lai paliek... utt

----

P.S. principaa ar shiem 2 skriptiem es arii tikshu galaa... sk postu augstaak :)

Edited by Grey_Wolf
Link to comment
Share on other sites

×
×
  • Create New...