Codeigniter dompdf: недопустимая ошибка символа
Когда я пытаюсь распечатать PDF, я получаю эту ошибку:
An uncaught Exception was encountered
Type: DOMException
Message: Invalid Character Error
Filename: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/helpers/dompdf/lib/html5lib/TreeBuilder.php
Line Number: 3191
Backtrace:
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/helpers/dompdf/lib/html5lib/TreeBuilder.php
Line: 3191
Function: setAttribute
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/helpers/dompdf/lib/html5lib/TreeBuilder.php
Line: 1493
Function: insertElement
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/helpers/dompdf/lib/html5lib/Tokenizer.php
Line: 2456
Function: emitToken
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/helpers/dompdf/lib/html5lib/Tokenizer.php
Line: 1102
Function: emitToken
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/helpers/dompdf/src/Dompdf.php
Line: 470
Function: parse
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/helpers/dompdf_helper.php
Line: 26
Function: loadHtml
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/application/controllers/admin/Estimates.php
Line: 136
Function: pdf_create
File: /home/ireto/domains/ireto.be/public_html/madicbelgium/index.php
Line: 293
Function: require_once
Это мой код на линии:3191 ->
private function insertElement($token, $append = true) {
$el = $this->dom->createElementNS(self::NS_HTML, $token['name']);
if (!empty($token['attr'])) {
foreach ($token['attr'] as $attr) {
if (!$el->hasAttribute($attr['name']) && preg_match("/[^A-Za-z0-9]/u", $attr['name'])) {
$el->setAttribute($attr['name'], $attr['value']);
}
}
}
if ($append) {
$this->appendToRealParent($el);
$this->stack[] = $el;
}
return $el;
}
1 ответ
Если вы столкнулись с ошибкой вроде An uncaught Exception was encountered
лучший способ - на самом деле поймать исключение, потому что вы получите ответ на свою ошибку в вашем Exception
следующий фрагмент кода должен делать то, что я имею в виду
private function insertElement($token, $append = true) {
try
{
$el = $this->dom->createElementNS(self::NS_HTML, $token['name']);
if (!empty($token['attr'])) {
foreach ($token['attr'] as $attr) {
if (!$el->hasAttribute($attr['name']) && preg_match("/[^A-Za-z0-9]/u", $attr['name'])) {
$el->setAttribute($attr['name'], $attr['value']);
}
}
}
if ($append) {
$this->appendToRealParent($el);
$this->stack[] = $el;
}
return $el;
}
catch (DOMException $e)
{
echo '<strong>Errormessage:</strong>'.$e->getMessage().'<br />';
echo $e->getTraceAsString();
}
}
если у вас есть ошибка сейчас, вы должны увидеть точную информацию, чтобы исправить эту ошибку, происходит что-то вроде следующего:
Errormessage: Invalid Character Error
#0 [...][...](7): DOMElement->setAttribute('1pro-1', 'someValue')
#1 {main}DOMException Object