Большая проблема, часто пропускаемая, состоит в том, что для больших веб-систем, это требуется, чтобы иметь переходный период или подход к тестированию блока для создания новых выпусков. Это делает важным иметь и откат и механизм для поддержки и старая и новая схема в том же DB. Это требует подхода лесов (сделанный популистом Гибкими людьми DB). В этом сценарии отсутствие процесса в управлении исходным кодом DB может быть общим бедствием. Вам нужны старые сценарии схемы, новые сценарии схемы и ряд промежуточных сценариев, а также убирания, когда-то система находится полностью на новой версии (или откатывается).
Вместо того, чтобы иметь сценарии для воссоздания схемы с нуля то, что требуется, является основанным на состоянии подходом, где Вам нужны сценарии просто для перемещения DB в состояние, Вы требуете, оба передают и назад от версии до версии. Ваш DB становится рядом сценариев состояния, которые могут быть легко источником, которым управляют и теговый наряду с остальной частью источника.
Any reason not to do:
httppost.addHeader("Referer", referer);
? HttpPost
subclasses (indirectly) AbstractHttpMessage
so you should be able to just add headers that way.
substr( strrchr( Text, '/' ), 1 );
This pattern will not capture the last slash in $0
, and it won't match anything if there's no characters after the last slash.
/(?<=\/)([^\/]+)$/
Edit: but it requires lookbehind, not supported by ECMAScript (Javascript, Actionscript), Ruby or a few other flavors. If you are using one of those flavors, you can use:
/\/([^\/]+)$/
But it will capture the last slash in $0
.
Вы также можете получить «имя файла» или последнюю часть с помощью функции basename .
<?php
$url = 'http://spreadsheets.google.com/feeds/spreadsheets/p1f3JYcCu_cb0i0JYuCu123';
echo basename($url); // "p1f3JYcCu_cb0i0JYuCu123"
В моем ящике я мог просто передать полный URL. Возможно, вам придется убрать http: /
спереди.
Basename и dirname отлично подходят для перемещения по всему, что выглядит как путь к файлу unix.
/^.*\/(.*)$/
^
= start of the row
.*\/
= greedy match to last occurance to / from start of the row
(.*)
= group of everything that comes after the last occurance of /
Обычно:
/([^/]*)$
Требуемые данные будут совпадать с первой группой.
Изменить Поскольку вы используете PHP, вы также можете использовать strrchr
, который возвращает все, от последнего появления символа в строке до конца. Или вы можете использовать комбинацию strrpos
и substr
, сначала найти позицию последнего вхождения, а затем получить подстроку от этой позиции до конца. Или explode
и array_pop
, разделите строку на /
и получите только последнюю часть.
Не программист PHP, но strrpos кажется более многообещающим местом для начала. Найдите самый правый '/', и все, что находится за ним, - это то, что вы ищете. Регулярное выражение не используется.
Найти позицию последнего вхождения символа в строку
вы также можете обычное разделение строк
$str = "http://spreadsheets.google.com/feeds/spreadsheets/p1f3JYcCu_cb0i0JYuCu123";
$s = explode("/",$str);
print end($s);