【问题标题】:fpdf cell not dispaying correctly a concatenated php stringfpdf 单元格未正确显示连接的 php 字符串
【发布时间】:2012-09-04 12:30:52
【问题描述】:

我有一个 fdpf 单元 $DocRef->Cell(23,10,'Re: Patient: '.$patientdata,0,0,'L');

$patientdata 是从 mysql 语句中获取的

如果我使用以下内容并将 $patientdata 放在上面的单元格中,我会得到所需的结果,例如它将在 pdf 文档中显示为 Smith John Michael

 if (($uppatientID <> '') and ($uppatientID <> 0))
  {
    $patientsql =   "
      SELECT
        Concat_Ws(' ', `PatientLastName`, `PatientFirstName`, `PatientMiddleName`)
      FROM
        `Patient`
      Where
        `PatientID` = $uppatientID
    ";

    $patientresult=mysql_query ($patientsql) or die (mysql_error ());
    while ($patienttrow=mysql_fetch_row($patientresult))
      {
        $patientdata = $patienttrow[0];
      }
    mysql_free_result($patientresult);
   }
  else
    {
      $patientdata = ' ';
    }

由于患者姓名已加密,我需要执行以下操作来解密它们

if (($uppatientID <> '') and ($uppatientID <> 0))
  { 
    $patientsql =   "
      SELECT
        `PatientLastName`, `PatientFirstName`, `PatientMiddleName`
      FROM
        `Patient`
      Where
        `PatientID` = $uppatientID
    ";

    $patientresult=mysql_query ($patientsql) or die (mysql_error ());
    while ($patienttrow=mysql_fetch_row($patientresult))
      {
        $PatientLastNames = $patienttrow[0];
        $PatientFirstNames = $patienttrow[1];
        $PatientMiddleNames = $patienttrow[2];

        $patientdata = $PatientLastNames.$PatientFirstNames.$PatientMiddleNames;

      }
    mysql_free_result($patientresult);
   }
  else
    {
      $patientdata = ' ';
    }

但上面的单元格现在将它们显示在 pdf 文档上,每个名称之间有很多空格,这仅在我使用 php 加入每个字符串时发生。加入他们。是否有一些格式可以用来纠正这个问题。

有趣的是,如果我在 pdf 文档上选择名称并将其粘贴,那么所有添加的空格都会被删除

谢谢,

伊万

【问题讨论】:

  • 看起来第二个示例没有对患者姓名进行任何解密。如果您对每个变量执行var_dump() 会发生什么?它说琴弦有多长?这可能只是必须单独 trim() 每个字符串的问题。

标签: php mysql fpdf


【解决方案1】:

我可以从您的第一种和第二种方法中看出的唯一区别是删除了 $patientdata 变量中的空白间距您是否尝试过使用 php 将其放回去

$patientdata = $PatientLastNames." ".$PatientFirstNames." ".$PatientMiddleNames;

【讨论】:

  • 为什么省略空白会导致更多空白?
  • 不知道,如果第一个解决方案有效,那么这将是一个相同的结果。
  • “但是上面的单元格现在将它们显示在 pdf 文档上,每个名称之间有很多空白,...”请重新阅读问题。跨度>
  • 我明白这一点,但如果你不做任何额外的代码,那么没有理由这些不会产生相同的结果。
  • 如果他没有放置任何间距的事实会导致其他问题,即长字符串会导致单元格宽度问题
【解决方案2】:

感谢您的回复,您帮助我解决了问题。 因为我需要解密表格数据,所以它们用 \u0000 填充以提供 32 个字符的字符串。要删除它,我需要添加 str_replace("\x0", '', $str);

$patientdata = str_replace("\x0", '', PatientLastName . " " . PatientFirstName . " " . PatientMiddleName);

现在可以正确显示 pdf

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多