avatar_epmak

Помощь с PHP, Web мастеру, PHP, AJAX, MySQL

Автор epmak, 2010 Март 02, 11:55

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Ключевые слова [SEO] phpajaxweb мастерmysql

epmak

пишу сюда, так как в соответствующем разделе "у вас нет прав писать в этот форум".
суть проблемы
есть строка
$string="слово1, слово2, слово3, слово4";нужно из строки извлечь слово, и вернуть строку без него. то есть, допустим, убираем слово "слово2" и получаем строку
$string="слово1, слово3, слово4";собственно, интересует алгоритм, мой мне не нравится, хочу написать модуль более "красиво", поэтому жажду помощи. Гуру пхп, отзовитесь :) буду очень благодарен.

П.С. модераторы, если не трудно, не удаляйте тему, а перенесите в соответствующий раздел, просто злободневная тема оч :)

worldhero

работаем со строками:
<?
$string="слово1, слово2, слово3, слово4";
//находим заданный елемент и удаляем, или заменяем на другой..
$string=str_replace("слово2, ","",$string);
echo $string;

$string="слово1, слово2, слово3, слово4";
//2-й способ, сначало бахаем все слова в массив
$string=explode(', ',$string);
//Разделителем служило ,(пробел)
//дальше удаляем с массива елемент:
//gпоиск в массиве, и берем его кей
$key=array_search("слово2", $string);
//удаляем данный элемент, срезая масивы и объединяя их
$string=array_merge(array_slice($string,0,$key),array_slice($string,$key+1));
//Врезультате мы не только удалили нужное нам слово, да еще и имеем массив...
//Также еще существует куча способов, поиск по тексту, и т.п. юзай строковые функции
?>

epmak

итак, новая загвоздка.
есть такая функция
get_defined_constants()она возвращает ассоциативный массив из имён всех констант и их значений.
так вот, при вопытке сделать так
$array = get_defined_constants();
$perem = "значение";
echo $array[$perem];
он меня отсылает, тупо ничего не показывая, хотя вот так
$array = get_defined_constants();
echo $array["значение"];
все гуд. перекопал пол гугла, чет не пойму, толи лыжи не едут...

Vaflan

#3
Я не понимаю что ты хочешь зделать, если:
<?php
define
("MY_CONSTANT"1);
print_r(get_defined_constants(true));
?>
И будет:
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_WARNING] => 2
[E_PARSE] => 4
[E_NOTICE] => 8
[E_CORE_ERROR] => 16
[E_CORE_WARNING] => 32
[E_COMPILE_ERROR] => 64
[E_COMPILE_WARNING] => 128
[E_USER_ERROR] => 256
[E_USER_WARNING] => 512
[E_USER_NOTICE] => 1024
[E_ALL] => 2047
[TRUE] => 1
)

[pcre] => Array
(
[PREG_PATTERN_ORDER] => 1
[PREG_SET_ORDER] => 2
[PREG_OFFSET_CAPTURE] => 256
[PREG_SPLIT_NO_EMPTY] => 1
[PREG_SPLIT_DELIM_CAPTURE] => 2
[PREG_SPLIT_OFFSET_CAPTURE] => 4
[PREG_GREP_INVERT] => 1
)

[user] => Array
(
[MY_CONSTANT] => 1
)

)
Объясеи норм... хотя я ща не в состояние, но всё же...

epmak

#4
Цитата: Vaflan от 2010 Апр. 02, 21:26  Я не понимаю что ты хочешь зделать, если:
<?php
define
("MY_CONSTANT"1);
print_r(get_defined_constants(true));
?>
И будет:
Array
(
[Core] => Array
(
[E_ERROR] => 1
[E_WARNING] => 2
[E_PARSE] => 4
[E_NOTICE] => 8
[E_CORE_ERROR] => 16
[E_CORE_WARNING] => 32
[E_COMPILE_ERROR] => 64
[E_COMPILE_WARNING] => 128
[E_USER_ERROR] => 256
[E_USER_WARNING] => 512
[E_USER_NOTICE] => 1024
[E_ALL] => 2047
[TRUE] => 1
)

[pcre] => Array
(
[PREG_PATTERN_ORDER] => 1
[PREG_SET_ORDER] => 2
[PREG_OFFSET_CAPTURE] => 256
[PREG_SPLIT_NO_EMPTY] => 1
[PREG_SPLIT_DELIM_CAPTURE] => 2
[PREG_SPLIT_OFFSET_CAPTURE] => 4
[PREG_GREP_INVERT] => 1
)

[user] => Array
(
[MY_CONSTANT] => 1
)

)
Объясеи норм... хотя я ща не в состояние, но всё же...
смтори, мне из этого аррая надо достать переменную, т.е. грубо говоря:
define("MY_CONSTANT", 1);
$array = get_defined_constants(true);
$text ="MY_CONSTANT";
echo $array["user"][$text];
он мне ничего не выводит, а так все гуд:
define("MY_CONSTANT", 1);
$array = get_defined_constants(true);
echo $array["user"]["MY_CONSTANT"];
вот сижу и мучаюсь...
правда есть оговорочка, это делаю я в цикле
$temp = @file("spisok.txt");// тут у меня имена констант(в столбик), которые определены ранее через define, соответсвенно файл с ними подключен
$array = get_defined_constants(true);
foreach ($temp as $k)
{
echo $array["user"][$k]."<br>"; // попытка вывести через ассоциативный массив по имени константы её значение
}

sensej

foreach ($temp as $k)
{
$k = trim($k);
if(isset($array["user"][$k]))print $k." exists n"; else print $k."NOT exists n";
}

Похожие темы (5)