我正在研究一个类来操作php中的html十六进制颜色代码.在内部,该类将RGB值视为小数.当我加或减时,我从不希望该值超过255,也不希望'subceed'为零.
如果当然,我可以做一些零碎的事情
if ( $val > 255 ) {
$val = 255;
}
if ( $val < 0 ) {
$val = 0;
}
Run Code Online (Sandbox Code Playgroud)
但那很冗长:P
是否有一种聪明的,一种利可图的方式,我可以将值保持在0到255之间?
我正在研究一个简单的抽象数据库类。在我使用这个类时,我希望有一些实例是单例。我正在考虑有一个不是单例的抽象类,然后将其扩展为另一个单例的抽象类。这可能吗?受到推崇的?
编辑:我想要两个几乎相同的摘要,除了一个是单例。因此,唯一的区别是,一个将具有另一个的所有功能,但将具有其他属性和方法,使其表现得像单例。
我想要为此拥有一个基类代码库,这样当我进行更改时,我不必保持两个文件同步。
我使用异常抛出函数对 php 中的类中的参数进行了一些检查。我有一些函数可以进行基本检查(===等in_array)并在 false 时抛出异常。所以我可以assertNumeric($argument, "\\$argument is not numeric.");代替
if ( ! is_numeric($argument) ) {\n throw new Exception("\\$argument is not numeric.");\n}\nRun Code Online (Sandbox Code Playgroud)\n\n节省一些打字时间
\n\n\n\n\n\n\n正如维基百科所述 - “断言主要是一种开发工具,当程序向公众发布时,它们通常会被禁用。” \n“断言应该用于记录\n逻辑上不可能的情况,并\n发现编程错误\xe2\x80\x94如果\n\'不可能\'发生,那么\n根本上的事情显然是错误的。这是\n\n与错误处理不同:大多数\n 错误情况都是可能的,\n 尽管有些在实践中极不可能\n 发生。使用\n 断言作为通用错误\n 处理机制通常是不明智的:\n 断言不允许从错误中正常恢复,并且断言失败通常会突然停止程序的执行。断言也不会显示用户友好的错误消息。”
\n\n这意味着“gk at proliberty dot com”给出的强制启用断言的建议,即使已手动禁用断言,也违背了仅将它们用作开发的最佳实践工具
\n
那么,我是不是“做错了”?还有哪些其他/更好的方法可以做到这一点?
\n我正在清理一些网页,由于某些原因,标签之间有大约8个换行符.我想删除其中的大多数,我试过这个
perl -pi -w -e "s/\n\n//g" *.html
Run Code Online (Sandbox Code Playgroud)
但没有运气.好的方面,我试过了
perl -pi -w -e "s/\n//g" *.html
Run Code Online (Sandbox Code Playgroud)
它确实删除了我的所有换行符.我究竟做错了什么?
编辑我也试过\r\n\r\n,同样的交易.作为单个换行符工作,对连续两个换行没有任何作用.
我正在考虑将运行多个网站的代码库放入版本控制.这个代码库有几个实例在不同的虚拟服务器上运行网站.
我正在努力解决的问题是,这些或多或少相同代码的单独实例中的每一个都具有具有特定于站点的功能的子目录.但似乎版本控制系统想要控制整个目录层次结构.
例如,每个实例都有该目录
/www/smarty/libs/plugins/
Run Code Online (Sandbox Code Playgroud)
在哪里可以找到适合smarty的特定于站点的功能.当我们准备将其置于版本控制中时,该文件夹/www将是根目录.
因此,一种选择是将所有特定于站点的功能发送到所有站点.我本身并没有看到任何问题,但它似乎在某种程度上是"错误的".会有一堆文件只属于一个部署.
另一种选择是为代码库中的每个站点的特定文件建立单独的存储库.但是,当试图正确部署新网站时,这听起来很快就会成为一场噩梦.
最好的方法是什么?我们正在研究的版本控制系统是颠覆.
任何人都可以推荐gd库的包装类吗?
我找到了一些,但他们只有基本的图像处理功能,如翻转,倒车等.
我真的在这里画画,所以我想要所有的线条,点,几何图形和颜色函数.还有一个基本的调色板,所以我不必经历定义基本颜色的麻烦:Þ
编辑:我的webhost没有5.3可用.当然必须有一个不依赖5.3功能的课程?
我需要从ftp服务器获取响应消息我正在对连接进行故障排除,因此我使用PHP的ftp_raw功能,这允许我将原始ftp命令发送到远程服务器,并获取响应字符串.(内置的PHP ftp命令不返回响应:(
按照这个接受的答案,我发送的命令是
PASV
STOR /local/path/to/file.txt
Run Code Online (Sandbox Code Playgroud)
服务器响应是
500 /local/path/to/file.txt: The system cannot find the path specified.
Run Code Online (Sandbox Code Playgroud)
我在想自己"当然,远程主机不知道我的本地文件系统." 我的预感是我正在打开一个套接字,指定一个远程文件名,我仍然需要管理数据.但我在搜索中没有找到任何结论性的文件.
上传文件的完整原始ftp命令是什么?在什么时候,以及如何实际开始向远程服务器发送数据?我可以使用从ftp_connect() 套接字设置的连接吗?
我正在进行在线调查.大多数问题的答案都是1-5.如果我们需要在调查中添加一个问题,我会使用一个简单的Web表单,将INSERT插入到相应的表中,瞧!调查问的是新问题 - 没有新代码或数据库结构的变化.
我们被要求添加可以获得不同数据类型答案的调查问题.规范是让调查"可配置",以便在未来的任何时候,当有人说"我们需要一个新的调查,询问{text answer question},{1-5 question},{true false question} ,{带有日期作为答案的问题}",我们可以在不改变数据库结构的情况下做到这一点.
我正在尝试考虑存储这些答案的最佳方法,但我提出的每种方法似乎都有点hackish.
有些问题可能有一个是/否或真/假答案,有些可能有一个整数答案("过去一个月你有多少次使用技术支持?"),另一个答案可能有一个日期,一个字符串,一个多个选择具有单个值,具有多个值的多项选择等.或者有时,特定答案值可能会提示子问题("令您失望的是什么......?")
简单的解决方案是将每个问题作为调查中的一个列,将其答案作为调查中的一列,以及是否将其作为调查中的一列.这对我来说感觉很乱 - 这是一张大餐桌; 不是很"关系".
头脑风暴,我能想出的"最佳"方法是为每种答案类型设置一个不同的表,但这样会容易受到数据完整性问题的影响.换句话说,我会
CREATE TABLE `Questions` (...);
CREATE TABLE `TrueFalseAnswers` (...);
ALTER TABLE `TrueFalseAnswers`
ADD CONSTRAINT `TrueFalseAnswers_ibfk_1` FOREIGN KEY (`question_id`)
REFERENCES `Questions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
CREATE TABLE `TextAnswers` (...);
ALTER TABLE `TextAnswers`
ADD CONSTRAINT `TextAnswers_ibfk_1` FOREIGN KEY (`question_id`)
REFERENCES `Questions` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
Run Code Online (Sandbox Code Playgroud)
等等
上述问题之一是我不能保证仅DDL中的任何问题至少存在一个且只有一个答案.
另一种解决方案可能是在Questions表中为答案设置二进制或字符串列,并将所有答案编码为某种字符串或二进制格式,并将它们存储在答案列中.这为每个问题提供了至少一个且只有一个答案,但后来我无法访问SQL查询中的聚合功能.这让我觉得不是一个非常"关系"的解决方案.
所以,我发现上述想法存在问题.有没有"最好的"方法来解决这个问题?
现在我已经花时间来表达问题和我的想法,似乎我提出的广泛问题是"我想存储任意类型的数据而不进行任何编码......"这是绝望?
我正在使用MySQL,因此我无法访问其他RDBMS可能的内容.
我在PHP中使用perl风格的正则preg_match函数.我想验证一个正好10个字符的密钥,大写字母字符或数字.
我有
preg_match( '/[^A-Z0-9]/', $key);
Run Code Online (Sandbox Code Playgroud)
在有效字符旁边找到无效字符.在我有限的知识中,我试过了
preg_match( '/[^A-Z0-9]{10}$/', $key);
Run Code Online (Sandbox Code Playgroud)
结果是匹配我的所有测试字符串,甚至是无效的测试字符串.
如何指定此正则表达式?
我有一个数组,我正在测试重复值.我想得到一个只有重复值的数组,给用户一个错误信息,注意哪些是有问题的值.我试过了
$duplicates = array_diff( $array_with_dupes, array_unique($array_with_dupes) );
Run Code Online (Sandbox Code Playgroud)
但是这并没有返回唯一的重复值 - 而是我得到了一个空数组.
有什么简单的方法可以做到这一点?