Jump to content
php.lv forumi

darksign

Reģistrētie lietotāji
  • Posts

    198
  • Joined

  • Last visited

Everything posted by darksign

  1. Es par pirmo variantu. Turklāt ja ir mūža licence un nav bails ka kāds lauzīs augšā (nu bankas kodus jau šeit neturi) - tad vispār varētu vēl uz pāris gadiem atstāt kā ir. Paralēli - ja iznāks cienīga cita opensource versija - nu tad var domāt par trešo.
  2. Ja vajag, varu uzstādīt/iedot paša rakstītu moduli PrestaShop veikalam priekš FirstData.lv Kam vajag, tas uzraksta privāti.
  3. jā, varbūt nav vērts iespringt. nu bet vai tad cilvēkam, kurš katru dienu ņemās ar visu html kodēšanu, nebūs kāds konkrētas lietas ko var fiksi - nu .. stundas vai dienas laikā izdarīt? piem: * png problēma * izkārtojumu pa lielam pielāgot (nav jābūt visam perfekti, bet funkcionālam) * citas problēmas.. ko tagad vakarā nevaru atcerēties :) utt.. Bet ok, pat ja ne IE6.. varbūt ir kāds smarty koderis / eksperts ? :)
  4. Sveiki, Man nepieciešams, ir modificēt vienu prestashop tēmu. Nepieciešamās lietas: * modificēt sagatavēs "div" vai css tā, lai lapa būtu dinamiski staipāma. * atrisināt dažus svarīgākos compability issues ar IE 6 un uz augšu. (nja.. konstatēju, ka joprojām lietotāju starpā tiek izmantots) Ja kāds zin, un ir darbojies ar prestashop, smarty templeitiem un UI, tad rakstat, un dodat ziņu.
  5. darksign

    kadu valodu?

    Piekrītu.. es vismaz sākumam ieteiktu apgūt VB macros.. jo tad varētu izmantot wordu utt. Lietot šo makrosu visiem saviem word dokumentiem. Taču, ja ir teksta fails "fails.txt", tad priekš programmēšanas apgūšanas labs būtu kaut vai tas pats vecais labais "Pascal" ... nu bet kad būsi šos te apguvis, tad arī ņem tālāk - PHP, Pyton... un pēc tam C, C++, C#, Java :)
  6. Viss, pats atradu.. topiks slēgts. Vienkārši php dokumentācijā trūkst apraksts par "openssl_pkcs12_export" funkcijas optional parametru $args, tāpēc arī tik ilgi gāja. Paldies visiem, kas vismaz centās iedziļināties :)
  7. Jā tāds fakts ir, bet kāds šim faktam sakars ar minētajām php funkcijām. Un to būtību, ka neizdodas ar php funkcijām ģenerēt p12 failu, kurā būtu iešūts arī CAcert ? To funkciju sarakstu esmu redzējis un pētījis daudzkārt, bet tā arī neesmu atradis, kura no funkcijām ļautu iešūt p12 failā klāt to CAcert. Vai kāds varētu palīdzēt?
  8. nu man vnk. ir uzdevums, uztaisīt tā, lai lietotājs var pats mainīt visus sertifikātus ar vienkāršu "upload" vai arī "send-to-email" pogām... kā arī ir izdiskutēts jautājums.. taču, pasūtītājs grib, lai tā ir. p.s. nav tā ka tikai vienreiz.. šobrīd tas ir jādara katru gadu. (tur ar tas suns aprakts - vienreiz uztaisīšu, pēc tam, useris, varēs lietot nebēdājot, ka neko nezin no openssl, vai arī, ja developeris nav sasniedzams) galu galā, vienalga par to pamatojumu, bet vai tad ar tīru PHP nevar izdarīt šo darbiņu???
  9. To ko var izdarīt izmantojot komandrindu ir šādi: openssl pkcs12 -export -in tirgotajs.pem -out tirgotajs.p12 -certfile CACert.pem -inkey tirgotajs_key.pem Rezultātā tiek noģenrerēts p12 fails. Šeit tiek izmantots arī parametrs "-certfile". (p.s. CACert.pem ir tas pats ECOMM.pem ko FDL atsūta) Pēc tam tiek ģenerēts keystore fails: openssl pkcs12 -in tirgotajs.p12 > tirgotajs_keystore.pem Tad nu nepieciešams šīs divas rindiņas pārvērst uz PHP kodu. Forumos atradu ka citi joprojām izmanto konsoli (exec() funkciju), taču tas man neder (arhīva pēc ieliku citātu) [avots: http://www.phpbuilde....php?t=10321977]: Līdz šim man ir izdevies uzģenerēt to pašu p12 failu ar šādu te veidu: openssl_pkcs12_export($signed_csr, $cerificate_out, $private_key_resource, "parole"); //p.s. $signed_csr <-- parakstiits "tirgotajs.pem" ko atsuuta FDL, un $private_key_resource -- tirgotaja privaataa atsleega // $cerificate_out -> On success, this will hold the PKCS#12. file_put_contents("./certificate.p12", $cerificate_out); //saglabaajam failaa Atšķirība tāda, ka PHP koda piemērā netiek izmantots CA sertifikāts jeb "-certfile CACert.pem". Līdz ar to, kā tālāk izveidot keystore failu? Jo PHP funkcijas izmantojot, vienīgais ko varu izdomāt ir: $certs_pem = array(); $pkcs12 = file_get_contents($certificate_p12_path); openssl_pkcs12_read($pkcs12, $certs_pem, $passphrase); echo "<br />Certificate keystore arr: <br />"; print_r($certs_pem); Un šajā gadījumā $certs_pem satur šādu te masīvu: Array ( [cert] => -----BEGIN CERTIFICATE----- ....... -----END CERTIFICATE----- [pkey] => -----BEGIN RSA PRIVATE KEY----- ............. -----END RSA PRIVATE KEY----- [extracerts] => Array ( ) ) Taču konsolē ģenerētais KeyStore fails satur šādu struktūru: Bag Attributes localKeyID: 64 7A 55 FE 29 .............................4 D1 C7 E9 CF subject=/C=lv/O=veikals.lv/CN=tirgotajaID issuer=/C=LV/ST=Riga/L=Riga/O=BSC/OU=BSC/CN=ECOMM/emailAddress=example@example.com -----BEGIN CERTIFICATE----- ............. -----END CERTIFICATE----- Bag Attributes: <No Attributes> subject=/C=LV/ST=Riga/L=Riga/O=BSC/OU=BSC/CN=ECOMM/emailAddress=example@example.com issuer=/C=LV/ST=Riga/L=Riga/O=BSC/OU=BSC/CN=ECOMM/emailAddress=example@example.com -----BEGIN CERTIFICATE----- ............. -----END CERTIFICATE----- Bag Attributes localKeyID: 64 7A 55 FE 29 CE B........................C7 E9 CF Key Attributes: <No Attributes> -----BEGIN RSA PRIVATE KEY----- Proc-Type: 4,ENCRYPTED DEK-Info: DES-EDE3-CBC,4A53F67F2ACB00AE ...................... -----END RSA PRIVATE KEY----- Kā ar PHP var uztaisīt to pašu keystore failu? Un kur ielikt to CAcert.pem? Cerams, ka kāds zinošāks palīdzēs, jo līdz šim neko neesmu atradis kur ievietot to CAcert... p.s. ir pieejams arī pkcs7 formāta (it kā chain) fails, ko FDL sūta pielikumā, bet tā kā konsoles komandās tas netiek izmantots, tad diez vai vajag to izmantot priekš PHP.
  10. Es balsoju par PrestaShop, šis kaut kā vairāk patīk gan no lietojamības, gan no koda puses (nav tik izčakarēts, kā Joomla VirtueMart vai arī OsCommerce, un vieglāk - intuitīvāk saprotams).
  11. piekrītu daGrevis idejai, + vari no localhosta uztaisīt skriptu, ka tad kad tu palaid, tad viņš nokačā tavu backup failu un importē to tavā localhostā.. jo es sapratu, ka galvenā lieta ir abpusēja integritāte. .. vismaz ar datubāzi tā var rīkoties, taču ar pašiem failiem iesaku jau sen pārbaudītu lietu - subversions jeb SVN :) kas un kā.. SVN lietošanas rokasgrāmata :D
  12. p.s. atradu vēl vienu bagu, kur autors samudžinājies ifos bija, tad nu nomainīju arī iepriekšējam postam šo rindiņu: return ($n{0} == 1 ? (substr($n, 1) == '00' ? 'simts' : 'viens simts') : $digits[$n{0}] . ' ' . 'simti') . ' ' . _number2stringSmall(substr($n, 1)); pret šo: return $digits[$n{0}] . ($n{0} == 1 ? ' simts' : ' simti') . ' ' . _number2stringSmall(substr($n, 1)); Jo iepriekš bija kļūda, piemēram, ja summa ir 51010, tad uzrakstītais teksts ir "piecdesmit viens tūkstotis simti desmit latu", kaut gan vajadzētu "piecdesmit viens tūkstotis simts desmit latu". Lūk arī vēl viens apstiprinājums kiss metodikai, ka jo vienkāršāk rakstam kodu, jo vienkāršāk pašam un citiem saprast ko mēs tur vispār daram... jo uz sākotnējo rindu man vismaz nav ērti skatīties.. kad tiek dubultoti ifi ar šo konkrēto speciālo sintaksi. Lai gan ērti izmantot, un dažreiz pat labi (nav jātaisa papildus mainīgie), bet tomēr, manuprāt, grūtāk salasīt un ātri ieraudzīt vienkāršas kļūdas.
  13. http://php.lv/f/topic/4064-skaitlu-parveidotajs-par-tekstu/page__view__findpost__p__139763
  14. Nē, ja raksta atsevišķi, tad pareizi ir "simts desmit", bet ja kopā, tad "simtdesmit" ! ;)
  15. Un ja gribam lielisku funkciju, kas latviešu valodā pārvērš skaitļus par summu vārdos, tad pie esošajām funkcijām pievienojam vēl trīs funkcijas, un šeit gatavais rezultāts (apvienoju speciāli priekš ātrajiem copy & paste variantiem): if (!function_exists('number2string')) { function number2string($n) { //$n = (int)$n; if ($n < 0) $b = 'mīnus '; //$n = abs($n); if ($n == '0') { return 'nulle'; } else { return $b . _number2stringBig($n); } } } if (!function_exists('_number2stringBig')) { function _number2stringBig($n) { if ($n == '0') return; $e = Array( Array( '1' => 'tūkstotis', '2' => 'miljons', '3' => 'miljards', '4' => 'triljons', '5' => 'kvadriljons', '6' => 'kvintiljons', '7' => 'sekstiljons', '8' => 'septiljons', '9' => 'oktiljons', '10' => 'nontiljons', '11' => 'deciljons', '12' => 'undeciljons', '13' => 'duodeciljons', '14' => 'trideciljons', '15' => 'kvartdeciljons', '16' => 'kvintdeciljons', '17' => 'seksdeciljons', '18' => 'septdeciljons', '19' => 'oktdeciljons', '20' => 'nondeciljons', ), Array( '1' => 'tūkstoši', '2' => 'miljoni', '3' => 'miljardi', '4' => 'triljoni', '5' => 'kvadriljoni', '6' => 'kvintiljoni', '7' => 'sekstiljoni', '8' => 'septiljoni', '9' => 'oktiljoni', '10' => 'nontiljoni', '11' => 'deciljoni', '12' => 'undeciljoni', '13' => 'duodeciljoni', '14' => 'trideciljoni', '15' => 'kvartdeciljoni', '16' => 'kvintdeciljoni', '17' => 'seksdeciljoni', '18' => 'septdeciljoni', '19' => 'oktdeciljoni', '20' => 'nondeciljoni', ), ); //$n = (string)abs($n); $length = strlen((string)$n); $pow = ceil($length / 3) - 1; $digits = ($length - 1) % 3 + 1; $begin = substr($n, 0, $digits); $s = _number2stringSmall($begin); if ($pow > 0) { $end = substr($n, $digits); if (substr($begin, -1) == 1 && substr($begin, 0, 1) == 1) { $middle = $e[0][$pow]; } else { $middle = $e[1][$pow]; } $s .= ' ' . $middle; $s .= ' ' . _number2stringBig($end); } return $s; } } if (!function_exists('_number2stringSmall')) { function _number2stringSmall($n) { $digits = Array('', 'viens', 'divi', 'trīs', 'četri', 'pieci', 'seši', 'septiņi', 'astoņi', 'deviņi'); $preDigits = Array('', 'vien', 'div', 'trīs', 'četr', 'piec', 'seš', 'septiņ', 'astoņ', 'deviņ'); $n = (string)$n; $l = strlen($n); if ($l > 3) return false; if ($l == 3) { return $digits[$n{0}] . ($n{0} == 1 ? ' simts' : ' simti') . ' ' . _number2stringSmall(substr($n, 1)); } else { if ($l == 1) return $digits[$n]; if ($n{0} == 1) { if ($n == '10') return 'desmit'; return $preDigits[$n{1}] . 'padsmit'; } $s = $preDigits[$n{0}] . 'desmit'; if ($n{1} != '0') { $s .= ' ' . $digits[$n{1}]; } return $s; } } } function addBigCurrency($n) { $last = substr($n, -1); if($last == 0) { return " latu"; } elseif($last == 1) { return " lats"; } else { return " lati"; } } function addSmallCurrency($n) { $last = substr($n, -1); if($last == 0) { return " santīmu"; } elseif($last == 1) { return " santīms"; } else { return " santīmi"; } } function amount2words($num) { if($num > 999999999999999999999999999999999999999999999999999999999999999.99) { return "ERROR: Skaitlis ir par lielu!"; } elseif($num < -999999999999999999999999999999999999999999999999999999999999999.99) { return "ERROR: Skaitlis ir par mazu!"; } else { //funkcija pieņem tikai skaitļus ar "." kā decimālattalītāju $parts = explode(".", $num); if(count($parts) <= 2) { $int = $parts[0]; $dec = $parts[1]; $str_resp = number2string($int).addBigCurrency($int); if(count($parts) == 2) { if($dec > 99 || $dec < 0) { return "ERROR: Unknown situation!"; } elseif($dec > 0 || $dec < 10) { if(strlen($dec) > 1) { $dec = intval($dec); } else { $dec = $dec * 10; } $str_resp .= " un ".$dec.addSmallCurrency($dec); } else { $str_resp .= " un ".$dec.addSmallCurrency($dec); } } //RG: ja nepieciešams izvadīt arī 00 santīmus, kad tie nav pierakstīti! /* else { $str_resp .= " un 00".addSmallCurrency($dec); } //*/ return $str_resp; } else { return "ERROR: Unknown situation!"; } } } Piemērs: echo "<br>number2string: ".amount2words(3456.99)."<br>"; //number2string: trīs tūkstoši četri simti piecdesmit seši lati un 99 santīmi Ja nu kāds atrod vēl kādu kļūdu, vai ieteicamu uzlabojumu, tad droši, rakstam, ja varam, tad arī labojam.. un postojam iekšā :)
  16. Tātad, dažreiz vajag arī lielākus skaitļus, līdz ar to, papildināju funkciju, t.s. noņēmu arī tos liekos (int) un abs(), jo tie ierobežo skaitļus līdz int maksimumam. Tagad max skaitlis, ko šī funkcija māk uzrakstīt ir "999999999999999999999999999999999999999999999999999999999999999" -> skaitlis ar 63 cipariem. (bez decimāldaļām) Uzrakstot šo skaitli, sanāk šāds te teksts: if (!function_exists('number2string')) { function number2string($n) { //$n = (int)$n; if ($n < 0) $b = 'mīnus '; //$n = abs($n); if ($n == '0') { return 'nulle'; } else { return $b . _number2stringBig($n); } } } if (!function_exists('_number2stringBig')) { function _number2stringBig($n) { if ($n == '0') return; $e = Array( Array( '1' => 'tūkstotis', '2' => 'miljons', '3' => 'miljards', '4' => 'triljons', '5' => 'kvadriljons', '6' => 'kvintiljons', '7' => 'sekstiljons', '8' => 'septiljons', '9' => 'oktiljons', '10' => 'nontiljons', '11' => 'deciljons', '12' => 'undeciljons', '13' => 'duodeciljons', '14' => 'trideciljons', '15' => 'kvartdeciljons', '16' => 'kvintdeciljons', '17' => 'seksdeciljons', '18' => 'septdeciljons', '19' => 'oktdeciljons', '20' => 'nondeciljons', ), Array( '1' => 'tūkstoši', '2' => 'miljoni', '3' => 'miljardi', '4' => 'triljoni', '5' => 'kvadriljoni', '6' => 'kvintiljoni', '7' => 'sekstiljoni', '8' => 'septiljoni', '9' => 'oktiljoni', '10' => 'nontiljoni', '11' => 'deciljoni', '12' => 'undeciljoni', '13' => 'duodeciljoni', '14' => 'trideciljoni', '15' => 'kvartdeciljoni', '16' => 'kvintdeciljoni', '17' => 'seksdeciljoni', '18' => 'septdeciljoni', '19' => 'oktdeciljoni', '20' => 'nondeciljoni', ), ); //$n = (string)abs($n); $length = strlen((string)$n); $pow = ceil($length / 3) - 1; $digits = ($length - 1) % 3 + 1; $begin = substr($n, 0, $digits); $s = _number2stringSmall($begin); if ($pow > 0) { $end = substr($n, $digits); if (substr($begin, -1) == 1 && substr($begin, 0, 1) == 1) { $middle = $e[0][$pow]; } else { $middle = $e[1][$pow]; } $s .= ' ' . $middle; $s .= ' ' . _number2stringBig($end); } return $s; } } if (!function_exists('_number2stringSmall')) { function _number2stringSmall($n) { $digits = Array('', 'viens', 'divi', 'trīs', 'četri', 'pieci', 'seši', 'septiņi', 'astoņi', 'deviņi'); $preDigits = Array('', 'vien', 'div', 'trīs', 'četr', 'piec', 'seš', 'septiņ', 'astoņ', 'deviņ'); $n = (string)$n; $l = strlen($n); if ($l > 3) return false; if ($l == 3) { return ($n{0} == 1 ? (substr($n, 1) == '00' ? 'simts' : 'viens simts') : $digits[$n{0}] . ' ' . 'simti') . ' ' . _number2stringSmall(substr($n, 1)); } else { if ($l == 1) return $digits[$n]; if ($n{0} == 1) { if ($n == '10') return 'desmit'; return $preDigits[$n{1}] . 'padsmit'; } $s = $preDigits[$n{0}] . 'desmit'; if ($n{1} != '0') { $s .= ' ' . $digits[$n{1}]; } return $s; } } } Ceru, ka noderēs ;) p.s. iespējams, ka pirms likšanas funkcijā vajag nedaudz validācijas, jo ir noņemti tie abs() utt. kas bija sākumā ;)
  17. ipk.. ;) Ja vajag šādu formu, tad aizvietojam šo rindu: return ($n{0} == 1 ? (substr($n, 1) == '00' ? 'simts' : 'simtu') : $digits[$n{0}] . ' ' . 'simti') . ' ' . _number2stringSmall(substr($n, 1)); ar šo: return ($n{0} == 1 ? (substr($n, 1) == '00' ? 'simts' : 'viens simts') : $digits[$n{0}] . ' ' . 'simti') . ' ' . _number2stringSmall(substr($n, 1));
  18. Te būs izlabotās funkcijas: if (!function_exists('number2string')) { function number2string($n) { $n = (int)$n; if ($n < 0) $b = 'mīnus '; $n = abs($n); if ($n == '0') return 'nulle'; else return $b . _number2stringBig($n); } } if (!function_exists('_number2stringBig')) { function _number2stringBig($n) { if ($n == '0') return; $e = Array( Array( '1' => 'tūkstotis', '2' => 'miljons', '3' => 'miljards', ), Array( '1' => 'tūkstoši', '2' => 'miljoni', '3' => 'miljardi', ), ); $n = (string)(int)abs($n); $length = strlen((string)$n); $pow = ceil($length / 3) - 1; $digits = ($length - 1) % 3 + 1; $begin = substr($n, 0, $digits); $s = _number2stringSmall($begin); if ($pow > 0) { $end = substr($n, $digits); if (substr($begin, -1) == 1 && substr($begin, 0, 1) == 1) { $middle = $e[0][$pow]; } else { $middle = $e[1][$pow]; } $s .= ' ' . $middle; $s .= ' ' . _number2stringBig($end); } return $s; } } if (!function_exists('_number2stringSmall')) { function _number2stringSmall($n) { $digits = Array('', 'viens', 'divi', 'trīs', 'četri', 'pieci', 'seši', 'septiņi', 'astoņi', 'deviņi'); $preDigits = Array('', 'vien', 'div', 'trīs', 'četr', 'piec', 'seš', 'septiņ', 'astoņ', 'deviņ'); $n = (string)(int)$n; $l = strlen($n); if ($l > 3) return false; if ($l == 3) { return ($n{0} == 1 ? (substr($n, 1) == '00' ? 'simts' : 'simtu') : $digits[$n{0}] . ' ' . 'simti') . ' ' . _number2stringSmall(substr($n, 1)); } else { if ($l == 1) return $digits[$n]; if ($n{0} == 1) { if ($n == '10') return 'desmit'; return $preDigits[$n{1}] . 'padsmit'; } $s = $preDigits[$n{0}] . 'desmit'; if ($n{1} != '0') { $s .= ' ' . $digits[$n{1}]; } return $s; } } } p.s. nepatīk paste.php.lv un nelietošu tīši, kamēr nebūs ieviesta tik nepieciešama lieta, kā utf8 kodējums ;)p
  19. Ievadot skaitli "151911351" number2string izvada: simtu piecdesmit viens miljons deviņi simti vienpadsmit tūkstotis trīs simti piecdesmit viens Kaut gan, vajadzētu: simtu piecdesmit viens miljons deviņi simti viendpadsmit tūkstoši trīs simti piecdesmit viens Kā arī, ieteicams, ja lieto priekš grāmatvedības rēķiniem, tad lietot formu "viens simts ...", nevis "simtu ..." Kā arī vārds miljons, rakstās "miljons" nevis "milijons"
  20. Ievadot 100.99 tagad dabū ārā "viens simts nulle lati un 99 santīmi" Un vēl būtu jāpalabo, ja raksta "viens simts", tad galotne, ir "latu", nevis "lati"! Tas pats gramatikas likums kā ar santīmiem ;)
  21. Pirmkārt, paldies, ka cenšaties palīdzēt, bet atbildes man liek smaidīt, un šķiet, ka nu reiz jums pienācis atkārtot html pamatus .. tai skaitā specializētos tagus ;) jap, pārlūkprogramma izravē gan, bet ne jau tagus! p.s. <xmp> nav nesaprotams tags, bet viens no pamattagiem. Un tas nav nekādā saistībā ar adobe! bravo.. :) nop! viņš atgriež visu to ko man vajag, un viņam ir gan .html() gan .text() metodes. p.s. arī DOM elementiem, jQuery atļauj izsaukt šīs metodes. Nezinu, kas un kāpēc viņu uzskata par novecojušu, bet viņš ir ļoti noderīgs, izmantoju gandrīz katru dienu, kad vajag debugot svešu kodu, bez jebkādām iespējām lietot xDebugerus utt.. <pre> - tags nespēj aizvietot <xmp> funkcionalitāti! Lai būtu skaidrs, tad te piemērs, kas demonstrē atšķirības starp <xmp> un <pre> tagiem. Piemēram, man no datubāzes tiek dabūti kaut kādi dati, un es nezinu vai konkrētie dati satur html, vai nē, bet gribu redzēt, kas tad īsti tur ir tiešā veidā, netērējot laiku uz view-source utt. Līdz ar to. Ja man ir šāds masīvs: $arr = array(); $arr['a'] = "pirmais elements"; $arr['b'] = "<b>otrais</b> elements"; $arr['c'] = "<hr>treshais<div style='display:none'> elements</div>"; Izprintējot ārā echo "<pre>"; print_r($arr); echo "</pre>"; un izvadot starp <pre> tagiem, es iegūšu šādu redzamu rezultātu: Array ( [a] => pirmais elements => otrais elements [c] => __________________________________________ treshais ) Bet tai pat laikā ja izvadīšu echo "<xmp>"; print_r($arr); echo "</xmp>"; ārā starp <xmp> tagiem, tad redzamais rezultāts būs šāds: Array ( [a] => pirmais elements => <b>otrais</b> elements [c] => <hr>treshais<div style='display:none'> elements</div> ) Ja tiek izvadīts ar <pre> tagiem, tad teksts tiek noformēts un html izpildās, bet ja <xmp> tad html kods starp šiem tagiem neizpildās (DOM to saturu uztur parasti ar speciāliem simboliem, un to neparsē). Līdz ar to, tad kad kādā lielā sistēmā nezinot, vai mainīgais satur, vai nesatur html tagus, ir ļoti ērti izvadīt izmantojot tieši xmp tagus, un pat ja tā vietā izmantotu htmlspecialchars(), tad būtu jādomā kas tad īsti ir tajā mainīgajā.. pirms parsēšanas utt.. bet ar xmp.. viss vienkāršais ir ģeniāls :))
  22. nop, es jau tieši šo situāciju aprakstīju, ka neder nedz .html() nedz .text() .. vismaz tīrā veidā nē! jo mainīgais data vienmēr būs smuks html, bet .text() būs tikai teksts, bez jebkādiem html tagiem, bet .html() rādīs tikai pirmā līmeņa tagus ("<xmp>" gadījumā!!!) un visu kas zem viņa, tas būs izfiltrēts un aizvietots ar speciāliem simboliem. lai gan, iespējams problēma ir tā, ka tieši <xmp> tags ir tas īpašais, jo pārlūks visu saturu iekš viņa nevis atstā neaiztiktu, bet pārvērš tā, lai pats nesaprastu! hmm.. kaut gan drīzāk vajadzētu vienkārši ignorēt un neparsēt! konkrētajā gadījumā, man vajadzīgo problēmu esmu atrisinājis pavisam savādākā veidā.. bet šis jautājums joprojām paliek interesants, kā būt, vai kā nebūt.. vai vispār kaut ko tādu drīkst uzdrīkstēties gaidīt no html + javascript arī ar <xmp> tagiem :)
  23. p.s. to admins.. plz pārliekat uz javascript sadaļu.. :) jo šķiet, ka ne īsti tur iepostoju :)
  24. Problēmas apraksts: izmantojot ajax dabūju no php skripta sev vajadzīgos datus, kas satur html. Piemēram, no php faila, tika atgriezta šāda virkne: <br /><xmp>Array ( [start_date] => 0000-00-00 00:00:00 [end_date] => 2011-01-14 12:00:00 [closed_date] => 0000-00-00 [published] => 1 [close_offer] => 0 ) </xmp>800020.00 Ja šos datus ievietoju HTML elementā ar jQuery(..selektors..).html(dati), un pēc tam pie tā vēršos ar jQuery(..selektors..).html() (analogs parastam innerHTML) tad iegūstu šādu rezultātu: <br><xmp>Array ( [start_date] => 0000-00-00 00:00:00 [end_date] => 2011-01-14 12:00:00 [closed_date] => 0000-00-00 [published] => 1 [close_offer] => 0 ) </xmp>800020.00 Bet ja vēršos ar jQuery(..selektors..).text(dati) jeb innerText, tad rezultātā iegūstu šādu virkni: Array ( [start_date] => 0000-00-00 00:00:00 [end_date] => 2011-01-14 12:00:00 [closed_date] => 0000-00-00 [published] => 1 [close_offer] => 0 ) 800020.00 Problēma sekojoša, gribu updeitot datus tikai tad, ja tie mainās. Bet šajā gadījumā, sanāk, ka viņi ir visu laiku savādāki, jo pielietojot šādu salīdzināšanu, vienmēr dati būs atšķirīgi: if(elementsArr[fid].html() != data) { elementsArr[fid].html(data); jQuery(field).effect("highlight", 500); } p.s. debugoju izmantojot firebug konsoles iespējas.. līdz ar to ieraudzīju, ka problēma ir ar ">" simboliem: Kādam ir bijusi vajadzība šādi salīdzināt? Kādā veidā ir iespējams ar JS dabūt arā raw html no elementa, arī lai subelementus rāda ar normāliem html nevis parsētiem tagiem?
×
×
  • Create New...