[RESOLU] Lecture base de donnée MYSQL

Eléphant du PHP | 134 Messages

07 févr. 2014, 12:03

Bonjour, je rencontre un petit souci ! je souhaite lire plusieurs données d'une colone mais toutes les lignes ne sont pas forcement remplie, et lors de la lecture si je tombe sur une ligne vide de la colonne la lecture s'arrete comment dois-je faire pour passer à la ligne suivante ? j'utilise domdocument pour extirper ces données d'une page web
include'../lib/config2.php';
$result = mysql_query("SELECT * FROM nom");
while($nom = mysql_fetch_array($result)){
				ob_start();  // bufferisation de la page 
					 
						$f=fopen('resultat.html','w');
						require_once 'simple_html_dom.php';
						$html = new simple_html_dom();
						$html->encoding='UTF-8';
						$url = $nom['M'];
						$html->load_file($url);
						foreach($html->find('.phead') as $post){
							echo $post;
						}
						echo $url;
						$html->clear();
						fputs($f,ob_get_contents());
						fclose($f);
							
			}		
					mysql_close();

ViPHP
xTG
ViPHP | 7331 Messages

07 févr. 2014, 14:07

J'ai absolument rien compris à ton explication...
Par contre en lisant ton code il manque une condition importante :
if( !empty($nom['M']) ) // l'url n'est pas vide

Eléphant du PHP | 134 Messages

07 févr. 2014, 16:03

bon béh j'ai résolu mon problème il fallait rajouter
if($html){
 foreach($html->find('.phead') as $post){
 echo $post;
}
mais j'ai un autre soucis j'essaye de remplacé un carractère non reconnu et affiché � avec
 $trans = array("?" => "");
strtr($machaine, $trans); 
mais ça ne change rien

ViPHP
xTG
ViPHP | 7331 Messages

07 févr. 2014, 16:55

C'est un problème d'encodage, le caractère n'est pas '?' mais peut être 'é' ou bien 'è' ou un autre.
Tant que tu ne sais pas quel est l'encodage tu ne pourras pas le remplacer correctement.
Pour détecter l'encodage d'une chaîne tu peux utiliser .
Et ensuite tu peux utiliser [url=http://fr2.php.net/manual/en/function.m ... t_encoding()
pour traduire la chaîne dans ton encodage à toi.

Eléphant du PHP | 134 Messages

17 févr. 2014, 15:35

il s'agit du signe €

Eléphant du PHP | 134 Messages

17 févr. 2014, 16:21

le site sur le qu'elle j'aspire le contenu est encodé en iso-8859-1 j'ai essayé
$html = new simple_html_dom('1.0','iso-8859-1');
						$html->encoding='UTF-8';

mais ça ne change rien

Mammouth du PHP | 504 Messages

17 févr. 2014, 16:35

hello,

Perso, je suis contre l'aspiration de contenu :non: :non:. Je ne sais pas si tu utilise ce terme a bon escient, mais l'aspiration suppose, acquisition illégale de contenu. le site sur lequel tu prends le contenu ne t'as pas donné l'autorisation de prendre son contenu. Pour information, les sanction peuvent etre extrement lourde non pas en terme pénal mais en terme financier "pillage de base données"= condamnation préjudice financier, et ça trés vite en chiffre. Cependant il existe un droit de courte citation qui peut résoudre ton soucis de génération contenu.

Enfin pour répondre à ta question, la fonction a utiliser est http://www.php.net/manual/fr/function.m ... coding.php pour changer l'encodage.

Eléphant du PHP | 134 Messages

17 févr. 2014, 16:41

Meric de ta réponse, effectivement je me suis sans doute mal exprimé de plus je recupère uniquement des données pour créer mon propre moteur de recherche interne

Eléphant du PHP | 134 Messages

17 févr. 2014, 16:47

j'ai resolu mon problème avec mb_convert_encoding($var, 'UTF-8')