Обрезать имя файла в ссылке

Discussion in 'PHP' started by Ru}{eeZ, 24 Nov 2008.

  1. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Пишу поиск сцылок со страницы, в общем, когда получаешь сцылку ток на файл на том-же домене, то нужно взять url той страницы, с которой искал и срезать с неё название файла, т.е. gygy.hu/vfe/evfev/index.html заменить на gygy.hu/vfe/evfev/, а потом приписать название найденного файла (пофиг, если даже будет ../../, всеравно всё сработается).
     
  2. ruzzer

    ruzzer Elder - Старейшина

    Joined:
    29 Jul 2007
    Messages:
    43
    Likes Received:
    10
    Reputations:
    3
    Я слишком хочу спать... Ваще нихера не получается((
     
  3. Chaak

    Chaak Elder - Старейшина

    Joined:
    1 Jun 2008
    Messages:
    1,059
    Likes Received:
    1,067
    Reputations:
    80
    пиши дальше...
     
  4. ruzzer

    ruzzer Elder - Старейшина

    Joined:
    29 Jul 2007
    Messages:
    43
    Likes Received:
    10
    Reputations:
    3
    в общем... по-моему сперва надо разделить строку в массив(explode) по разделителю "/". Потом как-то убрать последний обьект массива( это я не могу), обьеденить обратно, и приклеить имя файла в конец строки.... Ссори, может не так понял..
     
  5. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339

    Во-во, я тоже так понял, но тогда чем это отличается от просто "спарсить урл"? Автор, скажи по-русски, чо те надо в итоге
     
  6. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    пытаюсь унсетить последнюю часть массива:
    $bestPage = split('/', $bestPage);
    $bestPage = unset(array_pop($bestPage));
    выдаёт:
    Parse error: syntax error, unexpected T_UNSET in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\xdf\mailer\seachmail\index.php on line 58
     
  7. AdReNa1!Ne

    AdReNa1!Ne Elder - Старейшина

    Joined:
    24 May 2007
    Messages:
    70
    Likes Received:
    105
    Reputations:
    14
    ну значит функция unset отсутствует o_O
    Вообще ансеттят по идее переменную, а не какой-то её кусок...

    // слабо понимаю что ты хочешь, т.к. слегка нетрезв) завтра если че - пиши.
     
  8. Ru}{eeZ

    Ru}{eeZ Elder - Старейшина

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    точнее наверное надо было так:
    $bestPage = split('/', $bestPage);
    unset(array_pop($bestPage)); //58 строка
    echo '<pre>'; var_dump($bestPage); echo '</pre>';
    но выдаёт:
    Fatal error: Can't use function return value in write context in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\xdf\mailer\seachmail\index.php on line 58
     
  9. Pashkela

    Pashkela Динозавр

    Joined:
    10 Jan 2008
    Messages:
    2,750
    Likes Received:
    1,044
    Reputations:
    339
    $t=array;
    $t = explode('/', $bestPage);
    print_r ($t);
     
  10. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    на дельфи я делал так: посимвольным циклом с конца искал позицию последней дроби и обрезал всё до нее
     
  11. biophreak

    biophreak Elder - Старейшина

    Joined:
    3 Aug 2007
    Messages:
    348
    Likes Received:
    63
    Reputations:
    15
    Да, но только форум про делфи немного ниже был в списке ;)
     
  12. t4Nk

    t4Nk Elder - Старейшина

    Joined:
    23 Sep 2007
    Messages:
    70
    Likes Received:
    33
    Reputations:
    0
    PHP:
    $url 'gygy.hu/vfe/evfev/index.html';
    echo 
    substr($url0strrpos($url'/')+1);
    выводит gygy.hu/vfe/evfev/
    или я не так понял? =\
     
    1 person likes this.
  13. Chode

    Chode Elder - Старейшина

    Joined:
    20 Jul 2008
    Messages:
    164
    Likes Received:
    19
    Reputations:
    0
    PHP:
    $url="http://gygy.hu/vfe/evfev/index.html";
    $end=strrpos($url,"/");
    $rest substr($url0$end+1); 
    ммм?
    t4Nk = одинакомыслец =)
     
  14. crystalbit

    crystalbit Elder - Старейшина

    Joined:
    6 Jun 2008
    Messages:
    212
    Likes Received:
    88
    Reputations:
    8
    biophreak, а реализовать на php не получится? Я привел лишь алгоритм
    Тем более работа со строками реализована намного лучше, есть даже такая замечательная функция как strrpos