小编Nig*_*awk的帖子

模拟403错误页面

我知道你可以发送一个标题告诉浏览器这个页面是禁止的:

header('HTTP/1.0 403 Forbidden');
Run Code Online (Sandbox Code Playgroud)

但是,如何才能显示在服务器上为此类错误创建的自定义错误页面?

默认情况下,只是发送标题会显示一个白页,但我记得有一段时间后,您可以使用客户错误页面.有人知道吗?

php header http-status-code-403

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

XML解析器错误:未定义实体

我已经在这个问题上搜索了stackoverflow,并找到了一些主题,但我觉得在这方面我没有真正的答案.

我有一个用户提交的表单,字段的值存储在XML文件中.XML设置为使用UTF-8编码.

用户将不时地从某处复制/粘贴文本,当我得到"实体未定义错误"时.

我意识到XML只支持少数几个实体,除此之外的任何东西都无法识别 - 因此解析器错误.

从我收集的内容中,我看到了一些选项:

  1. 我可以找到并替换所有 并将它们与 实际空间交换出来.
  2. 我可以将代码放在CDATA部分中.
  3. 我可以在XML文件中包含这些实体.

我正在对XML文件做的是,用户可以将内容输入到表单中,将其存储在XML文件中,然后该内容在Web页面上显示为XHTML(使用SimpleXML解析).

在我不了解的三个选项或任何其他选项中,处理这些实体的最佳方法是什么?

谢谢,瑞恩

UPDATE

我要感谢大家的好评.我确实确定了导致我的实体错误的原因.所有的建议让我更深入地研究它!

一些文本框中有普通的旧文本框,但我的textareas使用TinyMCE进行了增强.事实证明,在仔细观察的同时,PHP警告总是引用来自TinyMCE增强型textareas的数据.后来我注意到在PC上所有角色都被取出了(因为它无法读取它们),但是在MAC上你可以看到引用该角色的unicode号的小方框.它首先出现在MAC上的正方形中的原因是因为我使用utf8_encode来编码不是UTF的数据以防止其他解析错误(这在某种程度上也与TinyMCE有关).

所有这些的解决方案非常简单:

entity_encoding : "utf-8"在tinyMCE.init中添加了这一行.现在,所有角色都以他们应该的方式出现.

我想我唯一不理解的是为什么当放置在文本框中时字符仍然显示,因为没有任何东西将它们转换为UTF,但是使用TinyMCE这是一个问题.

php xml entity tinymce simplexml

30
推荐指数
3
解决办法
8万
查看次数

php.ini默认时区与date.timezone

当我date()在两个不同的服务器上使用PHP的功能时,我得到两个不同的结果,但两个服务器应该是相同的.

我检查了php.ini服务器#1上的文件,时间是正确的,它看起来如下:

date/time support                   enabled
"Olson" Timezone Database Version   0.system
Timezone Database                   internal
Default timezone                    America/Chicago

Directive        Local Value        Master Value
---------------------------------------------------
date.timezone    America/Chicago    America/Chicago
Run Code Online (Sandbox Code Playgroud)

我检查了服务器#2,它看起来如下:

date/time support                   enabled
"Olson" Timezone Database Version   0.system
Timezone Database                   internal
Default timezone                    UTC

Directive        Local Value        Master Value
---------------------------------------------------
date.timezone    America/Chicago    America/Chicago
Run Code Online (Sandbox Code Playgroud)

我看到的唯一区别是"默认时区"值.

两个服务器的日期/时间当前显示为:

Server #1: 10/23/2012 09:40:39
Server #2: 10/23/2012 14:40:39
Run Code Online (Sandbox Code Playgroud)

我确认两台服务器都使用php.ini位于内部的服务器,/etc并且我还搜索了两个网络目录,以查找时区可能被覆盖的任何位置:

grep -r "date_default_timezone_set" *
Run Code Online (Sandbox Code Playgroud)

But in that regard, they both contain the …

php timezone

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

查看MySQL数据库通过终端使用的存储引擎

终端中是否有命令可以找出我的MySQL数据库使用的存储引擎?

mysql terminal storage-engines

13
推荐指数
3
解决办法
3万
查看次数

带有大括号的类似数组的语句 - 目的是什么?

我在网上找到了这段代码,我想知道它的作用:

$k[$i] = ord($key{$i}) & 0x1F;
Run Code Online (Sandbox Code Playgroud)

我知道ord()返回一个ASCII值,但我不清楚大括号的作用$key{$i}以及它的作用& 0x1F.

php

11
推荐指数
1
解决办法
1812
查看次数

在foreach循环参数中爆炸数组

foreach(explode(',' $foo) as $bar) { ... }
Run Code Online (Sandbox Code Playgroud)

VS

$test = explode(',' $foo);
foreach($test as $bar) { ... }
Run Code Online (Sandbox Code Playgroud)

在第一个例子中,它explode$foo每次迭代的字符串,还是PHP将它保存在内存中,在其自己的临时变量中爆炸?从效率的角度来看,创建额外变量$test或两者都相等是否有意义?

php performance foreach

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

在PHP中的require_once中使用查询字符串

在我的一个页面上,我有一个require_once('../path/to/url/page.php');没有问题的工作.我添加查询字符串的那一刻require_once('../path/to/url/page.php?var=test');它将不再包含该文件.它只是空白.任何人都有任何想法?你能否在require中使用查询字符串?

谢谢,瑞恩

php require query-string

8
推荐指数
1
解决办法
1万
查看次数

如何使用数据库表模拟"扩展类"?

我将有几种不同类型的用户将使用我的系统.对于所有用户,我需要存储用户名,密码,电子邮件地址等内容,但如果他们是A类用户,我还需要存储字段a,b和c的值,但如果他们是用户类别B,我需要存储字段d,e,f和g的值.

USER
-------
id
username
password

CAT_A
--------
id
a
b
c

CAT_B
--------
id
d
e
f
g
Run Code Online (Sandbox Code Playgroud)

我很可能需要使用某种桥接表将用户链接到其中一个CAT表,但我该如何去做呢?我不能使用这样的东西:

EXTEND
--------
user_id
cat_id
Run Code Online (Sandbox Code Playgroud)

因为我不知道cat_id引用哪个CAT表.我是否需要每个类别的字段?如果是这样,那似乎没有标准化,因为会有很多空字段,特别是如果我有3个类别.

EXTEND
--------
user_id
cat_a_id
cat_b_id
...
Run Code Online (Sandbox Code Playgroud)

任何输入都非常感谢!

mysql database database-design entity-relationship

8
推荐指数
1
解决办法
5476
查看次数

iframe没有在android 2.3.6上调整大小

我通过通用嵌入代码在页面上有一个Vimeo视频:

<div class="video">
  <iframe src="http://player.vimeo.com/video/VIDEO_ID" width="100%" height="100%" frameborder="0"></iframe>
</div>
Run Code Online (Sandbox Code Playgroud)

我正在使用Vimeo的JavaScript API(http://vimeo.com/api/docs/player-js)video在视频开始播放时以及视频暂停时为div 添加一个类(这会使div加倍)或完成后,该类被删除,将视频播放器大小重置为其原始大小.

这在桌面/笔记本电脑(Firefox)上按预期工作,但在Android手机上,iframe(一旦它的尺寸翻倍)不会恢复到之前的大小(它是一个百分比,所以它应该适应它的video容器),这导致iframe与其父div重叠.

首先我认为它是iframe的100%宽度和高度,因此我$('#video1').attr('width', 400);在视频停止时使用iframe指定了固定的宽度和高度,但iframe保持不变(它保持两倍的大小).

有没有人知道为什么Android会这样做,我如何强制iframe调整大小?

iframe jquery android vimeo vimeo-player

7
推荐指数
0
解决办法
919
查看次数

两个用户同时写入文件?(PHP/file_put_contents)

如果通过将数据写入到文件file_put_contentsFILE_APPEND标志设置和两个用户在同一时间提交数据,这将追加不管,还是有机会的一个条目将被覆盖?

如果我设置了LOCK_EX标志,第二次提交是否会等待第一次提交完成,或者当无法获得独占锁时数据是否丢失?

PHP通常如何处理?我正在运行5.2.9版.如果重要的话

谢谢,瑞恩

php flags

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