下午好
使用服务器从PHP 5传递到PHP 7,并且在调整所有内容时遇到很多问题。
今天,我无法将“-”更改为“”。 我错过了此错误,:
警告:在第96行的/home/glassmad/public_html/agente/clientes.php中使用未定义的常量cliente-假定为“ cliente”(这会在PHP的未来版本中引发错误)
警告:preg_replace():编译失败:在第96行的/home/glassmad/public_html/agente/clientes.php中偏移0处没有重复的内容
php代码是这样的:
echo "
<tr>
<th> ". preg_replace('~?~',' ',$row[cliente]) ."</th>
<th></br> <img src='https://barcode.tec-it.com/barcode.ashx?data=" . $row["cliente"]. "&code=Code39&multiplebarcodes=false&translate-esc=false&unit=Fit&dpi=96&imagetype=Gif&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0' alt='Barcode Generator TEC-IT'/></th>
</form></th>
</tr>";
谢谢
答案 0 :(得分:3)
错误
警告:preg_replace():编译失败:在第96行的/home/glassmad/public_html/agente/clientes.php中偏移0处没有重复的内容
是因为?
是一个量词。它允许前一个字符/组是可选的(零个或一个)。您没有分组/字符,因此无法量化。
如果要替换文字问号,则需要对字符进行转义。
preg_replace('~\?~',' ',$row[cliente])
或使用字符类。
preg_replace('~[?]~',' ',$row[cliente])
这并不是一个很好的正则表达式用法。一个str_replace
就足够了
str_replace('?',' ',$row[cliente])
或者,因为您的var是$row
,所以我认为这是来自SQL。您可以执行以下操作:
replace(cliente, '?', '')
在您的SQL中也是如此。
答案 1 :(得分:2)
尝试一下。
echo "
<tr>
<th> ". preg_replace('?',' ',$row['cliente']) ."</th>
<th></br> <img src='https://barcode.tec-it.com/barcode.ashx?data=" . $row["cliente"]. "&code=Code39&multiplebarcodes=false&translate-esc=false&unit=Fit&dpi=96&imagetype=Gif&rotation=0&color=%23000000&bgcolor=%23ffffff&qunit=Mm&quiet=0' alt='Barcode Generator TEC-IT'/></th>
</form></th>
</tr>";