Diziye RSS çevirin, 'açıklama' patlayabilir ve MySQL tabloya kelime eklemek satır başına bir

3 Cevap php

Ben sadece son zamanlarda php ve MySQL içine aldık ve ben, bir RSS beslemesi almak bir diziye çevirmek, XML tek açıklaması yer almak, o patlayacak ve MySQL tabanı üzerinde bir tabloya eklemek istiyorum.

Bu mümkün olmalıdır gibi hissediyorum, ama kafamda biraz şu anda. Ben bir çözümleyici olarak saksağan kullanarak çalıştı, ancak mümkünse ben basit php kodu bunu yapmak istiyorum.

Aradığım sonuç bir açıklama alacağını "Bu bir kedi" ve iki alanları ile bir tabloya eklemek

ID term
1 This
2 is
3 a
4 cat

Bir kaç gün bu kacirdim oldum. Herhangi bir yardım büyük olurdu.

Burada Matt'in yardımıyla dayanarak ben bugüne kadar ne var. Sunucu bu yüzden değiştirmek için çalıştı, ama benim tabloya şey yatırılması hala değil "yeni MySQLi" etiketi ile ilgili bir sorun var gibiydi ...

 

$host="*"; $username="***"; $password="**"; $database="****";

mysql_connect($host,$username,$password); @mysql_select_db($database) or die( "Unable to select database");

$parser = xml_parser_create('UTF-8'); $values = array(); xml_parse_into_struct($parser, file_get_contents('***'), $values);

$ Sorgu = "sözcükleri VALUES ('', $ kelime) INSERT INTO";

foreach ($values as $entry) { if ($entry['tag'] === 'SUMMARY') { $words = preg_split('/\s+/', strtolower(preg_replace('/[^A-Za-z\s]+/', '', strip_tags($entry['value'])))); foreach ($words as $word) { $query->bind_param('s', $word); $query->execute(); } } }

mysql_close();

Herkese teşekkürler!

3 Cevap

Bu tür http://www.phpclasses.org/package/2552-PHP-Retrieve-and-parse-RSS-feeds-extending-feed-reader.html gibi bir RSS okuyucu sınıfını kullanabilirsiniz

Kullanımı çok basit:

include("./files_includes/RSSReader.inc.php"); 
$rss = new RSSReader("http://www.php.net/news.rss");

http://www.phpclasses.org/browse/file/10759.html de örnek görmek

Eğer açıklama tüm sözcüğü patlayabilir istiyorum neden ben gerçekten anlamıyorum, ama bu sınıfı ile bunu gibi bir şey yapabilirsiniz:

explode(' ',$rss->getItemDescription("rsstext",$i));

Sınıf FeedReader sınıf bağımlı olduğunu unutmayın: http://www.phpclasses.org/package/1811-PHP-Parse-and-extract-information-from-RSS-2-0-feeds.html - yani o da yüklemeniz gerekir.

Sürece RSS feed geçerli XML gibi, bunu yapmak için PHP'nin XML parser kullanabilirsiniz ..

İşte yığın taşması en Recent Questions feed.. karşı çalışan bir basit bir örnek

<?php
$parser = xml_parser_create('UTF-8');
$values = array();
xml_parse_into_struct($parser, file_get_contents('feed.xml'), $values);

$db = new MySQLi('localhost', 'root');
$db->select_db('test');
$db->query('create table if not exists words (id int unsigned primary key auto_increment not null, word varchar(255) not null)');
$stmt = $db->prepare('insert into words (word) values(?)');

foreach ($values as $entry) {
    if ($entry['tag'] === 'SUMMARY') {
        $words = preg_split('/\s+/', strtolower(preg_replace('/[^A-Za-z\s]+/', '', strip_tags($entry['value']))));
        foreach ($words as $word) {
            $stmt->bind_param('s', $word);
            $stmt->execute();
        }
    }
}

Eğer buna sahip sonra, gibi eğlenceli sorguları çalıştırabilirsiniz:

select word, count(*) from words
group by word
order by count(*) desc

Hangi gibi sonuç kümeleri döndürür:

+------+----------+
| word | count(*) |
+------+----------+
| the  |      127 |
| i    |       90 |
| to   |       74 |
|      |       60 |
| a    |       59 |
| is   |       45 |
| in   |       44 |
| and  |       41 |
| it   |       38 |
| have |       31 |

etc ...

Siz forma böyle ('word1'),('word2'), ... Something çalışması gerekir bir VALUES fıkra ile bitirmek gerekir:

$string="This is a cat";
$arr=explode(' ',$string);
array_walk($arr, function(&$v,$i){ $v="('$v')"; }); //php5.3 syntax only, use create_function() otherwise

$values=implode(','$arr);
$query="INSERT INTO mytable(term) VALUES $values";