在很多卷曲示例中,人们使用:
curl_setopt($ch, CURLOPT_HEADER, 0);
Run Code Online (Sandbox Code Playgroud)
这样做有什么好处?
我设法显示图像,我想知道我应该打开/关闭的选项以及原因.
curl_setopt($ch, CURLOPT_BINARYTRANSFER,1); // use?
curl_setopt($curlGetToken, CURLOPT_ENCODING, 'gzip'); // does it slow down MY server
Run Code Online (Sandbox Code Playgroud) 我想知道最安全的cookie登录方式是什么?如果您只是将通行证(使用salt加密)和用户名存储在cookie中并根据用户表进行验证,则潜在的攻击者可以窃取cookie并登录.人们通常不会检查'上次在线'.
那么"记住我的饼干"有更好的方法吗?IP不是一个好选择,是吗?(有些机器一直在更换IP).
如果您的唯一目标是检查php中是否存在行(true或false),那么最好的方法是什么?
选项1?
$result = mysql_query("SELECT * FROM users WHERE id = '1'");
$num_rows = mysql_num_rows($result);
if ($num_rows == 1)
// one user, like it should be.
else
// do something else
Run Code Online (Sandbox Code Playgroud)
选项2?
$query = mysql_query("select count(1) from users where id = 1")
if (mysql_result($query, 0) == 1)
// one user, like it should be.
else
// do something else
Run Code Online (Sandbox Code Playgroud)
选项3?
$query = mysql_query("something like SELECT EXISTS( SELECT */1/COUNT(*)/etc. ...)")
if (mysql_result($query, 0) == 1)
// one user, like …Run Code Online (Sandbox Code Playgroud) 我的cURL脚本在我的本地主机上不再工作(所以请记住它之前的DID工作)(因此它可以在我的外部主机上工作,因此:它可能是服务器设置):
这个脚本在我的localhost之前工作正常(它仍然在我的主机上).没有改变.
真正的问题:cURL没有设置cookie!什么apache模块应该用于写入cookie(在.txt文件中)?我正在运行wampserver.
请注意我已经在使用:
curl_setopt($curlTable, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($curlTable, CURLOPT_COOKIEFILE, 'cookie.txt');
Run Code Online (Sandbox Code Playgroud)
那个php.ini是:
extension=php_curl.dll is uncommented
Run Code Online (Sandbox Code Playgroud)
其他信息:
phpinfo()函数
curl
cURL support enabled
cURL Information 7.21.7
Age 3
Features
AsynchDNS Yes
Debug No
GSS-Negotiate Yes
IDN No
IPv6 Yes
Largefile Yes
NTLM Yes
SPNEGO No
SSL Yes
SSPI Yes
krb4 No
libz Yes
CharConv No
Protocols dict, file, ftp, ftps, gopher,
http, https, imap, imaps, ldap, pop3,
pop3s, rtsp, …Run Code Online (Sandbox Code Playgroud) 我希望能够更新ID最高的行.问题是:我找不到任何优雅的解决方案来做到这一点.到目前为止,这是我最好的尝试:
$highestId = mysql_result(mysql_query('SELECT MAX(id) FROM stats'),0);
mysql_query("UPDATE stats SET views = views +1 WHERE id = $highestId");
Run Code Online (Sandbox Code Playgroud)
也许有一种比我想的更好的方法.
关于如何解决这个问题的任何建议都是受欢迎的,即使这是一个完全不同的方法.
表 stats => id | views
编辑:我添加了一个适用于这种情况的解决方案.
我想从页面中提取一个表,我想(可能)使用DOMDocument和XPath.但如果你有更好的主意,请告诉我.
我的第一次尝试就是这个(显然是错误的,因为它将获得第一个关闭表标签):
<?php
$tableStart = strpos($source, '<table class="schedule"');
$tableEnd = strpos($source, '</table>', $tableStart);
$rawTable = substr($source, $tableStart, ($tableEnd - $tableStart));
?>
Run Code Online (Sandbox Code Playgroud)
我很难,这可能是用DOMDocument和/或xpath解决的......
最后,我希望标签之间的所有内容(在本例中为标签)和标签自身.所以所有HTML,不仅仅是值(例如,不只是'价值',而是'价值').并且有一个"捕获"......
这可能吗?
这是我想要从另一个网站提取的(简化的)源代码:(我还想显示html标签,而不仅仅是值,所以整个表格都带有'schedule'类)
<table class="schedule">
<table class="annoying nested table">
Lots of table rows, etc.
</table> <-- The problematic tag...
<table class="annoying nested table">
Lots of table rows, etc.
</table> <-- The problematic tag...
<table class="annoying nested table">
Lots of table rows, etc.
</table> <-- a problematic tag...
This could even be variable content. …Run Code Online (Sandbox Code Playgroud) 我想改变mysql结果的格式......
[0] =>
[id] => 1
[name] => King
[1] =>
[id] => 5
[name] => Queen
Run Code Online (Sandbox Code Playgroud)
对于这种格式:
[1] => King
[5] => Queen
Run Code Online (Sandbox Code Playgroud)
但我不知道如何将mysql结果放入这种格式.
$teamSql = "SELECT id, name FROM users WHERE projectid = '1';
$teamQuery = mysql_query($teamSql);
$teamFetch= mysql_fetch_assoc($teamQuery);
// and now?
Run Code Online (Sandbox Code Playgroud)