Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] PHP, определение слова в строке

Ответить
Настройки темы
[решено] PHP, определение слова в строке

Старожил


Сообщения: 186
Благодарности: 0

Профиль | Отправить PM | Цитировать


Подскажите пожалуйста, есть файл в котором внутри написано в 2 строки:

<?xml version="1.0" encoding="windows-1251"?>
<PacketEPD xmlns="urn:cbr-ru:ed:v2.0"

И есть написанная на php функция, которая определяет нахождение в этом файле наличие слова PacketEPD

private function isPacket($filename)
{
try
{
$f=fopen($filename,"r");
fgets($f);
$STR=trim(fgets($f));
if (substr($STR,0,10)=="<PacketEPD")
{
return true;
}
else
{
return false;
};
fclose($f);
}
}

Если в том же файле написано все в одну строку, т.е.

<?xml version="1.0" encoding="windows-1251"?><PacketEPD xmlns="urn:cbr-u:ed:v2.0"

функция не работает, подскажите, как можно данную функцию поправить для случая с одной строкой ?

Отправлено: 12:29, 30-05-2012

 

Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Намёк первый

Код: Выделить весь код
string substr ( string string, int start [, int length] )  

substr() возвращает подстроку строки string длиной length, начинающегося с start символа по счету.

Намёк второй

Код: Выделить весь код
int strpos ( string haystack, string needle [, int offset] )

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

Если подстрока needle не найдена, strpos() возвращает FALSE.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 14:19, 30-05-2012 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Старожил


Сообщения: 186
Благодарности: 0

Профиль | Отправить PM | Цитировать


Т.е. если исходить из намека 1, для 1 строки должно быть:

if (substr($STR,45,55)=="<PacketEPD") или if (substr($STR,45,10)=="<PacketEPD") ?

Последний раз редактировалось foma24, 30-05-2012 в 14:59.


Отправлено: 14:46, 30-05-2012 | #3


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 177

Профиль | Отправить PM | Цитировать


Цитата foma24:
Т.е. если исходить из намека 1, для 1 строки должно быть:
if (substr($STR,45,55)=="<PacketEPD") или if (substr($STR,45,10)=="<PacketEPD") ? »
Второй вариант в принципе верен. но в нём нет универсальности. Т.е. он сможет найти в данном примере нужное слово, но если встретится лишняя позиция или недостающая позиция то работать код перестанет.

Если вы воспользуетесь "вторым намёком" будет всё проще. Аргументами этой функции являются две строки: первая где вы ищите, вторая что вы ищите. И результатом становится номер символа первого вхождения найденной строки или False, если строка не найдена.

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.

Это сообщение посчитали полезным следующие участники:

Отправлено: 15:35, 30-05-2012 | #4



Компьютерный форум OSzone.net » Компьютеры + Интернет » Вебмастеру » [решено] PHP, определение слова в строке

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
модернизированная игра в слова Arrest Флейм 667 30-11-2012 20:04
Принтер - Страшные слова снпч и пзк Alice_Kiryanova@fb Прочее железо 7 28-05-2012 06:10
Мультимедиа - Убрать слова из песни Farman Программное обеспечение Windows 36 29-11-2010 14:53
просто значение слова bruder Вебмастеру 5 07-06-2008 11:37
перевод слова slipstream. Mss Хочу все знать 3 21-05-2005 22:20




 
Переход