[php] Новичкам: задаем вопросы

Discussion in 'PHP' started by _Great_, 26 May 2007.

Thread Status:
Not open for further replies.
  1. Mr.Snuffer

    Mr.Snuffer Member

    Joined:
    2 Jul 2010
    Messages:
    140
    Likes Received:
    13
    Reputations:
    0
    PHP:
    <? 
    $i =0
    while(
    $i<=10

    $a .= $i
    $i++; 

    echo 
    $a
    ?>
    К слову
    PHP:
    <? 
    for(
    $i=0;$i<=10;$i++)  $a .= $i
    echo 
    $a
    ?>
     
    #19541 Mr.Snuffer, 13 Nov 2011
    Last edited: 13 Nov 2011
    1 person likes this.
  2. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    PHP:
    for ( $i 1$i <= 10$i++ ) {
    echo 
    $i;
    }
     
  3. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Как мне спарсить что в

    Code:
    
    ^book-russia/direrctory$
    
    

    Нужно спарсить из файла только то что между ^ $
     
  4. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Adio
    PHP:
    <?php
    $string 
    '^book-russia/direrctory$';
    $tok strtok($string"^$");
    echo 
    $tok;
    ?>
     
  5. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    Прописал скрипт в cron, суть скрипта в том, что он отсылает запрос посредством curl и пишет дату запуска в лог. Скрипт работает, отсылает запрос, но лог пуст, если запускать с веба, то и скрипт работает и лог пишется. С чем это связано?
     
  6. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    AnGeI права/пути
     
    _________________________
  7. boortyhuhtyu

    boortyhuhtyu Member

    Joined:
    2 Feb 2011
    Messages:
    727
    Likes Received:
    26
    Reputations:
    -6
    get internal links from file() ?
     
    #19547 boortyhuhtyu, 14 Nov 2011
    Last edited: 14 Nov 2011
  8. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    У меня очень странная проблема. При добавлении данных в таблицу БД, данные добавляются почему то 2 раза.

    Метод класса, который добавляет данные:

    PHP:
    function insert
    $table ''// Таблица, в которую вставляем данные 
    $values // Строка со значениями, которые мы вставляем 
    ) { 
    // Защита строки от SQL Inj 
    //$values = mysql_real_escape_string( $values ); 
    // Делаем запрос 
    mysql_query"INSERT INTO `" $table "`
     VALUES ( NULL, '" 
    $values "' ) " ) OR die( mysql_error() . 
    '2h0y8h2qibo20=gh4' ); 
    return 
    true
    }
    Скрипт header.php, в котором есть кусок кода, который добавляет информацию:

    PHP:
    // Подключаемся к БД 
    $conn = new DBDB_HOSTDB_USERDB_PASSDB ); 
    $conn->connect(); 

    if ( 
    $conn->insert"test_table""Homon" ) ) echo 'Сделано';
    Сам скрипт header.php подключается 1 раз в скрипте index.php

    PHP:
    // Подключаем /engine/header.php 
    if ( !require_once( DOC_ROOT '/engine/header.php' ) ) { exit( 'Файл <b>/engine/header.php</b> не подключен' ); }
    Вот и все, при вызове скрипта index.php, в БД добавляется ровно 2 раза одна и та же информация. Почему - непонятно. Помогите плиз :)
     
  9. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Edward смотрите код еще раз. Если не поможет берете сниффер и смотрите обращения к сайту. Например, у вас может ошибка 404 вести на ту же главную страницу, или картинка ведет на главную, или еще что нить
     
    _________________________
  10. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Прежде чем сниферить открыл ФФ, в нем обратился к своему скрипту, и что интересно данные добавились 1 раз, если через Хром, то 2 раза добавляются. Видимо что то от браузера зависит. Сейчас сниферить буду.
     
  11. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Нашел причину. Все дело в файле .htaccess. Я, не знаючи, разместил его у себя в корне движка, со следующим кодом:

    Code:
    php_flag magic_quotes_gpc Off 
    <IfModule mod_rewrite.c> 
    RewriteEngine On 
    RewriteBase / 
    RewriteCond %{REQUEST_FILENAME} !-f 
    RewriteCond %
    {REQUEST_FILENAME} !-d RewriteRule . /index.php [L] 
    </IfModule>
    Мне важно было, что б все запросы, которые идут к движку, перенаправлялись на index.php, а тот уже в свою очередь решает, какие файлы подключать. Так вот видимо какая - то строка редиректила на index.php, что он получается 2 раза выполнялся.

    Ну что ж буду изучать директивы mod_rewrite, что б быть в теме :) Спасибо за помощь.
     
  12. Adio

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

    Joined:
    23 May 2005
    Messages:
    1,646
    Likes Received:
    148
    Reputations:
    18
    Есть код который выводит построчно текст из файла такой функцией...

    Code:
    foreach($lines as $line)
    {
    echo "$line";
    }
    

    Как удалить пробелы, или строки которые в файле помечены знаком #

    #here text text and text

    т.е нужно удалить всю строку полностью где есть решетки...

    как это можно сделать ?
     
    #19552 Adio, 15 Nov 2011
    Last edited: 15 Nov 2011
  13. Skofield

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

    Joined:
    27 Aug 2008
    Messages:
    960
    Likes Received:
    392
    Reputations:
    58
    Adio
    PHP:
    <?php
    $fname 
    "file.txt";
    $f fopen($fname"rb");
    while (
    $row trim(fgets($f)))
    {
        if (!
    preg_match("~^#~"$row))
        {
            echo 
    $row."<br>\r\n";
            
    $r .= $row."\r\n";
            
    file_put_contents($fname$r);
        }
    }
    fclose($f);
    ?>
    Данный код удалит и строки с # в файле.
     
    #19553 Skofield, 15 Nov 2011
    Last edited: 15 Nov 2011
  14. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    PHP:
    foreach($lines as $line
    {
         
    $trimmed trim($line);
         if(
    $trimmed != '' && !strspn($trimmed,"#")) {
             echo 
    $line;
         }
    }
    Вместо !strspn($trimmed,"#") можно $trimmed[0] != '#'
     
    #19554 LStr1ke, 15 Nov 2011
    Last edited: 15 Nov 2011
  15. AnGeI

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

    Joined:
    8 Dec 2008
    Messages:
    395
    Likes Received:
    79
    Reputations:
    16
    На счет этого точно выяснить не удастся, крон настраиваю через cpanel хостинга, доступа по ssh у них нету. Права везде 777 поставил на скрипт и на файл логов, ничего не изменилось. Пути верные, т.к. скрипт работает, просто лог не ведет.
     
  16. explosm

    explosm New Member

    Joined:
    9 Aug 2010
    Messages:
    31
    Likes Received:
    3
    Reputations:
    0
    PHP:
    <?php
    $array 
    '0123456789ABCDEFG';
    $s '';
    for (
    $i 1$i 50$i++) {
    $s .= $array[rand(0,strlen ($array) - 1)];
    }
    echo 
    $s;
    ?>
    эта программа выведет 49 случайных чисел у меня вопрос вот к переменной с производится конкатенация одного из символов из переменной array ... ведь это не массив а string

    Выходит что можно обращаясь к переменной $array[1] получить - 1ю букву строки? а то я затупил....

    тоесть $array[6] равно 6 будет? о_О
     
  17. Chrome~

    Chrome~ Elder - Старейшина

    Joined:
    13 Dec 2008
    Messages:
    936
    Likes Received:
    162
    Reputations:
    27
    В PHP номера символов начинаются с нуля, то есть $array[1] - это второй символ, который равняется '1'.
     
  18. Rastamanka

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

    Joined:
    26 Nov 2008
    Messages:
    429
    Likes Received:
    11
    Reputations:
    7
    Кто подскажет.
    Имеется сайт... На нем 2 авторизации.
    1) Basic
    2) Http
    Они идут по очереди и пока не пройдешь basic во второй не залогинится.
    Использую CURL.
    В Basic нормально авторизируюсь и получаю cookie в файл.
    Далее необходимо пройти вторую авторизацию при это использовать cookie полученные с первой авторизации и в дальнейшем дописать в файл cookie полученные со второй авторизации для дальнейшей работы с сайтом.
    Как не пробую ничего не выходит.
     
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    Rastamanka basic авторизация не подразумевает использование кукисов по умолчанию. Для беспроблемной работы с кукисами достаточно использовать CURLOPT_COOKIEFILE и CURLOPT_COOKIEJAR

    AnGeI какие пути используются в скрипте? Все относительные замените на абсолютные. Попробуйте писать не в исходную папку, а попробуйте записать например в /tmp/
     
    _________________________
    #19559 Gifts, 16 Nov 2011
    Last edited: 16 Nov 2011
    1 person likes this.
  20. Edward

    Edward Banned

    Joined:
    11 Feb 2010
    Messages:
    329
    Likes Received:
    21
    Reputations:
    -1
    Есть ли функции в php, с помощью которых можно узнать какие еще есть файлы в текущем\другом каталоге ? Какие у них имена ? В общем узнать о файловой системе ?

    Из Гугла и php.su ничего не нашел.
     
Thread Status:
Not open for further replies.