Очистка Библиотеки для PHP - phpQuery?

Вот чистое решение для.NET, которое не использует регулярные выражения:

string inputString = "Räksmörgås";
string asAscii = Encoding.ASCII.GetString(
    Encoding.Convert(
        Encoding.UTF8,
        Encoding.GetEncoding(
            Encoding.ASCII.EncodingName,
            new EncoderReplacementFallback(string.Empty),
            new DecoderExceptionFallback()
            ),
        Encoding.UTF8.GetBytes(inputString)
    )
);

Это может выглядеть громоздким, но это должно быть интуитивно. Это использует кодирование ASCII.NET для преобразования строки. UTF8 используется во время преобразования, потому что это может представить любой из исходных символов. Это использует EncoderReplacementFallback для преобразовать любой символ неASCII в пустую строку.

8
задан Alix Axel 29 October 2009 в 18:30
поделиться

2 ответа

See http://code.google.com/p/phpquery/wiki/Ajax and in particular:

phpQuery::post($url, $data, $callback, $type)

and

# data Object, String which defines the data parameter as being either an Object or a String. POST requests should be possible using query string format, e.g.:

$data = "username=Jon&password=123456";
$url = "http://www.mysite.com/login.php";
phpQuery::post($url, $data, $callback, $type)

as phpQuery is a jQuery port the method signature is the same (the docs link directly to the jquery site -- http://docs.jquery.com/Ajax/jQuery.post)

Edit

Two things:

There is also a phpQuery::browserPost function which might meet your needs better.

However, also note that the success2 callback is only called on the submit() or click() methods so you can fill in all of the form fields prior to that.

e.g.

require_once('phpQuery/phpQuery.php');
phpQuery::browserGet('http://www.mysite.com/login.php', 'success1');
function success1($browser) {
  $handle = $browser
    ->WebBrowser('success2');
  $handle 
    ->find('input[name=username]')
      ->val('Jon');
  $handle 
    ->find('input[name=password]')
      ->val('123456');
      ->parents('form')
        ->submit();
}
function success2($browser) {
  print $browser;
}

(Note that this has not been tested, but should work)

2
ответ дан 6 December 2019 в 00:57
поделиться

Раньше я использовал SimpleTest's ScriptableBrowser для подобных задач. Это часть среды тестирования SimpleTest, но вы можете использовать ее отдельно.

1
ответ дан 6 December 2019 в 00:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: