小编rin*_*t.6的帖子

如何使用php restful api-centric设计内部而不是http请求

我想创建一个php restful api-centric web应用程序/网站,其中我有从我的前端代码调用的data/api.除了每次加载页面时都进行HTTP/curl请求调用,我还可以使用像slim这样的框架来进行内部API调用?

我不确定是否可以在我的前端代码中包含api以供内部使用,并且仍然可以将它分开.

我的想法是这样的:

"example.com/api/story/todays-weather/"
pulls in the json formatted story with a http request with curl or Ajax
Run Code Online (Sandbox Code Playgroud)

但我可以这样做:

require("/api/internal.php");
$uri = "/story/todays-weather/";
$call = api::getStory($uri);
$result = json_decode($call);
.....
Run Code Online (Sandbox Code Playgroud)

我是朝着正确的方向前进还是离开了?

api和前端代码在同一个云盒(​​亚马逊E2/LAMP)上,我正在计划使用memcached为api.

php api rest json curl

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

ARIA表示导航中的当前页面

最近我一直在将ARIA实现到Web应用程序中,我发现这个问题在改进导航部分方面非常有用.

在所有模块中实现此功能后,我发现了此HTML验证错误:

此时aria-selected元素a上不允许属性.

看看ARIA规范,我看到它aria-selected仅用于角色gridcell,选项,行和制表符.就我而言,链接的作用是menuitem.

这是HTML代码的代表性示例:

<nav role=navigation>
    <ul role=menubar>
        <li role=presentation><a href='page1.php' role=menuitem>Page 1</a></li>
        <li role=presentation><a href='page2.php' role=menuitem>Page 2</a></li>
        <li role=presentation><a href='page3.php' role=menuitem aria-selected=true>Page 3</a></li>
        <li role=presentation><a href='page4.php' role=menuitem>Page 4</a></li>
    </ul>
</nav>
Run Code Online (Sandbox Code Playgroud)

如您所见,这是在"第3页"上进行的.

在这里使用的ARIA角色是什么?

html html5 accessibility wcag wai-aria

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

MySQL组与另一列的排序/优先级

我已经看过这两个问题了:

但是它们都使用聚合函数MAX来获得最高值或填充值,这对我的情况不起作用.

出于这个问题的目的,我简化了我的情况.这是我目前的数据:

数据库样本

我想获得每条路线的运营商名称,但是关于旅行方向(即订购或"偏好"值).这是我的伪代码:

if(`direction` = 'west' AND `operatorName` != '') then select `operatorName`
else if(`direction` = 'north' AND `operatorName` != '') then select `operatorName`
else if(`direction` = 'south' AND `operatorName` != '') then select `operatorName`
else if(`direction` = 'east' AND `operatorName` != '') then select `operatorName`
Run Code Online (Sandbox Code Playgroud)

我当前的SQL查询是:

SELECT route, operatorName
FROM test
GROUP BY route
Run Code Online (Sandbox Code Playgroud)

这给了我分组,但我的目的是错误的运算符:

route | operatorName
--------------------
  95  | James
  96  | Mark
  97  | Justin
Run Code Online (Sandbox Code Playgroud)

我尝试过应用一个ORDER BY条款但GROUP BY …

mysql sql group-by sql-order-by

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

Hive:regexp_replace方括号

我需要替换键:值对周围的方括号,类似于以下内容.任何帮助深表感谢!

'properties'中的数据如下所示:

name: property1
value: [12345667:97764458]

**code**
SELECT p.name, regexp_replace(p.value,'[','') AS value
FROM properties p
Run Code Online (Sandbox Code Playgroud)

解决:修改后的代码

SELECT p.name, regexp_replace(p.value,'\\[|\\]','') AS value
FROM properties p;
Run Code Online (Sandbox Code Playgroud)

hive square-bracket

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

Elasticsearch - 没有可用的节点

我收到这个错误几个小时..我正在使用Play 2.2.0和Elasticsearch 0.90.7!

谁能帮我?

play.api.Application$$anon$1: Execution exception[[NoNodeAvailableException: No node available]]
        at play.api.Application$class.handleError(Application.scala:293) ~[play_2.10-2.2.1.jar:2.2.1]
        at play.api.DefaultApplication.handleError(Application.scala:399) ~[play_2.10-2.2.1.jar:2.2.1]
        at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10-2.2.1.jar:2.2.1]
        at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2$$anonfun$applyOrElse$3.apply(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10-2.2.1.jar:2.2.1]
        at scala.Option.map(Option.scala:145) ~[scala-library.jar:na]
        at play.core.server.netty.PlayDefaultUpstreamHandler$$anonfun$2.applyOrElse(PlayDefaultUpstreamHandler.scala:261) ~[play_2.10-2.2.1.jar:2.2.1]
org.elasticsearch.client.transport.NoNodeAvailableException: No node available
        at org.elasticsearch.client.transport.TransportClientNodesService$RetryListener.onFailure(TransportClientNodesService.java:256) ~[elasticsearch-0.90.7.jar:na]
        at org.elasticsearch.action.TransportActionNodeProxy$1.handleException(TransportActionNodeProxy.java:89) ~[elasticsearch-0.90.7.jar:na]
        at org.elasticsearch.transport.TransportService$Adapter$2$1.run(TransportService.java:316) ~[elasticsearch-0.90.7.jar:na]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) ~[na:1.7.0_25]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) ~[na:1.7.0_25]
        at java.lang.Thread.run(Thread.java:724) ~[na:1.7.0_25]
Run Code Online (Sandbox Code Playgroud)

elasticsearch

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

在PHP中的SQL查询中将变量转换为整数

首先,我完全了解SQL注入漏洞,我正在将PDO用于我在PHP中开发的新应用程序.

简而言之,我正在为之工作的组织无法承担任何人力资源,无法将所有人力资源转换为PDO以用于我正在进行的相当大的应用程序,所以我坚持使用mysql_*函数与此同时.

无论如何,我想知道使用数据验证函数来"清理" 插值查询中使用的数字参数是否安全.我们确实mysql_real_escape_string()用于字符串(是的,我也知道那里的限制).这是一个例子:

public function foo($id) {
    $sql = "SELECT * FROM items WHERE item_id = $id";
    $this->query($sql); // call mysql_query and does things with result
}
Run Code Online (Sandbox Code Playgroud)

$id通过HTTP GET来识别用户提供的值,所以很明显这段代码很容易受到攻击.如果我这样做会好的吗?

public function foo($id) {

    if (!ctype_digit($id)) {
        throw new \InvalidArgumentException("ID must be numeric");
    }

    $sql = "SELECT * FROM items WHERE item_id = $id";
    $this->query($sql); // call mysql_query and does things with result
}
Run Code Online (Sandbox Code Playgroud)

我知道,ctype_digit与检查正则表达式相同\d+.

(还有 …

php mysql sql sql-injection

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

window.navigator.appCodeName的目的是什么?

在我测试的所有浏览器(IE,Firefox,Chrome,Safari,Opera,Yandex)中,window.navigator.appCodeName返回"Mozilla".我知道网络浏览器"劫持"用户代理以欺骗页面的历史,认为它们与所有其他浏览器兼容,而且我满足于appCodeName只是作为该主体的扩展,但是,我读了标准,并且事实证明,标准本身说这将是硬编码的价值"Mozilla".所以这些浏览器实际上都遵循这些标准.

为什么这个价值存在?我认为它留作将来使用,但计划是什么?

这个问题并没有真正解释它,因为它所说的只是因为浏览器劫持了它,我已经理解了,但我更想知道过去或未来的用途是什么.

html javascript

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

如何使用 PSR-7 响应?

我的应用程序中的大多数响应要么是视图,要么是 JSON。我不知道如何将它们放入ResponseInterfacePSR-7中实现的对象中。

这是我目前所做的:

// Views
header('Content-Type: text/html; charset=utf-8');
header('Content-Language: en-CA');
echo $twig->render('foo.html.twig', array(
    'param' => 'value'
    /* ... */
));

// JSON
header('Content-Type: application/json; charset=utf-8');
echo json_encode($foo);
Run Code Online (Sandbox Code Playgroud)

这是我试图用 PSR-7 做的事情:

// Views
$response = new Http\Response(200, array(
    'Content-Type' => 'text/html; charset=utf-8',
    'Content-Language' => 'en-CA'
));

// what to do here to put the Twig output in the response??

foreach ($response->getHeaders() as $k => $values) {
    foreach ($values as $v) {
        header(sprintf('%s: %s', $k, $v), false);
    } …
Run Code Online (Sandbox Code Playgroud)

php stream httpresponse php-stream-wrappers psr-7

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

PHPCS 不同目录的不同规则集

我目前正在清理现有的代码库,其中一个方面涉及使用 PHPCS。这是我目前的phpcs.xml文件:

<?xml version='1.0'?>
<ruleset name='MyApplication'>
    <arg name='encoding' value='utf-8'/>
    <arg name='extensions' value='php'/>
    <arg name='warning-severity' value='0'/>
    <arg name='colors'/>
    <arg value='p'/>

    <exclude-pattern>vendor/*</exclude-pattern>
    <exclude-pattern>node_modules/*</exclude-pattern>

    <rule ref='PSR1'></rule>
</ruleset>
Run Code Online (Sandbox Code Playgroud)

我想修改它,以便将 PSR-2 应用于某些目录(例如foo/bar/),而其余目录则根据 PSR-1 进行检查。

<exclude-pattern>在手册中找到了可以作为元素的子元素放置的选项,<rule>但我需要相反的选项。

php phpcs

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

如何使 google recapcha 响应宽度为 100%

我需要使 google recapcha 响应,而不是仅使用宽度 100% 的变换比例,而使用其他比例但不使用变换比例。我正在搜索许多其他网站,但其中许多仅使用变换比例。

这是一张图片。

在此输入图像描述

html javascript css recaptcha

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