php技术博客

记录php相关学习知识及开发示例、疑难问题等,欢迎大家与我联系交流相关技术

使用php代码导出表格方法(一)csv方式

在实际开发中,经常遇到帮数据导出表格操作。今天我们来讲下导出csv格式方式,这种是最快捷的、占用资源少的方法。这里简单介绍下csv格式,每一行数据间使用 换行符分割,每一列值之间通过逗号分割。这里要注意下 值里面可能含有特殊字符,如果不进行相关转义操作,会造成解析错误。下面也会提供解决方法function quoteCsvField($str,$force=false){     if($force || strpos($str,',')!==false || strpos($str,'"') !==false || strpos($str,"\n") !==false || strpos($str,"\n") !==false){         $str='"'.str_replace(&#39

如何在curl方式下url请求域名使用指定ip地址来访问某个服务器

如果某个域名对应多个ip,即有多台服务器。如何通过curl来访问指定一台服务器的url信息了。我们知道一般使用curl获取url信息的代码如下$url="http://www.phper163.com/"; $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_TIMEOUT,5); curl_setopt($ch,CURLOPT_RETURNTRANSFER,1); $content=curl_exec($ch); echo $content;如果想访问39.99.204.74这个ip服务器的内容了,可以将请求url中域名部分改用ip方式,并加上Host请求头信息。具体示例代码如下$url='http://39.99.204.74/index.php'; $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_TIMEOUT,5); curl_se

如何在php中获取curl请求的请求头信息及响应头信息

获取请求头信息,可以在curl_exec函数执行前,添加代码curl_setopt($ch,CURLINFO_HEADER_OUT,true);然后在curl_exec函数执行后,通过 curl_getinfo($ch,CURLINFO_HEADER_OUT) 来获取curl执行请求的请求数据。获取响应头信息,可以在curl_exec函数执行前,添加代码 curl_setopt($ch, CURLOPT_HEADER, true);curl_setopt($ch, CURLOPT_NOBODY,false); 之后 通过curl_exec函数来获取响应头信息。对curl_exec获取的值通过\r\n\r\n进行分割截取第一部分即为响应头信息。下面给出一个具体的例子:$url='http://www.phper163.com/'; $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,$url); curl_setopt($ch,CURLOPT_TIMEOUT,5); curl_setopt($ch,CURL

如何将php变量值安全的输出到js中

之前没考虑到这个问题,以为直接调用输出下就行了,这次有个编辑跟我说,页面不能加载更多内容了,用chrome浏览器调试模式查看有js报错,原来是输出的内容中有换行符造成js错误,从而导致后面的js不能正常执行了。不安全的做法:...   var share_content=''; ...上面的代码是不严谨的,没有考虑到变量可能含有一些特殊的字符,如换行、引号等。正确的做法如下,...   var share_content=""; ...大家可以封装成一个函数来处理这种情况,代码如下function php_safetransfer_js($str){         $str='"'.addcslashes($str, "\v\t\n\r\f\"'\\/").'"';       &nb

自定义函数实现php处理gbk编码下json_encode功能

开发过php代码的程序员都知道,php自带的json_encode函数只能对 utf-8编码数据进行json转换,gbk下中文编码会丢失,变成null值。如何兼容gbk编码,并且utf-8转换后,数据长度会变大,如汉字“你好”会转换为“\u4f60\u597d”,长度有6个变成12。大量文字下,转换后数据会变得更多,占用更多带宽资源。下面通过自定义函数来避免上面两个问题function _json_encode($val) {     if (is_string($val)) return '"'.str_replace(array('\\',"\r","\n",'"','/',"\t","\f"),array('\\\\','\r','\n','\\"','\/','\t','\f'),$val).'"'; &

网站首页使用黑白页面,通过css实现黑白效果

为配合全国性哀悼活动的举行,4月4日0时至24时,网站首页使用黑白页面,确保整体效果肃穆庄重。可以通过一串css代码来控制页面效果html {filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(100%); };帮上面一串代码放到网站首页代码head中即可,时间控制可以自己手动添加或删除。如果网站是动态语言实现的,也可以通过程序判断时间控制输出代码。如php代码如下if(date('Y-m-d')=='2020-04-04'){echo 'html {filter: progid:DXImageTransform.Microsoft.BasicImage(grayscale=1); -webkit-filter: grayscale(100%); }';}ps:还有一种情况,即网站通过动态程序生成,

分析一次写入微信昵称数据执行sql报错问题

客户反馈之前做的一个专题,有个用户报名数据没有正确写入。简单介绍下h5功能,类似报名功能,微信下授权后获取到openid、nichname,之后填写姓名并选择所在城市等信息,提交表单信息。其他用户填写都是正常的,通过用户反馈过来,用户昵称为“橙澄僜”。通过调试发现,这个昵称字符串转换为gbk编码后,再通过addslashes转义,字符串末尾会出现反斜线(\)。造成拼接的sql出现解析错误。header("Content-Type:text/html;charset=gbk"); $ss='橙澄僜';   $ss2=iconv('utf-8','gbk//ignore',$ss); $nickname=base64_encode($ss2);   var_dump($ss2,$nickname,base64_decode('s8izzoNc')); $sql="insert into test (nickname,name) values (