小编Mat*_*ath的帖子

在 php 中使用 curl 从 FTP 下载文件

我正在制作一个 php 脚本,打算在 CLI 中运行,这将帮助我在 ftp 服务器上下载文件。我将向您展示到底出了什么问题,但在我向您解释上下文之前。

我在一个共享老歌游戏图像文件的网站上注册。当我们想下载这个站点上的文件时,我们必须登录以检索下载链接。然后,给出的链接是 FTP 下载链接。

我使用 Wireshark 捕获了 FTP 连接数据包,并将其与失败的脚本化 FTP 传输进行了比较。

所以,.. FTP 服务器接受匿名连接。当我使用浏览器下载文件时,文件的链接是这样的;

ftp://website.url/somefolder/1/foo/bar/SOMEOLDIE.rar

现在,如果我使用 FileZilla 连接到这个 FTP,通过匿名登录,我会获得访问权限,我会看到一些文件夹,但是当我转到我的 iso 必须所在的“某个文件夹”时,该文件夹是空的。

看这张图,然后我会告诉你代码。 在此处输入图片说明 现在的代码;

function download_file($url){
    echo "Downloading: ".$url;
    $ch = curl_init($url);
    $fp = fopen("data/output.rar", "w");
    curl_setopt($ch, CURLOPT_HEADER, 1);
    curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, 'data/cookies.txt');
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    //curl_setopt($ch, CURLOPT_FAILONERROR, 1);
    //curl_setopt($ch, CURLOPT_FTPLISTONLY, 1);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_BINARYTRANSFER, 1);
    curl_setopt($ch, CURLOPT_USERPWD, "anonymous:mozilla@example.com");
    curl_setopt($ch, CURLOPT_FILE, $fp);
    curl_exec($ch);
    //var_dump(curl_getinfo($ch));
    //echo …
Run Code Online (Sandbox Code Playgroud)

php ftp curl

5
推荐指数
1
解决办法
9263
查看次数

枚举和结构定义

使用代码块编译项目时出现错误。我的问题来自枚举定义和结构定义。

它们是由bot定义在头文件中的,因为我只在.c关联文件中使用那些枚举和结构,所以它们起作用了。但是,当我在另一个.c文件中包含.h文件时,出现错误,这是一些代码;

maps.h

#include <stdlib.h>
#include <stdio.h>

enum Property { BACKGROUND, FOREGROUND, BLOCK, EVENT };

typedef struct {
   char map_name[50];
   int width;
   int height;
   char* map_struct;
}rpgMap;
char getTileProperty(rpgMap map, int x, int y, int property);
Run Code Online (Sandbox Code Playgroud)

maps.c

#include "maps.h"

char getTileProperty(rpgMap map, int x, int y, int property){    // Works
   char value = NULL;
   value = map.map_struct[(((y*(map.width-1))+y+x) * 4 ) + property];
   return value;
}   
rpgMap loadMap(unsigned char* map){
   rpgMap Map;
       //....
       //some code
       //...
   return Map;
}
// This …
Run Code Online (Sandbox Code Playgroud)

c enums struct header redefinition

2
推荐指数
1
解决办法
7002
查看次数

构建错误:多重定义

我有一个头文件,其中包含一个无符号字符数组,实际上是一个 ttf 字体文件。在 .c 文件中,我可以加载字体并使用它(我在 .c 文件中包含 ttf 头文件),但问题是当我尝试在另一个 c 文件中使用它时,我收到这两个错误之一;

我遇到的第一个错误是我的数组未声明。

因此,我包含了包含数组的头文件,然后出现第二个错误;多重定义...

有人可以帮忙吗?我不明白。我希望我的解释很清楚,并对我的近似英语感到抱歉:)

c build header-files multiple-definition-error

1
推荐指数
1
解决办法
4784
查看次数

与PHP在C中的"爆炸"并行:使用分隔符将char*拆分为char*

可能重复:
在C中使用分隔符拆分字符串

我正在寻找一种使用分隔符将char*"爆炸"成其他char*的好方法.

我的分隔符将是 #

php c explode strtok

1
推荐指数
1
解决办法
7352
查看次数

SDL在HW_SURFACE上进行双缓冲

我不明白为什么我的SDL应用程序不会像我要的那样设置DOUBLE_BUF;

这是一个简短的代码,这个,没有参数执行打开全屏窗口,1024*768,在32 BPP模式.

#include <stdio.h>
#include <stdlib.h>
#include <SDL/SDL.h>

#include "main.h"

SDL_Surface *screen;
Main mainstruct;

void testModesInFormat(SDL_PixelFormat * format)
{

    SDL_Rect **modes;
    int i;

    printf("Available hardware accelerated, fullscreen modes in %d bpp:\n",
           format->BitsPerPixel);

    modes = SDL_ListModes(format, SDL_FULLSCREEN | SDL_HWSURFACE | SDL_DOUBLEBUF);

    // Check is there are any modes available
    if(modes == (SDL_Rect **) 0)
    {
        printf("\tNo modes available!\n");
        return;
    }

    // Check if our resolution is restricted
    if(modes == (SDL_Rect **) - 1)
    {
        printf("\tAll resolutions available.\n");
    }
    else
    { …
Run Code Online (Sandbox Code Playgroud)

flags sdl doublebuffered

1
推荐指数
1
解决办法
1477
查看次数

在PHP中使用Perl的Data :: Dumper格式数组

我需要访问一个由Perl的Data :: Dumper输出的数组.
Array是一个原始文件,我需要用php访问它.
数组格式如下:

$stats = {
  'days' => 25,
  'lengths' => {
    'Piwee' => 269,
    'Jeanne-' => 904,
    'kaAnar' => 340,
[... Very Big ARRAY....]
Run Code Online (Sandbox Code Playgroud)

我在这里找到了这个解决方案,但我不想使用eval(),因为这个数组将具有用户输入数据.因为在str_replace解决方案的情况下我总是需要eval()输出,我想我需要找到另一种方法来做到这一点.
也许转换为XML或直接PHP解析?
我不确定这里最好的解决方案是什么.

perl/PHP/bash解决方案没问题

注意1:我无法编辑输出此原始文件的Perl代码
注2:我不在Perl中编码所以我不知道如何使用这些数据

php arrays perl type-conversion perl-data-structures

0
推荐指数
1
解决办法
152
查看次数