Стани премиум член и добиј попуст на 2000+ производи и куп други бенефити!
  • Важно
    Имате проблем со најава или регистрација на it.mk?
    Побарајте го решението на вашиот проблем ТУКА!

Како да зачувам податоци од rss feed во база

Cair

Intern
16 октомври 2008
173
2
Ја користам оваа функција да приказам податоци од rss feed и си работи ок сега сакам истите да ги снимам во база пробав но конекција со база има но не се пренесуваат податови си те полинја у база се празни не зима ни наслов ни текст нисо.
Ви благодарам однапред
<code>
<!-- Latest compiled and minified CSS -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css" integrity="sha384-BVYiiSIFeK1dGmJRAkycuHAHRg32OmUcww7on3RYdg4Va+PmSTsz/K68vbdEjh4u" crossorigin="anonymous">

<!-- Optional theme -->
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap-theme.min.css" integrity="sha384-rHyoN1iRsVXV4nD0JutlnGaslCJuC7uwjduW9SVrLvRYooPp2bWYgmgJQIXwl/Sp" crossorigin="anonymous">

<!-- Latest compiled and minified JavaScript -->
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js" integrity="sha384-Tc5IQib027qvyjSMfHjOMaLkfuWVxZxUPnCJA7l2mCWNIpG9mGCD8wGNIcPD7Txa" crossorigin="anonymous"></script>
<style>
p{
margin-bottom: 7%;
text-align: justify;
}
</style>
<?php


function get_rss_feed_as_html($feed_url, $max_item_cnt = 20, $show_date = true, $show_description = true, $max_words = 0, $cache_timeout = 7200, $cache_prefix = "/tmp/rss2html-")
{
$result = "";
// get feeds and parse items
$rss = new DOMDocument();
$cache_file = $cache_prefix . md5($feed_url);
// load from file or load content
if ($cache_timeout > 0 &&
is_file($cache_file) &&
(filemtime($cache_file) + $cache_timeout > time())) {
$rss->load($cache_file);
} else {
$rss->load($feed_url);
if ($cache_timeout > 0) {
$rss->save($cache_file);
}
}
$feed = array();
foreach ($rss->getElementsByTagName('item') as $node) {
$item = array (
'title' => $node->getElementsByTagName('title')->item(0)->nodeValue,
'desc' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'content' => $node->getElementsByTagName('description')->item(0)->nodeValue,
'link' => $node->getElementsByTagName('link')->item(0)->nodeValue,
'date' => $node->getElementsByTagName('pubDate')->item(0)->nodeValue,
);
$content = $node->getElementsByTagName('encoded');
if ($content->length > 0) {
$item['content'] = $content->item(0)->nodeValue;
}
array_push($feed, $item);
}
// real good count
if ($max_item_cnt > count($feed)) {
$max_item_cnt = count($feed);
}
$result .= '<div class="container">';
$result .= '<div class="row">';
$result .= '<div class="col-md-9">';

for ($x=0;$x<$max_item_cnt;$x++) {
$title = str_replace(' & ', ' &amp; ', $feed[$x]['title']);
$link = $feed[$x]['link'];
$result .= '<div class="thumbnail">';
$result .= '<div style="text-align: center; " ><strong><a href="'.$link.'" title="'.$title.'">'.$title.'</a></strong></div>';
$result .= '<br>';

if ($show_date) {
$date = date('l F d, Y', strtotime($feed[$x]['date']));
//$result .= '<br><p class="pull-right">Posted on '.$date.'</p>';
}
if ($show_description) {
$description = $feed[$x]['desc'];
$content = $feed[$x]['content'];
// find the img
$has_image = preg_match('/<img.+src=[\'"](?P<src>.+?)[\'"].*>/i', $content, $image);
// no html tags
$description = strip_tags($description, '');
// whether cut by number of words
if ($max_words > 0) {
$arr = explode(' ', $description);
if ($max_words < count($arr)) {
$description = '';
$w_cnt = 0;
foreach($arr as $w) {
$description .= $w . ' ';
$w_cnt = $w_cnt + 1;
if ($w_cnt == $max_words) {
break;
}
}
$description .= " ...";
}
}
// add img if it exists
if ($has_image == 1) {
$description = '<img class="col-md-4" src="' . $image['src'] . '" />' . $description;
}

$result .= '<p>' . $description .'';
$result .= '<class="pull-right" ><a href="'.$link.'" title="'.$title.'"> Continue Reading &raquo;</a>'.'</p>';
}
$result .= '</div>';
}

$result .= '<br>';
$result .= '</div>';
$result .= '</row>';
$result .= '</div>';

return $result;
}
function output_rss_feed($feed_url, $max_item_cnt = 20, $show_date = true, $show_description = true, $max_words = 0)
{
echo get_rss_feed_as_html($feed_url, $max_item_cnt, $show_date, $show_description, $max_words);
}

// Create connection
$con = mysqli_connect("localhost", "user", "pass", "db");
// za kirilica od baza
mysqli_query($con, "SET NAMES UTF8");
// Check connection
if (mysqli_connect_errno($con)) {
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$title = $feed[$x]['title'];
$link = $feed[$x]['link'];
$date = $feed[$x]['date'];
$description = $feed[$x]['desc'];

$sql = "INSERT INTO rss (title, date, link, description) VALUES ('$title' , '$date', '$link', '$description')";

if ($con->query($sql) === TRUE) {
echo "ok";
} else {
echo "not ok : " . $sql . "<br>" . $con->error;
}

$con->close();

?>
<?php
// output RSS feed to HTML
output_rss_feed('http://mistagogia.mk/feed/', 20, true, true, 400);
?>
</code>
 

JensenInterceptor

Gaining Experience
28 ноември 2015
577
230
Скопје
tunephp.blogspot.com
JensenInterceptor's setup  
Processor & Cooler
i5-7500 Kabylake
Motherboard
Asus Prime b250m plus
Storage
1TB HDD Western Digital
PSU
Cooler Master 500 Watt
RAM
16 GB, DDR 4, 2133 MHz, Non-ECC, DIMM, CL15
Video card
GeForce GTX 1050 2B
Case
Cooler Master Elite 343
OS
Dual boot: Ubuntu 16.04, Windows 10
Ај среди го кодов малце, многу е некако натрупано.

Иначе, RSS ти нешто ко сервис и добиваш податоци во XML формат. Така да прво добро обработи ги податоците и види што сакаш да снимиш во база.

Кога ќе знаеш што ќе снимаш, ќе си направиш податочна шема или структура во базата и со PDO и соодветните функции ќе се врзеш на базата и ќе снимиш.

Секоја база си има свој дравер, само мислам дека PDO се користи за сите.
 

Cair

Intern
16 октомври 2008
173
2
vaka go resiv zapisuvanjeto vo baza i proverka dali ja ima vesta vo baz a


PHP:
$con = new mysqli("localhost", "user", "pass", "db");
    mysqli_query($con, "SET NAMES UTF8");

    $stmt = $query = mysqli_query($con, "SELECT * FROM rss WHERE title ='".$title."'");

    if(mysqli_num_rows($query) > 0){

      //echo "ja ima <br>";
    }
    else
    {
      $stmt = $con->prepare("INSERT INTO rss (title, description, link, data) VALUES('$title', '$description', '$link', '$data')");
      $stmt->bind_param('ssss', $title, $description, $link, $data);
      $stmt->execute();
      $con->close();

fala kako i da e
 

gdamjan

Unstoppable
3 април 2008
3.605
2.624
Скопје
damjan.softver.org.mk
gdamjan's setup  
Processor & Cooler
AMD Ryzen 5 Pro 4650G / Cooler Master Hyper 212 Black
Motherboard
MSI MAG B550m Mortar Wifi
Storage
NVME: 1TB AData XPG SX8200 Pro / HDD: 2x 2TB Toshiba P300
PSU
Gigabyte G750H
RAM
G. SKILL Ripjaws V Series 2x 16GB / DDR4 3200Mhz/CL16
Video card
Vega 7 on APU
Case
Bequiet! PureBase 500
Mouse
Logitech MX Anywhere 2S
Keyboard
ThinkPad USB Keyboard With TrackPoint (sk-8855)
OS
Arch Linux
и сеа пази. ти доаѓа rss со наслов »'; delete from rss;« па кажи што ќе се деси :)
 

Нови мислења

Последни Теми

Статистика

Теми
47.258
Мислења
977.575
Членови
35.569
Најнов член
Jasmina_pepic
На врв Дно