如何在PHP中删除特殊引号字符?

发布时间:2022-04-30 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了如何在PHP中删除特殊引号字符?脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。
我交给了这个项目,它有很多问题.其中之一是最终用户正在将直接从MS Access导出的CSV文件上载到其Web服务器上的目录中.下一步是截断几个数据库表,然后将CSV中的所有记录插入数据库.

但是,MS Access用于撇号的撇号字符存在问题.它不是单引号,也不是双引号.它是撇号.像这样:

"Rock/Classic 80’s-90’s"

现在,我在我的PHP中尝试了以下内容

$d = str_replace("’","",$d);
$d = str_replace(array("'","\'","\’","’"),$d);

但是,这似乎不起作用.实际上,当基于这些数据运行SQL查询时,它总是似乎以某种方式将’转换为’而不将它们剥离出来,然后导致sql错误,因为它认为字符串已经提前终止.

这是我正在使用的代码块之一:

$band_insert = "INSERT INTO `schedule` (`Band`,`Date`,`Genre`,`Club`,`Location`,`Venue`,`Time`) VALUES ( '%s','%s','%s' )";
$result = $MysqLi->query('TRUNCATE TABLE `schedule`');
if(!$result) die('Truncate error');

if( ($handle=foPEn('./export/schedule.csv','r')) !== FALSE)
{
    while( ($data=fgetcsv($handle,1000,','"','\\')) !== FALSE )
    {
        foreach($data as $d) 
        {
            $d = str_replace("’",$d);
            # For debugging purposes only
            echo "<p>$d</p>";
        }
        $sql = sPRintf($band_insert,$data[0],$data[1],$data[2],$data[3],$data[4],$data[5],$data[6]);
        #$sql = $MysqLi->real_escape_string($sql);
        $result = $MysqLi->query($sql);
        if( ! $result ) $LOG[] = lg("Unable to perform query ($MysqLi->errno): $MysqLi->error");
    }
    $log[] = lg("Successful upload (".date("Y-m-d").").");

    fclose($handle);
}

问题变成了,为什么这不起作用?当我回显$d值时,会打印出一个?在一个广场上.即使有标题(‘Content-type:text / htML; charset = utf-8’);在文件的顶部.

解决方法

我在Access和Excel方面遇到了一些类似的障碍,并且使用了这个,我选择了某个地方来擦除MS字符(所以应归功于它的原始作者).也许您可以按原样使用它,或相应地进行调整

// First,replace UTF-8 characters.
$text = str_replace(
array("\xe2\x80\x98","\xe2\x80\x99","\xe2\x80\x9c","\xe2\x80\x9d","\xe2\x80\x93","\xe2\x80\x94","\xe2\x80\xa6"),array("'","'",'-','--','...'),$text);

// Next,eITher REPLACE their Windows-1252 equivalents.
$text = str_replace(
array(chr(145),chr(146),chr(147),chr(148),chr(150),chr(151),chr(133)),$text);

// OR,STRIP their Windows-1252 equivalents.
$text = str_replace(
array(chr(145),array('','',''),$text);

脚本宝典总结

以上是脚本宝典为你收集整理的如何在PHP中删除特殊引号字符?全部内容,希望文章能够帮你解决如何在PHP中删除特殊引号字符?所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。