Bati um pouco a cabeça para achar a expressão regular mas lá vai:
1 | $string = preg_replace("/(\r\n|\n|\r)+/", "\n", $string); |
Bati um pouco a cabeça para achar a expressão regular mas lá vai:
1 | $string = preg_replace("/(\r\n|\n|\r)+/", "\n", $string); |
Uma coisa é certa, a função in_array do PHP é devagar, lerda demais.
Existe uma alternativa para pesquisar se o elemento está na matriz chamada “procura binária”, que aliás, tanto faz a linguagem que você usa, as idéias são as mesmas. O conceito é simples, ver se o item está no meio da matriz, se não estiver, cortar ela no meio, ver se está na metade, se não estiver, cortar a metade ao meio, ad infinitum, ou até que dure.
Imagine que você tenha de procurar o nome “Julio Nobrega” na lista telefônica. Ir de item em item e ver se cada um equivale ao termo é loucura. Oras, abra a lista bem no meio e veja o nome, se ele for Julio Nobrega, pronto. Se não for, o nome que está no meio, é maior ou menor que o nosso termo? Se for maior, parta na metade a lista e procure na primeira parte. Eliminamos 50% de onde vamos procurar num piscar de olhos. Repita isso, e o espaço de procura vai diminuindo até só sobrar o termo pesquisado. Muito melhor que um por um.
Lá vai a função:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function procura_binaria($elemento, $matriz) { $baixo = 0; $alto = sizeof($matriz) - 1; while ($baixo <= $alto) { $meio = floor(($baixo + $alto) / 2); if ($elemento == $matriz[$meio]) { return $matriz[$meio]; } else { if ($elemento < $matriz[$meio]) { $alto = $meio - 1; } else { $baixo = $meio + 1; } } } return false; // Não achou! } |
Usar é moleza:
1 2 3 | if (!pesquisa_binaria($termo, $matriz)) { echo 'Não achou!'; } |
I got a comment by Adam Kramer, whose blog I linked on the original article about PHP named parameters, saying that would be cool to have a mix of default and named parameters.
So I made a nice cup of coffe and a few hacks later, came up with a way to do it, and went to tell Adam. Well, sadly his WordPress broke my HTML text (just like mine will probably do it too), so I am posting it here.
Looks like PHP won’t get named parameters on version 6. And, well, I am not the only one that want it 🙂 . It’s a feature of Python that I love. Why? Consider the following situation:
You’re making a function/method to return a string with HTML code for an input field.
1 2 3 4 | function inputField($name, $maxlength = 50, $size = 20) { return "<input type=\"text\" name=\"$name\" size=\"$size\" maxlength=\"$maxlength\" /> "; } |
Essa função retorna quais atributos são diferentes entre dois objetos, e opcionalmente você pode especificar apenas para verificar alguns desses atributos.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | function diff($objeto_antes, $objeto_depois, $atributos_especificos = array()) { $diff = array(); foreach ($objeto_antes as $atributo => $valor) { if (isset($objeto_depois->$atributo)) { // foram especificados atributos para comparar? ... if (sizeof($atributos_especificos) > 0) { // ... o atributo atual está na lista? if (in_array($atributo, $atributos_especificos)) { if ($objeto_depois->$atributo != $valor) { $diff[] = $atributo; } } } else { if ($objeto_depois->$atributo != $valor) { $diff[] = $atributo; } } } } return $diff; } |
Ajax não é uma nova tecnologia, metodologia ou linguagem de programação, mas sim um acrônimo para Asynchronous JavaScript And XML. É uma combinação de técnicas disponÃveis desde meados do ano 2000, consistindo de:
(X)HTML e CSS
Document Object Model
XMLHttpRequest
Powered by WordPress