ANTICHAT — форум по информационной безопасности, OSINT и технологиям
ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию.
Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club,
и теперь снова доступен на новом адресе —
forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
 |
|

08.11.2008, 16:20
|
|
Постоянный
Регистрация: 29.05.2007
Сообщений: 852
Провел на форуме: 4832771
Репутация:
1916
|
|
Сообщение от Chode
не знаю регулярку пока...как минимизировать?
PHP код:
$txt=str_ireplace(" ".$o." "," ".$s." ",$txt);
$txt=str_ireplace(" ".$o.","," ".$s.",",$txt);
$txt=str_ireplace(" ".$o."."," ".$s.".",$txt);
$txt=str_ireplace(" ".$o."?"," ".$s."?",$txt);
$txt=str_ireplace(" ".$o."!"," ".$s."!",$txt);
$txt=str_ireplace(" ".$o.":"," ".$s.":",$txt);
насколько я понимаю код надо заменить слово в переменной $o на слово в переменной $s...только про символы не понял, зачем менять символ на тот же самый)
не легче ли
PHP код:
$txt = str_replace($o, $s, $txt);
ну хотя это твоё дело)
PHP код:
$o = 'жопа'; // Слово которое ищем
$s = 'пезда'; // Слово на которое меняем
// Текст
$txt = 'траляля какой-то текст жопа: ещё там чёто';
$txt = preg_replace('#'.$o.'([\.,\?!:]*?)#i', $s.'\\1', $txt);
echo $txt;
|
|
|

08.11.2008, 16:43
|
|
Участник форума
Регистрация: 20.07.2008
Сообщений: 177
Провел на форуме: 625939
Репутация:
54
|
|
Спасибо идеально =) ну просто небольшая функция синонимизации понадобилась
|
|
|

08.11.2008, 18:14
|
|
Участник форума
Регистрация: 01.03.2006
Сообщений: 169
Провел на форуме: 519496
Репутация:
78
|
|
Граблю новости с сайта у которого кодировка utf-8. Все сграбил сохранил в файл txt , все это сохранилось на сервере, но сам сайт для которого грабилась новость работает на кодировке windows-1251 и поэтому на сайте при выводе новости одни иероглифы((( Как это можно исправить, сграбленный текст новости до сохранения в txt файл обрабатывать функцией convert_cyr_string ?
|
|
|

08.11.2008, 18:17
|
|
Участник форума
Регистрация: 06.06.2008
Сообщений: 162
Провел на форуме: 3942177
Репутация:
244
|
|
php.net/iconv
|
|
|

08.11.2008, 18:18
|
|
Постоянный
Регистрация: 28.09.2007
Сообщений: 820
Провел на форуме: 6722038
Репутация:
1385
|
|
Zircool
iconv('входящая хрень','исходящая хрень',${что_хреначить})
|
|
|

08.11.2008, 18:20
|
|
Постоянный
Регистрация: 06.05.2007
Сообщений: 393
Провел на форуме: 1510937
Репутация:
398
|
|
Сообщение от Zircool
Граблю новости с сайта у которого кодировка utf-8. Все сграбил сохранил в файл txt , все это сохранилось на сервере, но сам сайт для которого грабилась новость работает на кодировке windows-1251 и поэтому на сайте при выводе новости одни иероглифы((( Как это можно исправить, сграбленный текст новости до сохранения в txt файл обрабатывать функцией convert_cyr_string ?
Код:
function utf8_to_cp1251($str)
{
$encoded_data = mb_convert_encoding($str, 'Windows-1251', 'UTF-8');
$data = (mb_detect_encoding($str, "auto", true) == '') ? $str : $encoded_data;
//$data = trim($data);
return $data;
}
|
|
|

08.11.2008, 19:40
|
|
Участник форума
Регистрация: 02.04.2006
Сообщений: 273
Провел на форуме: 1269624
Репутация:
114
|
|
Есть следующий код. Есть ли идеи по оптимизации.
PHP код:
$data=<<<HEREDOC
[foreach {f_arr}]
{f_val:name}<br />
<b>{f_val:value}</b>
<br /><br />
[/foreach]
HEREDOC;
$vars['foreach']['arr'][]=array('name'=>'my1','value'=>'jon');
$vars['foreach']['arr'][]=array('name'=>'my2','value'=>'smit');
$vars['foreach']['arr'][]=array('name'=>'my3','value'=>'anjil');
$vars['foreach']['arr'][]=array('name'=>'my4','value'=>'demon');
$vars['foreach']['arr'][]=array('name'=>'my5','value'=>'tokar');
preg_match_all('/\[foreach {f_(.+?)}](.+?)\[\/foreach\]/is', $data, $parr);
if(isset($parr))
{
$tmpd='';
foreach ($parr[0] as $k => $v) {
foreach ($vars['foreach'][$parr[1][$k]] as $tmp)
{
//print_r($tmp);
$work=$parr[2][$k];
preg_match_all('/{f_(\S+?):(\S+?)}/i', $data, $farr);
$num_var=count($farr[2]);
for($i=0;$i<$num_var;$i++) $work=str_replace("{f_{$farr[1][0]}:{$farr[2][$i]}}",$tmp[$farr[2][$i]],$work);
$tmpd.=$work;
}
$data = str_replace($v, $tmpd,$data );
}
}
echo $data;
у меня только одна идея.
заменить тут str_replace
PHP код:
for($i=0;$i<$num_var;$i++) $work=str_replace("{f_{$farr[1][0]}:{$farr[2][$i]}}",$tmp[$farr[2][$i]],$work);
на preg_replace но чето немогу некак составить регулярку. Да и надо ли?
Еще думаю можно избавиться от временных переменных. но тоже не-могу придумать нечего.
ЗЫ нашел пару косяков в коде. )) правлю. сори за беспокойство )
Последний раз редактировалось EST a1ien; 08.11.2008 в 20:40..
Причина: Нашел пару косяков.
|
|
|

08.11.2008, 20:21
|
|
Постоянный
Регистрация: 19.02.2008
Сообщений: 438
Провел на форуме: 956872
Репутация:
186
|
|
строковые функции работают быстрее регулярок
|
|
|

08.11.2008, 20:41
|
|
Познающий
Регистрация: 05.11.2008
Сообщений: 79
Провел на форуме: 185461
Репутация:
12
|
|
<?
$fp=fopen("file.txt","a");
fputs($fp,"текст");
fclose($fp);
?>
Как сделать так чтобы вписываемый текст каждый раз при обновлении стр писался с новой строки?
|
|
|

08.11.2008, 20:45
|
|
Reservists Of Antichat - Level 6
Регистрация: 25.04.2008
Сообщений: 827
Провел на форуме: 2769640
Репутация:
1304
|
|
|
|
|
|
 |
|
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|