Bonjour
Voilà mon problème tout bêtement je ne comprends pas pourquoi le symbole « < » ne s’affiche pas alors que les autre marche bien comme « % * . > ^ …. » bizard !!!!
Le code :
<?php do { ?>
<tr>
<td ><?php echo $row_ArTest['libelle']; ?></td>
</tr>
<?php } while ($row_ ArTest = mysql_fetch_assoc($ArTest)); ?>
…..
<?php
$content = ob_get_clean();
require('../../html2pdf/html2pdf.class.php');
try{
// code
$pdf = new HTML2PDF('P','A4','fr');
$pdf->pdf->SetDisplayMode('fullpage');
$pdf->writeHTML($content);
$pdf->Output(Test.pdf');
// fin code
}catch(HTML2PDF_exception $e) {
die($e);
}
?>
essaye de le substituer par <
essaye de le substituer par < -----
str_replace("<","<",$content);
Si bien sa ?
t'as essayé? y'a pas de risque d'explosion là...
pourrais tu poster la source php qui produit cette page ?
<?php require_once('sb/Connections/sb.php'); ?>
<?php
if (!function_exists("GetSQLValueString")) {
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
if (PHP_VERSION < 6) {
$theValue = get_magic_quotes_gpc() ? stripslashes($theValue) : $theValue;
}
$theValue = function_exists("mysql_real_escape_string") ? mysql_real_escape_string($theValue) : mysql_escape_string($theValue);
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? doubleval($theValue) : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
}
mysql_select_db($database_sb, $sb);
$query_ArTest = "SELECT * FROM test";
$ArTest = mysql_query($query_ArTest, $sb) or die(mysql_error());
$row_ArTest = mysql_fetch_assoc($ArTest);
$totalRows_ArTest = mysql_num_rows($ArTest);
ob_start();
?>
<style type="text/css">
hr {background:#009}
table{margin-bottom:120px;border-collapse:collapse; width:100%}
th{padding:5px}
td{font-size:12px; padding:10px; line-height:20px}
td.noborder {border:none}
</style>
<page backtop="160px" backleft="10mm" backright="10mm" backbottom="20mm">
<p align="center" style="font-size:22px;"><strong><u>Liste </u></strong></p>
<table>
<tr>
<th style="width:50%; border:solid 1px #000; text-align:center;font-size:16px"><strong>id</strong></th>
<th style="width:50%; border:solid 1px #000; text-align:center;font-size:16px"><strong>Test</strong></th>
</tr>
<?php do { ?>
<tr>
<td style="width:50%; border:solid 1px #000; text-align:left; margin-left:5px">
<?php echo $row_ArTest['id']; ?>
</td>
<td style="width:50%; border:solid 1px #000; text-align:left; margin-left:5px"">
<?php echo $row_ArTest['libelle']; ?>
</td>
</tr>
<?php } while ($row_ArTest = mysql_fetch_assoc($ArTest)); ?>
</table>
</page>
<?php
$content = ob_get_clean();
require('../html2pdf/html2pdf.class.php');
try{
// code
$pdf = new HTML2PDF('P','A4','fr');
$pdf->pdf->SetDisplayMode('fullpage');
$pdf->writeHTML($content);
$pdf->Output('facture.pdf');
// fin code
}catch(HTML2PDF_exception $e) {
die($e);
}
mysql_free_result($ArTest);
?>
tain, tu fais aucun effort.
y'a pas de str_replace dans ce code, du coup, même le html est faux:
<td><</td>
-> pas bon du tout, il faut <td><</td>
idem, <td>></td> est mauvais, cela doit être <td>></td>
il s'affiche en html uniquement parce que firefox est suffisamment "gentil", mais html2pdf ne s'en sort pas.
<td style="width:50%; border:solid 1px #000; text-align:left; margin-left:5px"">
<?php echo $row_ArTest['libelle']; ?> // <--lecture direct dans la base de donnée
</td>
1er : les autre symbole marche bien > * % ..... mais pas le symbole <
2eme : str_replace ne marche pas j'ai tester , le problème et le même.
tu les donnée son stock en base de donnée . je ne peu pas écrire <td><</td> , mais <td> <?php echo $row_ArTest['libelle']; ?> </td>
mise a jour de site avec : $content = str_replace("<","<",$content);
le même problème ....
<?php
$content = ob_get_clean();
$content = str_replace("<","<",$content);
require('../html2pdf/html2pdf.class.php');
try{
// code
$pdf = new HTML2PDF('P','A4','fr');
$pdf->pdf->SetDisplayMode('fullpage');
$pdf->writeHTML($content);
$pdf->Output('facture.pdf');
// fin code
}catch(HTML2PDF_exception $e) {
die($e);
}
mysql_free_result($ArTest);
?>
si j'insert < directement dans la base sa marche tri bien , mais je ne peu pas utiliser sa dans un site commerciale je ne peu pas demander a mais client d'utiliser le < directement , je ne comprend pas pour quoi le symbole > marche lui !!!! pas besoin d'utiliser code html .
j'ai fais une mise a jour avec
<td style="width:50%; border:solid 1px #000; text-align:left; margin-left:5px"">
<?php echo str_replace("<","<",$row_ArTest['libelle'] ); ?> // <--lecture direct dans la base de donnée
</td>
le même problème ....
Si c'est un site commercial, il n'y a aucune raison que je continue à faire ton travail à ta place gratuitement. Mes clients payent 750 euros la journée de support technique.
tu as inversé les arguments de str_replace, c'est pour ça que ça ne marchait pas.
oui sa marche b1 .
<td style="width:50%; border:solid 1px #000; text-align:left; margin-left:5px"">
<?php echo str_replace("<","<",$row_ArTest['libelle'] ); ?>
</td>
merci encore une autre fois