我有一个相当大的音乐网站,有一个大型的艺术家数据库.我一直在注意其他音乐网站抓取我们网站的数据(我在这里和那里输入虚拟艺术家名称然后谷歌搜索它们).
如何防止屏幕抓取?它甚至可能吗?
寻找匹配的正则表达式并替换(最好是PHP但无关紧要)来改变它(开始和结束只是需要保留的随机文本).
在:
fkdshfks khh fdsfsk
<!--g1-->
<div class='codetop'>CODE: AutoIt</div>
<div class='geshimain'>
<!--eg1-->
<div class="autoit" style="font-family:monospace;">
<span class="kw3">msgbox</span>
</div>
<!--gc2-->
<!--bXNnYm94-->
<!--egc2-->
<!--g2-->
</div>
<!--eg2-->
fdsfdskh
Run Code Online (Sandbox Code Playgroud)
到这个OUT:
fkdshfks khh fdsfsk
<div class='codetop'>CODE: AutoIt</div>
<div class='geshimain'>
<div class="autoit" style="font-family:monospace;">
<span class="kw3">msgbox</span>
</div>
</div>
fdsfdskh
Run Code Online (Sandbox Code Playgroud)
谢谢.
Google页面建议您缩小HTML,即删除所有不必要的空格.
CodeIgniter确实具有giziping输出的功能,或者可以通过.htaccess.但我仍然想从最终的HTML输出中删除不必要的空格.
我用这段代码玩了一下,看起来很有效.这确实导致HTML没有多余空格并删除其他选项卡格式.
class Welcome extends CI_Controller
{
function _output()
{
echo preg_replace('!\s+!', ' ', $output);
}
function index(){
...
}
}
Run Code Online (Sandbox Code Playgroud)
问题是可能有像<pre>,<textarea>等等的标签
,其中可能有空格,正则表达式应该删除它们.那么,如何从最终的HTML中删除多余的空间,而不使用正则表达式影响这些特定标记的空格或格式?
感谢@Alan Moore得到了答案,这对我有用
echo preg_replace('#(?ix)(?>[^\S ]\s*|\s{2,})(?=(?:(?:[^<]++|<(?!/?(?:textarea|pre)\b))*+)(?:<(?>textarea|pre)\b|\z))#', ' ', $output);
Run Code Online (Sandbox Code Playgroud)
ridgerunner在分析这个正则表达方面做得很好.我最终使用了他的解决方案.干杯里的干杯.
我做了一些环顾四周,但我仍然感到困惑.
我尝试过Crockford的JSMin,但Win XP因某些原因无法解压缩可执行文件.
我真正想要的是一个简单易用的JS minifier,它使用PHP来缩小JS代码 - 并返回结果.
原因是因为:我有2个文件(例如)我正在处理它们:scripts.js和scripts_template.js
scripts_template是我写的普通代码 - 然后我必须缩小它并将缩小的脚本粘贴到scripts.js中 - 我实际在我的网站上使用的脚本.
我想通过在我的页面上做这样的事情来消除中间人:
<script type="text/javascript" src="scripts.php"></script>
Run Code Online (Sandbox Code Playgroud)
然后是scripts.php的内容:
<?php include("include.inc"); header("Content-type:text/javascript"); echo(minify_js(file_get_contents("scripts_template.js")));
Run Code Online (Sandbox Code Playgroud)
这样,每当我更新我的JS时,我都不必经常访问网站来缩小它并将其重新粘贴到scripts.js中 - 所有内容都会自动更新.
是的,我也尝试过Crockford的PHP Minifier,我看了一下PHP Speedy,但我还不了解PHP类......那里有什么猴子可以理解的,也许是RegExp的东西?
我们如何让这更简单?
我只想删除制表符空格 - 我仍然希望我的代码可读.
这不像剧本使我的网站显得滞后,它只是一切都比没有好.
删除标签,有人吗?如果可能的话,如何完全删除BLANK线?
我发现了许多关于缓存的解释,其中一些甚至有例子,但是,了解它以及如何使用它有点模糊.我试过多次使用它,但我失败了(我想提高速度,我只想从服务器加载必需的).你能帮我把这个页面保存在浏览器的缓存中吗?如果可能的话,请给我一个解释或不同的方法来解决它(它也可以是JS!)?
PS:如果你给我一个适合这个页面的例子,它可以是Appcache;).
提前致谢.
我的Appcache文件名:offline.appcache.
CACHE MANIFEST
/style.css http://sistema.agrosys.com.br/sistema/labs/CSS_HTML/html1.html
<!DOCTYPE html>
<html lang="en" manifest="/offline.appcache">
<head>
<meta name="viewport" content="width=device-width" />
<title>page1</title>
<link rel="stylesheet" type="text/css" href="style.css">
</head>
<body>
<div class="testing_class">Test</div>
<div class="testing_clas">Test</div>
<div class="testing_cla">Test</div>
<div class="testing_cl">Test</div>
<div class="testing_c">Test</div>
<div class="testing_">Test</div>
</body>
</html>Run Code Online (Sandbox Code Playgroud)
我需要在生产中缩小我的PHP输出,从这个问题来看,听起来像Gzip应该这样做,而PHP代码没有变化.这将是理想的,但我使用mod_deflate,我仍然得到完整的空白; 我的印象是两者都使用了相同的压缩方法,Gzip只是添加了校验和和标题.改为Gzip会不会删除所提供内容中的空格?
我知道Gzip删除了大部分的大小,但是由于内联网应用程序上的大型表格,我发现缩小了html从5 MB表格中减少了2MB,甚至在线上文件大小减少了30kb除了压缩之外,我还要缩小它.这种缩小是否需要一些设置,或者Gzip vs Deflate在这方面是否真的重要?在线常识似乎表明放气速度略快,所以我选择了它.
可能的重复:
如何缩小 php 页面 html 输出?
我的意思是去除 html 中的所有换行符和空格并将其放在一行上。
我试过这个功能
public static function htmlCompress($html)
{
preg_match_all('!(<(?:code|pre|script).*>[^<]+</(?:code|pre|script)>)!',$html,$pre);
$html = preg_replace('!<(?:code|pre).*>[^<]+</(?:code|pre)>!', '#pre#', $html);
$html = preg_replace('#<!–[^\[].+–>#', '', $html);
$html = preg_replace('/[\r\n\t]+/', ' ', $html);
$html = preg_replace('/>[\s]+</', '><', $html);
$html = preg_replace('/[\s]+/', ' ', $html);
if (!empty($pre[0])) {
foreach ($pre[0] as $tag) {
$html = preg_replace('!#pre#!', $tag, $html,1);
}
}
return $html;
}
Run Code Online (Sandbox Code Playgroud)
但有时会出现像“?”这样的符号 因为这个字符串
$html = preg_replace('/[\s]+/', ' ', $html);
Run Code Online (Sandbox Code Playgroud)
为什么会出现这个符号以及如何压缩html?
我有一个文件都是php文件的网站,在服务器上我们也有htaccess对友好网址进行重写,即/ about
我们已经通过PHP缩小了JS和CSS,但是由于HTML在实际页面上的事实是有一种方法在php添加到页面的动态位之后但在服务器发回之前缩小html对客户?
我已经尝试实现minify,但是回调函数会破坏页面而没有错误.
嗨,我有一个像这样的html
<html>
<head>
<title>
Some title
</title>
</head>
<body>
<div id="one"> some sample info </div>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
如何使用 preg_replace 使用某些正则表达式删除此 html 中的空格(内容和标签内的空格除外)?所以得到这样的东西
<html><head><title>Some title</title></head><body><div id="one">some sample info</div></body></html>
Run Code Online (Sandbox Code Playgroud)
请问有人可以帮我吗?:)
我有一个PHP文件,我输出json.
<?php
header('Content-Type: application/json');
?>
var data = {
"cars": [
<?php foreach ($runshowcars as $rowscar):;?>
{
"id":"<?php echo $rowscar['id'] ?>",
"name":"<?php echo $rowscar['name'] ?>"
}
],
"boats": [
<?php foreach ($runshowboats as $rowsboat):;?>
{
"id":"<?php echo $rowsboat['id'] ?>",
"name":"<?php echo $rowsboat['name'] ?>"
}
],
};
Run Code Online (Sandbox Code Playgroud)
这可行,但输出看起来像这样.
var data = {
"cars": [
{
"id":"1",
"name":"Ford"
}
,{
"id":"2",
"name":"Honda"
}
]
};
Run Code Online (Sandbox Code Playgroud)
我希望它看起来像这样.
var data = {"cars": [{"id":"1","name":"Ford"},{"id":"2","name":"Honda"}]};
Run Code Online (Sandbox Code Playgroud)
我发现这样做的唯一方法是从我的php文件中删除空格,这显然不是一个理想的解决方案,因为它很难维护.
如何在这里剥离所有的空白区域?
我见过很多像这样的问题,如何缩小php页面的html输出?但是我不能在这里工作,因为我的数据不在变量中?
php ×9
html ×4
regex ×4
javascript ×3
compression ×2
minify ×2
.htaccess ×1
apache ×1
architecture ×1
caching ×1
codeigniter ×1
gzip ×1
html5 ×1
json ×1
mod-deflate ×1
whitespace ×1