Warning: Cannot modify header information - headers already sent by (output started at /var/www/html/ognigiorno.com/wp-content/plugins/math-comment-spam-protection/math-comment-spam-protection.php:1) in /var/www/html/ognigiorno.com/wp-includes/rest-api/class-wp-rest-server.php on line 1673 {"id":518,"date":"2011-01-12T22:58:30","date_gmt":"2011-01-12T21:58:30","guid":{"rendered":"http:\/\/www.ognigiorno.com\/?p=518"},"modified":"2011-03-25T18:47:09","modified_gmt":"2011-03-25T17:47:09","slug":"pubblicare-automaticamente-con-wordpress","status":"publish","type":"post","link":"https:\/\/www.ognigiorno.com\/2011\/01\/12\/pubblicare-automaticamente-con-wordpress.html","title":{"rendered":"Pubblicare automaticamente con WordPress"},"content":{"rendered":"
Ormai molti siti si affacciano sul mondo Internet presentandosi come degli “aggregatori di contenuti”, cio\u00e8 riportano copie di articoli presentati altrove.<\/p>\n
Frequente la raccolta di news o previsioni metereologiche, ma anche articoli presenti su altri blog.<\/p>\n
Per fare questo \u00e8 sufficiente che la nostra fonte metta a disposizione le informazioni tramite feed RSS e utilizzare questo canale per leggerle e pubblicarle sul nostro sito. Un buon plugin che permette questo che si chiama “syndication” \u00e8 FeedWordPress, semplice da utilizzare e abbastanza flessibile da essere adattabile a molte esigenze.<\/p>\n
Quello di cui voglio parlare in questo articolo \u00e8 un metodo diverso, un passo in pi\u00f9: estrarre parti di pagine web e utilizzarli come contenuti del nostro sito.
\n
\nUna premessa: sono necessarie competenze di programmazione in PHP e buona dimestichezza con la regular expression, il metodo utilizzato per effettuare il parsine delle pagine.<\/p>\n
Gi\u00e0 da questa affermazione si comprende il meccanismo che sta alla base: una volta individuata la pagina che vogliamo prendere, dobbiamo analizzarne il sorgente HTML. Per questo ci aiuta il browser.<\/p>\n
Se stiamo pensando ad una lettura continuativa e automatizzata della pagina, dobbiamo assicurarci che la struttura non venga modificata, altrimenti siamo costretti a cambiare i pattern utilizzati.<\/p>\n
Vediamo alcuni esempi per chiarire meglio il concetto:<\/p>\n
Vediamo allora come utilizzare il PHP per effettuare queste operazioni ]*>.*<\/p>\n (.*)<\\\/div>.*<\/p>\n (.*)<\\\/div>\";<\/p>\n if(preg_match_all(\"\/$regexp\/siU\", $input, $matches, PREG_SET_ORDER)) { Come pubblicare il testo.<\/strong> Nel primo caso dobbiamo interagire con il cron di wordpress e ci viene in aiuto il plugin WP-crontrol. Si tratta di un plugin che offre un’interfaccia per controllare il cron if ($last_upd != $match[1]) { $testo = \"I numeri dell'estrazione del lotto:\\n\"; $my_post = array(); wp_insert_post( $my_post );<\/p>\n } Se preferiamo un’interpretazione in tempo reale, dobbiamo utilizzare il plugin Exec-PHP che permette di inserire ed eseguire codice PHP nei post o nelle pagine Questo non vuole essere un incentivo alla creazione di siti altamente poco originali, ma solo un aiuto per coloro che necessitano inserire alcune informazioni all’interno del proprio sito.<\/p>\n","protected":false},"excerpt":{"rendered":" Ormai molti siti si affacciano sul mondo Internet presentandosi come degli “aggregatori di contenuti”, cio\u00e8 riportano copie di articoli presentati altrove. Frequente la raccolta di news o previsioni metereologiche, ma anche articoli presenti su altri blog. Per fare questo \u00e8 sufficiente che la nostra fonte metta a disposizione le informazioni tramite feed RSS e utilizzare… Read More »Pubblicare automaticamente con WordPress<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"neve_meta_sidebar":"","neve_meta_container":"","neve_meta_enable_content_width":"","neve_meta_content_width":0,"neve_meta_title_alignment":"","neve_meta_author_avatar":"","neve_post_elements_order":"","neve_meta_disable_header":"","neve_meta_disable_footer":"","neve_meta_disable_title":""},"categories":[59],"tags":[],"_links":{"self":[{"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/posts\/518"}],"collection":[{"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/comments?post=518"}],"version-history":[{"count":0,"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/posts\/518\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/media?parent=518"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/categories?post=518"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.ognigiorno.com\/wp-json\/wp\/v2\/tags?post=518"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}
\n<\/strong>
\n
\n$url = \"https:\/\/www.lottomaticaitalia.it\/lotto\/home\/\";
\n$input = @file_get_contents($url) or die('Could not access file: $url');
\n$regexp = \"]*href=(\\\"??)([^\\\" >]*?)\\\\1[^>]*>(.*)<\\\/a>\";
\n$regexp = \"<\/p>\n
\n foreach($matches as $match) {
\n # $match[2] = link address
\n # $match[3] = link text
\n $tbl = preg_replace ('(class=\\\".*\\\")','' , $match[2]);
\n echo $match[1];
\n echo $tbl;
\n }
\n}
\n<\/code>
\nVediamo nel dettaglio la sequenza dei passi:<\/p>\n\n
\nPossiamo agire in due modi alternativi: salvare il testo in un post oppure utilizzarlo in tempo reale: la lettura viene effettuata contestualmente all’utente che apre la nostra pagina<\/p>\n
\nContinuando con l’esempio di prima, dovremmo schedulare un codice simile a questo:
\n
\n$last_upd = get_option('lotto_lastdate');<\/p>\n
\n update_option('lotto_lastdate', $match[1]);<\/p>\n
\n$testo = $testo.$tbl.\"\\nEcco i 20 numeri vincenti del 10 e lotto\\n\".$match[3];<\/p>\n
\n $my_post['post_title'] = 'Estrazioni del lotto di '.$match[1];
\n $my_post['post_content'] = $testo;
\n $my_post['post_status'] = 'publish';
\n $my_post['post_author'] = 1;
\n $my_post['post_category'] = array(9);<\/p>\n
\n<\/code>
\ne il nostro post \u00e8 scritto!<\/p>\n
\nIn questo caso non abbiamo altro da fare che abilitare il plugin e copiare il codice del primo esempio che ho riportato all’interno di un post<\/p>\n