From b599116b2cb25cadf1e7a97a48abc2a04707fb20 Mon Sep 17 00:00:00 2001 From: patrik2020 Date: Fri, 28 Aug 2020 11:43:06 +0200 Subject: [PATCH] Latex za izvoze: izvoz Analiz z besedilom, ki je zelo dolgo --- .../class.LatexAnalysisElement.php | 75 ++++++++++--------- 1 file changed, 38 insertions(+), 37 deletions(-) diff --git a/admin/survey/export/latexclasses/class.LatexAnalysisElement.php b/admin/survey/export/latexclasses/class.LatexAnalysisElement.php index ba52be8bc..67fe4884f 100644 --- a/admin/survey/export/latexclasses/class.LatexAnalysisElement.php +++ b/admin/survey/export/latexclasses/class.LatexAnalysisElement.php @@ -10,6 +10,7 @@ //include('../../function.php'); include('../../vendor/autoload.php'); +define("MAX_STRING_LENGTH", 12, true); class LatexAnalysisElement{ @@ -842,6 +843,23 @@ class LatexAnalysisElement{ //$text = html_entity_decode($text, ENT_NOQUOTES, 'UTF-8'); //$text = str_replace("š","š",$text); //echo "Encoding ".$text."
"; + + //resevanje razbirajanja predolgih neprekinjenih besed in URL - spremenljivke za kasnejsi prilagojen izpis + $numOfWords = str_word_count($text, 0); //stevilo besed v besedilu + $numOfSpacesPrej = substr_count($text, ' '); //stevilo presledkov v besedilu + $stringLength = strlen($text); //dolzina besedila + + $findSpace = ' '; + $findHttp = 'http://'; + $findHttps = 'https://'; + $posHttp = strpos($text, $findHttp); + $posHttps = strpos($text, $findHttps); + $isURL = 0; + /* if($posHttp !== false || $posHttps !== false) { //imamo URL naslov + $isURL = 1; + } */ + //resevanje razbirajanja predolgih neprekinjenih besed in URL - konec + if($text == ''){ //ce ni teksta, vrni se return; } @@ -951,7 +969,7 @@ class LatexAnalysisElement{ if($posImg !== false){ $text = substr_replace($text, $textOfImgCode, $posOfImgCode, 0); } - //po ureditvi posebnih karakterjev, dodati del teksta s kodo za sliko, ce je slika prisotna + //po ureditvi posebnih karakterjev, dodati del teksta s kodo za sliko, ce je slika prisotna if($pos === false && $posImg === false) { //v tekstu ni br in img //return $text; @@ -993,44 +1011,27 @@ class LatexAnalysisElement{ return strip_tags($text); //vrni tekst brez html tag-ov */ } - //preveri, ce je url v besedilu (http:// ... ) in uredi Latex izpis le-tega tako, da se ga doda v \url{} - $findHttp = 'http://'; - $findHttps = 'https://'; - $posHttp = strpos($text, $findHttp); - $posHttps = strpos($text, $findHttps); - $isURL = 0; + //ureditev odstranjevanja presledkov, ce so na zacetku ali koncu besedila + if(($numOfSpacesPrej)){ //ce so prisotni presledki + for($numPresledkovTmp = 1; $numPresledkovTmp <= $numOfSpacesPrej; $numPresledkovTmp++){ //za vsak presledek + $posSpace = strpos($text, $findSpace); //najdi pozicijo presledka v besedilu//preveri, kje se nahaja + if($posSpace==0){ //ce je presledek na zacetku besedila + $text = substr_replace($text, '', $posSpace, 1); //odstrani presledek iz besedila + $stringLength = strlen($text); + }elseif($posSpace==$stringLength){ //ce je presledek na koncu besedila + $text = substr_replace($text, '', $posSpace, 1); //odstrani presledek iz besedila + $stringLength = strlen($text); + } + } + $numOfSpacesPrej = substr_count($text, ' '); //stevilo presledkov v besedilu + } + //ureditev odstranjevanja presledkov, ce so na zacetku ali koncu besedila - konec - if($posHttp !== false || $posHttps !== false) { //imamo URL naslov - //$text = "\url{".$text."}"; - $text = "\seqsplit{".$text."}"; - $isURL = 1; + //priprava izpisa zelo dolgega besedila brez presledkov s seqsplit (URL, email, ...) + if( ($numOfSpacesPrej == 0 && $stringLength >= MAX_STRING_LENGTH) ){ //ce v besedilu ni presledkov in je besedilo daljse od max dovoljene dolzine + $text = "\seqsplit{".$text."}"; //ni v redu seqsplit, ker ne dela, če so posebni znaki } - //preveri, ce je url v besedilu (http:// ... ) in uredi Latex izpis le-tega tako, da se ga doda v \url{} - konec - - - //odstranitev presledkov na zacetku in koncu besedila kot predpriprava za razbijanja zelo dolgih neprekinjenih besedil - $findSpace = ' '; - $posSpace1 = strpos($text, $findSpace); //najdi pozicijo prvega presledka v besedilu - $posSpace2 = strripos($text, $findSpace); //najdi pozicijo zadnjega presledka v besedilu - /* echo "posSpace1: $posSpace1
"; - echo "posSpace2: $posSpace2
"; */ - - if(($posSpace1 == 0) && $isURL == 0){ - $numOfSpacesPrej = substr_count($text, ' '); //stevilo presledkov v besedilu - //$text = str_replace(' ','',$text); //nadomesti presledke - $textLength = strlen($text); - //echo $text."
"; - //$text = str_replace(' ','X',$text); //nadomesti presledke - //echo $text."
"; - } - //odstranitev presledkov na zacetku in koncu besedila kot predpriprava za razbijanja zelo dolgih neprekinjenih besedil - konec - - //ureditev razbijanja zelo dolgih neprekinjenih besedil s seqsplit - if($numOfSpacesPrej && $isURL == 0 && $textLength > 20){ - $text = "\seqsplit{".$text."}"; - //echo $text."
"; - } - //ureditev razbijanja zelo dolgih neprekinjenih besedil s seqsplit - konec + //priprava izpisa zelo dolgega besedila brez presledkov - konec return strip_tags($text); //vrni tekst brez html tag-ov }