需要通过新浪微薄的API发送微薄信息
问题一:字数计算
微薄要求140个字,如果直接用mb_strlen , strlen 并不能解决问题
于是自己写了一个函数
1 2 3 4 5 6 7 8 9 10 11 12 13 | function countP($str){ $length=0; $strLen=0; $peiha="/[a-zA-Z0-9 \,\\\.\/\<\>\?\:\'\"\{\}\-\_\+\=\~\`\!\@\#\$\%\^\&\*]*\r\n\t/"; preg_match_all($peiha,$str,$match); for($i=0;$i<count($match[0]);$i++){ $length+=strlen($match[0][$i]);//所有半角状态下字母,标点符号长度 } $str1=preg_replace($peiha,"",$str);//去所有半角状态下字母,与标点符号长度 $strLen=strlen($str1); $length+=$strLen/3*2; return $length; } |
问题二:重复发送内容,设计的是利用网站被访问的时候 ,如果满足发送条件 则 触发微薄发送
访问量很小的情况下,没有问题,但流量一大就会出现一条内容重复发送多次的情况。
最初想的方法是用TP的F函数 在微薄发送前 加一个锁,然后发送结束解锁,也没有做太多的考虑 于是就出现了上面的情况
最后解决方法,使用 flock 函数
1 2 3 4 5 6 7 8 9 | $handle = fopen("/path/wbsendlock",'a'); $canwrite= flock($handle,LOCK_EX); if($canwrite) { //具体业务代码 } flock($handle,LOCK_UN); fclose($handle); |
未经允许不得转载:开心乐窝-乐在其中 » 使用新浪微薄API发送微薄信息遇到的问题