Pogledajte određenu poruku
Staro 01. 02. 2010.   #1
kameleon
novi član
Na probnom radu
 
Datum učlanjenja: 16.07.2008
Poruke: 24
Hvala: 2
0 "Hvala" u 0 poruka
kameleon is on a distinguished road
Default Problem sa našim slovima u PHP skripti

Imam dva problema:

napravio sam PHP skriptu koja sa dva klika mišem odn. jednim klikom mišem (aktivira se preko JavaScript koda u Bookmark-u Firefox-a) parsira željeni članak sa sajta rtrs.tv i ubacuje ga u html formu skripte, a zatim drugim klikom mišem na dugme "submit" ubacuje članak u Joomla-inu bazu podataka (da ne bih morao po ko zna koliko puta preko copy&paste prebacivati pojedine dijelove članka u Joomla backend, pa još to ide i jako sporo - ovako mogu da ubacim veći broj članaka za desetak minuta, odn. za šta bi mi inače trebalo 2 sata).


Ovo je kod skripte:


PHP kôd:
<?php
if(isset($_POST['add']))
{
$dbhost 'localhost';
$dbuser 'user';
$dbpass 'password';
$conn mysql_connect($dbhost$dbuser$dbpass);
if(! 
$conn )
{
  die(
'Could not connect: ' mysql_error());
}

if(! 
get_magic_quotes_gpc() )
{
   
$title addslashes ($_POST['title']);
   
$alias addslashes ($_POST['alias']);
   
$introtext addslashes ($_POST['introtext']);
   
$fulltext addslashes ($_POST['fulltext']);
   
$state addslashes ($_POST['state']);
   
$sectionid addslashes ($_POST['sectionid']);
   
$catid addslashes ($_POST['catid']);
   
$created addslashes ($_POST['date']);
   
$created_by addslashes ($_POST['created_by']);
   
$modified addslashes ($_POST['modified']);
   
$modified_by addslashes ($_POST['modified_by']);
   
$publish_up addslashes ($_POST['date']);
   
$attribs addslashes ($_POST['attribs']);
   
$version addslashes ($_POST['version']);
   
$metadata addslashes ($_POST['metadata']);   
}
else
{
   
$title $_POST['title'];
   
$alias $_POST['alias'];
   
$introtext $_POST['introtext'];
   
$fulltext $_POST['fulltext'];
   
$state $_POST['state'];
   
$sectionid $_POST['sectionid'];
   
$catid $_POST['catid'];
   
$created $_POST['date'];
   
$created_by $_POST['created_by'];
   
$modified $_POST['modified'];
   
$modified_by $_POST['modified_by'];
   
$publish_up $_POST['date'];
   
$attribs $_POST['attribs'];
   
$version $_POST['version'];
   
$metadata $_POST['metadata'];
}

$metakey $title ' - ' $alias;
$metadesc $metakey;

$ordering 1;

$sql "UPDATE jos_content SET ordering = ordering + 1 WHERE sectionid = '$sectionid' AND catid = '$catid' AND ordering > 0";

mysql_select_db('database');
$retval mysql_query$sql$conn );
if(! 
$retval )
{
  die(
'Could not enter data: ' mysql_error());
}
echo 
"Updated database successfully, \n";

$sql "INSERT INTO jos_content (title, alias, introtext, `fulltext`, `state`, `sectionid`, `catid`, `created`, `created_by`, `modified`, `modified_by`, publish_up, attribs, version, ordering, metakey, metadesc, metadata) VALUES ('$title', '$alias', '$introtext', '$fulltext', '$state', '$sectionid', '$catid', '$created', '$created_by', '$modified', '$modified_by', '$publish_up', '$attribs', '$version', '$ordering', '$metakey', '$metadesc', '$metadata')";
       
mysql_select_db('database');
$retval mysql_query$sql$conn );
if(! 
$retval )
{
  die(
'Could not enter data: ' mysql_error());
}
echo 
"Entered data successfully\n";

mysql_close($conn);
}
else
{
?>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Parse and Add article in Joomla database</title>
</head>
 
<body>
<?php

// get the HTML
$address $_GET['address'];

$html file_get_html("$address");

// Dump contents (without tags) from HTML

// Find all element with class nwz1
$title $html->find('.nwz1');
$title strip_tags($title[0]);

$alias $title;
$alias str_replace(" ""-"$alias);


$unwantedchars  = array("Č""č""Ć""ć""Đ""đ""Š""š""Ž""ž""J""--""---");
$replacingchars = array("C""c""C""c""DJ""dj""S""s""Z""z""j""-""-");
$alias str_replace($unwantedchars$replacingchars$alias);
$alias preg_replace('/["!?$%(),:;<>&*~|#]/'''$alias);
// PROBLEM SA SLOVOM j NASTAJE U OVOM DIJELU
$alias strtolower($alias);

$introtext $html->find('.nwz2');
$introtext strip_tags($introtext[0]);

$fulltext $html->find('.nwz3');
$fulltext strip_tags($fulltext[0]);
// $textsignature = strip_tags($fulltext[1]);

$source $html->find('.px11');
$source strip_tags($source[0]);
if (
strstr($source"Izvor: RTRS")) 
$source $source;
else
$source $source "\n" "Izvor: RTRS";

$source_test $source;

?>

<form action="<?php $_PHP_SELF ?>" id="form" name="form" method="POST">
<p><input name="title" type="text" id="title" value="<?php echo $title?>" size="90" />  
title</p>
<p><input name="alias" type="text" id="alias" value="<?php echo $alias?>" size="90" />  
alias</p>
<p><select name="catid">
        <option value="1">vijesti</option>
        <option value="2">sport</option>
        <option value="3">zanimljivosti</option>
        <option value="11">privreda</option>
        <option value="12">kultura</option>
    </select>  category</p>
<p><textarea name="introtext" cols="50" rows="3" id="introtext"><?php echo $introtext?></textarea>  introtext</p>
<p><input name="state" type="hidden" id="state" value="1" />
   <input name="sectionid" type="hidden" id="sectionid" value="1" />
   <input name="created_by" type="hidden" id="created_by" value="62" />
   <input name="modified_by" type="hidden" id="modified_by" value="62" />
   <input name="version" type="hidden" id="version" value="2" />
</p>
<p><textarea name="fulltext" cols="50" rows="10" id="text"><?php echo $fulltext "\n\n" $source?></textarea>  text </p>
<p><input name="date" type="text" id="date" value="<?php echo date("Y-m-d H:i:s"); ?>" size="20" />  date &amp; time</p>
<p><textarea name="attribs" rows="1" id="attribs">show_title=
link_titles=
show_intro=
show_section=
link_section=
show_category=
link_category=
show_vote=
show_author=
show_create_date=
show_modify_date=
show_pdf_icon=
show_print_icon=
show_email_icon=
language=
keyref=
readmore=</textarea> 
  <textarea name="metadata" rows="1" id="metadata">robots=
author=</textarea></p>

<p><input type="submit" name="add" value="Submit" /></p>
</form>
<?php
}
?>

</body>
</html>

1. Imam problem sa našim slovima. Kada skripta izparsira neki članak, i ubaci ga u formu - nastaju problemi sa nekim našim slovima

recimo namjesto malog slova 'j' u formi u polju 'alias' mi se pojavi veliko slovo 'J'. (a kada skriptu izvrsim na svom web serveru t.j. localhost-u namjesto malog slova 'j' pojavi se nekakav simbol (crni romb sa upitnikom u sebi)??


2. a drugi problem je da kada članak ubacim u bazu podataka klikom na 'Submit' forme, u bazi podataka u phpmyadmin-u dobijem ovo:

namjesto svih naših kvakastih slova se pojave neka čudna slova, kao na primjer:


title:
USVOĐˆEN ZAKON O ODUZIMANJU IMOVINE STEÄŒENE IZVRĹ ENJEM KRIVIÄŒNOG DĐˆELA

introtext:
Narodna skupština Republike Srpske usvojila je ju�e Zakon o oduzimanju imovine ste�ene izvršenjem krivi�nog djela koji predviđa osnivanje agencije za upravljanje oduzetom imovinom u sastavu Ministarstva pravde RS.


Collation baze podataka je podešen na utf8_general_ci

MySQL charset je UTF-8 Unicode (utf8)


Kako ta skripta radi na djelu može se vidjeti na adresi:

http://balkan-online.com/test.php?ad...t.php?id=15240


Skripta parsiranje radi uz pomoć "PHP Simple HTML DOM Parser"-a

PHP Simple HTML DOM Parser
http://simplehtmldom.sourceforge.net/manual.htm


testirajući sam otkrio da prvi problem sa zamjenom slova j je na ovoj liniji:

$alias = strtolower($alias);



Zahvaljujem se unaprijed na pomoći i na odgovorima

Poslednja izmena od kameleon : 01. 02. 2010. u 20:02.
kameleon je offline   Odgovorite uz citat