{"id":232108,"date":"2023-01-02T10:35:00","date_gmt":"2023-01-02T07:35:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232108"},"modified":"2023-01-02T10:39:42","modified_gmt":"2023-01-02T07:39:42","slug":"dovresti-utilizzare-le-funzioni-di-filtraggio-php-parte-1","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/dovresti-utilizzare-le-funzioni-di-filtraggio-php-parte-1\/","title":{"rendered":"Dovresti utilizzare le funzioni di filtraggio PHP, parte 1"},"content":{"rendered":"\n<p>Ho parlato della sanificazione dei dati in WordPress nei <a href=\"https:\/\/wordpress.mediadoma.com\/it\/disinfezione-degli-url-in-wordpress\/\" title=\"post precedenti\">post precedenti<\/a>. Questo \u00e8 un argomento importante non solo per quelli di noi che lavorano per creare soluzioni per altri in WordPress, ma anche per coloro che stanno scrivendo codice che interagir\u00e0 direttamente con un database tramite PHP.<\/p>\n<p>Certo, ci sono funzioni native di WordPress per rendere pi\u00f9 semplice questo processo, ma ci sono anche funzioni di filtro PHP integrate per aiutare con questo. Vale a dire <code>filter_var<\/code>e <code>filter_input<\/code>queste sono cose che penso siano utili per gli sviluppatori PHP da sapere.<\/p>\n<h2>Funzioni di filtraggio PHP, parte 1: variabili<\/h2>\n<p>Il filtraggio delle variabili viene eseguito dalla funzione opportunamente denominata <code>filter_var<\/code>. La definizione ufficiale \u00e8:<\/p>\n<blockquote>\n<p>Filtra una variabile con un filtro specificato<\/p>\n<p><a href=\"https:\/\/www.php.net\/manual\/en\/function.filter-var.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">Il manuale PHP<\/a><\/p>\n<\/blockquote>\n<p>La definizione stessa potrebbe leggere una piccola circolare, specialmente se hai appena iniziato con PHP o con le funzioni di filtro. La cosa importante da capire in questa definizione \u00e8 cosa sia effettivamente un filtro.<\/p>\n<p>Quindi, se sei abituato a lavorare, diciamo, con valori booleani, numeri interi, indirizzi e-mail e cos\u00ec via (e chi non lo \u00e8?), allora ha pi\u00f9 senso, vero? Cio\u00e8, se \u00e8 necessario fornire un tipo di convalida attorno a questi tipi di valori, questo pu\u00f2 essere d&#8217;aiuto.<\/p>\n<p>La cosa fantastica \u00e8 che, indipendentemente da ci\u00f2 che stai filtrando, <code>filter_var<\/code>torner\u00e0 <code>false<\/code>ogni volta che il filtro fallisce.<\/p>\n<p>Diciamo che vuoi filtrare un indirizzo email, quindi puoi fare qualcosa del genere:<\/p>\n<ul>\n<li><code>filter_var($emailAddress,\u00a0FILTER_VALIDATE_EMAIL)<\/code>;<\/li>\n<\/ul>\n<p>Naturalmente, non \u00e8 senza alcuni trucchi. Ad esempio, non convalider\u00e0 i domini non latini. Maggiori informazioni su questo momentaneamente.<\/p>\n<p>Ad ogni modo, forse vuoi filtrare altri tipi di valori:<\/p>\n<ul>\n<li><code>filter_var($url,\u00a0FILTER_VALIDATE_URL)<\/code><\/li>\n<li><code>filter_var('1001',\u00a0FILTER_VALIDATE_INT)<\/code><\/li>\n<\/ul>\n<p>E puoi renderli pi\u00f9 complicati a seconda delle tue esigenze. Supponiamo, ad esempio, di dover determinare se un IP \u00e8 pubblico. Quindi puoi usare qualcosa di pi\u00f9 elaborato come questo:<\/p>\n<ul>\n<li><code>filter_var($ip,\u00a0FILTER_VALIDATE_IP,\u00a0FILTER_FLAG_NO_PRIV_RANGE\u00a0|\u00a0FILTER_FLAG_NO_RES_RANGE)<\/code><\/li>\n<\/ul>\n<p>Il fatto \u00e8 che \u00e8 importante sapere come <code>filter_var<\/code>funziona e quali filtri sono disponibili. \u00c8 proprio qui che entra in gioco l&#8217;utilit\u00e0 di questo. A tal fine, consiglio vivamente di leggere <a href=\"https:\/\/www.php.net\/manual\/en\/filter.filters.validate.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">i filtri di convalida offerti da PHP.<\/a><\/p>\n<p>Infine, ricordi la nota sopra sui domini non latini con indirizzi email? Ci sono alcuni casi come questo con determinate funzionalit\u00e0 che dovrai rivedere ci\u00f2 che il manuale ha da dire in merito a determinati URL, domini e cos\u00ec via prima di utilizzarli.<\/p>\n<p>In quei casi, purtroppo, <code>filter_var<\/code>potrebbe non funzionare sempre. Invece, le espressioni regolari possono essere un sostituto adatto.<\/p>\n<h2>Che dire del filtraggio degli input?<\/h2>\n<p>Se hai esperienza nel lavorare anche con variabili come <code>$_GET<\/code>e <code>$_POST<\/code>allora c&#8217;\u00e8 un&#8217;altra funzione di filtro specifica per questo.<\/p>\n<p>E nel prossimo post, illustrer\u00f2 come utilizzare al meglio quelli sul posto che molti di noi usano tradizionalmente.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/tommcfarlin.com\" class=\"external external_icon\">tommcfarlin.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Esistono funzioni native di WordPress per semplificare la convalida, ma ci sono anche funzioni di filtro PHP integrate.<\/p>\n","protected":false},"author":1,"featured_media":236152,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[896,835,751,804,783,720,844,865],"tags":[1168],"class_list":["post-232108","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-codice","category-guida-per-principianti","category-open-source-projektmanagement-3","category-php-6","category-software-open-source","category-sviluppatore","category-tutorial","category-wordpress-6","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232108","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=232108"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232108\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/236152"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=232108"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=232108"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=232108"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}