草庐IT

PHP preg_match 只返回第一个匹配项

第一个问题是:我正在使用http://www.phpliveregex.com/检查我的正则表达式是否正确,它找到了多个匹配行。我正在做这个正则表达式:$lines=explode('\n',$text);foreach($linesas$line){$matches=[];preg_match("/[0-9]+[A-Z][a-z]+[A-Z][a-z]+S[0-9]+\-[0-9]+T[0-9]+/uim",$line,$matches);print_r($matches);}在$text上看起来像这样:http://pastebin.com/9UQ5wNRu问题是打印的匹配项只有一

php - 将数组中的两项列表分解为键=>值

我想像这样分解一个多行字符串color:redmaterial:metal像这样的数组$array['color']=red$array['material']=metal有什么想法吗? 最佳答案 使用explode(),您可以为它使用正则表达式,但它很简单,没有开销。$data=array();foreach(explode("\n",$dataString)as$cLine){list($cKey,$cValue)=explode(':',$cLine,2);$data[$cKey]=$cValue;}如评论中所述,如果数据来自

php - Composer workflow : How to update composer. 当我更改依赖项时锁定

该项目是通过composer.pharinstall--prefer-source设置的,并且包含很多保存在git中的模块。我在我的IDE(PhpStorm)中管理所有这些模块及其git存储库,因此可能会向vendor/文件夹中的某些模块提交一些更改-直接提交到源git存储库。我现在如何确保我的同事在执行composer.phar安装时获得我最近的模块版本(composer.lock在repo中)?如果我进行本地composer.phar更新它看起来像composer.lock没有更新,因为我已经有最新版本(因为我刚刚做了直接在vendor文件夹中提交) 最

php - 通过构造函数注入(inject)到对象中的依赖项太多了吗?

我正在使用OOPHP开发一个社交网络类型的项目,我不想使用现有的框架。做这个项目的主要目的是帮助我了解更多东西。这个问题更多的是关于依赖注入(inject)。假设我有这些类(class):核心类-在应用程序中执行操作的一些核心方法配置类-加载站点配置内容数据库类-连接到mysql并执行所有与数据库相关的操作记录器类-用于记录错误和调试信息验证码类-用于表单上的验证码session类-启动session并添加、删除、获取要在应用中使用的session变量缓存类-类似于session类,但用于缓存项(文件缓存、memcache、apc缓存。有一天我什至可能将我的session内容添加到此类

php按值从多维数组中删除重复项

这个问题在这里已经有了答案:Filtermultidimensionalarraybycolumnandretainrowswithfirst-occurringuniquecolumnvalue[duplicate](4个答案)关闭去年。我想按值删除重复项,如您在list_title中所见。我知道有几个问题和答案,但他们的解决方案对我不起作用。这是我尝试过的:$uniqueArray=array_map("unserialize",array_unique(array_map("serialize",$notify)));结果:Array([0]=>Array([list_id]=>

php - 使用 php 从以开头和结尾的字符串中获取所有匹配项

我如何使用PHP从此字符串中提取[startstring]和[endstring]之间的所有内容:[startstring]hello=guys[endstring]helloguys[startstring]jerk=you[endstring]welcometotheuniverse我想找到[startstring]和[endstring]的所有匹配项,并回显其中的文本。有点像分隔符。我希望所有回显的匹配项都用空格分隔。我将如何着手完成这项工作?这需要regex吗?你能提供sample吗?非常感谢!:) 最佳答案 preg_ma

php - 如何在字符串中找到正则表达式匹配项的索引?

在php中,查找和捕获与给定正则表达式匹配的所有子字符串相当简单,但是是否有一种简单的方法来查找字符串中第一个正则表达式匹配项的索引?即我想要像这样操作的东西:$str="123456789abcdefgh";$index=preg_index("#abcd#",$str);//$index==9 最佳答案 在preg_match中使用PREG_OFFSET_CAPTURE标志:$str="123456789abcdefgh";$index=-1;if(preg_match("#abcd#",$str,$matches,PREG_O

PHP DOMDocument,只需要第一项

您好,我过去曾使用过DOMDocs,但我不知道该怎么做。$xmldoc=newDOMDocument();$xmldoc->load('http://example.com');$feeditem=$xmldoc->getElementsByTagName('data');我只想要标签“数据”的第一个实例。通常我会写一个foreach循环:foreach($feeditemas$element){//}然后对每个feeditem做我想做的,但在这里我只想要第一个$feeditem。$feeditem不是一个数组,它是一个DOMdoc对象,所以我不能执行$feeditem[0]来选择第一

php - 在 PHP 中对数组项进行排序,使其对字母不区分大小写

当我使用sort($topics)时,我得到了以下内容:苹果绿色斑马草在此示例中,“grass”以小写字母g开头,但以大写字母“Zebra”结尾。我如何才能让它在忽略单词是否以大写开头的地方对其进行排序?苹果绿色草斑马 最佳答案 调用usort()作为usort($topics,'strnatcasecmp')。strcasecmp也可以完成这项工作,但是strnatcasecmp当您的字符串中有数字时,也会正确排序。 关于php-在PHP中对数组项进行排序,使其对字母不区分大小写,我们

php - 将依赖项与数据提供者相结合

我有一个测试方法依赖于另一种方法,该方法本身使用PHPUnit中的数据提供程序:/***@dataProvidergetFields*/publicfunctiontestCanDoSomeStuff($parm1,$parm2){$result=my_func($parm1,$parm2);$this->assertNotNull($result);return$result;}/***@dependstestCanDoSomeStuff*/publicfunctiontestCanDoSomeMoreStuff($result){$this->assertNotNull($resu