Как получить ошибку FTP при использовании PHP

В вашем коде есть некоторые проблемы:

  • вы должны использовать ungetc() вместо fseek() для возврата на один символ, чтобы избежать сбоя в потоках, которые не поддерживают поиск.

  • вы должны написать (check == '(') вместо жесткого кодирования значения символа ASCII. Это и более портативный и более читаемый.

  • Чтобы избежать неопределенного поведения, вы должны проверить EOF и fscanf() успешный анализ. На самом деле, это позволило бы избежать необходимости теста на check.

  • Когда вы анализируете листовой узел, вы не должны рекурсировать и анализировать дополнительные узлы ниже текущего.

  • index кажется избыточным, так как последовательности узлов должно быть достаточно, чтобы полностью определить, где остановиться.

Вот модифицированная версия:

Node *constructTreeHelper(FILE *infile, int *index) { 
    double lwire, rwire;
    int sink;
    double cap;
    Node *node;

    // Base case 
    if (*index <= 0) {
        // This test seems redundant with the file contents */
        return NULL; 
    }

    // this fscanf will fail on the byte byte if it is not a '('
    if (fscanf(infile, " (%le %le)", &lwire, &rwire) == 2) {
       // If the node is not a leaf node
        node = createNode(0, 0, lwire, rwire);
        *index -= 1;
        node->right = constructTreeHelper(infile, index); 
        node->left = constructTreeHelper(infile, index); 
    } else if (fscanf(infile, "%d(%le)\n", &sink, &cap) == 2) {
        // If the node is a leaf node
        node = createNode(sink, cap, 0, 0);
        *index -= 1;
    } else {
        // invalid format or end of file */
        node = NULL;
    }
    return node;
} 
19
задан AmbroseChapel 11 November 2008 в 04:35
поделиться

1 ответ

Рассмотрение API FTP здесь:

http://us.php.net/manual/en/function.ftp-rename.php

Там, кажется, не способ получить что-либо кроме TRUE или FALSE.

Однако Вы могли использовать ftp_raw, чтобы отправить необработанную команду RENAME и затем проанализировать возвращенное сообщение.

9
ответ дан 30 November 2019 в 02:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: