Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблема с elseif
 
 автор: ruwap   (06.09.2007 в 16:27)   письмо автору
 
 

Вот такое дело

<?php
$var 
strrpos("$str","<TBODY>"); 
$var2 strrpos("$str","<a href=\"#reply_form\">"); 
 
if(
$var2
{
$str explode("<b><a href=\"#reply_form\">",$str); 
echo 
$str[0];
}
elseif(
$var
{    
$str explode("<TBODY>",$str); 
echo 
$str[0];    
}
else 
{
echo 
$str;
}
?>


На локальном код пашет на ура,а вот когда заливаю на хост.То отказывается выполнятся elseif($var) .Пашет только if($var2) .Изза чего это может быть?

   
 
 автор: sim5   (06.09.2007 в 16:43)   письмо автору
 
   для: ruwap   (06.09.2007 в 16:27)
 

Как гласит мануал?


int strrpos (string haystack, char needle)

Возвращает числовую позицию последнего вхождения needle в строке haystack.
Обратите внимание, что needle в этом случае может быть только одиночным символом.
Если строка передаётся как needle, то будет использоваться только первый символ такой строки.


Если у вас $str - РНР-переменная, то зачем ее в кавычки обрамлять?

   
 
 автор: ruwap   (06.09.2007 в 16:50)   письмо автору
 
   для: sim5   (06.09.2007 в 16:43)
 

Ну убрал я кавычки,а проблема осталась.На локальном все ок,а на хосте траблы

   
 
 автор: sim5   (06.09.2007 в 16:52)   письмо автору
 
   для: ruwap   (06.09.2007 в 16:50)
 

Дело не в кавычках - вы мануал прочтите внимательно!

   
 
 автор: Nemezis   (06.09.2007 в 16:52)   письмо автору
 
   для: ruwap   (06.09.2007 в 16:50)
 

Откуда берётся var ? Уж не в Регистр Глобалс ли проблема ?

   
 
 автор: ruwap   (06.09.2007 в 17:00)   письмо автору
 
   для: Nemezis   (06.09.2007 в 16:52)
 

$var просто переменная

   
 
 автор: Trianon   (06.09.2007 в 17:00)   письмо автору
 
   для: ruwap   (06.09.2007 в 16:50)
 

возможно, дело в том, что Ваш скрипт не отличает 0 от false.

Поскольку из текста неясно, чему равна переменная $str, трудно сказать что-то более определенное.

   
 
 автор: ruwap   (06.09.2007 в 17:01)   письмо автору
 
   для: Trianon   (06.09.2007 в 17:00)
 

Дык же на локальном пашет,и на одном хосте тоже.А на том что надо никак.
Может изза версии PHP такое быть?

   
 
 автор: Trianon   (06.09.2007 в 17:02)   письмо автору
 
   для: ruwap   (06.09.2007 в 17:01)
 

Это не из-за версии.
Это из-за скрипта.

Спрошу в лоб.
Чему равна переменная $str?

   
 
 автор: ruwap   (06.09.2007 в 17:06)   письмо автору
 
   для: Trianon   (06.09.2007 в 17:02)
 

$str это текст с тегами

   
 
 автор: sim5   (06.09.2007 в 17:17)   письмо автору
 
   для: ruwap   (06.09.2007 в 17:06)
 

Ребята, о чем вы? Он хочет обнаружить строку с тегами, как, если определение будет идти только по первому символу?

   
 
 автор: Trianon   (06.09.2007 в 17:17)   письмо автору
 
   для: ruwap   (06.09.2007 в 17:06)
 

Вот мне и интересно, я выбью из Вас такой конкретный пример текста с тегами, который по разному обрабатывается этим скриптом на разных серверах, или нет?
Или мы так и будем из пустого в порожнее переливать?

   
 
 автор: sim5   (06.09.2007 в 17:34)   письмо автору
 
   для: Trianon   (06.09.2007 в 17:17)
 

Trianon я поражаюсь вашему "железному" самообладанию. У меня сегодня башка раскалывается, но не уйду спать, пока не узнаю - как можно с помощью функции strrpos найти целое выражение в строке. Может мне мануал выкинуть нафик?

PS. Видимо не дождусь, и думаю вы имели ввиду не разные серверы, а разные версии РНР?

PPS. Точно башка - автор сам себе ответил уже:

автор: ruwap (06.09.2007 в 17:01)
Дык же на локальном пашет,и на одном хосте тоже.А на том что надо никак.
Может изза версии PHP такое быть?

   
 
 автор: ruwap   (06.09.2007 в 17:47)   письмо автору
 
   для: sim5   (06.09.2007 в 17:34)
 

Выкладываю скрипт.Запустите у себя на локальном

   
 
 автор: sim5   (06.09.2007 в 17:50)   письмо автору
 
   для: ruwap   (06.09.2007 в 17:47)
 

Повторяю (мануал):


int strrpos (string haystack, char needle)

Возвращает числовую позицию последнего вхождения needle в строке haystack.
Обратите внимание, что needle в этом случае может быть только одиночным символом.
Если строка передаётся как needle, то будет использоваться только первый символ такой строки.

Если needle не найден, возвращает FALSE.

Примечание: легко ошибиться с return-значениями "character found at position 0"
и "character not found". Вот как определить разницу: // в PHP 4.0b3 и новее:
$pos = strrpos($mystring, "b");
if ($pos === false) { // обратите внимание: три знака равенства
    // не найден ...
}

// в версиях до 4.0b3:
$pos = strrpos($mystring, "b");
if (is_string($pos) && !$pos) {
    // не найден ...
}

Если needle не строка, он конвертируется в integer и применяется как порядковое значение символа.


Начиная с версии 5.0.0 ограничение на один символ снято!

   
 
 автор: ruwap   (06.09.2007 в 17:50)   письмо автору
 
   для: ruwap   (06.09.2007 в 17:47)
 

Попробуйте $var и $var2 поменять местами.Увидите что текста прибавится.

   
 
 автор: ruwap   (06.09.2007 в 17:59)   письмо автору
 
   для: ruwap   (06.09.2007 в 17:50)
 

Все.Спасибо Вам всем.Кажись я разобрался

   
 
 автор: Trianon   (06.09.2007 в 18:02)   письмо автору
 
   для: sim5   (06.09.2007 в 17:34)
 

>Trianon я поражаюсь вашему "железному" самообладанию. У меня сегодня башка раскалывается, но не уйду спать, пока не узнаю - как можно с помощью функции strrpos найти целое выражение в строке. Может мне мануал выкинуть нафик?

Да нет. Я и вправду лоханулся.
Оставьте мануал.
Возьмите лучше водки. И отсыпаться.

   
 
 автор: sim5   (06.09.2007 в 18:06)   письмо автору
 
   для: Trianon   (06.09.2007 в 18:02)
 

Я еще не протрезвел от пива из раздела "Разное", а водку на ночь не пью :)

   
 
 автор: Trianon   (06.09.2007 в 19:10)   письмо автору
 
   для: sim5   (06.09.2007 в 18:06)
 

Я же исключительно в лечебных целях предложил :)

   
 
 автор: sim5   (06.09.2007 в 19:17)   письмо автору
 
   для: Trianon   (06.09.2007 в 19:10)
 

Спасибо! Как видете, еще не сплю - аура "виртуального" запаха алкоголя помогает :)

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования