我想以编程方式构建一个json字符串.最终产品应该是这样的:
var myParamsJson = {first_name: "Bob", last_name: "Smith" };
Run Code Online (Sandbox Code Playgroud)
但是我想一次做一个参数.如果它是一个数组,我会做的事情如下:
var myParamsArray = [];
myParamsArray["first_name"] = "Bob";
myParamsArray["last_name"] = "Smith";
Run Code Online (Sandbox Code Playgroud)
我甚至不介意构建该数组然后转换为json.有任何想法吗?
我按照Facebook SDK for PHP文档创建了两个文件,login.php和fb-callback.php,其中包含fb-callback.php中的所有查找逻辑.当我这样做,一切正常.
但是我想将查找逻辑移到get-posts.php并通过fb-callback.php中的ajax调用它.当我这样做时,我似乎无法获得访问令牌.我收到下面提到的错误,"访问令牌:错误的请求".
我已将fb-config.php和get-posts.php注册为有效的OAuth重定向URI.那么如何获得get-posts.php的正确参数呢?
以下是所有相关文件:
的login.php
<?php
require_once "config.php";
$redirectURL = 'https://' . $_SERVER[ 'SERVER_NAME' ] . '/r/fb-callback.php';
$permissions = ['email','user_photos','user_posts'];
$loginUrl = $helper->getLoginUrl($redirectURL, $permissions);
?>
<a href='<?php echo $loginUrl; ?>'>
<img src='continue-with-facebook.png'>
</a>
?>
Run Code Online (Sandbox Code Playgroud)
config.php文件
<?php
if( !session_id() ) {
session_start();
}
require_once '/home/bitnami/vendor/autoload.php';
$fb = new Facebook\Facebook([
'app_id' => '---',
'app_secret' => '---',
'default_graph_version' => 'v3.1',
]);
$helper = $fb->getRedirectLoginHelper();
?>
Run Code Online (Sandbox Code Playgroud)
FB-callback.php
<?php
require_once("config.php");
?>
<html>
<head>
<script type='text/javascript' src='jquery.js'></script>
<script>
var $j = jQuery.noConflict();
$j(document).ready(function …Run Code Online (Sandbox Code Playgroud) 我安装了一切.但是当我运行"rake db:create"时,我得到以下内容:
Ken-Vogts-MacBook:sixmonths ken$ rake db:create
(in /Users/ken/sixmonths)
rake aborted!
no such file to load -- pg
Run Code Online (Sandbox Code Playgroud)
这是我的database.yml:
development:
adapter: postgresql
encoding: unicode
database: sixmonths_development
pool: 5
username: postgres
password: xxxxxxxx
test:
adapter: postgresql
encoding: unicode
database: sixmonths_test
pool: 5
username: sixmonths
password: xxxxxxxx
production:
adapter: postgresql
encoding: unicode
database: sixmonths_production
pool: 5
username: sixmonths
password: xxxxxxxx
Run Code Online (Sandbox Code Playgroud)
我可以在运行时看到pg已安装:gem list
我尝试在stackoverflow上的另一篇文章中用"pg"替换"postgresql",但结果如下:
Ken-Vogts-MacBook:sixmonths ken$ rake db:create
(in /Users/ken/sixmonths)
Run Code Online (Sandbox Code Playgroud)
看起来很酷,对吗?
不.接下来,我尝试"rake db:schema:dump",我得到了这个:
Ken-Vogts-MacBook:sixmonths ken$ rake db:schema:dump
(in /Users/ken/sixmonths)
rake aborted!
Please install the …Run Code Online (Sandbox Code Playgroud) 我想创建一个表,其中既有"已创建"列,另有"已更新"列."created"列将设置为insert并且永不更改.每次更新行时,"已更新"列都会更改.我不想在后续的INSERT或UPDATE语句中混淆这些列中的任何一个.那么如果我从这样的东西开始,我的CREATE TABLE语句应该是什么样的?
CREATE TABLE IF NOT EXISTS `mydb`.`mytable` (
`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`updated` TIMESTAMP,
`created` TIMESTAMP,
`deleted` TINYINT DEFAULT 0,
`notes` TEXT DEFAULT '',
`description` VARCHAR(100)
) TYPE=innodb;
Run Code Online (Sandbox Code Playgroud)
我似乎无法创建一个包含两个TIMESTAMP列的表.我不关心列是TIMESTAMP还是DATETIME或者其他什么,我只是希望它们由MySQL填充而没有来自insert或update语句的明确指令.
我希望能够像这样插入:
INSERT INTO `mydb`.`mytable` (notes,description) VALUES ('some note','some description');
Run Code Online (Sandbox Code Playgroud)
和这样的更新:
UPDATE `mydb`.`mytable` SET notes=CONCAT(notes,'some more notes') WHERE id=1;
Run Code Online (Sandbox Code Playgroud)
两者都不必显式设置"已创建"列或设置(或重置)插入或更新语句中的"已更新"列.
我想创建一个php脚本来执行shell命令并返回其输出.服务器需要私钥.当我第一次决定测试时,我创建了这个:
<?php
$command = "ls";
$output = shell_exec($command);
echo "<pre>$output</pre>";
?>
Run Code Online (Sandbox Code Playgroud)
这很好用.但当我改变$command命令时,我真的想要运行:
$command = "/etc/init.d/mycontrollerd status /etc/mycontrollerconfig";
Run Code Online (Sandbox Code Playgroud)
它给了我这个输出:
You need root privileges to run this script
Run Code Online (Sandbox Code Playgroud)
我的猜测是我需要使用sudo.当然,这需要将pem文件放在服务器上的某个位置.假设我这样做,究竟应该$command是什么?我应该使用shell_exec(),exec(),system()或其他什么东西?
我试图扩展PHP类而不重写整个事情.这是一个例子:
<?
$a = new foo();
print $a->xxx();
$b = new bar();
print $b->xxx();
class foo {
const something = 10;
public function xxx() {
$this->setSomething();
return $this->something;
}
private function setSomething() {
$this->something = self::something;
}
}
class bar extends foo {
public function xxx() {
$this->setSomething();
$this->something++;
return $this->something;
}
}
?>
Run Code Online (Sandbox Code Playgroud)
但是当我运行脚本时,我收到以下错误:
Fatal error: Call to private method foo::setSomething() from context 'bar' in test.php on line 23
Run Code Online (Sandbox Code Playgroud)
似乎bar不继承私有函数setSomething().如何在不修改foo类的情况下解决这个问题?
我已经使用Composer 按照此处的入门说明安装AWS SDK for PHP .我在我的html root中安装了它.我在"AmazonS3FullAccess"的唯一许可下创建了一个名为"ImageUser"的IAM用户,并捕获了它的密钥.
根据这里的说明,我创建了一个名为"凭据"的文件,如下所示:
[default]
aws_access_key_id = YOUR_AWS_ACCESS_KEY_ID
aws_secret_access_key = YOUR_AWS_SECRET_ACCESS_KEY
Run Code Online (Sandbox Code Playgroud)
是的,我用适当的键替换了那些大写单词.该文件位于html根目录中隐藏的子目录".aws"中.该文件的UNIX权限为664.
我创建了这个简单的文件(在我的html根目录的一个名为"t"的子目录中称为"test.php")来测试将文件上传到S3:
<?php
// Include the AWS SDK using the Composer autoloader.
require '../vendor/autoload.php';
use Aws\S3\S3Client;
use Aws\S3\Exception\S3Exception;
$bucket = 'testbucket';
$keyname = 'test.txt';
// Instantiate the client.
$s3 = S3Client::factory();
try {
// Upload data.
$result = $s3->putObject(array(
'Bucket' => $bucket,
'Key' => $keyname,
'Body' => 'Hello, world!',
'ACL' => 'public-read'
));
// Print the URL to the object.
echo $result['ObjectURL'] . …Run Code Online (Sandbox Code Playgroud) 我正在使用骨干样板,你可以在这里找到它.
我想知道如何添加全局功能,没有明确地绑定到任何特定的集合,模型,视图等.一个例子是'注销'功能,可能如下所示:
var logout = function(){
// Clear Favorites
// Handle asynchronous logging (all in-app logs are sent to the server at logout)
// Redirect to the login page
// Do other cleanup
}
Run Code Online (Sandbox Code Playgroud)
基本上,这将处理大量的模型/收藏,包括Favorites,Events,Logs,Users,和应用程序Router
如果你查看主干 - 样板文件中的main.js文件,我一直在顶部添加这些函数(第13行),如下所示:
function(namespace, $, Backbone, Example){
// BEGIN MY APP LOGIC
namespace.app.logout = function(){
// Do logout here
};
// END MY APP LOGIC
var Router = Backbone.Router.extend({
Run Code Online (Sandbox Code Playgroud)
这样可以正常工作,但应用程序逻辑很快就会失去控制.我的问题是,组织这段代码的更好方法是什么?如果我有一个Utils模块并加载了Utils模块,它会更有意义吗? …
我有一些简单的javascript代码,如下所示:
var divLink = $(this).attr("href");
alert(divLink);
if ($(divlink).is(":visible")) $(divLink).hide("blind", { direction: "vertical" }, 1000);
Run Code Online (Sandbox Code Playgroud)
它在第3行抛出此错误:
Uncaught ReferenceError: divlink is not defined
Run Code Online (Sandbox Code Playgroud)
我放入第二行只是为了看看变量divLink中的内容.它返回:
The page at mysite.com says:
#categories_settings
Run Code Online (Sandbox Code Playgroud)
一旦我在对话框中单击"确定",它就会抛出错误.怎么会这样?
php ×4
javascript ×3
jquery ×2
ajax ×1
amazon-s3 ×1
backbone.js ×1
class ×1
facebook ×1
inheritance ×1
json ×1
mysql ×1
postgresql ×1
shell-exec ×1