Jump to content
php.lv forumi

aaxc

Moderatori
  • Posts

    638
  • Joined

  • Last visited

Posts posted by aaxc

  1. Varu piedāvāt šādu risinājumu,

     

    # class gatherData ($filename)
    class gatherData {
    
       # set used variables
       private $file_data;
    
       # Preload file
       public function __construct ($filename) {
           self::setFileData($filename);
       }
    
       # Load data into array
       public function getData() {
       	$return = array();
       	foreach (self::getFileData() as $key => $value) {
    
               # Ignore 1st 3 lines of unnecessary code
               if ($key>2) {
                   $large_array = explode('  ', $value);
                   foreach ($large_array as $info) {
                       if (trim($info)) {
                           $return[$k-2][] .= $info;
                       }
                   }
               }
           }
    
           # return new array
           return $return;
    
       }
    
       # set '$file_data' variable
       private function setFileData ($file_data) {
           $file_data = file($file_data);
       	$this -> file_data = $file_data;
       }
    
       # get '$file_data' variable
       private function getFileData() {
           return $this -> file_data;
       }
    
    }
    

    $aaxc = new gatherData('data.txt');
    $new_array = $aaxc -> getData();
    print_r($new_array);
    

    Takā preg_split nepārzinu labi, tad kāds cits var uztaisīt labāku variantu gan jau getData funkcijai.

  2. Manuālis aizkavējies, jo nezkāpēc nestrādā prod versija. Ar demo sistēmu vis šancē perfekti. Palaižot live kautkas nav tā. Gaidu jau gandrīz 2 nedēļas no bankas atbildi :)

  3. Es personiigi izpeetu linku. Man visaam developement videem ir "-dev" klaat. Ja pie ielaades tiek detekteets shis parametrs domeinam ( piemeeram www.dainisabols-dev.lv ), tad automaatiski ielaadeejas visi dev configi.

     

    Shaadaa veidaa nekad nav config jaamaina un visu varu SVN mest iekshaa, bez liekiem uztraukumiem.

    Protams, nevajag arii piemirst IP checkingu, lai kaads, zinot sho fiichu, nemeegjina tev lapu chakareet.

  4. Ok, problem solved, kādām būtu jāiemāca rakstīt manuāļus ... novācu lieki pieminēto hashingu un vis aizgāja:

     

    private function setSignature () {
     openssl_sign( $this -> getXMLData(), $signature, $this -> getPrivateKey() );
     $this -> signature = $signature;
    }
    

  5. private function setSignature () {
     $pre_mac = sha1( $this -> getXMLData() );
     openssl_sign( $pre_mac, $signature, $this -> getPrivateKey() );
     $this -> signature = $signature;
    }
    

    Ka redzi sākumā notiek sha1 un pēc tam sign, tākā sanāk openssl_sign( sha1( data ) )

  6. Sveiki,

    esmu mazliet iestrēdzis ar Norvik bankas banklinku. Itkā vis ir sataisīts, bet brēc ka signature ir nepareiza.

     

    Lūk bankas atsūtītais "manuālis":

    Digital signature MAC is XML data hash value, encrypted with sender’s private key.
    For hash value calculations SHA-1 algorithm is used, but for signature calculation RSA algorithm is used. Digital signature transforms to textual format using BASE64 encoding and is placed to MAC field.
    

    Mans kods:

    private function setPrivateKey ( $key_name ) {
     $fp = fopen( $this -> getKeyLocation() . '/' . $key_name, "r" );
     $priv_key = fread( $fp, 8192 );
     fclose( $fp );
     $this -> private_key = openssl_get_privatekey( $priv_key );
    }
    

    private function setSignature () {
     $pre_mac = sha1( $this -> getXMLData() );
     openssl_sign( $pre_mac, $signature, $this -> getPrivateKey() );
     $this -> signature = $signature;
    }
    

    private function setMac () {
     $this -> mac = base64_encode( $this -> getSignature() );
    }
    

    Vai es kautko ne tā taisu? Itkā jau viss pēc manuāļa, bet signature šamajiem nepatīk. Ar citām bankām šādu problēmu nav, vis strādā normāli.

     

    Ja kāds ir taisījis Norvik bankai tieši, varētu padalīties ar pieredzi.

     

    Paldies jau iepriekš.

  7. Problēma atrisināta, vajadzēja pievienot --non-interactive parametru un vis aiziet pa smuko:

     

    <?php
    
    function svn_exec ( $cmd, $log_file = false ) {
    
    $log = "";
    if ( $log_file ) $log = ' > ' . $log_file;
    
    if ( $_REQUEST['debug'] ) echo '<p style="color: blue;">' . $cmd . ' ' . SVN_DIR . '</p>';
    
    if ( $svn_result = shell_exec( $cmd . ' ' . SVN_DIR . $log ) ) {
     $result = "Success:\n\n" . $svn_result;
     //echo "<code>" . ( str_replace ( array('<','>', "\n"), array('<','>', '<br />'), $svn_result ) ) . "</code>";
    } else {
     $result = 'Fail';
    }
    
    return $result;
    
    }
    
    echo "<pre>";
    
    echo svn_exec ( 'svn --non-interactive log --xml --quiet' );
    
    echo "</pre>";
    
    ?>
    

  8. Papildinfo: Uzgāju vēl šādu rakstu:

     

    1. Man ir uzliktas Full control pravas uz viesiem folderiem un failiem ( tai skaitā hidden ).

    2. Man ir viens svn clients ( Tortoise ) klikšķināšanai un paralēli shell komandām otrs ( Slik ). Bet tā kā Tortoise neatbalsta shell komandas, tad no šī viedokļ tikai viens klients.

  9. Šajā gadījumā tas pilnibā nav svarīgi. Skaidrs zināms, ka tur vienkārši timeout iestāsies tik un tā. Shellā scripts izpildās instanti ( nu labi +- 50ms ), tāka problēma ir kur citur.

  10. Sveiki,

    ir radusies maza problēma. Nesvarīgu iemeslu dēļ, ir nepieciešams izveidot weblapas veida svn update formu.

     

    Atradu šo linku ( http://www.php.net/m...en/book.svn.php ), bet uz Windows mašīnas īsti nestrādā ( ja jums ir izdevies, tad droši padalamies pieredzē ).

    Notestēju arī šo ( http://websvn.tigris.org/ ), bet tur nav iespējas svn update taisīt, kas manā gadījumā ir svarīgākais.

     

    Tātad sāku pats ar primitīviem shell_exec tasīt augšā:

     

    <?php
    
    define ( SVN_DIR, 'c:\\svn\\server_dir' );
    
    function svn_exec ( $cmd ) {
    
     $output.= trim ( shell_exec( $cmd . ' ' . SVN_DIR ) );
    
     return $output;
    
    }
    
    echo "<pre>";
    
    echo svn_exec ( 'svn st' );
    echo svn_exec ( 'svnversion' );
    
    echo "</pre>";
    
    ?>
    

     

    Tik tālu vis strādā smuki, bet kā ņemam ko "apjomīgāku", kā piemēram:

     

    echo svn_exec ( 'svn log' );
    

     

    Tā lapa vienkārši nofrīzo, jeb mēģina bezgalīgi ilgi lādēties ( pat timeout neiestājas ).

     

    Jautājums elementārs, vai ir kāds ir ko tādu taisījis un ja jā, tad lūgums padalīties ar pieredzi un risinājumu.

     

    Jau iepriekš pateicos.

     

     

    Papildinfo: Uzgāju vēl šādu rakstu:

     

    1. Man ir uzliktas Full control pravas uz viesiem folderiem un failiem ( tai skaitā hidden ).

    2. Man ir viens svn clients ( Tortoise ) klikšķināšanai un paralēli shell komandām otrs ( Slik ). Bet tā kā Tortoise neatbalsta shell komandas, tad no šī viedokļ tikai viens klients.

  11. Paldies par padomiem, izdomāju kā. Rīts tomēr gudrāks par vakaru :)

     

    Function myKursi() {
    GLOBAL $BankXML;
    
    $dati = simplexml_load_file($BankXML);
    
    $datums = $dati->Date;
    $vDatums = substr($datums,6,2).".".substr($datums,4,2).".".substr($datums,0,4);
    
    $kursi = $dati->Currencies;
    foreach ($kursi->Currency as $valuta) {
    	$vID = $valuta->ID;
    	$vUnits = $valuta->Units;
    	$vRate = $valuta->Rate;	
    }
    }

  12. Sveiki,

    uzreiz saku, ka es jautaajums ir noobisks.

     

    Es te pus nakti njemos un taa arii nesaprotu, kaa pareizi ieguut latvijas bankas valuutu kursus masiivaa.

     

    Esmu ticis liidz pasham sakumama:

     

    Function myKursi() { // ieguustam kursus, ja shii ir pirmaa reize kad piesleedzamies bankai
    GLOBAL $BankXML; // links $BankXML = "http://www.bank.lv/vk/xml.xml";
    
    $masiivs = simplexml_load_file($BankXML);
    
    foreach (simplexml_load_string($dati) as $virsraksts => $maziivs) { // Apstraadaajam ieguuto masiivu
    	switch ($virsraksts) {
    		// Paarveidojam datumu GERMAN formaataa
    		case "Date":
    			$datums = substr($maziivs[0],6,2).".".substr($maziivs[0],4,2).".".substr($maziivs[0],0,4);
    		break;
    		case "Currencies";
    			$kursi = $maziivs["Currency"];
    
    			foreach (simplexml_load_file($BankXML) as $virsraksts => $maziivs) {
    				echo "<pre>";
    				print_r($maziivs);
    				echo "</pre>";
                           }
    		break;
    	}
    }
    
    }

     

    Pie "echo" stadijas es dabuunu scriptu objekta formaataa un namaaku to dabuut standarta masiivaa, lai peec tam to apstraadaatu un izvaidotu "excel" tipa tabulaa.

     

    Any help?

  13. Gan jau ka bija domāts, ka programmētājam pašam jāmāk uzrakstīt html/css kodu, nevis jāmāk tikai uzģenerēt to ar kādu wysiwyg tooli. es nezinu (neesu to lietojis), bet dreamviewerā gan jau bija tāda iespēja

    Tieshi taa

  14. Darbs 9-18 uz vietas?

    Un sanāk, ka meklē programmētāju/dizaineri/adminu all in one (kas māk visu darīt bez papildus softiem)?

    :/ Es te laikam tik biezhi neapgrozos lai saprastu vieteejaas shutkas, bet nu labi. Tiek mekleets cilveeks, kursh maak programmeet php jaunu maajaslapu izveidee. Protams, ka maaceet apstraadaat bildes un veidot elementaarus flash banerus ir bonus. Taapeec iemetu ss.lv linku uz vakanci.

    Papildus softi bija domaats ka ir vajadziigs cilveeks kursh speej kodus rakstiit piemeeram notpadaa nevis, teiksim, ar dreamweaver paliidziibu.

     

    Un jaa, patstaaviigs darbs no 9:00 liidz 17:00 kaa jebkuraa citaa ofisaa.

  15. Labas dienas,

     

    tātad mums ir nepieciešams vēlviens pieredzējis web programmētājs uzņēmumā kas izstrādā klientiem mājas lapas. Jāmak kodēt bez papildu programmu palīdzības, kā arī vēlams mācēt apstrādāt bildes un flsh zināšanas banneru izveidē.

     

    Pieteikumus droši sūtam uz [email protected]

  16. Ja ir interese, rekur jaunais LB valuutu kursa ieguushanas kods:

     

    <?php
    
    $doc = new DOMDocument();
    $doc->load('http://www.bank.lv/lat/rss/kursi.php');
    $arrFeeds = array();
    foreach ($doc->getElementsByTagName('item') as $node) {
    	$itemRSS = array ( 
    		'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
    		'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
    		'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue
    		);
    	array_push($arrFeeds, $itemRSS);
    }
    $pieces = explode(" ", $arrFeeds[0]['desc']);
    
    $kursi = array();
    $key = false;
    For ($k=1; $k<sizeof($pieces); $k++) {
    	if (!$key) {
    		$key = $pieces[$k];
    	} else {
    		$kursi[$key] = $pieces[$k];
    		$key = false;
    	}
    }
    
    echo "<pre>"; print_r($kursi); echo "</pre>";
    
    ?>

×
×
  • Create New...