我需要在PHP中用" - "拆分字符串并获取最后一部分.
所以从这个:
ABC-123-XYZ-789
我希望得到
"789"
这是我提出的代码:
substr(strrchr($urlId, '-'), 1)
Run Code Online (Sandbox Code Playgroud)
哪个工作正常,除了:
如果我的输入字符串不包含任何" - ",我必须得到整个字符串,如:
123
我需要回来
123
它需要尽可能快.任何帮助表示赞赏!
是否可以将SVG用于Open Graph图像?
我尝试了它并没有与Facebook一起工作,但是我不确定它是否是我的SVG的问题或者通常是不可能的.
我是这样做的:
<meta content="http://www.example.com/mylogo.svg" property="og:image">
Run Code Online (Sandbox Code Playgroud) 我需要检测并对左/右滑动作出反应,但是想让用户能够滚动相同的元素,所以只要他左右移动他的手指,最大上/下移动X像素,它不应该滚动,但是当它超过X时,它应该滚动.
所以我做的是:
var startX, startY, $this = $(this);
function touchmove(event) {
var touches = event.originalEvent.touches;
if (touches && touches.length) {
var deltaX = touches[0].pageX - startX;
var deltaY = touches[0].pageY - startY;
if (Math.abs(deltaY) > 50) {
$this.html('X: ' + deltaX + '<br> Y: ' + deltaY + '<br>TRUE');
$this.unbind('touchmove', touchmove);
return true;
} else {
$this.html('X: ' + deltaX + '<br> Y: ' + deltaY);
event.preventDefault();
}
}
}
function touchstart(event) {
var touches = event.originalEvent.touches;
if (touches && …Run Code Online (Sandbox Code Playgroud) 因为你不能在MySQL的where子句中使用计算列,如下所示:
SELECT a,b,c,(a*b+c) AS d FROM table
WHERE d > n
ORDER by d
Run Code Online (Sandbox Code Playgroud)
你必须使用
SELECT a,b,c,(a*b+c) AS d FROM table
WHERE (a*b+c) > n
ORDER by d
Run Code Online (Sandbox Code Playgroud)
是计算(在那个例子中"(a*b + c)"每行执行一次还是两次?有没有办法让它更快?我觉得很奇怪,可以在列上进行ORDER而不是有一个WHERE-条款.
我的好友Carsten Lau提出了一个关于如何阅读跨域cookie的有趣想法.
情况:您想要从域"B"上设置的域"A"中读取cookie.想法:从域"A"上的客户端,您对域"B"上的动态资源执行get-request - fe图像或javascript,服务器"B"实际上是一种能够读取cookie的编程语言像PHP,Java等.通过该请求,您可以发送一个唯一的标识符,如会话ID.因此,查看域"A"上的站点的客户端上的代码可能如下所示:
<img src="www.domainB.com/?getCookie.php?sessionID=1234">
Run Code Online (Sandbox Code Playgroud)
现在是有趣的部分,服务器B在服务器端读取由域"B"设置的cookie,并将结果与提供的session-id一起写入域"A"可访问的DB中,或者返回包含cookie信息的响应域"A"上的客户端然后通过AJAX将其发送到服务器"A".
我很确定我们还没有发现一个漏洞.我个人认为服务器"B"将无法读取cookie信息,因为客户端浏览器URL指向域"A",但当然上面解释的"getCookie" - 请求指向"B".
请告诉我们您对它的看法,工作原理或无法工作的原因.令我惊讶的是,一个小小的概念证明是成功的.
我有几个DIV,其内容具有data-weight属性,该属性通过AJAX定期更新.
我在循环中对它们进行排序,迭代来自ajax-request的新值.
由于数据权重可以随时更新为任何值,因此订单可以从更新更改为更新.
我的排序逻辑似乎有缺陷(至少可以说是))因为它只将每个元素与下一个元素进行比较,.next()所以你必须单击"按数据权重排序"最大值.4个元素的4次,直到它们被排序(见下面的小提琴)
重要的是要知道要排序的DIV包含外部资源,如图像,视频等,因此重要的是它们被移动而不是重新创建,因为我认为当重新插入DOM时,包含的资源会被重新加载这对我的用例来说是不可接受的.
由于很难描述和理解,这是我的小提琴:
更新
虽然主要问题已经解决,但仍然存在这样的问题:当包括fe Youtube-Videos时,每次重新排序DIV时都会重新加载它们,即使视频在DOM中没有改变位置也是如此.a)看起来很奇怪,b)中断视频播放.阅读有关该主题的更多信息,在DOM中移动iframe似乎总是让他们重新加载他们的内容 - 这有多愚蠢?
对于YT视频,小提琴更新为固定数据权重为1,因此它始终保持在最顶层.
想法非常欢迎!!
将视网膜和非视网膜显示到相应的设备,如下所示:
<picture>
<source srcset="non-retina.jpg, retina.jpg 2x">
<img src="non-retina.jpg">
</picture>
Run Code Online (Sandbox Code Playgroud)
作品.但Google Pagespeed Insight告诉它在加载CSS之前无法呈现这一点,我们会受到惩罚.但是,仅在移动视图中 - 这是Pagespeed Insights无论如何渲染Retina图像的唯一情况.
我们完整的CSS文件位于页脚中,因为我们在头部有一个重要的,重要的CSS内联.
但是,此代码无需任何来自Pagespeed Insights的投诉
<picture>
<img src="non-retina.jpg">
</picture>
Run Code Online (Sandbox Code Playgroud)
我们缺少什么?在知道要采用哪个source/srcset-image之前,浏览器是否有必要阅读样式规则?
测试用例:
下面是它的测试页:http://pagespeed-srcset-nopicturefill.slople.com/ ...这是它的结果:https://developers.google.com/speed/pagespeed/insights/?url=http% 3A%2F%2Fpagespeed-srcset-nopicturefill.slople.com%2F&标签=移动
根据这篇文章http://johanbrook.com/browsers/native-momentum-scrolling-ios-5/,应该能够像这样启用类似本机的动量滚动:
body{
-webkit-overflow-scrolling: touch;
}
Run Code Online (Sandbox Code Playgroud)
但是,这不会改变我的webapp中的任何内容.它有或没有该属性滚动相同.我希望像本机应用程序一样有更长的动力.
我在一个可滚动的DIV上测试它,它可以工作 - 但我不想为此添加任何不必要的标记.
有小费吗?
更多信息
好吧,它"有点"的工作原理如下:
html, body {
height:100%;
overflow: scroll;
-webkit-overflow-scrolling: touch;
position:relative;
}
Run Code Online (Sandbox Code Playgroud)
然而,任何位置:固定在BODY标签内的东西在滚动时移动,并在滚动停止时重新连接到它的正确位置.有什么我可以做的来解决这个问题吗?
有人对此有任何意见吗?
我将画布图像编码为base64,这给了我:
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAICAgICAQICAgICAgIDAwYEAwMDAwcFBQQGCAcICAgHCAgJCg0LCQkMCggICw8LDA0ODg4OCQsQEQ8OEQ0ODg7/2wBDAQICAgMDAwYEBAYOCQgJDg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg4ODg7/wAARCAAKAAoDASIAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSExBhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD5a/Z7/Zw8EfF/9mT4h6Z4u0GTwt8WNP1iSya7vZp0uNKYJBsItyANjt5o2uGkDBsHhMfDsOn2zWcTQ39tJCUBR5HVGYY4JUEgH2BIHrXunw71vWdI/aa+POraTq+p6Xqr+H/Edy15aXTxTNMt4m2QupDbxubDZyMn1r4yRE8pflXoO1fleQYDEzzHGxnXbjeEop6qPNFtpXb00Wm3zP1vNM2pUMLh5RpK75k3fV8rVm7LzP/Z
Run Code Online (Sandbox Code Playgroud)
这似乎是一个有效的base64图像(用在线解码器解码).
我用其他(form-)变量和jquery ajax一起发送它,如下所示:
$.ajax({
type: "POST",
url: "index.php?action=saveNewPost",
data: {text: text, img: encodeURIComponent(base64img)},
contentType: "application/x-www-form-urlencoded;charset=UTF-8",
success: function(){
//...
}
});
Run Code Online (Sandbox Code Playgroud)
在服务器上,这是这一行:
saveImage(utf8_decode($_POST['img']));
Run Code Online (Sandbox Code Playgroud)
哪个叫:
function saveImage($base64img){
define('UPLOAD_DIR', '../uploads/');
$base64img = str_replace('data:image/jpeg;base64,', '', $base64img);
$data = base64_decode($base64img);
$file = UPLOAD_DIR . uniqid() . '.jpg';
file_put_contents($file, $data);
}
Run Code Online (Sandbox Code Playgroud)
但是,文件未保存.可能有什么不对?
假设我有2个php对象:
<?php
class Post {
public $id;
public $text;
public $user_id;
}
?>
Run Code Online (Sandbox Code Playgroud)
和
<?php
class User {
public $id
public $name
}
?>
Run Code Online (Sandbox Code Playgroud)
每个帖子都有一个唯一约束,数据库中有1个用户.
我想用PDO"FETCH_CLASS"方法将数据填充到"Post"对象中,该方法适用于所有"Post"属性但是如何填充"User"中的属性?
我的SQL语句如下所示:
SELECT post.id,
post.text,
post.user_id,
user.id,
user.name
FROM POST INNER JOIN User on post.user_id = user.id
Run Code Online (Sandbox Code Playgroud)
谢谢!
更新:
ATM我填写我的"Post"类,如下所示:
$statement = $db -> prepare($query);
$statement -> execute();
$statement -> setFetchMode(PDO::FETCH_CLASS, 'Post');
$posts = $statement -> fetchAll();
Run Code Online (Sandbox Code Playgroud)
那么我如何更改它以填充其他类"用户"?
解:
$statement = $db -> prepare($query);
$statement -> execute();
$posts = array();
while (($row = $statement->fetch(PDO::FETCH_ASSOC)) !== …Run Code Online (Sandbox Code Playgroud)