Autor Zpráva
unlucky
Profil
Zdravím, už se s tím hrabu pár hod a nemohu se nějak dokopat k tomu, jak získat string mezi prvními a posledními uvozovkami (apostrofy)

Restaurace 'Bill's restaurant' je hodně známý

Jak dostanu
Bill's restaurant

díky moc
T-fon
Profil
Když už něco zkoušíš pár hodin, tak ses určitě někam dostal, takže je dobrý uvést aspoň část kódu, na kterým ses zasek.
Mě napadlo takovýto řešení:
$string = "Restaurace 'Bill's restaurant' je hodně známý";
$part = strstr($string, "'");
$position = strrpos($part, "'");
$result = substr($part, 1, $position-1);
Ale neni to moc elegantní, místní borci určitě poraděj něco lepšího.
breeta
Profil
Použij preg_match php.net/manual/en/function.preg-match.php a regulární výraz pro vyhledání řetězce ...
Keeehi
Profil
T-fon:
Ale neni to moc elegantní, místní borci určitě poraděj něco lepšího.
Náhodou, tohle je zrovna ta nejlepší metoda. Ano, nevypadá tak cool jako regulární výraz ale není nic efektivnějšího. Tedy strstr je tam trochu zbytečný a lepší by byl obyčejný strpos, ale jinak funkční. Pak už jediné, co tomu chybí je ošetření případu kdy se v textu není žádný nebo je jen jeden apostrof.
<?php
$string = "Restaurace 'Bill's restaurant' je hodně známý";
$start = strpos($string, "'");
if($start === false) {
    echo "There is no apostrophe";
} else {
    $end = strrpos($string, "'");
    
    if ($start === $end) {
        echo "There is only one apostrophe";
    } else {
        $result = substr($string, $start+1, $end-$start-1);
        echo $result;
    }
}

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: