小编Wil*_*lco的帖子

PHP:在括号内提取文本的最佳方法?

在括号之间提取文本集的最佳/最有效方法是什么?假设我想以最有效的方式从字符串"忽略除此(文本)之外的所有内容"中获取字符串"text".

到目前为止,我提出的最好的是:

$fullString = "ignore everything except this (text)";
$start = strpos('(', $fullString);
$end = strlen($fullString) - strpos(')', $fullString);

$shortString = substr($fullString, $start, $end);
Run Code Online (Sandbox Code Playgroud)

有一个更好的方法吗?我知道通常使用正则表达式往往效率较低,但除非我可以减少函数调用的数量,否则这可能是最好的方法吗?思考?

php string parsing

71
推荐指数
5
解决办法
7万
查看次数

如何在jQuery中移动表行?

假设我有上/下箭头的链接,用于按顺序向上或向下移动表格行.将该行向上或向下移动一个位置(使用jQuery)最简单的方法是什么?

似乎没有任何直接的方法来使用jQuery的内置方法来做到这一点,并且在用jQuery选择行之后,我还没有找到一种方法来移动它.另外,在我的情况下,使行可拖动(我之前使用插件完成)不是一个选项.

html javascript jquery dom

66
推荐指数
2
解决办法
9万
查看次数

指定标签宽度?

是否可以在显示空格时定义标签宽度(例如在<pre>标签或其他内容中)?我用CSS找不到任何可以做到这一点的东西,但这似乎是一件很常见的事情.

在我的情况下,标签宽度太宽,导致我的一些页面上的代码片段太宽.如果我可以以某种方式缩短标签宽度以使其适合没有滚动条,它将使事情变得更容易.(我想我可以用空格替换标签,但理想情况下我很乐意找到一种方法来做到这一点而不这样做)

html css xhtml whitespace

62
推荐指数
2
解决办法
3万
查看次数

可能的值:PHP_OS

有没有找到PHP预定义常量的可能值列表的地方PHP_OS?我想将此值用于系统需求检查,但需要知道在此变量中如何命名不同的操作系统.

通过一些搜索,到目前为止我编译了以下列表:

  • CYGWIN_NT-5.1
  • 达尔文
  • FreeBSD的
  • HP-UX
  • IRIX64
  • Linux的
  • NetBSD的
  • OpenBSD系统
  • 在SunOS
  • Unix的
  • WIN32
  • WINNT
  • 视窗

如果有人有更完整的清单,或者知道任何其他值,我很乐意听到他们!

php superglobals

56
推荐指数
1
解决办法
3万
查看次数

文件下载的HTTP标头

我编写了一个PHP脚本来处理文件下载,确定正在请求的文件,并设置正确的HTTP头以触发浏览器实际下载文件(而不是在浏览器中显示).

我现在遇到一个问题,其中一些用户报告某些文件被错误识别(因此无论扩展名如何,浏览器都会将其视为GIF图像).我猜这是因为我没有在响应头中设置"Content-type".这种情况最有可能发生吗?如果是这样,是否有一个可以用于所有文件的相当通用的类型,而不是试图考虑每种可能的文件类型?

目前我只设置值"Content-disposition:attachment; filename = arandomf.ile"

更新:我在此处按照本指南构建了一个更强大的文件下载过程(http://w-shadow.com/blog/2007/08/12/how-to-force-file-download-with-php/) ,但是在执行脚本和显示浏览器的下载对话框之间存在明显的延迟.任何人都可以找出造成这种情况的瓶颈吗?

这是我的实现:

/**
 * Outputs the specified file to the browser.
 *
 * @param string $filePath the path to the file to output
 * @param string $fileName the name of the file
 * @param string $mimeType the type of file
 */
function outputFile($filePath, $fileName, $mimeType = '') {
    // Setup
    $mimeTypes = array(
        'pdf' => 'application/pdf',
        'txt' => 'text/plain',
        'html' => 'text/html',
        'exe' => 'application/octet-stream',
        'zip' => 'application/zip',
        'doc' => …
Run Code Online (Sandbox Code Playgroud)

php content-type download http-headers

50
推荐指数
3
解决办法
15万
查看次数

在PHP中链接静态方法?

是否可以使用静态类将静态方法链接在一起?说我想做这样的事情:

$value = TestClass::toValue(5)::add(3)::subtract(2)::add(8)::result();
Run Code Online (Sandbox Code Playgroud)

...显然我希望$ value被分配数字14.这可能吗?

更新:它不起作用(你不能返回"自我" - 它不是一个实例!),但这是我的想法带我的地方:

class TestClass {
    public static $currentValue;

    public static function toValue($value) {
        self::$currentValue = $value;
    }

    public static function add($value) {
        self::$currentValue = self::$currentValue + $value;
        return self;
    }

    public static function subtract($value) {
        self::$currentValue = self::$currentValue - $value;
        return self;
    }

    public static function result() {
        return self::$value;
    }
}
Run Code Online (Sandbox Code Playgroud)

在完成这项工作之后,我认为简单地使用类实例而不是尝试链接静态函数调用(这看起来不可能,除非上面的示例可以某种方式进行调整)更有意义.

php oop method-chaining

49
推荐指数
7
解决办法
2万
查看次数

给定背景颜色,黑色或白色文字?

我正在尝试找到一种方法,用于确定是否使用黑色或白色文本,给定背景颜色(作为十六进制值).以前有人处理过这个吗?有没有有效的方法来做到这一点?

就我而言,我将使用PHP来实现逻辑(尽管欢迎使用其他语言的任何经验).

css php hex colors

38
推荐指数
3
解决办法
1万
查看次数

XML Schema:可以包含元素或文本的元素?

如何定义可以包含纯文本或包含元素的元素?说我想以某种方式允许这两种情况:

<xs:element name="field">
    <xs:complexType>
        <xs:sequence>
            <xs:element ref="subfield" minOccurs="0" maxOccurs="unbounded" />
        </xs:sequence>
        <xs:attribute name="name" type="xs:string" />
    </xs:complexType>
</xs:element>

<xs:element name="field" type="xs:string" />
Run Code Online (Sandbox Code Playgroud)

......这样这两个元素都是有效的:

<field name="test_field_0">
    <subfield>Some text.</subfield>
</field>

<field name="test_field_1">Some more text.</field>
Run Code Online (Sandbox Code Playgroud)

xml xsd

35
推荐指数
2
解决办法
1万
查看次数

在命名空间中组织PHPUnit测试

我看到了将PHPUnit单元测试组织到命名空间层次结构中的两种选择.这两种方法有哪些优点/缺点?是否有任何明显的缺陷我没有考虑过会使一个明显更好的选择?

考虑一个示例类,如\SomeFramework\Utilities\AwesomeClass:

  • 方法1:将每个TestCase类放入与覆盖类相同的名称空间中.

    \SomeFramework\Utilities\AwesomeClassTest
    
    Run Code Online (Sandbox Code Playgroud)
    • 好处
      • 与编写PHPUnit测试的传统方法一致.
    • 缺点
      • 灵活性较差.
      • 似乎打破了使用命名空间的原则 - 不相关的测试被分组到同一个命名空间中.

  • 方法2:将每个TestCase放在以覆盖类命名的命名空间中.

    \SomeFramework\Utilities\AwesomeClass\Test
    
    Run Code Online (Sandbox Code Playgroud)
    • 好处
      • 提供了一种非常简单/明显的方法来将多个相关的TestCase类组合在一起,例如针对不同的测试套件.
    • 缺点
      • 可能会导致更深层次,更复杂的层次结构.

php phpunit unit-testing

34
推荐指数
3
解决办法
1万
查看次数

PHP:抑制函数内的输出?

抑制函数可能产生的任何输出的最简单方法是什么?说我有这个:

function testFunc() {
    echo 'Testing';
    return true;
}
Run Code Online (Sandbox Code Playgroud)

我想调用testFunc()并获得其返回值,而不会在页面中显示"Testing".假设这是在其他代码的情况下输出其他的东西,是有这样的好方法?也许搞乱输出缓冲区?

php function output-buffering

32
推荐指数
2
解决办法
2万
查看次数