Изрязване на string

confiscate

Registered
Здравейте,

Искам да Ви попитам как да изрежа следния string:
Код:
wwwwwwwwwwwwwww/neshto.docx
да остане само
.

Измислил съм следната логика:
Код:
$string = "wwwwwwwwwwwwwww/neshto.docx";
                        $substr_string = substr(($string), strrpos($string,'/')+1);
                        $period_position = strrpos($substr_string, ".");
                        echo substr($substr_string, 0, $period_position);

Има ли по-лесен вариант?

Благодаря предварително!
Поздрави
 
Ами зависи, това дали е на всички файлове/стрингове, които искаш да изчистиш или на всеки има различни букви перди наклонената черта .. трябва да дадеш по-ясна информация за да ти се даде най-лесния и преизползвамем пример ^^ :?:

Вариант 1:

PHP:
$str = "wwwwwwwwwwwwwww/neshto.docx";
preg_match("/neshto/"$str, $matches);
print_r($matches);
echo $matches[0];

Вариант 2:
PHP:
$str = "wwwwwwwwwwwwwww/neshto.docx";
$exp = explode("/", $str);
$filename_ext = $exp[1];
$wantedStr = explode(".",$filename_ext );

echo $wantedStr[0];

Сигурен съм че може да се дадат още много примери, но това зависи от това колко точно че обясниш какво искаш ;) :?:
 
Това ще ти свърши работа

PHP:
<?php
$string = "wwwwwwwwwwwwwww/neshto.docx";
preg_match("/\/(.*?)\./",$string, $matches);
echo $matches[0];

?>
 
Ако е сигурно, че файлът винаги е в docx или в doc формат, най-добре така:

PHP:
<?php
$string = "wwwwwwwwwwwwwww/neshto.docx";
preg_match("~/([^/]+)\.docx?~",$string, $matches);
$name = $matches[1];
echo $name;
?>

Ако не искаш .doc да минава(само .docx):

PHP:
preg_match("~/([^/]+)\.docx~",$string, $matches);

едит: промених си кода, защото не работеше правилно преди. Опитай го пак.
 
Вместо да му давате 100 варянта с различни регулярни изрази един поне да беше дал линк към preg_match() и да беше разяснил регулярния израз точно какво мачва. Нали идеята е да се учим не да правим copy/paste
 
animatora каза:
Вместо да му давате 100 варянта с различни регулярни изрази един поне да беше дал линк към preg_match() и да беше разяснил регулярния израз точно какво мачва. Нали идеята е да се учим не да правим copy/paste
Достатъчно е просто да почита Гугъл. Не е проблем да се влезне в php.net и да се провери. Като гледам и ти не даде обяснение и линк. Автора не попита нищо друго и вероятно сам си е разяснил ползването на примерите. Ако му е трябвало разяснение вероятно щеше да попита, но той потърси по-оптимизиран варянт на своя код. :?:
 

Back
Горе