小编Mar*_*vić的帖子

DOMXpath - 获取元素的href属性和文本值

所以我有一个像这样的HTML字符串:

<td class="name">
   <a href="/blah/somename23123">Some Name</a>
</td>
<td class="name">
   <a href="/blah/somename28787">Some Name2</a>
</td>
Run Code Online (Sandbox Code Playgroud)

使用XPath我可以使用此Xpath查询获取href属性的值:

 $domXpath = new \DOMXPath($this->domPage);
 $hrefs = $domXpath->query("//td[@class='name']/a/@href");
 foreach($hrefs as $href) {...}
Run Code Online (Sandbox Code Playgroud)

而获取文本值更容易,如下所示:

 // Xpath auto. strips any html tags so we are 
 // left with clean text value of a element
 $domXpath = new \DOMXPath($this->domPage);
 $names = $domXpath->query("//td[@class='name']/");
 foreach($names as $name) {...}
Run Code Online (Sandbox Code Playgroud)

现在我很想知道,我怎样才能将这两个查询结合起来,只用一个查询来获取两个值(如果它是类似的甚至是可行的?).

php xpath domxpath

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

Font-face,在Opera浏览器中混淆自动完成下拉列表

正如我在标题中提到的,当使用css font-family,自定义字体(font-face)时,它会混淆(黑色背景,黑色文本(我猜))Opera中的自动完成下拉列表.

input[type='text'], input[type='password'], input[type='email'], input[placeholder] {
    font-size: 1.2em;
    font-family:  sans-serif;
    color: #2A873A;
    padding-left: 25px;
}
Run Code Online (Sandbox Code Playgroud)

上面的代码工作正常,但如果我替换"font-family:sans-serif;" 使用一些font-face字体(谷歌网络字体),然后问题开始.

这是"bug"的截图.

在此输入图像描述

PS我应该提一下,这是Opera的原生自动完成,而不是自定义js,下拉列表.

编辑: http ://jsfiddle.net/burCR/

html css opera webfonts font-face

9
推荐指数
1
解决办法
714
查看次数

Doctrine2 Multiple Join适用于createQuery,但不适用于queryBuilder

如果我在没有queryBuilder的情况下使用这个dql进行查询

$query = $this->_em
  ->createQuery("SELECT p, g, c
            FROM LikeYeah\GoBundle\Entity\Product p
            JOIN p.garments g
            LEFT JOIN g.colours c
            ORDER BY p.id DESC
          ");
Run Code Online (Sandbox Code Playgroud)

一切都很好,但如果我使用(我相信是相同的)查询槽查询生成器这样

 $qb->select('p, g, c')
    ->from('LikeYeah\GoBundle\Entity\Product', 'p')
    ->join('p.garments', 'g')
    ->leftJoin('g.colours', 'c')
    ->orderBy('p.id', 'desc');
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"语义错误"第0行,第66行靠近'.colours c,LikeYeah\GoBundle\Entity\Product':错误:识别变量g用于连接路径表达式,但之前没有定义过."

我错过了什么?

php dql symfony doctrine-orm

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

验证没有会话的系统 - 只有cookie - 这是否相当安全?

我对您对此安全问题的建议/意见感兴趣.

我在考虑做这样的事情:

  1. 从userId + expirationTime构建的字符串中获取哈希MAC(sha256),并从一些秘密字符串和$ _SERVER ['HTTP_USER_AGENT']构建密钥字符串.
  2. 从userId + expirationTime获取散列MAC(sha256),并作为先前制作散列的密钥(来自步骤1).
  3. 从userId | expiration |构建字符串 和先前制作的哈希(来自第2步).
  4. 使用'rijndael-256'算法加密给定的字符串(来自步骤3).(mcrypt函数族).
  5. 编码到base64.
  6. 设置具有给定值的cookie.

你怎么看.这个可以吗?我还可以使用$ _SERVER ['HTTP_USER_AGENT']检查实现什么,以确保cookie没有被盗(IP地址除外)?

PS从敏感数据cookie只包含userId.

编辑: 好的,清除一些事情.我正在尝试制作不依赖于会话的"安全"auth系统.有问题的应用程序或多或少构建为纯粹的restful api.

第2步:

问题: "Fu的协议没有提供这个问题的答案.Fu的协议中只有一个密钥,即服务器密钥.一个简单的解决方案是使用此服务器密钥加密每个cookie的数据字段;但是,这种解决方案并不安全."

解决方案: "我们对此问题的解决方案简单而有效.我们建议使用HMAC(用户名|到期时间,sk)作为加密密钥.此解决方案具有以下三个良好属性:首先,加密密钥是唯一的因为用户名和到期时间,每个不同的cookie.请注意,每当创建一个新的cookie时,cookie中都会包含一个新的过期时间.其次,加密密钥是不可伪造的,因为服务器密钥是保密的.第三,每个cookie的加密密钥不需要服务器端或cookie内的任何存储,而是由服务器动态计算."来自纸张"安全Cookie协议"由Alex X. Liu,Jason M科瓦奇

第4步: 加密数据(看起来像这样:'marko@example.com|34234324234|324erfkh42fx34gc4fgcc423g4'),这样即使客户也无法准确知道内部的内容.

第5步: Base64编码只是为了使最终值漂亮.

php security authentication cookies

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

移动"root"或父节点 - Doctrine NestedSet扩展

我试图从gedmo 嵌套集扩展博客复制示例,其中有许多父节点.在那里,你可以创建许多可移动的父节点以及儿童(这是典型的一组嵌套的维基百科).

阅读评论部分,常见的建议是删除@Gedmo\TreeRoot annotation/mapping,但如果我这样做,我就能够移动根节点,但树会被打破特别是左右id.如果我保留TreeRoot,并尝试移动根节点,我会得到"没有节点兄弟"或类似的东西,如预期的那样.

查看扩展程序博客上的实例,您可以看到您可以创建没有父级的类别并向上或向下移动它.

我的类别实体 - 相关部分:

class Category 
{
    /**
     * @Gedmo\TreeLeft
     * @ORM\Column(name="lft", type="integer")
     */
    private $lft;

    /**
     * @Gedmo\TreeLevel
     * @ORM\Column(name="lvl", type="integer")
     */
    private $lvl;

    /**
     * @Gedmo\TreeRight
     * @ORM\Column(name="rgt", type="integer")
     */
    private $rgt;

    /**
     * @Gedmo\TreeRoot
     * @ORM\Column(name="root", type="integer", nullable=true)
     */
    private $root;

    /**
     * @Gedmo\TreeParent
     * @ORM\ManyToOne(targetEntity="Category", inversedBy="children")
     */
    private $parent;

    /**
     * @ORM\OneToMany(targetEntity="Category", mappedBy="parent")
     * @ORM\OrderBy({"lft" = "ASC"})
     * @Exclude
     */ …
Run Code Online (Sandbox Code Playgroud)

php mysql doctrine nested-sets symfony

5
推荐指数
1
解决办法
3370
查看次数

Exoplayer2 - ConcatenatingMediaSource,所有源的持续时间

我有通过 exoplayer 播放几个音频文件的基本代码

    ExtractorMediaSource audioSource = new ExtractorMediaSource(uri, dataSourceFactory, extractor, null, null);
    ExtractorMediaSource audioSource2 = new ExtractorMediaSource(uri2, dataSourceFactory2, extractor, null, null);

    ConcatenatingMediaSource concatenatedSource =
            new ConcatenatingMediaSource(audioSource, audioSource2);
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用https://github.com/google/ExoPlayer/issues/2122中的代码示例获取所有媒体源的持续时间

Timeline timeline = mMediaPlayer.getCurrentTimeline();
int currentWindowIndex = mMediaPlayer.getCurrentWindowIndex();
long currentPosition = mMediaPlayer.getCurrentPosition();
long totalTime = 0;
Timeline.Window tmpWindow = new Timeline.Window();
if (timeline != null) {
   for (int i = 0; i < timeline.getWindowCount(); i++) {
       long windowDuration = timeline.getWindow(i,tmpWindow).getDurationMs();
       totalTime += windowDuration;
       if (i < currentWindowIndex) {
           currentPosition += windowDuration; …
Run Code Online (Sandbox Code Playgroud)

android duration exoplayer exoplayer2.x

5
推荐指数
0
解决办法
1401
查看次数

Xamarin.UITest 屏幕截图位置

我的 Xamarin.UITest 有问题,特别是屏幕截图功能。它没有按预期工作。

我试图将“创建的”屏幕截图复制到另一个目录,但出现以下错误:

消息:System.IO.FileNotFoundException:找不到文件“C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\screenshot-1.png”。

我正在使用这段代码来复制图像文件:

var screen = app.Screenshot("Welcome screen.");
screen.CopyTo(@"C:\Users\someuser\Desktop\screenshotTest.png");
Run Code Online (Sandbox Code Playgroud)

如何指定屏幕截图的第一个路径/位置,因为原始路径可能需要管理员权限,而我没有。

screenshot xamarin.uitest

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

将SQL查询转换为Doctrine2 DQL

我正在尝试将此(我的)SQL转换为DQL

SELECT content, created, AVG(rating)
FROM point
GROUP BY DAY(created)
ORDER BY created ASC
Run Code Online (Sandbox Code Playgroud)

我被困在GROUP BY部分,显然DAY/WEEK/MONTH不被认为是有效的"功能".

[语义错误]第0行,第80行附近'(p.created)ORDER':错误:无法按未定义的标识变量进行分组.

$this->createQueryBuilder('p')
       ->select('p')
       ->groupBy('DAY(p.created)')
       ->orderBy('p.created', 'ASC')
Run Code Online (Sandbox Code Playgroud)

问:是否可以使用查询构建器创建此类查询,还是应该使用本机查询?

sql group-by dql symfony doctrine-orm

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