βοήθεια με php & utf8

Σε αυτή την περιοχή μπορείτε να βρείτε ή να αναζητήσετε πληροφορίες σχετικές με την PHP

Συντονιστές: WebDev Moderators, Super-Moderators, PHP Moderators

Απάντηση
vaggelisB
Δημοσιεύσεις: 4
Εγγραφή: 04 Αύγ 2013 12:54

βοήθεια με php & utf8

Δημοσίευση από vaggelisB » 04 Αύγ 2013 13:21

Καλημέρα, έχω ένα πρόβλημα με ένα php script το οποίο διαβάζει από ένα csv και εισάγει τα δεδομένα σε mysql βάση. όταν υπάρχουν Ελληνικά αποθηκεύει σύμβολα..

κάπου πρέπει να του πω ότι τα data είναι utf8 αλλά δεν ξέρω που και πως... μπορεί κάποιος να βοηθήσει ?

το script είναι :

Κώδικας: Επιλογή όλων

<?php

$connect = mysql_connect&#40;'localhost','abc_user','123456'&#41;;
if &#40;!$connect&#41; &#123;
die&#40;'Could not connect to MySQL&#58; ' . mysql_error&#40;&#41;&#41;;
&#125;

$cid =mysql_select_db&#40;'abc_db',$connect&#41;;

define&#40;'CSV_PATH','http&#58;//www.domain.gr/files/'&#41;;


$csv_file = CSV_PATH . "file.csv";
$csvfile = fopen&#40;$csv_file, 'r'&#41;;
$theData = fgets&#40;$csvfile&#41;;
$i = 0;
while &#40;!feof&#40;$csvfile&#41;&#41; &#123;
$csv_data&#91;&#93; = fgets&#40;$csvfile, 1024&#41;;
$csv_array = explode&#40;",", $csv_data&#91;$i&#93;&#41;;
$insert_csv = array&#40;&#41;;
$insert_csv&#91;'ID'&#93; = $csv_array&#91;0&#93;;
$insert_csv&#91;'name'&#93; = $csv_array&#91;1&#93;;
$insert_csv&#91;'email'&#93; = $csv_array&#91;2&#93;;
$query = "INSERT INTO csvdata&#40;ID,name,email&#41;
VALUES&#40;'','".$insert_csv&#91;'name'&#93;."','".$insert_csv&#91;'email'&#93;."'&#41;";
$n=mysql_query&#40;$query, $connect &#41;;
$i++;
&#125;
fclose&#40;$csvfile&#41;;

echo "File data successfully imported to database!!";
mysql_close&#40;$connect&#41;;
?>
Ευχαριστώ

geomagas
Δημοσιεύσεις: 667
Εγγραφή: 06 Απρ 2013 13:36
Τοποθεσία: Ηράκλειο Κρήτης
Επικοινωνία:

βοήθεια με php & utf8

Δημοσίευση από geomagas » 04 Αύγ 2013 13:33

Ρίξε μια ματιά στην iconv

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

βοήθεια με php & utf8

Δημοσίευση από cordis » 04 Αύγ 2013 13:35

mysql_query("SET NAMES 'utf8'",$connect )

μετά το mysql_connect
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

vaggelisB
Δημοσιεύσεις: 4
Εγγραφή: 04 Αύγ 2013 12:54

βοήθεια με php & utf8

Δημοσίευση από vaggelisB » 04 Αύγ 2013 13:54

@ geomagas : θα το κοιτάξω

@cordis : Τέλεια! δούλεψε άψογα!!!

ευχαριστώ πάρα πολύ!!!

vaggelisB
Δημοσιεύσεις: 4
Εγγραφή: 04 Αύγ 2013 12:54

βοήθεια με php & utf8

Δημοσίευση από vaggelisB » 04 Αύγ 2013 22:34

Με το παραπάνω script έχω πρόβλημα τελικά... το csv μου σε κάποια fields έχει πολλές γραμμές (περιγραφή προϊόντος) και κατά την εισαγωγή δημιουργεί νέα γραμμή με όλα τα άλλα κελιά άδεια.

έχω και αυτό εδώ

Κώδικας: Επιλογή όλων

<?php
define&#40;'DB_SERVER', 'localhost'&#41;;
define&#40;'DB_USER', 'database-username'&#41;;
define&#40;'DB_PASSWORD', 'password'&#41;;
define&#40;'DB_NAME', 'database-name'&#41;;

@$conn = mysql_connect &#40;DB_SERVER, DB_USER, DB_PASSWORD&#41;;
mysql_select_db &#40;DB_NAME,$conn&#41;;
mysql_set_charset&#40;'UTF8', $conn&#41; or die&#40;mysql_error&#40;&#41;&#41;;
if&#40;!$conn&#41;&#123;
	die&#40; "Sorry! There seems to be a problem connecting to our database."&#41;;
&#125;

function get_file_extension&#40;$file_name&#41; &#123;
	return end&#40;explode&#40;'.',$file_name&#41;&#41;;
&#125;

function errors&#40;$error&#41;&#123;
	if &#40;!empty&#40;$error&#41;&#41;
	&#123;
			$i = 0;
			while &#40;$i < count&#40;$error&#41;&#41;&#123;
			$showError.= '<div class="msg-error">'.$error&#91;$i&#93;.'</div>';
			$i ++;&#125;
			return $showError;
	&#125;// close if empty errors
&#125; // close function


if &#40;isset&#40;$_POST&#91;'upfile'&#93;&#41;&#41;&#123;
// check feilds are not empty

if&#40;get_file_extension&#40;$_FILES&#91;"uploaded"&#93;&#91;"name"&#93;&#41;!= 'csv'&#41;
&#123;
$error&#91;&#93; = 'Only CSV files accepted!';
&#125;

if &#40;!$error&#41;&#123;

$tot = 0;
$handle = fopen&#40;$_FILES&#91;"uploaded"&#93;&#91;"tmp_name"&#93;, "r"&#41;;
while &#40;&#40;$data = fgetcsv&#40;$handle, 1000, ","&#41;&#41; !== FALSE&#41; &#123;
	for &#40;$c=0; $c < 1; $c++&#41; &#123;

            //only run if the first column if not equal to firstname
            if&#40;$data&#91;0&#93; !='firstname'&#41;&#123;
				mysql_query&#40;"INSERT INTO contacts&#40;
				firstname,
				lastname,
				email,
				telephone
				&#41;VALUES&#40;
					'".mysql_real_escape_string&#40;$data&#91;0&#93;&#41;."',
					'".mysql_real_escape_string&#40;$data&#91;1&#93;&#41;."',
					'".mysql_real_escape_string&#40;$data&#91;2&#93;&#41;."',
					'".mysql_real_escape_string&#40;$data&#91;3&#93;&#41;."'
				&#41;"&#41;or die&#40;mysql_error&#40;&#41;&#41;;
            &#125;

	$tot++;&#125;
&#125;
fclose&#40;$handle&#41;;
$content.= "<div class='success' id='message'> CSV File Imported, $tot records added </div>";

&#125;// end no error
&#125;//close if isset upfile

$er = errors&#40;$error&#41;;
$content.= <<<EOF
<h3>Import CSV Data</h3>
$er
<form enctype="multipart/form-data" action="" method="post">
	File&#58;<input name="uploaded" type="file" maxlength="20" /><input type="submit" name="upfile" value="Upload File">
</form>
EOF;
echo $content;
?>
το οποίο δουλεύει σωστά αλλά αυτό ανεβάζει από το Pc μου το αρχείο. Αυτό μπορώ να το κάνω και από το Phpmyadmin. εγώ θέλω να τραβάει το csv από Url όταν τρέχω το php

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

βοήθεια με php & utf8

Δημοσίευση από dva_dev » 04 Αύγ 2013 23:02

Ρίξε μια ματιά στα παραδείγματα αυτά:
http://php.net/manual/en/function.file-get-contents.php
http://php.net/manual/en/function.curl-exec.php

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

βοήθεια με php & utf8

Δημοσίευση από cordis » 04 Αύγ 2013 23:06

δείξε δείγμα αρχείου, 3-4 γραμμές...
Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

vaggelisB
Δημοσιεύσεις: 4
Εγγραφή: 04 Αύγ 2013 12:54

βοήθεια με php & utf8

Δημοσίευση από vaggelisB » 04 Αύγ 2013 23:20

αυτή είναι η αρχή του csv αρχείου που θέλω να φορτώσω στην βάση
Συνημμένα
vag.zip
το csv μου
(3.48 KiB) Μεταφορτώθηκε 184 φορές

Άβαταρ μέλους
cordis
Administrator, [F|H]ounder, [C|S]EO
Δημοσιεύσεις: 27622
Εγγραφή: 09 Οκτ 1999 03:00
Τοποθεσία: Greece
Επικοινωνία:

βοήθεια με php & utf8

Δημοσίευση από cordis » 05 Αύγ 2013 13:30

Δεν απαντάω σε προσωπικά μηνύματα με ερωτήσεις που καλύπτονται από τις ενότητες του forum. Για ο,τι άλλο είμαι εδώ για εσάς.
- follow me @twitter

Απάντηση

Επιστροφή στο “PHP Προγραμματισμός”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες