小编Mau*_*ice的帖子

如何使用PHP通过HTTP PUT接收文件

这一直困扰着我一段时间......我正在构建一个RESTful API,在某些情况下必须接收文件.

使用时HTTP POST,我们可以阅读data from $_POSTfiles from $_FILES.

使用时HTTP GET,我们可以阅读data from $_GETfiles from $_FILES.

但是,在使用时HTTP PUT,AFAIK读取数据的唯一方法就是使用了php://input stream.

一切都很好,直到我想通过HTTP PUT发送文件.现在php://输入流不再按预期工作了,因为它也有一个文件.

这是我目前如何读取PUT请求的数据:

(只要没有发布文件,它就能很好用)

$handle  = fopen('php://input', 'r');
$rawData = '';
while ($chunk = fread($handle, 1024)) {
    $rawData .= $chunk;
}

parse_str($rawData, $data);
Run Code Online (Sandbox Code Playgroud)

当我输出rawData时,它显示

-----ZENDHTTPCLIENT-44cf242ea3173cfa0b97f80c68608c4c
Content-Disposition: form-data; name="image_01"; filename="lorem-ipsum.png"
Content-Type: image/png; charset=binary

?PNG
???...etc etc...
???,
-----ZENDHTTPCLIENT-8e4c65a6678d3ef287a07eb1da6a5380
Content-Disposition: form-data; name="testkey"

testvalue
-----ZENDHTTPCLIENT-8e4c65a6678d3ef287a07eb1da6a5380
Content-Disposition: form-data; name="otherkey"

othervalue
Run Code Online (Sandbox Code Playgroud)

有谁知道如何通过HTTP …

php http file put

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

PHP + SQL Server - 如何设置charset进行连接?

我试图通过PHP将一些数据存储在SQL Server数据库中.

问题是特殊字符未正确转换.我的app的charset是iso-8859-1,服务器使用的是windows-1252.

在插入之前手动转换数据没有帮助,似乎有一些转换正在进行.

运行SQL查询'set char_convert off'也无济于事.

任何人都知道如何让这个工作?

编辑:我试过ini_set('mssql.charset','windows-1252'); 同样,但也没有结果.

php database sql-server character-encoding

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

如何使用PHP preg匹配重音字符?

我想让我的用户不仅可以填写字母和数字,还可以选择"特殊"字母,例如"á","é"等.但是,我不希望他们能够使用符号喜欢"!","@","%"等

有没有办法写一个正则表达式来实现这一目标?(最好不要指定每个特殊字母.)

我现在有:

$reg = '/^[\w\-]*$/';
Run Code Online (Sandbox Code Playgroud)

php regex pcre

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

Symfony2:如何在自定义复合表单类型上使用约束?

这是一个我一直在讨厌的问题.请知道我还不是Symfony2专家,所以我可能在某个地方犯了一个菜鸟错误.

Field1:标准Symfony2 text字段类型

Field2:compoundtext字段+ checkbox字段的自定义字段类型字段)

预习

我的目标:autoValue实地工作中加入限制autoValue's text input child

约束不起作用的原因可能是因为NotBlank期望字符串值并且此表单字段的内部数据是数组array('input'=>'value', 'checkbox' => true).此数组值将转换回具有自定义的字符串DataTransformer.但我怀疑在根据已知约束验证字段后会发生这种情况.

正如您在注释代码中看到的那样,我已经能够在文本输入上获得约束,但是只有当硬编码到autoValue的表单类型中时,我才能根据主要字段的约束进行验证.

控制器和字段的我(简化)示例代码:

.

控制器代码

设置快速表单以进行测试.

<?php
//...
// $entityInstance holds an entity that has it's own constraints 
// that have been added via annotations

$formBuilder = $this->createFormBuilder( $entityInstance, array(
    'attr' => array(
        // added to disable html5 validation
        'novalidate' => 'novalidate'
    )
));

$formBuilder->add('regular_text', 'text', array(
    'constraints' => array(
        new \Symfony\Component\Validator\Constraints\NotBlank() …
Run Code Online (Sandbox Code Playgroud)

php constraints symfony-forms symfony symfony-2.4

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

Aptana 3 app explorer右键单击无法正常工作

使用Aptana 3 App资源管理器或Project Explorer时,右鼠标子菜单并不总是有效.

在某些文件/文件夹上它可以工作,但其他文件/文件夹什 对我来说似乎是随机的.它并不总是相同的文件/文件夹.

重启Aptana通常会让它再次运行.

任何人有同样的问题或找到解决方法?

我在Mac OSX Lion上.

更新 清除日志文件并等待问题再次发生后,似乎没有任何值得注意的日志文件.

!SESSION 2011-08-24 08:09:21.674 -----------------------------------------------
eclipse.buildId=unknown
java.version=1.6.0_26
java.vendor=Apple Inc.
BootLoader constants: OS=macosx, ARCH=x86, WS=cocoa, NL=en_US
Framework arguments:  -keyring /Users/maurice/.eclipse_keyring -showlocation
Command-line arguments:  -os macosx -ws cocoa -arch x86 -keyring /Users/maurice/.eclipse_keyring -consoleLog -showlocation

!ENTRY org.eclipse.core.net 1 0 2011-08-24 08:09:27.612
!MESSAGE System property http.nonProxyHosts has been set to local|*.local|169.254/16|*.169.254/16 by an external source. This value will be overwritten using the values from the preferences
Run Code Online (Sandbox Code Playgroud)

aptana macos

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

Typo3 V6:如何创建内容元素容器?(没有电视)

对于一个我正在使用Typo3 v6.0的项目.我正在寻找创建嵌套的内容元素或内容元素容器.我希望能够在不使用特定模板的情况下创建内联双列布局.我希望使用templavoila 这样做.

我曾尝试扩展是gridelements,kb_nescefe,bs_fce,multicolumn但这些不工作,因为它们与TYPO3的V6兼容.

我的目标是像附加图像那样的最终结果.内联双列内容可以省略,使用一次或多次使用,包含任何其他内容元素.

我在这里寻找最简单的解决方案.我更喜欢不需要flux诸如此类的解决方案中投入大量学习时间(http://fedext.net/ - 看起来很酷,但现在也耗费时间)

有任何想法吗?

具有内联双列内容的示例布局

php mysql typo3 fluid extbase

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

如何获取现有Facebook页面的App ID?

我有以下情况:

我的客户已经有一个带有时间线和大量喜欢的Facebook页面.我的工作是将Facebook评论和Facebook整合到他们的网站上.为此,我需要一个App ID,我可以通过在developers.facebook.com上创建一个新应用程序轻松获得

我想要的是以某种方式将此应用程序连接到客户端的页面;

  • 它出现在他们的见解报告中
  • 也许喜欢和互动连接到客户端的页面而不是应用程序

我已经花了很多时间试图让它工作,但我还没有看到一种方法.我可以想象,当我创建一个新应用程序,然后将该页面添加到该应用程序时,我将它们连接起来.虽然我的客户公司不是"应用程序",但它是一个真实的业务.此外,这样我的客户在他们当前的页面上失去了所有他们的喜欢.

请帮我弄清楚正确的方法.

提前致谢.

facebook facebook-like facebook-graph-api facebook-comments

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

jqGrid:如何更改单元格填充

我在google托管的jQueryUI1.8.2和jQuery1.4.2上使用jqGrid3.6.5

我想更改jqGrid的单元格填充.出于测试目的,我想在每个单元格周围将其设置为10px.

我在google搜索时遇到的唯一选择如下:

  1. 用CSS添加填充.例如.#grid-id td, #grid-id th { padding:10px; }
  2. cellLayout选项设置为21(paddingleft + paddingright + borderleft)

当我在colModel中的任何列上没有设置宽度时,这就像预期的那样工作.虽然当我调整其中一个标题,或在colModel中设置列宽时,标题和单元格不再对齐.

任何人都知道如何解决这个问题或知道改变细胞填充的替代方法?

javascript jquery jquery-ui jqgrid

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

Symfony2 + Doctrine2:如何正确本地化记录?

我希望在Symfony2框架上使用Doctrine管理记录本地化.

要求是

  • 翻译记录的能力
  • 只能在一个区域设置中添加记录的功能
  • 一个开发人员友好的可重用模式,以实现这一目标

到目前为止,我已经实现了DoctrineExtensions库来使用Translatable扩展.我读到的任何地方都被视为处理翻译的首选方式.我意识到这与本地化不一样,但似乎这是我最接近的.

假设我有一个带有可翻译产品的产品表.我的默认语言是英语.在我在默认的英语语言环境中插入产品后,我可以稍后添加翻译,让我们说意大利语.我对Translatable扩展无法做到的只是在意大利语语言环境中添加产品.如果我这样做,可翻译扩展程序还会使用默认语言(英语)添加产品,但使用意大利语内容.然后它继续添加意大利语翻译.

我的产品实体看起来像这样; (简化的)

<?php
namespace Acme\DemoBundle\Entity;

use Gedmo\Mapping\Annotation as Gedmo;
use Doctrine\ORM\Mapping as ORM;

/**
 * @ORM\Entity
 * @ORM\Table(name="acmedemobundle_product")
 */
class Product
{
    /**
     * @ORM\Column(type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="AUTO")
     */
    private $id;

    /**
     * @ORM\Column()
     * @Gedmo\Translatable
     */
    protected $name;
    ...
}
Run Code Online (Sandbox Code Playgroud)

有没有办法用非默认语言添加记录?或者我在错误的地方寻找?

-

在使用Symfony和Doctrine之前,我习惯于在两个表中管理本地化数据,然后使用请求的语言环境将它们连接在一起.

例如,该products表包含所有与语言环境无关的数据

  • ID
  • CATEGORY_ID

并且该products_i18n表包含所有本地化数据

  • PRODUCT_ID
  • 现场
  • 名称
  • 描述
  • 金属块

这样,只有一个可用于关系的主记录,以及一个或多个本地化扩展.没有本地化扩展的记录将被视为不存在.

也许有办法实现这一目标呢?

-

说实话,到目前为止,我还没有找到关于这个特定主题的有用信息.我无法想象我是第一个遇到这个问题的人.

非常感谢任何有关此事的帮助!

============== 更新

我决定使用一个自定义解决方案,将两个表绑在一起,就像我上面的示例所示.这个的主要原因(除了我需要的功能)是Translatable …

php mysql internationalization symfony doctrine-orm

7
推荐指数
1
解决办法
1399
查看次数

Zend Framework:如何禁用默认路由?

我花了很多时间试图让它发挥作用.我变得非常绝望.如果有人可以帮助我:)会很棒:)

目前正在使用Zend Framework 1.9.5,尽管我一直在努力让这个版本适用于许多版本.

我想要做的是通过XML配置提供我自己的路线,并确保其一切不是在我的配置定义最终会在我的errorController.(优选的方式,所以我可以EM除了EXCEPTION_NO_CONTROLLEREXCEPTION_NO_ACTION)

我想这意味着我必须摆脱默认的/:module /:controller /:action和/:controller /:action routes.

因此,当我告诉路由器删除DefaultRoutes()时,它将不再匹配这些默认路由.但是现在路由器现在将每个未路由的路由路由到defaultcontroller :: defaultaction(什么??)

$front->getRouter()->removeDefaultRoutes();
Run Code Online (Sandbox Code Playgroud)

那么,任何人都知道如何在无法路由URI时使前控制器(或其中的一部分)抛出异常?

我想这样做的原因是为了防止重复内容,并且有更好的404页面(在这种情况下,没有控制器/没有操作错误实际上是应用程序错误而不是未找到)

routing zend-framework url-routing front-controller

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

jQuery(UI):检测复选框的检查

当用户选中复选框时,如何让jQuery触发事件?

<input type="checkbox" id="test" name="test" /><label for="test">Check me</label>

我可以用.click做到这一点但是当用户选中复选框时这不起作用.我无法在api文档或谷歌搜索中找到相关信息.

干杯.

javascript forms jquery jquery-ui javascript-events

4
推荐指数
1
解决办法
3699
查看次数