• Здраво и добредојдовте на форумот на IT.mk.

    Доколку сеуште не сте дел од најголемата заедница на ИТ професионалци и ентузијасти во Македонија, можете бесплатно да се - процесот нема да ви одземе повеќе од 2-3 минути, а за полесна регистрација овозможивме и регистрирање со Facebook и Steam.

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

  • Ја почнал/а темата
  • #1

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
219
Скопје
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 се користи за сите.
 
  • Ја почнал/а темата
  • #3

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

On your way to fame
3 април 2008
2,531
935
Скопје
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;« па кажи што ќе се деси :)
 

Нови мислења

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

Статистика

Теми
43,101
Мислења
838,561
Членови
29,018
Најнов член
dimitar.spiroski
На врв Дно