Hej, jag försöker ta ut alla options i en select.. Funkar det om du ändrar till Hittade felet, jag hade glömt att escapa /-et i </select> Uttrycket kompilerar inte eftersom du inne i det använder samma tecken som du använder som avgränsare (/). Ser att du svarad eprecis efter att jag hittat felet Pelle. 1. Du är den ende som kallar mig Pelle.Regex med radbrytning..
preg_match("/<select(.*)name=\"" . $column->name . "\"(.*)>([\s|.]*)</select>/s", $this->form->content, $options);
print_r($options);
$column->name har värdet "testlista"
$this->form->content har värdet:
<code><form>
<select name="testlista">
<option value="value1">val1</option>
<option value="value22">val2</option>
<option value="value3">val3</option>
<option value="value8">val8</option>
</select>
</form></code>
Min regex verkar inte matcha alls, print_r ger ingenting.Sv: Regex med radbrytning..
preg_match("/<select(.*)name=\"" . $column->name . "\"(.*)>([\s|.]*)</select>/Us", $this->form->content, $options);
Sv: Regex med radbrytning..
Men nu har jag problem med replace istället, strängen verkar inte matcha i replace, trots attd et är precis samma:
<code>
preg_match("/<select(.*)name=\"" . $column->name . "\"(.*)>([\s|.]*)<\/select>/Us", $this->form->content, $options);
//print_r($options); // Fungerar.
$newOptions = eregi_replace('value="' . $data->value . '"', 'value="' . $data->value . '" selected="selected" ', $options[2]);
$this->form->content = eregi_replace("/<select(.*)name=\"" . $column->name . "\"(.*)>([\s|.]*)<\/select>/Us", '<select\\1name="' . $column->name . '"\\2>' . $newOptions . '</select>aaaa', $this->form->content);
</code>Sv: Regex med radbrytning..
Pröva någon av följande:
"/<select(.*)name=\"" . $column->name . "\"(.*)>([\s|.]*)<\\/select>/s"
"§<select(.*)name=\"" . $column->name . "\"(.*)>([\s|.]*)</select>§s"Sv:Regex med radbrytning..
Nu har jag även löst problemet med replace, bytte helt enkelt eregi_replace mot preg_replaceSv: Regex med radbrytning..
2. Jag har hört att eregi är långsammare än preg