标签: php

Symfony2 - 如何将复选框/无线电的标签和输入放在同一行?

在我的表单中,我有一些复选框,但默认情况下,我有:

  • 第一个无线电小部件
  • 第一个标签
  • 第二个无线电小工具
  • 标签

这是SYmfony2生成的html代码:

  <div>
    <input ...>
    <label ...></label>
    <input ...>
    <label ...></label>
  </div>
Run Code Online (Sandbox Code Playgroud)

什么我想是有:

第一无线电窗口小部件的第一个标签
的第二无线电窗口小部件的第二个标签

HTML代码将是:

  <label .....><input ....></label>
Run Code Online (Sandbox Code Playgroud)

我想我必须覆盖choice_widget,但不知道如何将输入和标签放在同一行

这是我可能需要覆盖的choice_widget:

    {% block choice_widget %}
        {% spaceless %}
            {% if expanded %}
                <div {{ block('widget_container_attributes') }}>
                   {% for child in form %}
                      {{ form_widget(child) }}  {{ form_label(child) }}
                   {% endfor %}
                </div>
            {% else %}
                <select {{ block('widget_attributes') }}{% if multiple %} multiple="multiple"{% endif %}>
                {% if empty_value is not none %} …
Run Code Online (Sandbox Code Playgroud)

php symfony twig

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

PHP远程调试:XDebug无法连接到JetBrains的php Storm客户端

我想通过以下软件配置进行远程调试:

Win 7 Pro 64位WAMP Server 2.2(32位)包括.Apache 2.2.22,PHP 5.4.3,XDebug php_xdebug-2.2.1-5.4-vc9.dll JetBrains PHPStorm 4.0.3

1.)WAMP启动并运行,我的站点可以在localhost/fox /下找到

2.)PHP Storm有一个项目,我的源文件和apache别名localhost/fox之间有一个映射

2.)我安装了php扩展XDebug并将以下行添加到我的php.ini中

[xdebug]
zend_extension="c:/wamp/bin/php/php5.4.3/zend_ext/php_xdebug-2.2.1-5.4-vc9.dll"
xdebug.remote_enable=On
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.remote_connect_back=On
xdebug.remote_autostart=On
xdebug.profiler_enable=On
xdebug.profiler_enable_trigger=off
xdebug.profiler_output_name=cachegrind.out.%t.%p
xdebug.profiler_output_dir="c:/wamp/tmp"
xdebug.remote_log="C:/wamp/tmp/xdebug.log"
xdebug.remote_cookie_expire_time=6000
Run Code Online (Sandbox Code Playgroud)

这应该配置远程调试XDebug和回调地址.

我在这里检查了我的安装:xdebug.org/wizard.php

3.)我配置了phpstorm,首先我添加了本地服务器

然后在这里检查我的设置

http://www.bilder-hochladen.net/files/jrn0-2-c81e-jpg-nb.html

(我也试过127.0.0.1/fox作为服务器地址,而不是localhost)

我的调试设置:http: //www.bilder-hochladen.net/files/jrn0-1-c4ca-jpg.html

现在我重启我的apache,我进入phpstorm,设置一个断点(它是红色的),点击该功能

Run  -> Start listen to PHP Debug Connections
Run Code Online (Sandbox Code Playgroud)

电话接收器正在变成绿色,这究竟是什么意思,但它对我来说是一个正面的信号.

当我现在在本地webserver absolutley上运行我的php脚本没有任何反应时,程序运行在断点上并且不会停止.

在Xdebuggers日志(C:/wamp/tmp/xdebug.log)中,我发现这些消息的负载如下:

 I: Checking remote connect back address.
 I: Remote address found, connecting to ::1:9000.
 E: Could not connect to client. :-(
 Log closed at 2012-07-19 14:21:08
Run Code Online (Sandbox Code Playgroud)

在互联网的某个地方,我发现了暗示,Windows防火墙可以阻止通信,所以我把它关闭了完整但但没有帮助. …

php remote-debugging xdebug apache2 phpstorm

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

使用PHPExcel循环工作表

我正在使用PHPExcel库来读取Excel文件并对其执行处理.我想遍历每个工作表.我检查了文档,我找到的只是更改活动工作表索引或仅加载指定的工作表.如何遍历所有工作表?

感谢您的任何帮助.

这是文档的循环示例,供参考:

<?php
$objReader = PHPExcel_IOFactory::createReader('Excel2007');
$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load("test.xlsx");
$objWorksheet = $objPHPExcel->getActiveSheet();

echo '<table>' . "\n";
foreach ($objWorksheet->getRowIterator() as $row) {
  echo '<tr>' . "\n";

  $cellIterator = $row->getCellIterator();
  $cellIterator->setIterateOnlyExistingCells(false); // This loops all cells,
                                                     // even if it is not set.
                                                     // By default, only cells
                                                     // that are set will be
                                                     // iterated.
  foreach ($cellIterator as $cell) {
    echo '<td>' . $cell->getValue() . '</td>' . "\n";
  }

  echo '</tr>' . "\n";
}
echo '</table>' . "\n";
?>
Run Code Online (Sandbox Code Playgroud)

php for-loop worksheet phpexcel

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

在Symfony2中使用Composer添加CSS或JS库作为依赖项的正确方法是什么?

Symfony 2文档中,它说:

捆绑包不应嵌入用JavaScript,CSS或任何其他语言编写的第三方库.

那我该怎么做?我想使用Composer安装Twitter Bootstrap,DataTables和许多其他东西作为依赖项.但我能想到的唯一方法是创建一个包并嵌入它们.

这样做的正确方法是什么?

php symfony composer-php

19
推荐指数
2
解决办法
8899
查看次数

CMS和框架之间有什么区别?以及如何根据某些要求选择它们?

我目前正在使用Zend Framework,我对它非常满意.我想知道的是,使用像Joomla或Drupal这样的CMS更好的是什么样的要求.

考虑到我目前的项目,它是一个门户应用程序.它完全是从Zend开始制作的.然后一些人来评论说它是在drupal中实现的,你可以通过辛苦努力为你建立的东西获得插件.

所以我需要一个如何在启动阶段选择CMS和A Framework的指南?

php zend-framework content-management-system

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

正则表达式检测无效的UTF-8字符串

在PHP中,我们可以mb_check_encoding()用来确定字符串是否是有效的UTF-8.但这不是一个可移植的解决方案,因为它需要编译和启用mbstring扩展.此外,它不会告诉我们哪个字符无效.

是否有正则表达式(或其他100%可移植方法)可以匹配给定字符串中的无效UTF-8字节.这样,如果需要,可以替换这些字节(保留二进制信息,例如在构建包含二进制数据的测试输出xml文件时).因此,将字符转换为UTF-8将丢失信息.所以,我们可能想转换:

"foo" . chr(128) . chr(255)
Run Code Online (Sandbox Code Playgroud)

"foo<128><255>"
Run Code Online (Sandbox Code Playgroud)

所以只是"检测"字符串不够好,我们需要能够检测哪些字符无效.

php regex validation utf-8

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

Predis在从服务器读取行时出现'错误'

我正在使用predis并且它订阅了一个频道并且正在监听,它会抛出错误并死掉,如下所示,在60秒之后,它肯定不是我的网络服务器错误或它的超时.

目前正在讨论的一个类似的问题在这里.无法得到很多.

我尝试将predis conf文件中的connection_timeout设置为0,但没有多大帮助.

此外,如果我继续使用(向它发送数据并且它处理)工作者它不会给出任何错误.所以它可能在某个地方超时,而且也是连接的.

这是我的代码片段,它可能会产生错误,因为如果将数据提供给worker,它将运行此代码并继续前进,之后不会产生任何错误.

$pubsub = $redis->pubSub();
$pubsub->subscribe($channel1);

foreach ($pubsub as $message) { //doing stuff here and unsubscribing from channel
}
Run Code Online (Sandbox Code Playgroud)

跟踪

PHP Fatal error:  Uncaught exception 'Predis\Network\ConnectionException' with message 'Error while reading line from the server' in Predis/Network/ConnectionBase.php:159 Stack trace:
#0 library/vendor/predis/lib/Predis/Network/StreamConnection.php(195): Predis\Network\ConnectionBase->onConnectionError('Error while rea...')
#1 library/vendor/predis/lib/Predis/PubSub/PubSubContext.php(259): Predis\Network\StreamConnection->read()
#2 library/vendor/predis/lib/Predis/PubSub/PubSubContext.php(206): Predis\PubSub\PubSubContext->getValue()
#3 pdf/file.php(16): Predis\PubSub\PubSubContext->current()
#4 {main}   thrown in Predis/Network/ConnectionBase.php on line 159
Run Code Online (Sandbox Code Playgroud)

检查了redis.conf超时,它也被禁用了.

php redis

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

在有效的PHP查询()XPath中转换Javascript XPath 规范化JS XPath - > PHP

这是Javascript中有效的XPath:

id("priceInfo")/div[@class="standardProdPricingGroup"]/span[1]
Run Code Online (Sandbox Code Playgroud)

这变成了有效的PHP XPath,可以与DOMXPath-> query()一起使用

//*[@id="priceInfo"]//div[@class="standardProdPricingGroup"]//span[1]
Run Code Online (Sandbox Code Playgroud)
  1. 你知道任何已经进行过这种转换的库或自定义组件吗?
  2. 你知道列出两种语法差异的可用文档吗?

我主要担心的是可能存在很多差异,我希望找出这些差异,并且我有问题来识别这些差异.

问题也可能以不同的方式提出:由于Javascript可以有不同的有效XPath格式,如何规范化它们以使用PHP.

其中一个更新还提到如果存在包含此定义的有效DTD,则id()函数是有效的XPath.我对输入DTD没有权力,如果有办法找到一个没有任何特定DTD的解决方案,那就太棒了.

更新:

我想用算法将第一种格式转换为第二种格式.我的输入是第一个而不是第二个.无法改变这一点.

正如@NisonMaël指出的那样,第二种格式是有效的Javascript XPath,如下所示:http://jsbin.com/elatum/2/edit这不幸只是增加了Javascript XPath"碎片化"的问题.

@salathe指出,如果记录的输入具有有效的DTD,则有效的Javascript XPath查询在PHP中可以正常工作(@Dimitre Novatchev在评论中提到了这一点,但忽略了重要性).不幸的是我无法控制输入DTD,所以现在我必须研究一种方法来克服这个问题,或者找到一种即使没有有效的DTD也可以工作的解决方案.

javascript php xml xpath dom

19
推荐指数
1
解决办法
793
查看次数

如何在Wordpress中使用session_start?

我正在创建一个双语网站,并决定使用以下内容session_start来确定页面的语言:

session_start();    
if(!isset($_SESSION['language'])){
    $_SESSION['language'] = 'English'; //default language
}
Run Code Online (Sandbox Code Playgroud)

这个问题是它与Wordpress冲突,我得到以下内容:

警告:session_start()[function.session-start]:无法发送会话cookie - 已经发送的标头(输出从/home/neurosur/public_html/v2/wp-content/themes/default/header.php:8开始)第13行/home/neurosur/public_html/v2/wp-content/themes/default/region.php

有办法解决这个问题吗?

php wordpress session

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

Cookies不能在Opera中正常发送

首先,我不确定这是否是Opera 12.01中的问题,但问题只出现在Opera中.我在Android和iPhone上测试过FF14,Chrome 21,Safari 5(Windows)以及Safari Mac和Webkit浏览器.

我的应用程序运行trigger.io的锻造平台,使用代理从Web应用程序的服务请求路由.代理只是简单地转发请求和cookie,这在大多数浏览器中按预期工作.

在检查了dragonfly中的请求后,我注意到服务器在响应中发送了正确的头文件,但Opera似乎忽略了设置值.我想知道这是否是由于cookie的一些配置错误的路径值.我在Firefox和Opera中添加了2个请求的屏幕截图.

正如您在屏幕中看到的那样,FF会看到cookie标题并对其进行适当设置,但Opera不会.

Firefox请求

Firefox请求

Opera请求1屏幕

歌剧要求1

Opera请求2屏幕

歌剧要求2

我没有包含执行请求转发的代理中的代码,因此如果您需要,请告诉我以获得一些见解.在服务端,我正在运行PHP和Codeigniter.如果我需要在我的环境中添加更多信息,请告诉我,谢谢.

更新:即使在我的生产环境中不使用自定义TLD,也会出现此问题.其他使用cookie的网站工作正常,并启用了cookie.

php cookies opera trigger.io

19
推荐指数
2
解决办法
2282
查看次数