как вырезать строку до определенного символа?

sickboy

Новичок
как вырезать строку до определенного символа?

Привет всем.

Подскажите пожалуйста, как в php можно вырезать часть строки, но только до определенной комбинации символов.
нужно из
$str = 'qwert32222zxcascp asasxc'
получить:
$str = 'qwert32222zxcas'

Спасибо.
 

sickboy

Новичок
Я пробовал с помощью preg_match, но не совсем получается:

PHP:
$raw_query_string = 'act=search&sw=%E1%CC%D8%C2%CF%CD&where=news&cp=35&cp=2';
preg_match ("/^(.+)(&cp\=\d+)+/", $raw_query_string, $query_string);
echo "$query_string[1]\n"; // act=search&sw=%E1%CC%D8%C2%CF%CD&where=news&cp=35
echo "$query_string[2]\n"; // &cp=2
 

Yaguan

пилот
ну а с помощью preg_match? В чем здесь моя ошибка?
В том, что ты ее используешь, не разобравшись с более простыми вещами.
[m]substr[/m]($str, 0, $pos) - может вырезать строку от начала до указанной позиции
[m]strpos[/m]($str,'cp') - может найти эту позицию.
Собрать вместе эту неподъемную гору информации сможешь?
 

Andronik

Новичок
Можно даже с помощью explode();


list($Нужная строка, $мусор) = explode("cp", $изначальная строка);
 

sickboy

Новичок
Автор оригинала: Yaguan
В том, что ты ее используешь, не разобравшись с более простыми вещами.
[m]substr[/m]($str, 0, $pos) - может вырезать строку от начала до указанной позиции
[m]strpos[/m]($str,'cp') - может найти эту позицию.
Собрать вместе эту неподъемную гору информации сможешь?
Ок. Спасибо. С этим я разобрался. Работает. Но хотелось бы еще и с регулярным выражением разобраться.
 

Omirali

Новичок
как вырезать строку до определенного символа?

Привет всем.

Подскажите пожалуйста, как в php можно вырезать часть строки, но только до определенной комбинации символов.
нужно из
$str = 'qwert32222zxcascp asasxc'
получить:
$str = 'qwert32222zxcas'

Спасибо.
PHP:
<?php
function after ($after, $string){
       
    if (!is_bool(strpos($string, $after)))
    return substr($string, strpos($string,$after)+strlen($after));

}



function before ($before, $string){
   
    return substr($string, 0, strpos($string, $before));
}


function between ($after, $before, $string){
   
    return before ($before, after($after, $string));
}

?>
 

Fox12

Новичок
Попробовал использовать код из предыдущего сообщения. В отдельном файле всё работает, как надо. Но как только пытаюсь подключить вызов функции через Class или размещаю этот код в теле основной программы, выдаёт: "Fatal error: Call to undefined function between() in C:\OSPanel\domains\...04.php on line 32". В чём может быть ошибка?
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Код правильно писать надо. И свой вопрос задавать в отдельной теме.
 

Fox12

Новичок
Да, я такого ответа и ждал! Спасибо тебе, добрый человек!
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Всегда пожалуйста, обращайся!

PS: Без кода нет помощи, но есть подозрения, что ты пробуешь вызвать свою between далеко не так, как PHP от тебя этого ждет.
 
Сверху