草庐IT

Streaming模式

全部标签

PHP5 - 未处于交互模式时无法解析主机名

我正在使用运行Apache2/PHP5的OSX10.6服务器,当“fopen()”尝试从远程服务器检索文件时,PHP无法解析主机名。当在命令行上以交互模式运行时,“fopen()”可以完美运行。但是,当通过网络运行时,它总是会失败并出现错误:failedtoopenstream:php_network_getaddresses:getaddrinfofailed:nodenamenorservnameprovided,ornotknown我找不到这个问题的根源:“fopen()”在给定IP地址而不是主机名时在网络上工作;'gethostbyname()'在web上运行时也会失败(它不会

php - 您可以在正则表达式的模式部分使用反向引用吗?

有没有办法在正则表达式模式中反向引用?示例输入字符串:Hereis"somequoted"text.假设我想提取引用的文本,我可以创建以下表达式:"([^"]+)"此正则表达式将匹配somequoted。假设我希望它也支持单引号,我可以将表达式更改为:["']([^"']+)["']但是,如果输入字符串混合了引号怎么办,比如Hereis'somequoted"text.我不希望正则表达式匹配。目前,第二个示例中的正则表达式仍然匹配。我希望能够做的是,如果第一个引号是双引号,那么结束引号必须是双引号。如果开始引号是单引号,那么结束引号也必须是单引号。我可以使用反向引用来实现吗?我的其他相

php - 面向过程编程的设计模式和封装?

我正在处理一个以过程式风格编写的相当大的PHP项目(它是在PHP5之前编写的),我忍不住觉得我正在做的一些事情有点“hackish”。“其他地方的修改很容易破坏应用程序。我见过的所有设计模式和最佳实践似乎都只适用于OOP。我可以开始使用PHP5的OOP功能编写我的一些代码,但我不确定是否所有其他开发人员都足够熟悉OOP。对于更熟悉OOP的人来说,这只是过程式编程的本质吗?是否有“最佳实践”书籍介绍如何保持大型过程应用程序的可维护性并降低引入新错误的可能性?我知道我可以以程序化的方式应用OOP设计原则/模式,但如果我要这样做,我还不如使用PHP的OOP功能。也许我对程序范式还不够了解?

php - 正则表达式模式内的条件

我想从我的代码中删除任何额外的空格,我正在解析一个文档block。问题是我不想删除codegoeshere中的空格.例如,我用它来删除多余的空格:$string=preg_replace('/[]{2,}/','',$string);但我想在内保留空格此代码/字符串:ThisissometextThisisalsosometextUser::setup(array('key1'=>'value1','key2'=>'value1'));应该转化为:ThisissometextThisisalsosometextUser::setup(array('key1'=>'value1','ke

php - 如何使用 Data Mapper 模式延迟加载子对象?

如果我有一个相当复杂的用户模型,我想使用数据映射模式来加载,我如何在不允许用户知道UserMapper的情况下延迟加载一些更密集的用户信息位?例如-如果User模型允许一个地址对象数组(并且User可能有很多,但不一定是预先需要的),如果/当需要时我将如何加载这些对象?我是否让用户模型知道AddressMapper?我是否将User模型传回UserMapper,然后只对地址进行水合?还有更好的选择吗? 最佳答案 好吧,我一次发现了以下巧妙的模式,由BenScholzen提供,ZendFramework的开发人员。它是这样的:clas

php - 在模式框中显示表单(简单的 php 文件)?

我目前在一个新的弹出窗口中加载一个表单(呃!),当您提交它时,它会关闭弹出窗口,并打开另一个弹出窗口,其中包含您提交表单的结果。不用说这是一个非常糟糕的想法,我想纠正它。任何人都可以推荐一种相当简单的方法来在模式框中显示我的表单(popup.php),当你提交它时,它会在同一窗口(report.php)中加载另一个页面谢谢! 最佳答案 使用jQueryUI创建对话框http://jqueryui.com/demos/dialog/ 关于php-在模式框中显示表单(简单的php文件)?,我

php - MCRYPT 模式正在生成斜杠

我是这个加密的新手,所以我不太确定如何格式化我的问题。无论如何,我正在使用名为kohana的框架,并且它使用三样东西进行加密:key,cipher,mode所以我的问题是,当它编码一些字符串时,有时我得到/在像这样的加密中如果我是对的,我必须使用什么模式? 最佳答案 正如FrancisAvila指出的那样,加密输出似乎是Base64-encoded,因此除了字母和数字外,还可能包含斜杠和加号(末尾可能还包含等号)。您可以安全地用其他东西替换这些符号,只要您记得在解码之前将它们改回来。PHPstrtr()function这很方便。例如

php - unicode 模式下的 preg_split : delim_capture not working?

我正在尝试使用正则表达式将一大块中文文本拆分成句子。就我而言,句子分隔符是:全角句号。(0x3002)全角问号?(0xFF1F)全角感叹号!(0xFF01)现在,假设我的$str是这样的:$str="你好。你好吗?我是程序员,不太懂这个我的问题,希望大家能帮得上忙!一起加油吧!";我使用带有这些参数的preg_split:$str2=preg_split("/([\x{3002}\x{FF01}\x{FF1F}])/u",$str,PREG_SPLIT_DELIM_CAPTURE|PREG_SPLIT_NO_EMPTY);$str2现在是一个数组,如下所示:array(3){[0]=>

php - 我如何在 wordpress/php 中测试 jpg 图像的 cmyk 或 rgb 颜色模式?

我刚刚让客户上传了一张CMYK格式的jpg图像,但它在IE和某些版本的firefox中无法正确呈现。是否可以检查以确保它在上传之前以RGB格式保存? 最佳答案 您可以使用getimagesize()。http://php.net/manual/en/function.getimagesize.php$imgDetails=getimagesize('yourimage.jpg');if($imgDetails['channels']===4){//CMYK}elseif($imgDetails['channels']===3){//

php - 匹配模式,但不返回所有模式

我对正则表达式很陌生。假设我有这样一个字符串:UPDATEtable_nameSETcolumn=:columnWHEREcolumnIN(:column_32,:column_34,:column_347)然后假设我有一个数组:$arr=array('column'=>'Test','column_32'=>'Tester','column_34'=>'Fauxdata','column_347'=>'Columndata');我想要做的是用数组中相应的值替换占位符(:column、:column_32等)。问题是,str_replace不会削减它,因为用“Test”替换:colum