Forum Webscript.Ru

Программирование => PHP => Тема начата: andtar от 14 Августа 2002, 11:03:44

Название: массив
Отправлено: andtar от 14 Августа 2002, 11:03:44
Как функцией ereg_replace заменить все элементы массива нужным значением.
нужно:

$name = ereg_replace ("\\n", "
", $name);
$name = ereg_replace ("\\r", "", $name);
:)
Название: массив
Отправлено: GotZfild от 14 Августа 2002, 11:34:07
Лучше используй preg_replace

$pattern = array(
      \'!\\n!\',
      \'!\\r!\'
);
$replace = array(
      "
",
      ""
);
$name = preg_replace($pattern, $replace, $name);

А еще лучше не мучиться, а использовать str_replace либо strtr
Название: массив
Отправлено: Ardzhan от 14 Августа 2002, 13:22:26
Цитировать
str_replace либо strtr

Да... И быстрее будет. Регулярки юзают только когданужны причудливые правила замены. А для замены символа перевода каретки на
 в пхп есть спец оператор nl2br()
Название: массив
Отправлено: andtar от 14 Августа 2002, 14:00:23
Цитировать
в пхп есть спец оператор nl2br()

че за оператор, как им поьлзоываться?
А еще есть какой-нибудь оператор удаления HTML - тегов?
вместо < например писать <?

Цитировать
$pattern = array(
      \'!\\n!\',
      \'!\\r!\'
);
$replace = array(
      "
",
      ""
);
$name = preg_replace($pattern, $replace, $name);

 
$name  -  вроде не массив здесь.

Через list ($each, $key) буду лучше использовать...
Название: массив
Отправлено: Меняздесьдавнонет от 14 Августа 2002, 14:10:40
andtar
регулярные выражения работают со строками. Так что в любом случае придется работать с каждым элементом отдельно.
УДАЛЕНИЕМ тегов занимается функция strip_tags
ЗАМЕНОЙ на HTML коды - htmlspecialchars()
Название: массив
Отправлено: AlieN от 14 Августа 2002, 14:33:22
1.

for($i=0;$i{
ereg_replace("чем","что",$array[$i]);
}

2.

$data=join(":::---:::",$array);# ":::---::::" - разделитель придуманный просто так
str_replace(...);
$array=split(":::---:::",$data);

3.

function blabla(&$item)
{
$item=ereg_replace("чем","что",$item);
}
array_walk($array,"blabla");
Название: массив
Отправлено: andtar от 14 Августа 2002, 14:55:33
ладно массив мне не надо уже.
с удалением hTML понятно, теперь другое надо:

массив $array = file ($file);
как разбить сообщения на несколько запросов  без использования MySQL?
Т.е. на стрнице должны быть значения:
1-10 | 11-20| 21-30
Это в основном у всех в гостевых книгах.
да, и в файле придется explode использовать $d = explode ("~", $ar);
Название: массив
Отправлено: AlieN от 14 Августа 2002, 15:15:50
эелементарно:

if(!$page or $page<1){$page=1;}
--$page;
$array=file($file);
$start=$page*10;
for($i=$start;$i<$start+10;$i+=10)
    {
    echo $array[$i];
    }
for($i=0;$i<$sizeof($array);$i+=10)
{
$page_print=$i/10+1;
if($page_print-1==$page){echo "$page_print  ";continue;}
print " $page_print  ";
}
Название: массив
Отправлено: andtar от 14 Августа 2002, 15:30:32
не знал, что так мало писанины.

Еще последний вопрос:
В URL пробел - %20,  а как будет выглядеть точка?
Название: массив
Отправлено: AlieN от 14 Августа 2002, 15:36:57
andtar
Так и будет выглядеть
Название: массив
Отправлено: andtar от 15 Августа 2002, 05:57:03
ну тогда ладно, всем спасибо...