小编Lei*_*igh的帖子

哪些因素使PHP Unicode不兼容?

我可以在我的脚本中使用UTF-8字符.

事实上,变量和函数的名称可能包含Unicode字符.

还有mb_string扩展,它处理多字节字符串,但在无数文章中,PHP因其缺乏Unicode支持而受到批评.

我不明白; 为什么PHP说不支持Unicode?

php unicode

42
推荐指数
4
解决办法
2万
查看次数

在PhpStorm中保存文件时运行单元测试

我已经使用PHPUnit设置了PhpStorm 5,我很好奇PhpStorm是否有一些功能可以在保存文件时自动运行单元测试.像守望者和守卫一样.我试过搜索我们心爱的www和PhpStorm文档,但一直无法找到它的解决方案.

php automation phpunit unit-testing phpstorm

17
推荐指数
1
解决办法
6015
查看次数

PHP - 如果数字可以被3和5整除,那么回声

我是PHP的新手,并尝试创建以下内容,同时尽量减少所需的代码量.PHP应该显示100的列表然后显示如果数字是/ 3,5或3和5.如果没有任何显示什么.

这是我到目前为止所得到的,但是任何帮助都会很棒,因为不确定/通过3位和5位,如下所示.

<?php $var = range(0, 100); ?>
  <table>
<?php foreach ($var as &$number) {
 echo " <tr>
    <td>$number</td>
    <td>";

    if($number % 3 == 0)  {
    echo "BY3";
} elseif ($number % 5 == 0) {
    echo "BY5";
} elseif ($number % 3 and 5 == 0) {
        echo "BY3 AND 5";
}
 echo "</td></tr>";
}
?>

  </table>
Run Code Online (Sandbox Code Playgroud)

谢谢

php math

15
推荐指数
2
解决办法
4万
查看次数

htaccess使用mod_GeoIP重写规则

对于拥有3个不同商店的电子商务网站,我遇到了mod_geoip的一些问题.我们在root/store有我们的主店,但在root/ukstore和root/austore也有商店.主根/存储包含/ skin,/ media和/ js目录,其中包含所有css,images和javascripts.使用此当前设置,网址完美地交换基础,但保留URL的其余部分,因此如果来自英国的用户转到root/store/category/product /,它们将被重定向到root/ukstore/category/product/.

现在有两件事是问题.

每当客户访问结帐或帐户等安全页面时,css和javascript的URL都会被重写为root/ukstore/skin或root/ukstore/js.对于那些URL,我是否缺少SSL的问题?

其次,如果来自南非的用户访问商店,则将它们重写到英国商店,并且所有css,js,图像完美地链接回商店/皮肤,但如果来自英国的用户访问商店,则URL因为css,js和images正在尝试重写为root/ukstore/skin

这是我的htaccess文件在root/store中的代码.每个商店也有自己的htaccess文件,但没有太多.

<IfModule mod_geoip.c>
GeoIPEnable On

Options +FollowSymLinks
RewriteEngine on
#skip processing directories
RewriteRule ^store/skin/  - [L,NC]
RewriteRule ^store/media/  - [L,NC]
RewriteRule ^store/js/  - [L,NC]

RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(AQ|AU|MY|BV|BN|BN|MM|KH|CN|CX|CC|CK|GQ|FJ|PF|GU|GW|HM|HK|ID|KI|KR|KP|KR|LA|MO|MY|MH|FM|MM|NR|NC|PG|NZ|NU|NF|PG|CN|PH|PN|WS|SG|SB|KR|LK|BN|TW|TW|AU|TH|TL|TK|TO|TV|VU|VN|VN|WF)$
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC]
RewriteRule ^ /austore%1 [L,R]

#UK Store Rewrites
RewriteCond %{ENV:GEOIP_COUNTRY_CODE} ^(AF|AX|AL|DZ|AD|AO|AM|AT|AZ|BH|BD|IS|BY|BE|BJ|BT|BA|BW|IO|BG|BF|BI|GB|CM|ES|CV|CF|TD|GB|KM|CG|CD|CG|CD|CI|HR|CY|CZ|CZ|BJ|DK|DJ|EG|ER|EE|ET|FO|FI|FR|TF|GA|GM|GE|DE|GH|GI|GD|GR|GL|GN|VA|HU|IS|IN|IR|IR|IQ|IE|IL|IT|CI|JO|KZ|KE|KW|KG|LV|LB|LS|LR|LY|LY|LI|LT|LU|MK|MG|MW|MV|ML|MT|MR|MU|MC|MC|MN|ME|MA|MZ|NA|NP|NL|NE|NG|IE|NO|OM|PK|PS|PS|CG|PL|PT|QA|CI|MK|ZA|CD|RE|RO|RU|RW|SH|SM|ST|SA|SN|RS|SC|SL|SK|SI|SO|SO|ZA|ES|SD|SJ|SZ|SE|CH|SY|SY|TJ|TZ|TN|TR|TM|AE|UG|UA|AE|GB|BF|UZ|VA|GB|EH|YE|ZM|ZW)$
RewriteCond %{REQUEST_URI} ^/store(/.*)$ [NC]
RewriteRule ^ /ukstore%1 [L,R]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激!

apache .htaccess mod-rewrite url-rewriting geoip

14
推荐指数
1
解决办法
2251
查看次数

MongoDB $设置不更新记录

我正在使用PHP PECL扩展试验MongoDB,但是我很难获得某个更新查询.我在SO上寻找答案,但运气不佳.

我创建了一个基本的集合:

$m = new Mongo;
$collection = $m->testdb->testcollection;

$collection->insert(array(
    0, 1, 1, 2, 3, 5
));
Run Code Online (Sandbox Code Playgroud)

使用findOnevar_dump记录显示如下:

array
  '_id' => 
    object(MongoId)[6]
      public '$id' => string '4f3bde65a1f7a0315b000000' (length=24)
  0 => int 0
  1 => int 1
  2 => int 1
  3 => int 2
  4 => int 3
  5 => int 5
Run Code Online (Sandbox Code Playgroud)

当我想要使用更新时,问题就来了$set.我的查询基于PHP手册中SQL到Mongo Cheat Sheet的底部显示的映射

在这里,我想更新字段0到值100

$obj = $collection->findOne();

$collection->update(
    array('_id' => $obj['_id']),
    array('$set' => array(0 => 100)) …
Run Code Online (Sandbox Code Playgroud)

php mongodb

12
推荐指数
2
解决办法
2万
查看次数

SplObjectStorage :: contains和SplObjectStorage :: offsetExists有什么区别?

PHP文档不是很明确,只说明:

SplObjectStorage :: offsetExists 检查存储中是否存在对象.(PHP> = 5.3.0)

SplObjectStorage :: contains 检查存储是否包含提供的对象.(PHP> = 5.1.0)

这对我来说几乎是一回事.

问题:除了offsetExists仅在5.3.0中可用之外,2之间有什么区别?


我进行的小测试......

$s = new SplObjectStorage();
$o1 = new StdClass();
$o2 = new StdClass();
$o3 = "I'm not an object!";
$s->attach($o1);

var_dump($s->contains($o1));
var_dump($s->offsetExists($o1));
echo '<br>';
var_dump($s->contains($o2));
var_dump($s->offsetExists($o2));
echo '<br>';
var_dump($s->contains($o3));
var_dump($s->offsetExists($o3));
Run Code Online (Sandbox Code Playgroud)

输出:

boolean true
boolean true

boolean false
boolean false

Warning: SplObjectStorage::contains() expects parameter 1 to be object, string given in index.php on line 15
null

Warning: SplObjectStorage::offsetExists() expects parameter 1 to be …
Run Code Online (Sandbox Code Playgroud)

php spl php-internals splobjectstorage

12
推荐指数
1
解决办法
996
查看次数

如何将套接字从父进程传递到子进程

我在Linux上的C程序中遇到了问题.

我知道当一个进程被分叉时,子进程从父进程继承了一些东西,包括打开文件描述符.

问题是我正在编写一个多进程服务器应用程序,其主进程接受新连接并将描述符放入共享内存.

当子进程尝试从共享内存中读取其中一个描述符时,select()我收到EBADF错误!

子进程如何读取并使用父进程分叉创建的套接字(或一般的任何文件描述符)?

c sockets webserver fork file-descriptor

10
推荐指数
2
解决办法
8296
查看次数

使用count()计算实现ArrayAccess的对象的元素?

当一个类实现ArrayAccess接口时,它就可以像数组一样工作,完成OffsetGet,OffsetSet等.

我没有看到的一件事是我们想要的时间count()sizeof()它的实现,在我对PHP的有限知识中,它实际上是相同的.

是否已经在标准PHP中实现了类似的东西?

php arrays spl interface

6
推荐指数
1
解决办法
1320
查看次数

如何在Eclipse中隐藏.svn文件夹而不显示空包?

如何在Eclipse中隐藏.svn文件夹,而不是同时显示空包?

在此输入图像描述

Eclipse显示这些包,因为那里有一个.svn文件夹.

我正在使用TortoiseSVN.

java eclipse svn tortoisesvn

6
推荐指数
2
解决办法
2678
查看次数

在PHP中缓存MongoDB对象

我一直在尝试编写"好代码"并使用依赖注入来传递我的类的构造函数中的数据库对象.

构造函数通常采用以下形式:

public function __construct(MongoDB $db) {
    $this->collection = $db->collectionName;
}
Run Code Online (Sandbox Code Playgroud)

我注意到,对于创建的每个对象,都会创建一个 对象MongoCollection.(即访问 $db->collectionName 属性两次返回两个不同的对象,而不是同一个对象)

我一直在使用ActiveRecord样式基类,因此对象可以自己CRUD.

现在,当我使用某种getAllRecords()功能,并返回100个这些对象时,MongoCollection会创建100个对象.(快速查看驱动程序源似乎表明在那里也创建了新对象,而不仅仅是PHP中的新表示)

我通过包装两个类MongoMongoDB类来实现缓存,从而解决了这个问题.

class MyMongo extends Mongo
{
    private $objectCache = array();

    public function __get($name) {
        return array_key_exists($name, $this->objectCache)
            ? $this->objectCache[$name]
            : $this->objectCache[$name] = new MyMongoDB($this, $name);
    }
}

class MyMongoDB extends MongoDB
{
    private $objectCache = array();

    public function __get($name) {
        return array_key_exists($name, $this->objectCache)
            ? $this->objectCache[$name]
            : $this->objectCache[$name] = new MongoCollection($this, $name); …
Run Code Online (Sandbox Code Playgroud)

php caching mongodb

6
推荐指数
1
解决办法
1091
查看次数