如何从PHP中的字符串中删除复数单词? - php

我有一串字,有些字是

"Cloud", "Clouds", "Application", "Applications", "Event", "Events"

还有一些像

"Access"

单数,但末尾带有"s"。我想删除复数单词,但是我无法编写代码从末尾删除s,因为它将删除所有单词中的"s"
我在互联网上搜索,找不到任何相关内容。
谁能以最好的方式帮助我?

编辑:如何在程序中使用CakePHP?我以前从未使用过它,所以没有经验。我在函数中有该String变量。它说我需要安装Cake PHP,有人可以告诉我如何在函数中使用它吗?

谢谢

参考方案

使用CakePHP随附的Inflector类。

debug(Inflector::singularize('People')); // will show person

http://book.cakephp.org/2.0/en/core-utility-libraries/inflector.html#Inflector::singularize

静态Inflector :: singularize($ plural)

输入:苹果,橙子,人,男人

输出:苹果,橙,人,人

老实说,我不知道它在内部的工作情况如何,但是它在用英语单词方面做得很好,甚至可以配置它来处理特殊情况。

您可以通过使用Inflector :: rules()定义规则来配置规则的例外:

Inflector::rules('plural', array('/^(inflect)or$/i' => '\1ables'));
Inflector::rules('plural', array(
    'rules' => array('/^(inflect)ors$/i' => '\1ables'),
    'uninflected' => array('dontinflectme'),
    'irregular' => array('red' => 'redlings')
));
Inflector::rules('transliteration', array('/å/' => 'aa'));

CakePHP:为插件创建动作挂钩 - php

我想包括与Wordpress中类似的动作挂钩。我已经阅读了有关编写插件的章节,但是我希望能够在不更改父应用程序代码的情况下对其进行维护。是否对此有任何支持?如果没有,有没有好的方法?我有一些想法,但我担心自己会重新发明轮子。 参考方案 就在这里。CakePHP Event System它的工作原理与WordPress的挂钩非常相似,但效果更好。您可以在不同的…

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

php:拆分字符串,直到第一次出现数字 - php

我有像cream 100G sup 5mg Children 我想在第一次出现数字之前将其拆分。所以结果应该是array( array('cream','100G'), array('sup','5mg Children') ); 可以告诉我如何为此创建图案吗?我试过了list(…