Слепая переменная при подгрузке файла

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

  1. Ru}{eeZ

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

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Файл в который гружу index.php:
    PHP:
      $_GET['p'] = 'new_read';
      
    file_get_contents($site['dir'].'system/main_system.php');
      
    $fp fopen('../database/news.db''a');
      
    fputs($fp'[id]'.$id2.'[/id]'."\r\n".'[name]'.$_POST['new_them_name'].'[/name]'."\r\n".'[content]'.$_POST['new_them_body'].'[/content]'."\r\n".'[date]'.date('d.m.y').'[/date]'."\r\n");
    main_system.php:
    PHP:
      case 'new_read':
    $file file_get_contents($site['dir'].'database/news.db');
    preg_match_all('/\[id\][0-9]+\[\/id\]/'$file$id);
    foreach(
    $id as $id2) {
      
    $id2 str_replace('[id]'''$id2);
      
    $id2 str_replace('[/id]'''$id2);
      
    //echo '<pre>'; var_dump($id2);
    }
    ../database/news.db:
    Code:
    [id]1[/id]
    [name]Бородин бомж[/name]
    [content]А там 
    тыры-пыры, 
    трали-вали...[/content]
    [date]15-11-2008[/date]
    [id]2[/id]
    [name]ЫЫыыЫЫыЫ[/name]
    [content]Текст всякий темный[/content]
    [date]14-10-2008[/date]
    [id][/id]
    [name]тест[/name]
    [content]тест[/content]
    [date]17.11.08[/date]
    
    В последний раз id был пустым, т.к. переменную не нашёл


    Я хочу получить переменную $id2 из news.db, затем записать её же в следующую новость, естьственно, когда всё получится буду плюсовать по одному...

    Notice: Undefined variable: id2 in C:\Program Files\Apache Software Foundation\Apache2.2\htdocs\php\xdf\18\admincp\index.php on line 20

    п.с. если юзать инклуд - то добавляется в начало сценария, а та часть кода файла index.php находится в нескольких ифах и т.д....

    Подскажите пожалуйста в чё может быть проблемма? :(
    спасибо
     
  2. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Это очень похоже на самописную базу данных на основе придуманного языка разметки. Надеюсь, это не так.
     
  3. Ru}{eeZ

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

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    Это так... но мне нужна помощь) юзать всякие мускули и т.п. не предлагать)
     
  4. astrologer

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

    Joined:
    30 Aug 2007
    Messages:
    837
    Likes Received:
    267
    Reputations:
    59
    Предлагаю юзать XML.
     
    1 person likes this.
  5. kalpsik

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

    Joined:
    10 Jan 2007
    Messages:
    58
    Likes Received:
    18
    Reputations:
    0
    предлагаю такую логику:
    if(!$id2){
    ищешь предыдущий;
    id2++;
    }

    да, если не находишь, тогда 0 получается...
     
    1 person likes this.
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    ТС, простите, но вы пишете что-то очень страшное:

    Чем вам не нравится
    PHP:
    preg_match_all('#\[id\]([0-9]+)\[/id\]#i',$file,$id);
    $id2=array_pop($id[1]);
    Зачем ненужные foreach, и еще - $id2 - будет массивом, в вашем случае. В моем - будет извлечен последний элемент
    Далее, что вы надеетесь получить file_get_contents'ом кроме текста? Или вы считаете что инклуд может быть только в начале скрипта?
     
    _________________________
  7. Ru}{eeZ

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

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    недодумал)

    текста кажется хватает)

    а разве нет? :)

    -

    array_pop() раньше не знал))
    а зачем ты ставишь модификатор i? он ведь там не нужен)))
     
    #7 Ru}{eeZ, 17 Nov 2008
    Last edited: 17 Nov 2008
  8. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Ru}{eeZ ТЕКСТА php скрипта? Заметьте, что переменные вы так не получите, ммм никогда ^^ А только либо ВЫВОД этого скрипта (все echo) или исходный код

    http://ru2.php.net/manual/ru/function.include.php - читать вдумчиво пример номер 1
     
    _________________________
    1 person likes this.
  9. GuD-ok

    GuD-ok New Member

    Joined:
    14 Nov 2008
    Messages:
    17
    Likes Received:
    2
    Reputations:
    0
    Не занимайся *ерней юзай XML.
     
  10. vikseriq

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

    Joined:
    31 Jul 2008
    Messages:
    118
    Likes Received:
    44
    Reputations:
    2
    1 есть классная фича - eval()
    2 хмл нервов больше потреплет - ради чтения можно взять через регекспы.
    3 видал как msini устроены? так тоже на пыхе можно
    ЗЫ мускуль рулит
     
    1 person likes this.
  11. Ru}{eeZ

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

    Joined:
    19 Feb 2008
    Messages:
    454
    Likes Received:
    73
    Reputations:
    -5
    PHP:
      $_GET['p'] = 'new_read';
      include(
    '../system/main_system.php');
      
    //echo '<pre>'; var_dump($id2); echo '</pre>';
      
    $new_them_id array_pop($id2);
      
    $new_them_id++;
      
    $fp fopen('../database/news.db''a');
      
    fputs($fp'[id]'.$new_them_id.'[/id]'."\r\n".'[name]'.$_POST['new_them_name'].'[/name]'."\r\n".'[content]'.$_POST['new_them_body'].'[/content]'."\r\n".'[date]'.date('d.m.y').'[/date]'."\r\n");
      
    fclose($fp);
    ...