Autor Zpráva
Marcel24
Profil *
Ahojte, uz tyzden sa trapim s tym ako odstranit po najdeni urciteho textu po koniec stringu, vedel by mi povedat niekto ci je na take nieco nejaka funkcia? alebo ako to riesit, tak aby to bolo zaroven aj rychle riesenie a nezatazovalo to zbytocne php.

string by vyzeral takto

asdf ert dfgsdf bvcb dfg article1.html
vmnvb grtoi scb afer sdf cat3.html


article1.html by bolo generovane dynamicky, takze mozu byt article1 az x.html a to iste aj pri cat3.html moze byt cat1 az x.html a potreboval by som vzdy odstranit vsetko od medzera articelCISLO a catCISLO po koniec stringu.

Ako na to?
anonymníí
Profil *
Marcel24:
kombinace strpos a substr.

Pokud chceš vše od poslední mezery do konce, místo strpos použij strrpos.
jen_tak_prochazim
Profil *
Nemám teď moc času, takže ti s konkrétním řešením neporadím, ale to co hledáš je funkce preg_replace
něco jako
$string = preg_replace('/(article|cat)\d\.html/iU', '', $string);
Marcel24
Profil *
a ako na to? chapem ze strrpos my zobrazi kde sa nachadza posledna medzera

<?php
echo strrpos("asdf ert dfgsdf bvcb dfg article1.html "," ");
?>

ale substr mi odstrani vsetko od zaciatku po 6 znak ako je tu trebars, ako docielit aby to spravilo naopak a odstranilo od 6 znaku dalej? to by som potom chapal tak ze strrpos by som si dal do premennej a tu vlozil namiesto tej 6tky

<?
echo substr("asdf ert dfgsdf bvcb dfg article1.html ", 6);
?>


jen_tak_prochazim:ak mam za article ci cat dve cisla tak uz to tvoje riesenie nefunguje
Dan Charousek
Profil
Co explode()?

$str   = "asdf ert dfgsdf bvcb dfg article1.html";
$temp  = explode(" ", $str);
$name  = $temp[count($temp) - 1];
Joker
Profil
Marcel24:
ale substr mi odstrani vsetko od zaciatku po 6 znak ako je tu trebars, ako docielit aby to spravilo naopak a odstranilo od 6 znaku dalej?

<?php 
  $text = "lorem ipsum dolor sit amet";
  $pozice = strrpos($text, " ");
  // Obsah následující za poslední mezerou: "amet"
  substr($text, $pozice + 1);
  // Obsah před poslední mezerou: "lorem ipsum dolor sit"
  substr($text, 0, $pozice);
?>
Marcel24
Profil *
dakujem, ja som do substr stale pchal len dva parametre a preto to asi zobrazovalo len od medzery po koniec stringu, vdaka

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: