首页 开发编程 正文

php怎么把集合拆分

工作内容是给一家小企业运维系统三个月,却没想到只是因为这家企业花了二十多万买了一套系统,至于为什么不让程序开发者来做运维,是因为这套系统的开发公司要收取20%的运维费用。我个人认为这个还是比较靠谱的渠道,有赚钱的机会一般都会先考虑朋友。...

php怎么把集合拆分,程序员接私活时?

谢邀!这方面我还是比较有经验的,2018-2021年,三年多的时间,我接了4个项目,挣了小十万块钱。认真看下去有些坑可以少走些。

为什么要接私单

你知道程序员接私单有多爽吗?

2017年年初,我接了个私单,工作内容是给一家小企业运维系统三个月,薪酬是4000块钱,在当时已经可以顶我小半个月工资了。

我本来以为这会是一个比较重的活,却没想到只是因为这家企业花了二十多万买了一套系统,自己的公司又养不起程序员。系统是不是有bug,他们自己没办法判断,这才发布了私单。

每天的工作也不多,就是登录后台监控下日志,看看有没有报错,然后解答下顾客的疑惑。

至于为什么不让程序开发者来做运维,也很简单,是因为这套系统的开发公司要收取20%的运维费用。

价格太高,这家小企业给不起,所以才决定外聘的。

回到刚才的问题:为什么要接私单?

当然是因为能赚钱啊,而且程序员接私单通常是以千为单位的,能在上班之余挣点孩子奶粉钱,它不香吗?

在哪里接单?

平台

这样的平台有很多,以前是在威客上,现在比如某客栈,某包,某戒(不能直接用真名,限流)等,都是程序员能接单的平台。

但是,恕我直言,这些平台坑不小,比如说你填写了简历,如果别人看不到,或者搜索不到你,你也接不到单。

你要想被别人看到,就只能花“钱”买流量,买了流量,你的简历才会出现在别人的搜索内容里面。

本来大家就是奔着赚钱去的,结果去了才发现还要花钱,这很让人不爽。

朋友介绍

我接到的4个私单中,有2个是通过朋友介绍的,所以,我个人认为这个还是比较靠谱的渠道,朋友之间本来就比较信任,有赚钱的机会一般都会先考虑朋友。

而且还有一个好处,就是来源可靠,不会被忽悠,有事情好协调,后面结账也相对简单一些,因为有中间人从中协调,事情也好办。

微信或者QQ群接单

2015年左右,QQ群里接单还是靠谱的,有单子可以做的,但是一般以小单为主,大多数都是百八十块的小单,比如大学生毕业设计,稍微大一些的单子比如官网建站等等。

我以前认识一个朋友,他也是从培训学校出来,本来以为他会进入某家公司做开发,结果他和她老婆两个人只接官网建站的小单子做。

虽然小,但是在2015年前后,这种单子很多,做出来以后还容易形成口碑效应。

这位朋友基本上1-3天就是一个,价格也在800-2000左右,愣是靠着这门生意在他们县城全款买了套房。

小广告,明信片

我做过,没效果,名片发了有一两百张,大多数都是被直接扔进了垃圾桶,少数人没有人当着面扔,但是也还是没有联系的意思。

有认识的人靠着明信片接过单,但是最后也没谈成,大多数就是想做,又不想掏钱,告诉你做好的话,推广出去一起分钱,这种就直接拒绝了。

街头去问,找单子做

我其余的两个私单,就是这么来的。

一个是成都双流一个经营库房的大哥,要求做一个多租户的库管系统,整个系统花费了我2个半月,不是特别复杂,就是功能略多,收费2万6千块。

另外一个是给高新区一家餐厅开发公众号和一些H5界面,这个更简单,8000块钱,半个月搞定,赠送了一年的运维,其实这一年内都没什么事情做,因为这家餐厅不到半年,就因为疫情倒闭了[捂脸]。

怎么给系统定价?

定价之前,你要做几个事情。

1 确定需求范围

这点很重要,双方要约定好需求范围,这个关系到最后交付的时候,验收了那些东西,不能做的,或者和三方有关系的需求一定要及时跟客户说出来。

2 确定每一个需求都是清晰的,明确的。

这个是最容易扯皮的地方,需求上面要知道自己要做成什么样子,怎么样才算是验收成功。

3 开发周期

确定以上两点之后,就要评估你的开发能力了,先看看以目前的人手,要做完,测试完,最终交付到用户手上的时候,需要用多久。

4 最终的版权归属

有些用户不在意版权,有些用户很在意版权,在意版权的可以适当收费高一点点。不在乎版权的可以适当少收一点点,总是根据自己的实际情况来判断。

确定了需求范围,开发周期等问题之后,评估价格也就相对容易了。

第一种:拍脑袋法

有经验的一般都会用这种,比如常年做ERP或者OA系统的人,对这种系统非常熟悉,他的基本功能也都差不多,之前也做过类似的系统,那么就可用这方方法。

第二种:根据投入的实际人力成本来定价

比如,你们实际上投入两个人做,每人每天花费2个小时,系统最终60个工作日完成,总共花费人力为:2*2*60/8 = 30人/天。

1人/天的投入根据行业内的大致的工资来算,比如在成都一个从业5年的IT人,日薪大概是 750元/天,而接私单不可能按照各价格来算的,因为私单就是因为便宜,所以一般按照6-8成来计算,这里取个中间值7成。

这么算下来价格大概:30*750*0.7=15750元。

接私单肯定不只是为了这点蝇头小利,因为私单的价格已经算得很便宜,加上后期1-2年的维护和中间人回扣,需要在这个价格的基础上再加上30%-60%,我做得几个系统都是按照60%来算的。

这样这笔私单的价格就差不多出来了:25200元。

第三种:按照功能收费

这种收费模式比较适合成熟的系统,而且是云系统,面向的是多用户的。比如很多理发店使用的收银系统,他们大多数是采用:安装费+模块 + 月度费用收费的模式。

比如,某理发店购买了一套收银系统,安装费用800,添加一个会员模块,300一个月,再添加一个活动模块200一个月,等等。一年的成本算下来大概是:800+300*12+200*12 = 6800元。

第四种:按照功能点评估

功能点是什么?就是建立在用户的需求基础上的,其实跟功能收费也差不太多。专业名词太多,EI,EQ,EIF等等的,有点太过专业,一般想要找私单的人根本听不懂,所以你也不要用这个去评估了。

接私单怎么收钱

千万不要想着一次性把钱收到位,因为还没见到系统出来的时候,别人也不是傻子,肯定不会完全信任你。

可以采用30%,60%,10%的比例收取。

项目确定后,动工前收取30%,项目交付成功后收取60%,用户使用1-3个月后收取10%。

这样收费,既可以让用户放心,也可以让自己放心,不用担心做到一半用户跑路了。

接私单怎么做更有利于成功

找一家公司挂靠,与这家公司签署长期合作协议,签合同,纳税等等都由这家公司出面,至于是什么公司,大家也可以想得出来。

有一家公司托底,用户也更放心一些,毕竟很多公司用户都需要走账的,公对公这样的关系更让他们放心和方便。

接私单哪些坑要注意别踩

1 不能做的千万不要接,万一,签了合同却交付不出来,你能哭死。

2 签合同一定要把需求明细当做附页放进去,标明需求以附页为准。

3 评估时间的时候可以适当评估宽松点,私单都是用业余时间来做,不要到时候搞得又累又完成不了。

4 一定要约定交付后的运维时间,价格和责任划分。要不然,你就只能永远当他们的打工小白了,还没钱。

5 赚了钱一定要想着中间人,这行的规矩一般是中间人可以得到10%-30%左右的提成,有些时候甚至可以达到50%。别人介绍生意给你,要懂得感恩。之前为什么说要多评估60%,就是为了应付这个情况的。

6 不要瞎答应,有些用户在需求确定之后,可能会修改需求,小的修改,调整了就是了,但是大的调整有时候甚至会推翻你之前的所有努力,这种就不要轻易答应。他如果毁约,就可以按照毁约的条款来对付他。

7 不要太高调。接私活能多隐秘就多隐秘,除了几个志同道合的人,最好的同事都不要告诉,因为你不知道啥时候他会把你给捅出去。

总之,程序员接私单并不容易,或者说对于大部分人来说不容易,除了私单的来源外,更重要的是现在很多潜在用户都选择了云上系统,比如ERP,有某友,某婆等等。

但是如果可能的话,还是要尽量去接一些私单来做,除了能挣点钱外,更重要的是锻炼技术。可以说现在60%以上的程序员对于冲前到后把一套系统搭建起来都不是很熟悉。你可以趁机学习下这方面的知识。

有哪些免费的商用字体推荐?

上次分享了免费可商用的中文字体合集,这次分享下可商用的英文字体合集,希望能帮到你!

开心到飞起来!字体是有版权的相信小伙伴们已心知肚明,英文字体和中文字体一样也是别人精心开发的,随便使用自然也是有侵权风险的。

还记得上次分享了免费可商用的中文字体后,小伙伴们都按耐不住纷纷收藏,这次再分享一些是可供大家免费商用的英文字体,小梦做了简单分类,小手一抖用起来!

1

简约时尚类

这一类是无衬线体 (Sans serif)系列,线条柔美,造型自然流畅,用在海报、详情页简直完美!

2

浑厚吸睛类

有灯光的地方就是舞台,而有这类字体的地方就是焦点!这类字笔画较粗,浑厚有力,很适合用作标题或口号,醒目吸睛自带BGM。

3

锐利俊朗类

自在如风的少年锋芒毕露,那这类字再适合不过了,衬线字体(Serif)起落有装饰,总有一种考究和修饰过的美,一如你总是洗头换装后给人的感觉。

4

随性手写类

怀念懵懂之际书写出的阿波次德?也许从手写英文中能寻得那些年的一丝洒脱与不羁的赶脚,随性手写但更艺术化,可以可以。

5

个性放飞类

人不轻狂枉少年,谁还没点个性咋滴?这类字或笔画出众或造型奇特,就是不安常规出牌,总能在特立独行中俘获你的心。

6

狂野复古类

就知道你有一颗躁动不安的心!干净整洁给人清爽的美,而污渍飞溅给人复古的美,该类字的特点就在于满足异样的品味,相信能让处女座抓狂。

7

图案装饰类

用字体代替图形成为视觉焦点是平面构成中常用的手法,而这类字绝对当之无愧可以撑起整个江山!该类字可以说是抢别人饭碗的存在了。

这就是收集的一些免费英文字体供大家参考,都是免费可商用的,如有担忧可以使用前先查看版权信息避免出错,如有错误欢迎指正,还有什么免费的字体,也欢迎留言补充!

文字转语音配音软件用什么好?

感谢邀约,关于文字转语音这种需求在现实中的应用还蛮多的,比如视频配音,有声网站和APP读物,头条的有声新闻等等,不过好听自然的声音当然是人配音,但是对自己的声音不够自信,普通话不标准怎么办,我们可以借助一些软件合成语言接近这个效果,接下来我给大家分享下我正在使用并且觉得能够接近人声的文字转语音工具,质量好并且还免费,希望大家能够喜欢。

中文合成工具首推百度在线语音合成工具

这款工具是我最常用的工具,通过几款工具的对比,在接近人声自然朗读、功能、价格方面,我对比并使用了百度、阿里、腾讯、科大讯飞的相关产品,我觉得还是百度在线语音合成工具这款工具是比较接近人类的自然朗读,毕竟在人工智能领域,百度在国内的排名还是很靠前的,主要得益于百度是国内第一家将人工智能技术上升到核心战略的科技公司,这款工具就如官方网站所说,其产品有以下特点:

产品特点

1、支持多语言多音色

支持中文、英文、中英文混读合成,提供基础音库和精品音库共14种音库可供选择,让声音更加个性化,比如提供男女标准声音、男女情感朗读、男女童声朗读、男女俏皮朗读、以及各种方言的朗读。

2、语速朗读的快慢可以灵活设置

基于参数设置,我们可以控制朗读的快慢,声调的高低,音量的调解等满足个性化的需求。

3、支持多音字标注

针对多音字可以通过标注的方式,调整正确的发音,中文多音字可通过标注拼音、音调自行定义发音,例如“轻舟已过万重(chong2)山”、“脑筋急转(zhuan3)弯”

4、多种调用方式

提供多种调用方式,比如REST API接口、在线SDK,满足手机APP、网页端、小程序、硬件等多场景,这也是我最常用的一种方式,通过 REST API 接口进行调用。

5、更重要的是免费使用

如果是个人使用,不限制使用次数,只是每秒的调用次数有限制,一般5~10次,我觉得不是商业运用,个人用的话,也不会有这么大的量,完全满足需求。

如何使用百度在线合成工具

首先百度搜索“百度语音合成”,找到其官网地址:https://ai.baidu.com/tech/speech/tts_online

你可以通过以下两种方式进行使用:

1、不用注册,在线体验使用

打开官网,你就会看到相关产品的介绍,你可以通过网页下方的在线体验功能进行语音的合成,如下图所示:

不过这种方式,有字数限制(188个字以内),最好的方式还是通过编程集成语音API进行调用。

2、通过API的方式进行调用

如果你有编程基础最好不过了,百度提供各种语言的API集成版本,比如java、php、node、python、ios、android、c++等版本,使用API的前提,首先你需要注册百度账号申请应用服务,申请成功后,将会给你分配相关AppID、API Key及Secret Key,如下图所示:

申请完后,你就可以调用了,接下来给大家分享一下我使用 python 调用示例,

首先你需要安装百度语音工具包,安装命令如下:

pip install baidu-aip

接下来你就可以编写下面一段代码,示例如下:

运行成功后,你的项目目录里就会有一个音频文件,是不是很简单呢,最多支持上千文字,具体多少还没查到,如果你有几万的文字需要语言合成, 你可以进行文字文件的拆分进行分别合成,写个小程序,把几个音频文件进行合并或者使用音频软件进行合并。目前这个调用方式不限制调用次数,但是会限制你每秒钟调用的频次不能超过10次,如果不是商业运用,已经足够我们个人使用了。

示例展示

说了这么多,分享一个我用百度合成工具的例子,以下视频的语音效果还是很自然的,不仔细听还真不知道是机器读的。

英文文字语音合成使用这个工具

百度语言合成工具虽好,但是在英文朗读方面还是太机器了,我也是在国外找了好多工具进行对比,还是觉得这款工具最接近老外的自然发音,大家可以到这个网站进行体验下:

https://www.texttomp3.online/

同时你还可以选择口音,比如美式、英式发音,同时还可以选择男声、女声等等,支持调整音调和语速,还有一个比较有趣的功能,你可以添加朗读的背景音乐。

稍微补充下虽然这个工具可以免费使用,但是有次数限制和单词数量限制(300个),收费版本支持10000个单词。

小节

关于今天的分享就和大家聊到这里,感谢你的阅读,欢迎大家在留言区分享你觉得好的工具。

如果你赞同我的回答,欢迎给个赞和转发,谢谢支持。

实时生成并下载大数据量的EXCEL文件?

对于任何一个网站肯定是少不了下载功能,常见的下载功能有图片、视频、Excel表格,如果文件比较小的话,那么不会遇到任何的问题,但是当文件信息而超过了PHP的最大内存,那么在这个时候它就会有的内存溢出的问题。

那么它们是因为什么而发生的?对于这个过程的原理才是我们应该真正要去弄明白的事情

下载大数据量的EXCEL文件为何要报错?

PHP在下载大Excel表格的时候,那么首先它是需要去把MySQL的数据从硬盘上面读取到内存,但读取它是一次性载入到我们的内存,如果说它一次性载入的数据量远远大于最大内存,然后再来执行浏览器的业务下载。那么这个时候它就会发生我们这个内存溢出。

就比如:说我们现在有100M的数据量,但是我们PHP内存最大只有64M,那么这个它肯定是装不了的,我们可以把那个内存比喻为一个水杯,这个水杯的容量比喻为内存,现在杯子最大容量为64L。你要存放100L。肯定放不下

大事化小,小事化了。拆分成段

从上面可以看到文件下载,它是分为两步,首先是载入内存然后执行浏览器的输出下载,那么既然大型文件一次性载入不了,那可以采用 “大事化小,小事化了”思路,我们可以实现边写边下载,也就是分批次的读取与写入。

因为用户的话,只要最终拿到这个文件就可以,对于浏览器的下载原理不需要关心。只需要给到文件下载提示给用户即可,然后后端在实时的分批次的写入到要下载的文件当中。

实现思路步骤:

1、一设置浏览器下载Excel需要的Header

2、打开 php://output 流,并设置写入文件句柄。

注:(php://output,是一个可写的输出流,允许程序像操作文件一样将输出写入到输出流中,PHP会把输出流中的内容发送给web服务器并返回给发起请求的浏览器)

3、获取数据库所有数据量,并设置每次查询的条数,通过这两个值计算分批查询的次数

4、基于分批查询的次数循环查询数据库,然后写入到文件中,同时清除本次操作变量内存,刷新缓冲到浏览器,让浏览器的文件始终实时保持到最新的大小

注:刷新用ob_flush、flush()PHP的I/O流

在这里我们用到了PHP的一个IO的输入输出,也就是我们常用的

php://input php://output。

php://input

php://input可以读取原始的POST数据。相较于$HTTP_RAW_POST_DATA而言,它给内存带来的压力较小,并且不需要特殊的php.ini设置。php://input不能用于enctype=multipart/form-data”.

注:HTTP_RAW_POST_DATA 在PHP7已经被废弃,它不是$_POST额

php://output

php://output 是一个只写的数据流, 允许你以 print 和 echo 一样的方式 写入到输出缓冲区。

综上:实现思维与原理很重要如有感悟,欢迎关注额。(* ̄︶ ̄)

PHP中英文混合排版中处理字符串常用的函数?

对一段文字按照字数进行分割,因为文字中可能是中英文混合的,而php函数strlen只能计算出字串的字节数,于是自己实现了几个函数,分享下。 例1,计算字符总长度。 01 <?php 02 function ccStrLen($str) #计算中英文混合<a href="/"target="_blank" class="infotextkey">字符串</a>的长度 03 { 04 $ccLen=0; 05 $ascLen=strlen($str); 06 $ind=0; 07 $hasCC=ereg(”[xA1-xFE]“,$str); #判断是否有汉字 08 $hasAsc=ereg(”[x01-xA0]“,$str); #判断是否有ASCII字符 09 if($hasCC && !$hasAsc) #只有汉字的情况 10 return strlen($str)/2; 11 if(!$hasCC && $hasAsc) #只有Ascii字符的情况 12 return strlen($str); 13 for($ind=0;$ind<$ascLen;$ind++) 14 { 15 if(ord(substr($str,$ind,1))>0xa0) 16 { 17 $ccLen++; 18 $ind++; 19 } 20 else 21 { 22 $ccLen++; 23 } 24 } 25 return $ccLen; 26 } 27 ?> 例2,从左侧截取字符串。 01 <?php 02 function ccStrLeft($str,$len) #从左边截取中英文混合字符串 03 { 04 $ascLen=strlen($str); if($ascLen<=$len) return $str; 05 $hasCC=ereg(”[xA1-xFE]“,$str); #同上 06 $hasAsc=ereg(”[x01-xA0]“,$str); 07 if(!$hasCC) return substr($str,0,$len); 08 if(!$hasAsc) 09 if($len & 0×01) #如果长度是奇数 10 return substr($str,0,$len+$len-2); 11 else 12 return substr($str,0,$len+$len); 13 $cind=0;$flag=0;$reallen=0;//实际取字节长 14 while($cind<$ascLen && $reallen<$len) 15 { //by

www.jbxue.com

16 if(ord(substr($str,$cind,1))<0xA1){ //如果该字节为英文 则加一 17 $cind++; 18 }else{//否则 加2个字节 19 $cind+=2; 20 } 21 $reallen++; 22 } 23 return substr($str,0,$cind); 24 } 25 ?> 例3,把给定文字,按切割数量存入数组(适合短篇文字,长文章可没分隔一部分就直接处理一次) view sourceprint? 01 <?php 02 function SplitContent($content,$smslen){ 03 $str_tmp=$content; 04 $arr_cont=array(); 05 $len_tmp=0; 06 $i=0;//分割绝对位置 07 while (strlen($str_tmp)>0){ 08 $str_tmp=ccStrLeft($str_tmp,$smslen); 09 array_push($arr_cont,$str_tmp); 10 $i+=strlen($str_tmp); 11 $str_tmp=substr($content,$i,strlen($content)); 12 } 13 return $arr_cont; 14 } //by

www.jbxue.com

15 ?> 测试: 1 <?php 2 $str=’a计算中英文混合1234字符串的长度abcd’; 3 echo $str.’的长度为:’.ccStrLen($str); 4 echo ‘<br>’; 5 $smslen=3;//截取长度 6 print_r(SplitContent($str,$smslen)); 7 ?>

本文转载自互联网,如有侵权,联系删除