PHP Regexp – modificatori si optiuni

Modificatori:

[abc] Un singur caracter: a, b sau c
[^abc] Un singur caracter cu exceptia a, b, sau c
[a-z] Un singur caracter din intervalul a-z
[a-zA-Z] Un singur caracter din intervalul a-z sau A-Z
^ Inceput de linie
$ Sfarsit de linie
\A Inceput de sir de caractere/text
\z Sfarsit de sir de caractere/text
. Orice caracter
\s Orice caracter de tip whitespace
\S Orice caracter cu exceptia whitespace
\d Orice cifra
\D Orice caracter cu exceptia unei cifre
\w Orice carcater dintr-un cuvant (word): litera, cifra, underscore
\W Orice carcater cu exceptia celor dintr-un cuvant (non-word)
\b Orice caracter care delimiteaza un cuvant
(…) Retine secventa din paranteza
(a|b) a sau b
a? Cel mult o aparitie a lui a
a* Oricate (inclusiv zero) aparitii ale lui a
a+ Una sau mai multe aparitii ale lui a
a{3} Exact 3 aparitii ale lui a
a{3,} 3 sau mai multe aparitii ale lui a
a{3,6} Intre 3 si 6 aparitii ale lui a

Options:
i Nu tine cont de minuscule sau majuscule
m face ca punctul (.) sa includa si caracterul linie-noua
s continua cautarea chiar si dupa caracterul linie-noua
x Ignora caracterele de tip whitespace
o executa substitutiile #{…} o singura data

Sub-patterns

(?:(?!string).) Negarea unui sir de caractere (?: creaza un sub-sablon, iar ?! este o negare a textului care urmeaza

Mai multe informatii:
https://www.php.net/manual/en/reference.pcre.pattern.syntax.php

Incarcare factura XML in platforma SPV ANAF folosind autentificarea OAuth in PHP

Intr-un articol separat (Autentificare OAuth si obtinere token JWT de la ANAF folosind PHP) am descris modul de autentificare prin OAuth in platforma ANAF si obtinerea tokenului JWT care autorizeaza o aplicatie terta sa comunice cu platforma ANAF in numele unui client. Scopul acestei comunicari este transmiterea sau descarcarea facturilor electronice in SPV (Spatiul Privat Virtual) in format XML in contextul implementarii proiectului e-Factura de catre Ministerul de Finante.

Read More

Autentificare OAuth si obtinere token JWT de la ANAF folosind PHP

Procesul de interfatare cu platforma ANAF in contextul e-Factura, pentru incarcarea sau descarcarea facturilor electronice, este destul de complex si presupune o serie de etape. ANAF pune la dispozitie o documentatie destul de slab pusa la punct, cu detalii tehnice de multe ori incomplete si impartite in mai multe documente pe care le gasim in locatii diferite.

Read More

Modificarea locatiei pentru fisierele temporare de backup in Plesk

La verificarea backup-ului realizat automat folosind Backup Manager din Plesk, se observa ca exista anumite mesaje de eroare de forma
Unable to make database dump. Error: Failed to exec mysqldump: Exit code: 5:

In paralel cu aceasta eroare, in interfata Plesk este afisat un mesaj de avertizare ca partitia /tmp este plina. Acest mesaj este trimis si pe email catre administratorul serverului.
The threshold of partition "/tmp" utilization has been exceeded

Read More

Autologin in Windows 10

Pentru autentificarea automata in contul unui utilizator din Windows 10 se procedeaza in felul urmator:

  1. Se ruleaza comanda netplwiz.
  2. Se debifeaza optiunea User must enter a username and passowrd to use this computer.
  3. Se introduce numele de utilizator si parola contului pentru care se doreste autologin.
  4. OK

Daca optiunea User must enter a username and passowrd to use this computer nu este vizibila, atunci se ruleaza comanda de mai jos, dupa care se ruleaza din nou netplwiz.

reg ADD "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\PasswordLess\Device" /v DevicePasswordLessBuildVersion /t REG_DWORD /d 0 /f

Migrare masina virtuala din VMware Player in ESXi

  1. Se porneste masina virtuala care trebuie exportata si se dezinstaleaza VMware Tools, apoi se face restart.
  2. Dupa ce masina virtuala reporneste se face shutdown.
  3. Urmeaza exportul in format OVF al masinii virtuale. Pentru aceasta se va utiliza, din linie de comanda, programul ovftool.exe  care este localizat in C:\Program Files\VMware\VMware Player\OVFTool .
    Comanda pentru export este:
    ovftool.exe "C:\calea_spre_mv.vmx" "D:\folder_destinatie"
  4. Importul fisierului OVF in serverul ESXi poate fi facut fie prin VMware vSphere fie prin interfata web de administrare ESXi.

    In prima varianta: File > Deploy OVF Template, se alege fisierul OVF creat anterior si se urmeaza instructiunile pana la final.

    In cazul utilizarii interfetei web: Virtual Machines > Create / Register VM > Deploy a virtual machine from an OVF or OVA file, apoi se urmeaza instructiunile pana la final.

HeidiSQL – client gratuit pentru MySQL

HeidiSQL
HeidiSQL

HeidiSQL este un client gratuit si open-source pentru MySQL (MariaDB), MSSQL si PostgreSQL, cu o multime de functii utile programatorilor sau celor care administreaza baze de date MySQL. Personal folosesc acest program inca de pe vemea cand se numea MySQL-Front (2000-2001), iar astazi il gasesc indispensabil in activitatea mea zilnica.

Exista cel putin doua motive pentru care nu renunt la HeidiSQL: dezvoltatorul programului, Ansgar Becker, oferta suport tehnic prompt si mereu lanseaza versiuni noi ale programului. Iar incepand din luna februarie 2018 acest program poate fi descarcat si din Microsoft Store (pentru utilizatorii de Windows 10).

Read More

Redirectionare website spre HTTPS

  1. Activarea redirectionarii permanente prin modificarea fisierului de configurare al virtual host
    <VirtualHost *:80> 
    ServerName www.lorand.work
    Redirect permanent / https://www.lorand.work/
    </VirtualHost>
    
    <VirtualHost _default_:443> 
    ServerName www.lorand.work
    DocumentRoot /var/www/httpdocs
    SSLEngine On 
    </VirtualHost>
  2. Activarea redirectionarii folosind fisierul .htaccess
    RewriteEngine On 
    RewriteCond %{HTTPS} !=on 
    RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]

Modificarea locatiei default pentru fisierele temporare de backup in Plesk

  1. Conectare la server prin SSH
  2. Realizarea unui backup al fisierului de configurare al Plesk /etc/psa/psa.conf
    # cp -a /etc/psa/psa.conf{,.bkp}
  3. Modificarea variabilei DUMP_TMP_D  asa incat sa indice spre locatia dorita
    # grep DUMP_TMP_D /etc/psa/psa.conf 
    DUMP_TMP_D /mnt/backupdrive/tmp
  4. Setarea drepturilor 1777  pentru folderul destinatie
    # chmod 1777 /mnt/backupdrive/tmp
    
  5. Verificarea drepturilor pentru folderul destinatie
    # ls -ld /mnt/backupdrive/tmp
    drwxrwxrwt 53 root root 20480 Feb 8 21:39 /mnt/backupdrive/tmp
    

Metoda este valabila pentru Plesk Onyx. Pentru Plesk 12.5 sau mai vechi: https://support.plesk.com/hc/en-us/articles/213902125-Unable-to-download-a-backup-from-backup-repository-page-not-found

Modificarea limitei pentru dimensiunea fisierelor uploadate in WordPress

1. Modificarea setarilor PHP in cPanel

cPanel > Select PHP Version > Switch to PHP Options > upload_max_filesize = 200M

 

2. Modificarea fisierului php.ini

upload_max_filesize = 200M post_max_size = 200M memory_limit = 200M

 

3. Modificarea fisierului .htaccess

php_value upload_max_filesize 12M
php_value post_max_size 13M
php_value memory_limit 15M

 

4. Modificarea setarilor php din scriptul wp-config.php

ini_set( 'upload_max_size' , '12M' );
ini_set( 'post_max_size', '13M');
ini_set( 'memory_limit', '15M' );

 

5. Utilizarea filtrului WordPress upload_size_limit

/**
 * Filter the upload size limit for non-administrators.
 *
 * @param string $size Upload size limit (in bytes).
 * @return int (maybe) Filtered size limit.
 */
function filter_site_upload_size_limit( $size ) {
    // Set the upload size limit to 10 MB for users lacking the 'manage_options' capability.
    if ( ! current_user_can( 'manage_options' ) ) {
        // 10 MB.
        $size = 1024 * 10000;
    }
    return $size;
}
add_filter( 'upload_size_limit', 'filter_site_upload_size_limit', 20 );

 

Afisare data corecta in Mozilla Thunderbird

  1. La afisarea mesajelor se alege coloana Received, in loc de Date
  2. Tools > Options > Advanced > Config Editor
  3. Se cauta parametrul mailnews.customDBHeaders
  4. Dublu-click pe acest parametru si se introduce valoarea Received
  5. Se apasa OK, apoi se restarteaza Thunderbird.

Toate mesajele care vor fi receptionate ulterior acestei setari vor afisa data corecta. Daca se doreste aplicarea setarii pentru mesajele deja descarcate, atunci se selecteaza folderul respectiv, click-dreapta pe acesta > Properties > Repair folder. Thunderbird va descarca din nou mesajele si va citi corect data receptionarii lor.