Kā lai no variabļa dabū ārā noteiktu skaitu burtu?

Moderatori: janis.wd, Vecākie lietotāji

User avatar
guitarman
Reģistrēts lietotājs
Atbildes: 170
Pievienojies: 15 Aug 2008, 02:04
Reputācija: 0

Kā lai no variabļa dabū ārā noteiktu skaitu burtu?

Post no guitarman » 10 Jan 2010, 16:24

Sveiki, esmu php iesācējs, tādēļ lūdzu neapsmejiet mani.. :lala:

Karoč man ir mainīgais kurā ir, piemēram, tūkstotis burtu (teksts).
Kā lai no viņa izdabū arā (echo) TIKAI pirmos simts burtus ?

Paldies.

User avatar
Crow
E-žurnālists
Atbildes: 5391
Pievienojies: 10 Mai 2009, 14:22
Reputācija: 0
Atrodas: Ir

Post no Crow » 10 Jan 2010, 16:33

PHP manuāli novelc. Tur ir rakstīts viss, ko tev varētu vajadzēt. Ar visiem piemēriem :)

string substr ( string $string , int $start [, int $length ] )
Дебилы, бл*ть...

User avatar
Andress
Reģistrēts lietotājs
Atbildes: 567
Pievienojies: 13 Jūl 2009, 15:31
Reputācija: 0

Post no Andress » 10 Jan 2010, 16:34

Funkcija atrodas šeit. Iekļauj šo funkciju kodā kautkur, kur vēlies. Tālāk:

Izsaukt:

Code: Select all

echo mb_substrws( $teksts_kuru_apgriezt, '200');
kur 200 ir skaitlis, cik simbolus gribi paradit.

User avatar
guitarman
Reģistrēts lietotājs
Atbildes: 170
Pievienojies: 15 Aug 2008, 02:04
Reputācija: 0

Post no guitarman » 10 Jan 2010, 16:35

Lielu lielais paldies! Viss sanāca :)

User avatar
Aldis
E-žurnālists
Atbildes: 5084
Pievienojies: 21 Nov 2008, 15:55
Reputācija: 0
Atrodas: LV

Post no Aldis » 10 Jan 2010, 16:36

Nav pat jāvelk, viss ir paslēpts internetos.. http://lv.php.net/substr

http://lv.php.net/ funkcijas vārds
Image Oh My God = OMG
Image Ak Mans Dievs = AMD

User avatar
Andress
Reģistrēts lietotājs
Atbildes: 567
Pievienojies: 13 Jūl 2009, 15:31
Reputācija: 0

Post no Andress » 10 Jan 2010, 16:41

Visiem, kuri latvijā ieteiks substr lietot, došu pa asti. :) Multy-bite failure expected...
Diemžēl Latvijas IT industrija no ārpasaules atpaliek par vismaz 10+ gadiem. Mentalitāte?

User avatar
guitarman
Reģistrēts lietotājs
Atbildes: 170
Pievienojies: 15 Aug 2008, 02:04
Reputācija: 0

Post no guitarman » 10 Jan 2010, 17:03

Piedodiet par mazzinību, bet kas būtu "Multy-bite failure" ?

User avatar
Wuu
E-žurnālists
Atbildes: 2918
Pievienojies: 23 Aug 2008, 10:32
Reputācija: 0

Post no Wuu » 10 Jan 2010, 17:08

Andress wrote:Visiem, kuri latvijā ieteiks substr lietot, došu pa asti. :) Multy-bite failure expected...
Atkal līmi osti? pšš...
Image

User avatar
Andress
Reģistrēts lietotājs
Atbildes: 567
Pievienojies: 13 Jūl 2009, 15:31
Reputācija: 0

Post no Andress » 10 Jan 2010, 17:14

Īsumā- vairums latviešu burtu ir multy-byte, TB to garums ir nevis kā klasiski- 1 byts, bet gan 2. Substr nav multy-bite atbalstoša funkcija, tādēļ tā "pārgriež" multy-byte burtus uz pusēm parvēršot tos simbolos. Piemēram mums ir teksts no 6 burtiem,
aaaaaš
a= 1 byte
š= 2 bytes

tatad kopējais garums - 7 bytes.
Apgriežot tekstu uz 6 simboliem ar substr, pēdējais š var tikt pārgriezts. (nezinu kapēc, bet dažreiz tas nenotiek. bug?) un izvadīts kā nezināms simbols. Latviešu valodas string apstrādei nepieciešams izmantot MB saderīgas funkcijas, piemēram mb_substr vai tā, ko tev iedevu es (var atrast PHP.net). Kaut daudz maz saprati? Ja ne, PM, paskaidrošu tuvāk.


#Wuu, aizver žjaunu. Pok3mons. :)

User avatar
Wuu
E-žurnālists
Atbildes: 2918
Pievienojies: 23 Aug 2008, 10:32
Reputācija: 0

Post no Wuu » 10 Jan 2010, 17:21

Andress uzreiz tā nevarēji, nevis valsts mērogā nolikti funkciju :)
Image

User avatar
Crow
E-žurnālists
Atbildes: 5391
Pievienojies: 10 Mai 2009, 14:22
Reputācija: 0
Atrodas: Ir

Post no Crow » 10 Jan 2010, 17:22

Ja visās iespējamās vietās izmanto UTF-8 un nesadirš tekstu pirms padošanas, ar letiņu burtiem iekš 5.2.x problēmām nevajadzētu būt. Vispār mbstring ir lēns kā nāve, bet citādi jau jēdzīgu domu pateica :)

[s]Multy-bite[/s] Multi-byte! Bļin, tak iemācies angliski rakstīt beidzot :D
Дебилы, бл*ть...

User avatar
guitarman
Reģistrēts lietotājs
Atbildes: 170
Pievienojies: 15 Aug 2008, 02:04
Reputācija: 0

Post no guitarman » 10 Jan 2010, 17:22

Andress wrote:Īsumā- vairums latviešu burtu ir multy-byte, TB to garums ir nevis kā klasiski- 1 byts, bet gan 2. Substr nav multy-bite atbalstoša funkcija, tādēļ tā "pārgriež" multy-byte burtus uz pusēm parvēršot tos simbolos. Piemēram mums ir teksts no 6 burtiem,
aaaaaš
a= 1 byte
š= 2 bytes

tatad kopējais garums - 7 bytes.
Apgriežot tekstu uz 6 simboliem ar substr, pēdējais š var tikt pārgriezts. (nezinu kapēc, bet dažreiz tas nenotiek. bug?) un izvadīts kā nezināms simbols. Latviešu valodas string apstrādei nepieciešams izmantot MB saderīgas funkcijas, piemēram mb_substr vai tā, ko tev iedevu es (var atrast PHP.net). Kaut daudz maz saprati? Ja ne, PM, paskaidrošu tuvāk.
Nu viss skaidrs.. paldies liels. Domāju ka pats tikšu galā jo atradu vēl materiālus par šo. Tieši viss sanāca ar Substr, bet ja tāda tā lieta, tad skatīšu citus variantus, bet maķenīt gudrāks paliku. Paldies par to :wink:

User avatar
Aldis
E-žurnālists
Atbildes: 5084
Pievienojies: 21 Nov 2008, 15:55
Reputācija: 0
Atrodas: LV

Post no Aldis » 10 Jan 2010, 17:25

Piekrītu Andress..

Vēl var izmantot ko šādu!

Code: Select all

function wordCut($sTeksts, $maksimalais_garums, $sZinjas_beigas)
{
   if (strlen($sTeksts) > $maksimalais_garums)
   {
       $sString = wordwrap($sTeksts, ($maksimalais_garums-strlen($sZinjas_beigas)), '[cut]', 1);
       $asExplodedString = explode('[cut]', $sString);
      
       echo $sCutText = $asExplodedString[0];
      
       $sReturn = $sCutText.$sZinjas_beigas;
   }
   else
   {
       echo $sTeksts;
   }
  
   return $sReturn;
}
Pielietojums:

Code: Select all

/// Ievadi tekstu pie $teksts kuru vajag noskaldiit mazaaku
/// otrais mainiigais ir teksta garums kuru vajag noskaldit nost - piemeram sheit no teksta paradas 100 simboli...
/// teksta noraavums - piemeram daudzpunkte beigaas, vai punktu vieta var likt (Lasit talak) - atkariibaa kaa tev vajag

wordCut($teksts, 100, '...');
Image Oh My God = OMG
Image Ak Mans Dievs = AMD

User avatar
Andress
Reģistrēts lietotājs
Atbildes: 567
Pievienojies: 13 Jūl 2009, 15:31
Reputācija: 0

Post no Andress » 10 Jan 2010, 17:55

Crow wrote: [s]Multy-bite[/s] Multi-byte! Bļin, tak iemācies angliski rakstīt beidzot :D
W000t, atvaino, svētdienas vakars, pudele ruma. :)

@Autoram, es taču jau iedevu risinājumu: http://paste.php.lv/1fb366517924cb8d8fa ... 1?lang=php

User avatar
Aldis
E-žurnālists
Atbildes: 5084
Pievienojies: 21 Nov 2008, 15:55
Reputācija: 0
Atrodas: LV

Post no Aldis » 10 Jan 2010, 18:22

Vsp. jo mēs te php mācētāji katrs savu funkciju iemetīsim - tad būs interesanti - vairāki varianti gandrīz vienam pielietojumam! :D
Image Oh My God = OMG
Image Ak Mans Dievs = AMD

User avatar
Wuu
E-žurnālists
Atbildes: 2918
Pievienojies: 23 Aug 2008, 10:32
Reputācija: 0

Post no Wuu » 10 Jan 2010, 18:34

Es lietoju šādu, lai neveidotos nepabeigti vārdi un visi multy biti pie kājas.

Code: Select all

function uCrop($text,$lenght) {
	if (strlen($text) > $lenght) {
		$text = substr($text,0,$lenght);
		$text = trim($text);
		$text = explode(" ", $text, -1);
		$text = implode(" ",$text);
	}
	return $text;
}
Image

User avatar
Crow
E-žurnālists
Atbildes: 5391
Pievienojies: 10 Mai 2009, 14:22
Reputācija: 0
Atrodas: Ir

Post no Crow » 10 Jan 2010, 19:04

Eh, karoče - visiem prodžektiem spiežam STOP un gaidam PHP 6, kur Unicode supports beidzot būs native.
Дебилы, бл*ть...

User avatar
Aldis
E-žurnālists
Atbildes: 5084
Pievienojies: 21 Nov 2008, 15:55
Reputācija: 0
Atrodas: LV

Post no Aldis » 10 Jan 2010, 23:22

Wuu variants līdzīgs manam :)

paamtā nosaka strlen, tad apcērpj, neskaitot baitus! :)
Image Oh My God = OMG
Image Ak Mans Dievs = AMD

User avatar
guitarman
Reģistrēts lietotājs
Atbildes: 170
Pievienojies: 15 Aug 2008, 02:04
Reputācija: 0

Post no guitarman » 19 Jūn 2010, 03:02

Atvainojos ka velku ārā vecu tēmu, bet jaunu taisīt nav vērts, jo temats tas pats, tikai šoreiz radās cita problēma.

Izmantoju Andress doto funkciju:
Andress wrote:Funkcija atrodas šeit. Iekļauj šo funkciju kodā kautkur, kur vēlies. Tālāk:

Izsaukt:

Code: Select all

echo mb_substrws( $teksts_kuru_apgriezt, '200');
kur 200 ir skaitlis, cik simbolus gribi paradit.
Funkciju pielietoju šeit:
Image

(To var redzēt iekš www.troksnis.lv uzreiz pirmajā lapā)

Taču nezin kāda iemesla dēļ dažreiz simbolu skaits pie lapas refrešošanas mainās lūk šādi:

Image

Respektīvi tad vairāk simbolu, tad mazāk.
Un tas notiek tikai pie refrešošanas vai ieešanas citā sadaļā, un pats jokainākais ir tas, ka tas notiek tikai dažreiz, varētu pat teikt ka reti - ne pie katras refrešošanas. Pētīju to funkciju ar savām pašdarbnieciskajām php zināšanām, bet gudrs netiku.

Varbūt kāds zinošāks varētu pateikt kur slēpjas āķis?

User avatar
Wuu
E-žurnālists
Atbildes: 2918
Pievienojies: 23 Aug 2008, 10:32
Reputācija: 0

Post no Wuu » 19 Jūn 2010, 10:07

Pamēģini manu funkciju.
Image

User avatar
azazul
Vecākais lietotājs
Atbildes: 706
Pievienojies: 24 Mar 2007, 18:18
Reputācija: 0

Post no azazul » 19 Jūn 2010, 10:15

Nu a kas debugot php nemāki ?
Tur pat izdrukā cik tad daudz simbolu tev tekstā ir bijis, un skaties vai rezultātis ir pareizs.


Besides, ja jau tev visiem rakstiem ir tāds "preview",
tad nafig tu nevari to vienreiz noparsēt un glabāt jau gatavu datubāzē,
nevis katru reizi pērties tam tekstam cauri?
[font=9]"Begging for a line drawn in the sand to separate the prophets from the men" - Rishloo[/font]

User avatar
guitarman
Reģistrēts lietotājs
Atbildes: 170
Pievienojies: 15 Aug 2008, 02:04
Reputācija: 0

Post no guitarman » 19 Jūn 2010, 19:44

Tā arī netiku gudrs, kas tur darījās, bet ar tavu funkcija Wuu, izskatās ka viss bumbās. Paldies :)

User avatar
azazul
Vecākais lietotājs
Atbildes: 706
Pievienojies: 24 Mar 2007, 18:18
Reputācija: 0

Post no azazul » 19 Jūn 2010, 20:06

Wuu , esi tik laipns un pastāsti, kas notiks kad es izdarīšu šitā ?

Code: Select all

$text = 'Here <a href="http&#58;//lorem.ips.um/dolor/sit-amet">goes</a> nothing';
echo uCrop&#40;$text,10&#41;;
[font=9]"Begging for a line drawn in the sand to separate the prophets from the men" - Rishloo[/font]

User avatar
daGrevis
Vecākais lietotājs
Atbildes: 2343
Pievienojies: 06 Feb 2009, 19:00
Reputācija: 0
Atrodas: Rīga, Latvija

Post no daGrevis » 19 Jūn 2010, 20:26

Think of how stupid the average person is, and realize half of them are stupider than that. /George Carlin/

http://twitter.com/#!/daGrevis
http://last.fm/user/daGrevis
http://ask.fm/daGrevis

http://dagrevis.lv/

Mad182
Reģistrēts lietotājs
Atbildes: 903
Pievienojies: 14 Mar 2007, 15:16
Reputācija: 0
Atrodas: Latvija

Post no Mad182 » 20 Jūn 2010, 17:43

Diez vai azazul te domāja kļūdu paziņojumu ieslēgšanu, kam BTW būtu jabūt noklusēti ieslēgtam jebkurā izstrādes vidē... :D

User avatar
daGrevis
Vecākais lietotājs
Atbildes: 2343
Pievienojies: 06 Feb 2009, 19:00
Reputācija: 0
Atrodas: Rīga, Latvija

Post no daGrevis » 20 Jūn 2010, 18:37

Nu ar error_reporting() vajadzētu sākt. =D Pēc tam jau domāt tālāk... =)
Think of how stupid the average person is, and realize half of them are stupider than that. /George Carlin/

http://twitter.com/#!/daGrevis
http://last.fm/user/daGrevis
http://ask.fm/daGrevis

http://dagrevis.lv/

User avatar
Wuu
E-žurnālists
Atbildes: 2918
Pievienojies: 23 Aug 2008, 10:32
Reputācija: 0

Post no Wuu » 20 Jūn 2010, 19:55

azazul wrote:Wuu , esi tik laipns un pastāsti, kas notiks kad es izdarīšu šitā ?

Code: Select all

$text = 'Here <a href="http&#58;//lorem.ips.um/dolor/sit-amet">goes</a> nothing';
echo uCrop&#40;$text,10&#41;;
Man ir pilnīgi vienalga.
Image

Pievienot atbildi

Return to “Servera puse (php, java, ruby, perl, python) ”