我正在写一个Twitter mashup服务.当我收到json数据时,一些twit id大于2147483647(这是32位服务器上允许的最大整数).
我提出了一个有效的解决方案,即将整数转换为字符串; 这样,json_decode()函数在尝试生成数组时不会有任何问题.
这是我需要实现的:
之前(原始JSON数据)
[{"name":"john","id":5932725006},{"name":"max","id":4953467146}]
Run Code Online (Sandbox Code Playgroud)
之后(解决方案)
[{"name":"john","id":"5932725006"},{"name":"max","id":"4953467146"}]
Run Code Online (Sandbox Code Playgroud)
我正在考虑preg_match实现,但我不知道如何做到防弹.任何帮助都感激不尽.
哪个更有效(管理超过100K记录时):
A. Mysql
SELECT * FROM user ORDER BY RAND();
Run Code Online (Sandbox Code Playgroud)
当然,之后我已经拥有该记录的所有字段.
B. PHP
使用memcached让$ cache_array保存"SELECT id_user FROM user ORDER BY id_user"中的所有数据1小时左右......然后:
$ id = array_rand($ cache_array);
当然,之后我必须通过以下方式进行MYSQL调用:
SELECT * FROM user WHERE id_user = $id;
Run Code Online (Sandbox Code Playgroud)
所以...哪个更有效率?A还是B?
我在实施Firebase for Firebase Cloud Messaging(FCM)时遇到一个特定问题:
如您在下面的代码中看到的,//messaging.usePublicVapidKey("<MY VAPID KEY IN HERE>");当前已注释。VAPID密钥是通过以下命令获得的:web-push generate-vapid-keys在服务器的终端中。如果取消注释此行,则在调用notification_permission()以下命令时会在控制台中收到此错误:
代码:“消息传递/令牌订阅失败”,
消息:“请求缺少必需的身份验证凭据。预期的OAuth 2访问令牌,登录cookie或其他有效的身份验证凭据。请参阅https://developers.google.com/identity/sign-in/web/devconsole-project。”,
堆栈:“ FirebaseError:请求缺少必需的身份验证凭据。预期的OAuth 2访问令牌,登录cookie或其他有效的身份验证凭据。请参阅https://developers.google.com/identity/sign-in/web/devconsole-project。https://www.gstatic.com/firebasejs/4.12.1/firebase-messaging.js:6:8316 “
这是我当前的index.html文件:
<script src="https://www.gstatic.com/firebasejs/4.12.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/4.12.1/firebase-messaging.js"></script>
<script>
var config = {
apiKey: "<MY FIREBASE API KEY>",
authDomain: "<MY FIREBASE PROJECT ID>.firebaseapp.com",
databaseURL: "https://<MY FIREBASE PROJECT ID>.firebaseio.com",
projectId: "<MY FIREBASE PROJECT ID>",
storageBucket: "<MY FIREBASE PROJECT ID>.appspot.com",
messagingSenderId: "<MY FIREBASE SENDER ID?>"
};
firebase.initializeApp(config);
//messaging app
const messaging = firebase.messaging();
//vapid …Run Code Online (Sandbox Code Playgroud) 我有一个包含以下文件的目录:
/files/archive.01.json
/files/archive.02.json
/files/archive.03.json
/files/hello.php
Run Code Online (Sandbox Code Playgroud)
我需要 .htaccess 来阻止对该目录中所有 .json 文件的访问。有任何想法吗?
我在开发服务器上.当我在PHP中这样做:
echo date('r',time());
Run Code Online (Sandbox Code Playgroud)
回复:星期二,2010年6月1日18:10:32 -0400
但是,我的电脑时间是17:10:32(即格林威治标准时间-5).我在哪里配置我的apache/php来改变这个设置?我已经查看了php.ini和httpd.conf.
谢谢
我为我的城市写了一个本地名称/电话/地址搜索引擎.
用户必须能够通过访问以下任一URL快速访问结果:
这是我目前的.htaccess配置:
# Smart links
RewriteRule ^([0-9]+)$ /html/index.php?phone=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)$ /html/index.php?lastname=$1 [QSA,L]
RewriteRule ^([A-Za-z-]+)/([A-Za-z-]+)$ /html/index.php?lastname=$1&name=$2 [QSA,L]
Run Code Online (Sandbox Code Playgroud)
这非常有效,除非用户在姓氏和/或名字中包含空格.此外,搜索名称时不能使用任何数字.
关于如何在网址中留出空格的任何想法?谢谢!
我是PDO的新手,目前正在开发返回搜索结果的API调用.如果搜索查询有2个可选参数,如何设置准备语句?
$app->get('/get/search', function () {
$sql = 'SELECT * FROM user WHERE name LIKE :name AND city = :city AND gender = :gender';
try {
$stmt = cnn()->prepare($sql);
$stmt->bindParam(':name', '%'.$_GET['name'].'%', PDO::PARAM_STR);
$stmt->bindParam(':city', '%'.$_GET['city'].'%', PDO::PARAM_STR);
$stmt->bindParam(':gender', $_GET['gender'], PDO::PARAM_INT);
$stmt->execute();
if($data = $stmt->fetchAll()) {
echo json_encode($data);
} else {
echo json_encode(array('error' => 'no records found');
}
} catch(PDOException $e) {
echo json_encode(array('error' => $e->getMessage()));
}
}
Run Code Online (Sandbox Code Playgroud)
这里的问题是$ _GET ['city']和$ _GET ['gender']都是可选的.如果我尝试运行上面的代码,它将假设任何空变量也应匹配列中的空值; 另一方面,如果我做这样的事情:
if($_GET['gender']) $stmt->bindParam(':gender', $_GET['gender'], PDO::PARAM_INT);
Run Code Online (Sandbox Code Playgroud)
...它将返回此错误:"SQLSTATE …
这是我在里面的当前推特卡片数据 <head>
<meta name="twitter:card" content="summary_large_image">
<meta name="twitter:site" content="@tradukka">
<meta name="twitter:title" content="Currency exchange: United States Dollar (USD) - Argentine Peso (ARS)">
<meta name="twitter:description" content="Currencies exchange updated in real time: United States Dollar (USD) - Argentine Peso (ARS) / 1 USD...">
<meta name="twitter:image" content="http://tradukka.com/meta/359ac65be829e896c12a3126fa9c71d0.jpg">
<meta name="twitter:image:width" content="750">
<meta name="twitter:image:height" content="370">
<meta name="twitter:url" content="http://tradukka.com/currency/usd/ars">
Run Code Online (Sandbox Code Playgroud)
如果我发送带有该链接的推文,则推文中会显示所有信息,图片除外:
我也尝试使用卡验证器:
...它获取除图像之外的所有内容。
另外,我也已经尝试过使用twitter:image:src。该域已列入白名单。关于为什么图像没有显示在推文中的任何想法?
我正在尝试从 MySQL InnoDB 表中获取一些统计信息。为了获得更快的结果,我正在使用:
SELECT TABLE_ROWS FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_SCHEMA = "botonera" AND TABLE_NAME = "log";
Run Code Online (Sandbox Code Playgroud)
它工作正常,但我还需要在这些结果中结合特定的过滤器:
WHERE log.id_cat = 1
Run Code Online (Sandbox Code Playgroud)
如何将 INFORMATION_SCHEMA 结果与相关表内的特定列过滤器相结合?谢谢。
让我们说我有一个textarea与此文本:
如您所见,第3行和第4行为空(\n).我需要获得精确的线条结构(也有空行)并将其转换为数组.每一行都是数组的一个元素.这是我目前的代码:
var lines = $('#q').val().split(/\n/);
alert(lines.length); //using alert() because IE doesn't support console.log()
var texts = [];
for(i = 0; i < lines.length; i++) {
texts.push($.trim(encodeURIComponent(lines[i])));
}
Run Code Online (Sandbox Code Playgroud)
除了IE之外,它适用于所有浏览器.由于某种原因,split()函数忽略IE中的空行(3和4).因此,它们永远不会传递到数组中:s
解决方案通过Squeegy在评论
替换split(/\n/)为split("\n")- 该死的IE!