这是输出:
在推文按钮后看到该文字?它太烦人了,它应该在那里但是......是的,它就在那里。的xD
来自Google Chrome
调试器的scren捕获。
它发生在这里的某个地方。
echo sprintf('<a id="share" target="_blank" data-count="%d" title="Share on Twitter" href="http://twitter.com/share?text=%s&url=%s" class="btn btn-counter" rel="nofollow">%s</a>', $tweets, $text, $url, $placeholder);
这里是完整的PHP
代码:
<?php
function get_tweets($url){
$api = "http://urls.api.twitter.com/1/urls/count.json?url=";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_URL, $api.$url);
$result = json_decode(curl_exec($ch));
return $result->count;
}
function tweet($url, $text = '', $placeholder = 'Tweet'){
$text = urlencode($text);
$url = urlencode($url);
$tweets = get_tweets($url);
echo sprintf('<a id="share" target="_blank" data-count="%d" title="Share on Twitter" href="http://twitter.com/share?text=%s&url=%s" class="btn btn-counter" rel="nofollow">%s</a>', $tweets, $text, $url, $placeholder);
}
tweet('https://www.youtube.com/watch?v=[url]', 'The most beautiful story.');
?>
这里有超级完整的代码:
<!DOCTYPE html>
<html>
<head>
<title></title>
<style type="text/css">
#share{
text-decoration: none;
color: #fff;
width: 200px;
height: 50px;
background-color: #7fad33;
border-radius: 3px;
padding: 10px;
}
</style>
<script type="text/javascript">
function popupwindow(url, title, w, h) {
var sheight = window.innerHeight || document.body.clientHeight;
var swidth = window.innerWidth || document.body.clientWidth;
var left = (swidth/2)-(w/2);
var top = (sheight/2)-(h/2);
return window.open(url, title, 'toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=no, copyhistory=no, width='+w+', height='+h+', top='+top+', left='+left);
}
</script>
</head>
<body>
<center>
<a id="share" class="facebook" target="_blank" onclick="return !popupwindow(this.href, 'Facebook', '640', '300')" href="http://www.facebook.com/sharer/sharer.php?u=https://www.youtube.com/watch?v=ZO1klxIbUfA">Share</a>
<?php
function get_tweets($url){
$api = "http://urls.api.twitter.com/1/urls/count.json?url=";
$ch = curl_init();
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
curl_setopt($ch, CURLOPT_URL, $api.$url);
$result = json_decode(curl_exec($ch));
return $result->count;
}
function tweet($url, $text = '', $placeholder = 'Tweet'){
$text = urlencode($text);
$url = urlencode($url);
$tweets = get_tweets($url);
echo sprintf('<a id="share" target="_blank" data-count="%d" title="Share on Twitter" href="http://twitter.com/share?text=%s&url=%s" class="btn btn-counter" rel="nofollow">%s</a>', $tweets, $text, $url, $placeholder);
}
tweet('https://www.youtube.com/watch?v=[url]', 'The most beautiful story.');
?>
</center>
答案 0 :(得分:2)
您的源代码在某处有一堆不可见的字符。我的第一个猜测是:
tweet('https://www.youtube.com/watch?v=[url]', 'The most beautiful story.');
?>
^^^^-- HERE
但很明显,在您的代码中很难找到它们,因为当您在编辑器中查看它们时,这些字符可能是不可见的。
线索是角色本身。我的猜测是因为你的HTML中没有<meta charset="UTF-8" />
标题,你的浏览器会解释标准拉丁字符集中的字节。在这种情况下,有问题的字节是
226 (0xE2): â
128 (0x80): €
139 (0x8B): ‹
我猜测这些是UTF-8编码中构成Zero-Width Space的字节值并非巧合。
我认为,基本上,在您的来源的某个地方,您可以通过某种方式获得一些粘贴的内容。因为它们是零宽度空间,所以你无法在编辑器中看到它们(它们将被设置为正确显示这些UTF-8代码,作为零宽度空间,因此使它们不可见。)但是当你将它们渲染为HTML时,因为你使用的是非UTF-8编码(由于没有字符集元),它们就会显示为这些字节的拉丁字符解释,而不是零宽度空间。
你可以解决&#34;通过为输出设置正确的UTF-8字符集,您在评论中提到的问题,但请记住,仍然有一些字符您不希望输出。你现在无法看到。最好的办法是在某种编辑器中搜索源代码,以便查看这些字符的来源并删除它们。
你或许能够看到&#34;通过使用左/右箭头键将光标移动到文档的可疑部分,在普通编辑器中使用它们 - 在大多数编辑器中,零宽度空间仍然需要点击箭头键才能移过,即使它已经过去了。实际上并没有在屏幕上显示。