Home > OS >  PHP format a text, to create list and upload to mysqli
PHP format a text, to create list and upload to mysqli

Time:07-17

I have the following text, and I need to format it to read with php line by line and be able to store the info in a database, how can I do it with php?

Unfortunately the format that I receive is always like this... very uncomfortable to deal with with php

b'\r\nNombre de host:                            DESKTOP-5AB1DJ9\r\nNombre del sistema operativo:              Microsoft Windows 10 Pro\r\nVersi\xa2n del sistema operativo:     
    10.0.19044 N/D Compilaci\xa2n 19044\r\nFabricante del sistema operativo:          Microsoft Corporation\r\nConfiguraci\xa2n del sistema operativo:       Estaci\xa2n de trabajo independiente\r\nTipo de compilaci\xa2n del sistema operativo: Multiprocessor Free\r\nPropiedad de:                              Usuario\r\nOrganizaci\xa2n registrada:   
            \r\nId. del producto:                          00330-80000-00000-AA120\r\nFecha de instalaci\xa2n original:             27/09/2020, 8:19:08\r\nTiempo de arranque del sistema:            11/07/2022, 15:54:10\r\nFabricante del sistema:                    ASUSTeK COMPUTER INC.\r\nModelo el sistema:                         ZenBook UX533FD_UX533FD\r\nTipo de sistema:                           x64-based PC\r\nProcesador(es):                            1 Procesadores instalados.\r\n
    [01]: Intel64 Family 6 Model 142 Stepping 12 GenuineIntel ~1792 Mhz\r\nVersi\xa2n del BIOS:                          American Megatrends Inc. UX533FD.306, 16/10/2019\r\nDirectorio de Windows:                     C:\\Windows\r\nDirectorio de sistema:                     C:\\Windows\\system32\r\nDispositivo de arranque:                   \\Device\\HarddiskVolume1\r\nConfiguraci\xa2n regional del sistema:        es;Espa\xa4ol (internacional)\r\nIdioma de entrada:                         es;Espa\xa4ol (tradicional)\r\nZona horaria:                              (UTC 01:00) Bruselas, Copenhague, Madrid, Par\xa1s\r\nCantidad total de memoria f\xa1sica:          16.198 MB\r\nMemoria f\xa1sica disponible:                 4.145 MB\r\nMemoria virtual: tama\xa4o m\xa0ximo:            22.563 MB\r\nMemoria virtual: disponible:               3.330 MB\r\nMemoria virt

CodePudding user response:

I would just do a `str_replace for the escape sequence, then use one of the many ways to iterate over things line-by-line. Here’s one:


// Normalize
$data = str_replace('\r\n', PHP_EOL, $data);

// Allows for line-by-line
$fp = fopen("php://memory", 'r ');
fputs($fp, $data);
rewind($fp);
while($line = fgets($fp)){
    echo $line;
}
fclose($fp);

Demo here: https://3v4l.org/S9XF7

Unfortunately, your data has some additional escaping that you’ll need to account for, but I think that might be better in a dedicated question.

CodePudding user response:

You can try this if you need a associative array

<?php
$data = "b'\r\nNombre de host:                            DESKTOP-5AB1DJ9\r\nNombre del sistema operativo:              Microsoft Windows 10 Pro\r\nVersi\xa2n del sistema operativo:     
    10.0.19044 N/D Compilaci\xa2n 19044\r\nFabricante del sistema operativo:          Microsoft Corporation\r\nConfiguraci\xa2n del sistema operativo:       Estaci\xa2n de trabajo independiente\r\nTipo de compilaci\xa2n del sistema operativo: Multiprocessor Free\r\nPropiedad de:                              Usuario\r\nOrganizaci\xa2n registrada:   
            \r\nId. del producto:                          00330-80000-00000-AA120\r\nFecha de instalaci\xa2n original:             27/09/2020, 8:19:08\r\nTiempo de arranque del sistema:            11/07/2022, 15:54:10\r\nFabricante del sistema:                    ASUSTeK COMPUTER INC.\r\nModelo el sistema:                         ZenBook UX533FD_UX533FD\r\nTipo de sistema:                           x64-based PC\r\nProcesador(es):                            1 Procesadores instalados.\r\n
    [01]: Intel64 Family 6 Model 142 Stepping 12 GenuineIntel ~1792 Mhz\r\nVersi\xa2n del BIOS:                          American Megatrends Inc. UX533FD.306, 16/10/2019\r\nDirectorio de Windows:                     C:\\Windows\r\nDirectorio de sistema:                     C:\\Windows\\system32\r\nDispositivo de arranque:                   \\Device\\HarddiskVolume1\r\nConfiguraci\xa2n regional del sistema:        es;Espa\xa4ol (internacional)\r\nIdioma de entrada:                         es;Espa\xa4ol (tradicional)\r\nZona horaria:                              (UTC 01:00) Bruselas, Copenhague, Madrid, Par\xa1s\r\nCantidad total de memoria f\xa1sica:          16.198 MB\r\nMemoria f\xa1sica disponible:                 4.145 MB\r\nMemoria virtual: tama\xa4o m\xa0ximo:            22.563 MB\r\nMemoria virtual: disponible:               3.330 MB\r\nMemoria virt";
    


$data = str_replace("b'", '', $data);
$data = explode("\r\n", $data);

$informacion = [];
foreach($data as $dato){
    $dato = explode(":", $dato);
    $informacion[$dato[0]] = $dato[1];
}


print_r($informacion);

Test it: https://3v4l.org/ZWBHi

  •  Tags:  
  • php
  • Related