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

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

Thread Status:
Not open for further replies.
  1. BRR

    BRR New Member

    Joined:
    4 Jun 2012
    Messages:
    31
    Likes Received:
    1
    Reputations:
    0
    PHP:
    <?php 

    $link 
    mysql_connect('localhost','root',''); 
    if (!
    $link) { 
        die(
    'Could not connect to MySQL: ' mysql_error()); 


    $db_selected mysql_select_db('foo',$link);
    if (!
    $db_selected) {
        die (
    'Не удалось выбрать базу foo: ' mysql_error());
    }
             
    $str "Hello Friend";
    $arr1 str_split($str);

             for(
    $i $i <= count($arr1); $i++) {

                
    mysql_query("INSERT INTO test (text) VALUES (".$arr1[$i].")");

            }
    ?> 
    получаю Notice: Undefined offset: 12

    вчем проблема?
     
  2. beerhack

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

    Joined:
    1 Mar 2008
    Messages:
    99
    Likes Received:
    48
    Reputations:
    5
    Почему не работает такой вариант? Пишет 'Fatal error: Call to undefined function eval()'
    PHP:
    <?php 
    $code
    ='eval'
    $code('echo "hello";'); 
    ?>
    Должно же выполниться по идеи как:
    PHP:
    <?php 
    eval('echo "hello";');
    ?>
    Но, увы.
    Хотя, допустим, такой код работает:
    PHP:
    <?php 
    $code
    ='base64_encode'
    $code('echo "hello";'); 
    ?>
     
  3. kroŧ

    kroŧ Member

    Joined:
    19 May 2010
    Messages:
    129
    Likes Received:
    33
    Reputations:
    8
    eval - поскольку это языковая конструкция, а не функция, она не может вызываться при помощи переменных функций.
     
  4. Gigabajt_

    Gigabajt_ Member

    Joined:
    13 Feb 2010
    Messages:
    80
    Likes Received:
    5
    Reputations:
    0
    Имею Wordpress, в index.php прописан код
    PHP:
    <?php if (is_home()) { query_posts($query_string.'&cat=3&showposts=10'); } ?> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); // the loop ?> <div class="post" id="post-<?php the_ID(); ?>"> <h1 class="titl"><a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a></h1> <?php the_content('<!--Читать-->'); ?> </div> <?php endwhile; ?> <?php else : ?> <h2 class="center">Страница в доработке.</h2> <p class="center">-</p> <?php endif; ?>
    При первом вызове кода на странице все работает номально: выводятся 10 новостей (showposts=10) из категории 3 (cat=3), но если прописать этот код второй раз на странице, заменив номер категории (например на 4) и количество постов, то выводятся те же публикации из категории 3 и в том же количестве, т.е строчка
    PHP:
    ($query_string.'&cat=3&showposts=10')
    вообще не работает второй раз. :mad:

    Помогите разобраться, сам php не знаю
     
  5. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    Сбербанк, используйте регулярные выражения:
    PHP:
    preg_match_all('/title=\"(.*?)\"/'$text$matches);
    print_r($matches);
     
  6. felix_v26

    felix_v26 New Member

    Joined:
    19 Mar 2011
    Messages:
    20
    Likes Received:
    0
    Reputations:
    0

    не могу сказать точно, но возможно когда вызываешь второй раз новые записи пишутся в старый массив.
    в любом случае http://wp-skins.info/2007/12/04/neskolko-primerov-ispolzovaniya-query_posts.html вот тут осписано как можно из разных категорий получать и в комментариях такая же ошибка как у тебя с решением.
     
  7. Winst0n

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

    Joined:
    19 Aug 2008
    Messages:
    92
    Likes Received:
    5
    Reputations:
    0
    Пример.

    Code:
    <?php
    $ch = curl_init();
      curl_setopt($ch, CURLOPT_URL, 'http://forum.antichat.ru/');
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
         $data = @curl_exec($ch);
         curl_close($ch);
     
    preg_match('|<a href="forum(.*).html">(.*)</div>|', $data, $arr);
    
    echo $arr[0];
    ?>
    получаем первое навание раздела - "ИНФО". как сделать это в цикле, и получить все названия разделов ?

    не могу сообразить, отупел в армии :(
     
  8. daniel777

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

    Joined:
    8 Jul 2010
    Messages:
    517
    Likes Received:
    90
    Reputations:
    37
    PHP:
    preg_match_all('|<a href="forum(.*).html"><strong>(.*)</strong></a><br>|'$data$arr);
    А дальше в цикле выводим содержимое массива $arr
     
    1 person likes this.
  9. Winst0n

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

    Joined:
    19 Aug 2008
    Messages:
    92
    Likes Received:
    5
    Reputations:
    0
    спасибо. "preg_match_all", вот в чем ошибка была.
     
  10. kowap

    kowap New Member

    Joined:
    12 Feb 2013
    Messages:
    1
    Likes Received:
    0
    Reputations:
    0
    при скачивании файла, он весит два байта. на сервере норм лежит. уверен дело в файле, который качает. вот он:
    PHP:
    <?$name_foto htmlspecialchars($_GET["n"]);
    header('Content-type: application/octet-stream');
    header("Content-Disposition: attachment; filename=".$name_foto);?> 
     
  11. DJ ][akep

    DJ ][akep Member

    Joined:
    27 Jan 2008
    Messages:
    93
    Likes Received:
    20
    Reputations:
    1
    Тю ну его же выводить нужно после задания хидера :)
    т.е. echo file_get_contents('/путь/к/файлу.jpg');
     
  12. mastaadon

    mastaadon New Member

    Joined:
    26 Mar 2009
    Messages:
    32
    Likes Received:
    0
    Reputations:
    0
    Здравствуйте,
    подскажите пожалуйста как заставить это чудо работать?

    Есть код php который создает элемент select считывая xml.

    PHP:
    print "<select>";     
    foreach(
    $xml->children() as $key)     {         
    echo 
    '<option value="'.$key['alias'].'">'.' '$key['amount'] .' '$key['currencyName'].' - '$key.'</option>';     

    print 
    "</select>"?>
    select:
    HTML:
    <select> 
    <option value="telemoneyr"> 387.59 TM RUR - Telemoney</option> 
    <option value="perfectmoneyz"> 10.92 PM USD - PerfectMoney</option> 
    <option value="perfectmoneye"> 9.28 PM EUR - PerfectMoney</option>
    <option value="liqpayu"> 89.53 LP UAH - LiqPay</option> 
    <option value="liqpayr"> 349.38 LP RUR - LiqPay</option>
    <option value="liqpaye"> 9.28 LP EUR - LiqPay</option>
    <option value="privat24z"> 11.03 P24 USD - Privat24</option> 
    <option value="nsmep"> 89.53 НСМЭП UAH - НСМЕП</option> 
    <option value="privat24u"> 90.07 P24 UAH - Privat24</option> 
    <option value="privat24e"> 9.5 P24 EUR - Privat24</option>
    <option value="unicard"> 11.03 UK USD - Unikarta</option> 
    <option value="monexyu"> 95.45 MoneXy UAH - MoneXy</option> 
    </select>
    
    Мне нужно что бы в select по умолчанию выбирался Privat24.
    Пытался вписать нечто вроде этого, но не работает. Может кто подсказать как правильно это сделать?

    PHP:
    print "<select>";     
    foreach(
    $xml->children() as $key)     {         
    echo 
    '<option value="'.$key['alias'].'"'.if($key['alias']=="privat24u"){print "selected=selected";}.'>'.' '$key['amount'] .' '$key['currencyName'].' - '$key.'</option>';              
    } print 
    "
    </select>"
    ;
     
  13. mironich

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

    Joined:
    27 Feb 2011
    Messages:
    733
    Likes Received:
    73
    Reputations:
    19
    PHP:
    <?
    print 
    "<select>";     

    define('SHAB''<option value="%s" %s> %s %s -  %s</option>'); 
    foreach(
    $xml->children() as $key) {    
        
    printf(SHAB$key['alias'], 'selected="selected"' $key['alias'] == 'privat24z' '',
            
    $key['amount'], $key['currencyName'], $key);  
    }  

    print 
    "</select>"

    ?>
     
  14. mastaadon

    mastaadon New Member

    Joined:
    26 Mar 2009
    Messages:
    32
    Likes Received:
    0
    Reputations:
    0
    Большое спасибо разобрался уже. Надо было переставить
    $key['alias'] == "privat24z" ? 'selected="selected"' :
     
    #21434 mastaadon, 17 Feb 2013
    Last edited: 17 Feb 2013
  15. qaz

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

    Joined:
    12 Jul 2010
    Messages:
    1,551
    Likes Received:
    173
    Reputations:
    75
    такой вопросец, нужно получить полный путь к папке в которой лежит исполняемый файл, тоесть то что возвращает функция $_SERVER['SCRIPT_FILENAME'] только без имени сомого файла,
    я конечно понимаю что можно написть регулярное выражение, но может есть способ проще?
     
  16. mrDebian

    mrDebian Member

    Joined:
    27 Jan 2013
    Messages:
    96
    Likes Received:
    13
    Reputations:
    10
    http://www.php.net/manual/en/function.dirname.php
    или
    http://www.php.net/manual/en/function.pathinfo.php
     
    1 person likes this.
  17. Konqi

    Konqi Green member

    Joined:
    24 Jun 2009
    Messages:
    2,251
    Likes Received:
    1,149
    Reputations:
    886
    dirname(__FILE__)
     
    _________________________
    1 person likes this.
  18. preno

    preno Member

    Joined:
    5 Sep 2010
    Messages:
    249
    Likes Received:
    6
    Reputations:
    0
    вопрос такой, как глобально делать замену текста в суперглобальном массиве правильно?
    Мне надо чтобы во всем массиве $_GET пробелы заменялись на восклицательный знак, с переменной это выглядит так:
    $_GET = str_replace(' ','!',$_GET);
    Но с массивом так нельзя, но суть думаю понятна, вообще в идеале в этом суперглобальном массиве сделать замену как для переменных этого массива, так и для значений этих переменных, Спасибо за внимание.

    Напишите пример кода, плз!
     
    #21438 preno, 20 Feb 2013
    Last edited: 20 Feb 2013
  19. Gifts

    Gifts Green member

    Joined:
    25 Apr 2008
    Messages:
    2,494
    Likes Received:
    807
    Reputations:
    614
    preno foreach/array_map/array_walk
     
    _________________________
  20. LStr1ke

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

    Joined:
    29 Jul 2009
    Messages:
    801
    Likes Received:
    145
    Reputations:
    73
    Сначала обращаешь к странице, где фоома авторизации, парсишь данные (Нужные переменные, которые передает форма). Затем подставляешь свои логин и пароль и передаешь вместе с ранее полученными данными.

    Пробуй не руками, а из скрипта )))

    Такая схема:
    1 запросом парсишь данные
    2 запросом отправляешь форму
     
Thread Status:
Not open for further replies.