Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    106

    Estrarre dati da un insolita stringa

    Salve a tutti , sono incappato in una sfida per pochi...

    nel mio cms devo estrarre dal database mysql una stringa (generata da qualche modulo) che ha come contenuto

    a:4:{s:13:"sender_p_link";s:32:"http://social.com/Matrix";s:13:"sender_p_nick";s:6:"Matrix";s:16:"re cipient_p_link";s:33:"http://social.com/Stefano";s:16:"recipient_p_nick";s:7:"Stefano";}


    a me servirebbero solamente queste parti

    http://social.com/Matrix - Matrix - http://social.com/Stefano - Stefano


    tutti quei a:4:{s:13:"sender_p_link";s:32 .... non mi servono e non capisco proprio in che linguaggio sono programmati e come vengono interpretat .. voi avete qualche idea ?

    in php avevo pensato di richiamare la stringa e fare un replace generale ...
    dovrei fare qualcosa del genere , richiamare la stringa e "aggiustarla"

  2. #2
    dovresti darmi altre stringhe campione, per capire come si comporta in altri casi e poter agire facendo una porzione di codice più dettagliata o dover cercare uno standard per accomunare diverse tipologie.

    Perché se il codice alfanumerico prima della parte che ti interessa resta la medesima è un paio di maniche, se il codice cambia da stringa a stringa il discorso cambia.

  3. #3
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120

    Re: Estrarre dati da un insolita stringa

    Originariamente inviato da thearch
    non capisco proprio in che linguaggio sono programmati e come vengono interpretat .. voi avete qualche idea ?
    E' un array serializzato.
    Supponendo che si chiami $pippo, equivale a questo:

    Codice PHP:
    $pippo['sender_p_link'] = 'http://social.com/Matrix';
    $pippo['sender_p_nick'] = 'Matrix';
    $pippo['recipient_p_link'] = 'http://social.com/Stefano';
    $pippo['recipient_p_nick'] = 'Stefano'
    Lo puoi ottenere facendo
    $pippo = unserialize($xxx)

    dove $xxxx è la variabile in cui hai messo la tua "insolita stringa"

  4. #4
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    106
    come dicevi tu , esattamente è un array serializzato , nel codice php ho trovato la funzione che inserisce appunto i dati nel db

    è la seguente

    Codice PHP:

     
    function createActivity($iSenderId$iRecipientId$aActivityInfo)
            {
                
    // -- procces recived parameters -- //
                
    $aParameters $this->escape(serialize($aActivityInfo['params']));

                
    // if isset activity's types will uset it;
                
    $sActivityType = ( isset($aActivityInfo['spy_type']) ) 
                    ? 
    $aActivityInfo['spy_type']
                    : 
    'content_activity';

                
    // execute query;
                
    $sQuery 
                
    "
                    INSERT INTO
                        `
    {$this->sTablePrefix}data`
                    SET
                        `sender_id`     = 
    {$iSenderId},
                        `recipient_id`  = 
    {$iRecipientId},
                        `lang_key`      = '
    {$aActivityInfo['lang_key']}',
                        `params`        = '
    {$aParameters}',
                        `date`          = TIMESTAMP( NOW() ),
                        `type`          = '
    {$sActivityType}'
                "
    ;

                
    $this -> query($sQuery);

                return 
    $this -> lastId();
            } 
    per richiamare quindi sender_p_link , sender_p_nick come dovrei fare ?
    tu hai detto $pippo['sender_p_link']

    ma dove trovo il nome di quest array serializzato ?...

  5. #5
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    106
    params` = '{$aParameters}',

    questa è la parte dove si trova la stringa...

  6. #6
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Originariamente inviato da thearch
    ma dove trovo il nome di quest array serializzato ?...
    te l'ho pure già spiegato
    Non ti serve il nome, glielo dai tu!

    Hai i dati nel db, giusto? Li leggerai e li metterai in una variabile, supponiamo che la chiami $pluto.

    $pippo = unserialize($pluto);
    echo $pippo['sender_p_link'];

  7. #7
    Utente di HTML.it
    Registrato dal
    Apr 2009
    Messaggi
    106
    però non riesco a farlo funzionare ..

    Codice PHP:

    $mioid 
    $_COOKIE['memberID'];
    $db_host "localhost";
    $db_user "user";
    $db_password "pass";
    $db_name "new";
    $db mysql_connect($db_host,$db_user,$db_password);
     if (
    $db == FALSE)
     die (
    "errore di connessione");

     
    mysql_select_db($db_name,$db)
     or die (
    "errore selezione database");
     
    $query "SELECT * FROM bx_spy_data WHERE sender_id=$mioid ORDER BY id LIMIT 0,30";

    $result mysql_query($query,$db);
    $pippo unserialize($query,$db);


    while(
    $row mysql_fetch_array($result))
    {
        echo 
    $pippo['sender_p_link'];


    sto sbagliando qualcosa ?

    ti ringrazio

  8. #8
    Utente di HTML.it L'avatar di luca200
    Registrato dal
    Apr 2002
    Messaggi
    4,120
    Potevi anche dirlo, che non hai mai programmato in vita tua

    Codice PHP:

    $mioid 
    $_COOKIE['memberID'];
    $db_host "localhost";
    $db_user "user";
    $db_password "pass";
    $db_name "new";
    $db mysql_connect($db_host,$db_user,$db_password);
     if (
    $db == FALSE)
     die (
    mysql_error());

     
    mysql_select_db($db_name,$db)
     or die (
    mysql_error());
     
    $query "SELECT * FROM bx_spy_data WHERE sender_id=$mioid ORDER BY id LIMIT 0,30";
    $result mysql_query($query,$db) or die(mysql_error());

    while(
    $row mysql_fetch_array($result))
    {
            
    $pippo unserialize($row['params']);
        echo 
    $pippo['sender_p_link'];


Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.