我希望通过XML发布每3个帖子后回显一个图像这里是我的代码:
<?php
// URL of the XML feed.
$feed = 'test.xml';
// How many items do we want to display?
//$display = 3;
// Check our XML file exists
if(!file_exists($feed)) {
die('The XML file could not be found!');
}
// First, open the XML file.
$xml = simplexml_load_file($feed);
// Set the counter for counting how many items we've displayed.
$counter = 0;
// Start the loop to display each item.
foreach($xml->post as $post) {
echo '
<div style="float:left; width: 180px; …
Run Code Online (Sandbox Code Playgroud) 我正在尝试集成HTML Purifier http://htmlpurifier.org/来过滤我的用户提交的数据,但我在下面收到以下错误.我想知道如何解决这个问题?
我收到以下错误.
on line 22: mysqli_num_rows() expects parameter 1 to be mysqli_result, boolean given
Run Code Online (Sandbox Code Playgroud)
第22行是.
if (mysqli_num_rows($dbc) == 0) {
Run Code Online (Sandbox Code Playgroud)
这是php代码.
if (isset($_POST['submitted'])) { // Handle the form.
require_once '../../htmlpurifier/library/HTMLPurifier.auto.php';
$config = HTMLPurifier_Config::createDefault();
$config->set('Core.Encoding', 'UTF-8'); // replace with your encoding
$config->set('HTML.Doctype', 'XHTML 1.0 Strict'); // replace with your doctype
$purifier = new HTMLPurifier($config);
$mysqli = mysqli_connect("localhost", "root", "", "sitename");
$dbc = mysqli_query($mysqli,"SELECT users.*, profile.*
FROM users
INNER JOIN contact_info ON contact_info.user_id = users.user_id
WHERE users.user_id=3");
$about_me = …
Run Code Online (Sandbox Code Playgroud) 由于MySQL开始支持存储过程,我从未真正使用过它们.部分是因为我不是一个伟大的查询作家,部分是因为我经常与为我做出这些选择的DBA合作,部分原因是因为我对我知道的事情很满意.
在进行数据选择方面,特别是在考虑一个基本上是去规范化(连接)和聚合(avg或max,子查询和计数等)数据选择的选择时,MySQL 5.x中的正确选择是什么?一个看法?还是存储过程?
我很满意的观点 - 你知道你的SELECT查询应该是什么样的,所以你只需要创建它,确保它被编入索引,然后只做一个CREATE VIEW [View] AS SELECT [...]
.然后,在我的应用程序中,我将视图视为只读表 - 它表示我的规范化数据的非规范化版本.
这里有什么缺点 - 如果有的话?如果我将完全相同的SELECT语句移动到存储过程中会有什么变化(收益或损失)?
我希望在谷歌搜索这个主题时找到一些很难找到的"引擎盖"信息,但我真的很欢迎所有的评论和答案.
有些东西我不完全了解使用PHP的DOM api进行节点克隆.这是一个示例文件,可以快速复制我遇到的问题.
$doc = new DOMDocument( '1.0', 'UTF-8' );
$root = $doc->createElement( 'root' ); // This doesn't work either $root = new DOMElement( 'root' );
$doc->appendChild( $root );
$doc2 = new DOMDocument( '1.0', 'UTF-8' );
$root2 = $doc2->createElement( 'root2' );
$doc2->appendChild( $root2 );
// Here comes the error
$root2->appendChild( $root->cloneNode() );
Run Code Online (Sandbox Code Playgroud)
当您运行此小片段时,会抛出异常
致命错误:未捕获的异常'DOMException',消息'Wrong Document Error'
我是否可以从文档中获取节点,克隆它,然后将其附加到另一个文档?
我们开始采用Symfony 2来处理工作中的项目,这很棒,但是我正在努力解决这个问题,我几乎已经完成了,但并不完全.
Symfony将环境的概念视为单个服务器上的单独运行时.这很棒,因为您可以在不同的前端控制器(Web)或使用env开关(cli)的情况下切换运行时间.
但是,我们的代码作为开发过程的一部分部署在许多服务器上.每个人都有一个本地VM,然后代码通过Integration,QA,Staging和最后的Production传播.
因此,我们的环境概念是服务器(虚拟或物理).以下是此自定义配置的目标
这意味着我们不能100%依赖parameters.ini或任何静态命名的文件,因为开发人员需要控制每个服务器的配置,所有这些文件将在git中彼此相邻.
那么,是什么我喜欢做的就是这个.向parameters.ini添加一个新值,用于设置服务器环境.像这样的东西
应用程序/配置/ parameters.ini
[parameters]
server="int"
Run Code Online (Sandbox Code Playgroud)
然后,在内核中,根据该值加载其他配置文件.例如,我喜欢这个工作,但它没有(因为容器在这一步还不存在)
应用程序/ AppKernel.php
public function registerContainerConfiguration(LoaderInterface $loader)
{
$loader->load(__DIR__.'/config/config_'.$this->getEnvironment().'.yml');
// Per-server config
$server = $this->getContainer()->getParameter( 'server' );
if ( $server )
{
$loader->load(__DIR__.'/config/server/'.$server.'.yml');
}
}
Run Code Online (Sandbox Code Playgroud)
这将允许使用像app/config/server/int.yml这样的文件,开发人员可以使用它来控制非私有(即不是parameters.ini)配置值.
感谢阅读,如果有什么问题让我知道.
澄清,我不能使用或依赖的东西
export
.为什么?集成,QA和暂存可能都在同一个框中注意:这是Symfony <2.6但我认为无论版本如何,相同的整体问题都适用
首先,请考虑此表单类型,该表单类型旨在将一个或多个实体表示为隐藏字段(为简洁起见,省略了名称空间)
class HiddenEntityType extends AbstractType
{
/**
* @var EntityManager
*/
protected $em;
public function __construct(EntityManager $em)
{
$this->em = $em;
}
public function buildForm(FormBuilderInterface $builder, array $options)
{
if ($options['multiple']) {
$builder->addViewTransformer(
new EntitiesToPrimaryKeysTransformer(
$this->em->getRepository($options['class']),
$options['get_pk_callback'],
$options['identifier']
)
);
} else {
$builder->addViewTransformer(
new EntityToPrimaryKeyTransformer(
$this->em->getRepository($options['class']),
$options['get_pk_callback']
)
);
}
}
/**
* See class docblock for description of options
*
* {@inheritdoc}
*/
public function setDefaultOptions(OptionsResolverInterface $resolver)
{
$resolver->setDefaults(array(
'get_pk_callback' => function($entity) {
return $entity->getId(); …
Run Code Online (Sandbox Code Playgroud) 我用MySQL Workbench创建了一个模型,现在正尝试将它安装到mysql服务器上.
使用文件>导出>转发工程师SQL CREATE脚本...它为我输出一个很好的大文件,我要求的所有设置.我切换到MySQL GUI Tools(专门用于查询浏览器)并加载这个脚本(请注意,我将从另一个官方MySQL工具开始).但是,当我尝试实际执行此文件时,我反复得到相同的错误
SQLSTATE [HY000]:常规错误:1005无法创建表'./srs_dev/location.frm'(错误号:150)
"好的",我对自己说,位置表有问题.所以我查看输出文件中的定义.
SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
-- -----------------------------------------------------
-- Table `state`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `state` ;
CREATE TABLE IF NOT EXISTS `state` (
`state_id` INT NOT NULL AUTO_INCREMENT ,
`iso_3166_2_code` VARCHAR(2) NOT NULL ,
`name` VARCHAR(60) NOT NULL ,
PRIMARY KEY (`state_id`) )
ENGINE = InnoDB;
-- -----------------------------------------------------
-- Table `brand`
-- -----------------------------------------------------
DROP TABLE IF EXISTS `brand` ; …
Run Code Online (Sandbox Code Playgroud) 这里涉及三个实体:Deployment,DeploymentStep和DeploymentStatusLog.我将首先粘贴这些类的相关定义
SRC /我/包/实体/ Deployment.php
<?php
namespace My\Bundle\Entity;
use Doctrine\ORM\Mapping as ORM;
use Doctrine\Common\Collections\ArrayCollection;
use Doctrine\ORM\PersistentCollection;
/**
* @ORM\Table(name="deployment")
* @ORM\Entity()
*/
class Deployment
{
/**
* Status Log Entries for this deployment
*
* @var \Doctrine\ORM\PersistentCollection
*
* @ORM\OneToMany(targetEntity="DeploymentStatusLog", mappedBy="deployment", cascade={"persist","remove"})
* @ORM\OrderBy({"created_at"="DESC"})
*/
protected $status_logs;
/**
* @var \Doctrine\ORM\PersistentCollection
*
* @ORM\OneToMany(targetEntity="DeploymentStep", mappedBy="deployment", cascade={"persist","remove"})
* @ORM\OrderBy({"sequence" = "ASC"})
*/
protected $steps;
public function __construct()
{
$this->status_logs = new ArrayCollection();
$this->steps = new ArrayCollection(); …
Run Code Online (Sandbox Code Playgroud) 我遇到了一个奇怪的问题,我不知道如何解决它.我有几个类都是JSON对象的PHP实现.这是'问题的一个例子
class A
{
protected $a;
public function __construct()
{
$this->a = array( new B, new B );
}
public function __toString()
{
return json_encode( $this->a );
}
}
class B
{
protected $b = array( 'foo' => 'bar' );
public function __toString()
{
return json_encode( $this->b );
}
}
$a = new A();
echo $a;
Run Code Online (Sandbox Code Playgroud)
这个输出是
[{},{}]
Run Code Online (Sandbox Code Playgroud)
当所需的输出是
[{"foo":"bar"},{"foo":"bar"}]
Run Code Online (Sandbox Code Playgroud)
问题是我依靠__toString()钩子来为我做我的工作.但它不能,因为json_encode()使用的序列化不会调用__toString().遇到嵌套对象时,它只是序列化公共属性.
那么,问题就变成了这样:有没有办法可以开发一个JSON类的托管接口,它既可以让我使用setter和getter来获取属性,也可以让我获得我想要的JSON序列化行为?
如果这是不明确的,这里是一个实现的例子就不会工作,因为__set()钩子只要求初始分配
class a
{
public function __set( $prop, $value )
{
echo __METHOD__, PHP_EOL; …
Run Code Online (Sandbox Code Playgroud) php ×6
mysql ×3
symfony ×3
doctrine-orm ×1
dom ×1
domdocument ×1
foreign-keys ×1
html ×1
innodb ×1
json ×1
loops ×1
orm ×1
performance ×1
svn ×1
unit-of-work ×1
unit-testing ×1
views ×1
xml ×1