1

Тема: Вирізати весь непотріб із стрічки по регуляркам

Маємо наприклад стрічку

$str='https://google.com/search?q=hello+world\nHello world!\n';

Із неї треба прибрати непотріб (у цьому прикладі URL) по регуляркам і зкопіювати перших X символів у іншу стрічку. Перша стрічка може бути дуже великої довжини та із неї не треба (за завданням) вирізати абсолютно весь непотріб. Важлива продуктивність. Тобто, треба якось починати копіювати і паралельно перевіряти чи є там непотріб, якщо є то видаляти і так доти, поки стрічка-результат не матиме задану довжину.
Я знайшов таке рішення (із усією стрічкою, без обрізки X символів):

function add_meta_tags($subject, $description, $message)
{
    $regex = "@(https?://([-\w\.]+[-\w])+(:\d+)?(/([\w/_\.#-]*(\?\S+)?[^\.\s])?).*$)@";
    $meta_title=preg_replace($regex, '', $subject);
    $meta_description1= preg_replace($regex, '', $description);
    $meta_description2= preg_replace($regex, '', $message);
    //...To MySQL
}

працездатність ще не перевіряв
Головне знайти якийсь алгоритм.

2

Re: Вирізати весь непотріб із стрічки по регуляркам

Прихований текст

почав читати заголовок теми, і спочатку подумав, що тема про політику

3

Re: Вирізати весь непотріб із стрічки по регуляркам

$regex="непотріб"

і вперед.
Ні, ну ви це серйозно?

vakotov написав:

Із неї треба прибрати непотріб (у цьому прикладі URL)

А в інших прикладах що?

vakotov написав:

по регуляркам

Важлива продуктивність.

Обов'язково регулярками? От ніяк без них точно не вийде? Регулярки, звісно, заоптимізовані по вінця, але все одно strstr працює швидше.

Тобто, треба якось починати копіювати і паралельно перевіряти

preg_replace
//...To MySQL

*FACEPALM*

Спробуйте preg_split і по частинах збирати до заданої довжини.
Але регулярки у будь-якому разі будуть пробігати до кінця - навіть якщо ви використаєте preg_replace із limit, усе одно повернеться нова стрічка, скопійована до кінця.
Можна ще так: взяти умовну максимальну довжину непотребу N, перші X символів прогнати через preg_replace, якщо щось видалилося і нова довжина Y - взяти останні N символів + наступні X-Y-N і пошукати непотріб у них, результат додати. Хоча все одно ризикуєте тоді відхопити початок непотребу.

Подякували: leofun01, vakotov2

4

Re: Вирізати весь непотріб із стрічки по регуляркам

У когось є акаунт на punbb.info щоб скачати розширення pun seo? Людям потрібне само воно.
Реєстрація там безкоштовна, а от за скачування файлів там або обмін інформацією, рекламою, розширеннями (взагалі якийсь обмін), або 100 рублів на моб. рахунок адміну. Пробував перебирати URL-и, але ліньки, не зміг.

koala написав:
$regex="непотріб"

і вперед.
Ні, ну ви це серйозно?

vakotov написав:

Із неї треба прибрати непотріб (у цьому прикладі URL)

А в інших прикладах що?

А в інших прикладах дані, введені адміном форуму, що встановив розширення. Цензура так би мовити.
Мені воно не дуже "горить", щоб скачати. Просто сказав людині що зроблю безкоштовно бо дуже просто воно. Він ще пару днів може чекатиме.